- 博客(20)
- 资源 (8)
- 收藏
- 关注
原创 Android使用JPEG实现图片压缩上传
Android使用JPEG实现图片压缩上传1.介绍Android中常用压缩方法分为2种:一种是降采样率压缩,另外一种是质量压缩。第一种: BitmapFactory.Options o = new BitmapFactory.Options(); o.inJustDecodeBounds = true; BitmapFactory.decodeFile(path, o); o.inSample
2017-06-14 10:13:10
3097
原创 杀不死service------Java层实现
杀不死service——Java层实现介绍开始先来说下我们实现的方式:1.提高进程优先级2.java层双进程守护3.JobScheduler轮询4.native层双进程守护今天我们只写前三种方式,第四种native层双进程守护将在下一篇来讲解。我们先来看下进程的优先级 :前台进程- Activity已调用onResume()方法- Service服务已调用startForeground()-
2017-06-13 18:30:35
781
原创 手写数据结构----------HashMap
手写数据结构———-HashMap百度百科解释基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代
2017-06-13 10:18:58
698
原创 android插件化开发---换肤
android插件化开发—换肤在自己手写换肤功能之前需要了解关于view的创建过程,如果不了解的朋友可以看下我另外一篇博客:android中布局和View创建从上一篇文章中我们知道在创建view之前,会先调用LayoutInflater中的mFactory2,mFactory,mPrivateFactory的onCreateView,所以我们只要设置Factory,就可以对view创建进行拦截,
2017-06-12 18:52:59
486
原创 android 手写收集崩溃信息上传
android 手写收集崩溃信息上传我们要收集用户使用app时,异常崩溃的信息,网上有很多第三方的,今天我们就自己手动的写收集崩溃信息的功能。我们要上传的有那些信息呢? 错误信息,app版本信息, 手机信息我们怎么能监听到app崩溃,和在崩溃时保存错误信息呢? 这里我们使用的是Thread.UncaughtExceptionHandler接口,下面我们来一起看下代码: public cla
2017-06-12 01:38:58
318
原创 android热修复--手写热修复
android热修复–手写热修复之前我们分析了阿里的热修复框架AndFix的使用和原理,如果没看过的小伙伴可以先去看下,使用起来还是很简单的,但是有个缺陷,就是针对新出的android系统不兼容,因为AndFixNatice层对不同的系统做不同的处理方式,如果版本更新,但是阿里工程师还没来得及添加针对新系统的处理,那么就有可能出问题。我们今天就手写一个针对java层的热修复功能。先来了解一下Andr
2017-06-11 22:41:40
1213
原创 手写EventBus框架
手写EventBus框架EventBus相信大家都用过,EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。今天我们就来手写EventBus,让我们更了解EventBus原理。需要了解的知识点: 1.
2017-06-02 11:27:52
398
原创 仿QQ语言变声功能
仿QQ语言变声功能这次写的是QQ语言变声功能,这个功能想必大家都使用过,那么这个功能是怎么实现的呢? 在开发中一边触及和语音,视频,算法等等都和c/c++相关,我们这里也是使用的NDK,链接第三方动态库,生成我们自己的库文件。先来讲讲第三方的动态库,我们这里使用的FMOD音频引擎提供给android的api和动态库。我们可以到官网下载: FMOD,因为下载需要注册,但是我天朝的。。。,需要vnp
2017-06-01 14:50:00
5253
1
原创 Android广告轮播
Android广告轮播广告轮播功能在很多项目中多用得到,最近看了一位大神的博客,仿照他的文章,自己来写一个广告轮播功能,写的过程中学到了很多东西,谢谢。首先来看下核心的类BannerViewPager:public class BannerViewPager extends ViewPager { private String TAG="BannerViewPager"; Handle
2017-05-24 15:15:05
490
原创 Android6.0运行时权限处理架构搭建
Android6.0运行时权限处理架构搭建介绍对于6.0以下的权限及在安装的时候,根据权限声明产生一个权限列表,用户只有在同意之后才能完成app的安装,造成了我们想要使用某个app,就要默默忍受其一些不必要的权限(比如是个app都要访问通讯录、短信等)。而在6.0以后,我们可以直接安装,当app需要我们授予不恰当的权限的时候,我们可以予以拒绝(比如:单机的象棋对战,请求访问任何权限,我都是不同意的)
2017-05-23 09:57:50
300
原创 注解(Annotation)自定义注解(四)--编译期注解解析讲解和手写ButterKnife
注解(Annotation)自定义注解(四)–编译期注解解析讲解和手写ButterKnife前言前面两篇讲解了运行期注解的使用和xutils源码的解析,以及手动打造自己的IOC框架。但是运行期注解由于性能问题被一些人所诟病,所以这里我们讲下编译器注解的使用和实战。介绍编译器注解的核心原理依赖APT(Annotation Processing Tolls)实现,例如,我们常用的ButterKnife,
2017-05-22 18:36:31
1010
原创 仿QQ侧滑效果
仿QQ侧滑效果我们经常使用QQ,感觉QQ的侧滑效果还是不错的,虽然网上有侧滑的包,或者V4包中带的DrawerLayout,但是使用起来不太满意,所以我们就会自己手写侧滑效果,今天我们就来写一下仿QQ侧滑效果。先上图:写侧滑功能的思路有很多,就我本人而言,就写个两种:1.ViewGroup + ViewDragHelper + onTouch事件处理2.HorizontalScrollView +
2017-05-21 22:29:54
475
原创 android热修复--阿里热修复使用和源码分析
android热修复–阿里热修复使用和源码分析AndFix全称Android hot-fix,是alibaba的Android热修复框架,支持Android 2.3到7.0的版本,支持arm与X86系统架构,支持Dalvik和ART Runtime。原理AndFix的原理就是方法的替换,把有bug的方法替换成补丁文件中的方法。使用1.添加依赖和混肴maven:<dependency> <gr
2017-05-19 15:55:45
522
原创 android中布局和View创建的源码分析---setContentView
android中布局和View创建的源码分析因为我们使用的是拦截view创建的过程来实现插件换肤的功能,所以首先要熟悉android中创建视图的过程,下面让我们一起来分析下源码,这里我们从两个方面来分析。一.设置布局分析1.继承至Activity时,设置布局的情况setContentView()的源码public void setContentView(@LayoutRes int layoutRe
2017-05-19 12:56:00
379
原创 注解(Annotation)自定义注解(三)--自己动手写注解框架(仿xutils)
前面两篇文章讲解了注解的基础知识和运行时注解的解析方法。下面我们用学到的知识来手动写一个属于自己的注解框架。在写自己的注解框架前,让我们先来看下一些好的框架,相信大家对xutils应该不会太陌生。xutils主要包括网络,数据库,IOC注入,网络图片使用,那么我们这里主要看看xutils3.0的IOC注解:https://github.com/wyouflf/xUtils3
2017-04-21 15:39:04
411
转载 注解(Annotation)自定义注解(一)
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target, 2.@R
2017-04-18 17:34:11
223
原创 你喜欢的搞笑内容都在这里-----笑口常开
FunN(因为 数据来源,接口,app都是本人独立完成,所以可能更新会很慢,请见谅)描述:这是一款基于MVP模式开发的,目的是给用户带来快乐,其中有 段子手, 搞笑, 清纯妹子, 性感美女, 动态图, 邪恶图片 几个模块,包括了文字笑话,搞笑图片,美女图片,搞笑动态图.功能只是提供了文字小
2017-04-18 17:21:01
600
原创 android源码分析-------LinkedHashMap,HashMap
这篇文章是LurCache源码分析的后续,如果想看LurCache源码分析,请转上一篇:《 避免OOM系列之(二)-------LruCache使用以及源码详细解析》。我们先来看下继承关系:我们看到LinkedHashMap 继承HashMap ,HashMap继承AbstractMap,如果你查看AbstractMap源码会发现,Ab
2016-08-14 21:33:47
1194
原创 LruCache使用以及源码详细解析
开始准备先讲引用的,但是考虑到网上有很多优秀的框架,提供给开发者使用,关于缓存基本上全是用的LruCache,所有先讲解下Lrucache的使用和源码分析。 LRU是Least Recently Used 近期最少使用算法。其实LruCache的作用就是对缓存的元素进行排序,当超过设定的内存值时就会将使用最少,使用最早元素先回收。LruCache的使用:
2016-08-14 20:26:56
584
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人