这是一个给自己整理的Android知识地图,做Android开发多年,却鲜少有积累,悔不当初,如今廉波老矣才来整理自己的知识地图,好在亡羊补牢犹未为晚。
1.UI
1.1绘制
1.2布局
1.3事件分发
1.4动画
1.5硬件加速
1.6WindowManager
2.线程
多线程相关类,同步
多线程转换和管理
3.进程
多进程传递数据
进程保活:
根本是降低oom_adj的值,数值越小越不会被杀死
1.规矩滴用前台service
2.sdk以及app互相唤醒,系统广播唤醒(后续版本已经不给力了)
3.notification的漏洞,给空notification或者启动两个前台service,后者关掉notification,android4.3以后已经不行了
4.一个像素的Activity
5.降低内存,可以使用多进程拆分,降低需要保活的进程的内存占用
6.JobSheduler
7.账号同步
8.NotificationListenerService但需要权限 android.permission.BIND_NOTIFICATION_LISTENER_SERVICE
IPC机制 http://gityuan.com/2015/10/31/binder-prepare/
4.动态加载,热修复原理,插件化,class loader
5.数据库
6.虚拟机
Dalvik与ART(Android Runtime)
在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器(just in time ,JIT)转换为机器码,这会导致很慢
ART则是在安装时使用预编译(AOT,Ahead-Of-Time)技术,字节码就会预先编译成机器码,应用的启动(首次)和执行都会变得更加快速。缺点是机器码占用的存储空间更大10-20%,以及安装时间变长
ART优化了GC,以及对内存碎片的管理
4.Dalvik虚拟机 java内存管理
5.Android新特性
我觉得印象比较深的几点:1.自适应textview 2.自动填充 3.字体 4.通知
http://www.jianshu.com/p/908bd07b2849
6.开源工具
RxJava RxAndroid
https://gank.io/post/560e15be2dca930e00da1083#toc_1