从做Android的第一天起,你一定听过无数次关于Framework的讨论,也曾在这个版块被面试官吊锤N次。掉帧监控,函数插桩,慢函数检测,ANR 监控,启动监控,都需要对 Framework 有比较深入的了解,才能知道怎么去监控,利用什么机制监控,函数插桩插到哪里,反射调用该反射哪个类哪个方法哪个属性……
Framework 作为 Android 框架层,为众多App提供了N多的API来调用,但很多机制都是Framework包装好直接给 App 来用的,不知道这些机制原理,就无从下手在这基础上进行优化。
如果你了解 Android App 的启动机制,做启动优化一定会会更得心应手:定制什么样的 StartingWindow;什么时候可以拿到图片的宽高;DelayLoad 怎么做才会更合适;Service 什么时候启动可以不影响启动速度;Activity onResume 回调的时候真的可见了么?ContentProvider 会不会影响启动速度?为什么会影响?
再比如我们经常说的 Handler,MessageQueue,Looper。看源码你就可以更好的理解那些概念:Thread 和 Handler 的关系;为什么不能在子线程更新 UI?idleHandler什么时候运行?主线程为什么循环却不会卡死?ContentProvider、Broadcast、Service 是怎么利用 Message 监控 ANR 的?
再比如说 Android 的进程管理机制。AMS 把 Android 进程按照一定的规则,设置不同的优先级,在内存比较低的时候,高优先级的 App 比低优先级的 App 更不容易被系统干掉!那么 AMS 是按照什么规则来设置优先级的呢?了解这些规则是不是可以提高 App 的存活率呢?这都是可以通过熟读 AMS 代码知道的。
Android 的卡顿掉帧问题,很多文章都说卡顿是由于主线程耗时造成的,这其实只是一部分,其他的比如 RenderThread 耗时也会导致卡顿、Binder 通信耗时也会导致卡顿,60 fps 下没问题的 app 90fps或者 120fps 下也可能会卡顿,有时候低内存下你主线程读个文件可能都会导致卡顿。真正明白了卡顿的原理,再面对卡顿问题也不会再手足无措。
为了帮助大家更好地掌握Framework源码,这里分享给大家一份经过整理的《Android11.0 最新Framework解析》,带你把Framework扒个精光!
文末直接领取
第一章-系统启动
-
第一节-Android系统架构
-
第二节-Android是怎么启动的
-
第三节-Android 11.0系统启动之init进程
-
第四节-Android11.0系统启动之Zygote进程
-
第五节-Android 11.0 系统启动之SystemServer进程
-
第六节-Android 11.0 系统服务之ActivityMnagerService-AMS启动流程
-
第七节-Android11.0系统启动之Launcher(桌面)启动流程
-
第八节-Android11.0应用进程创建过程以及Zygote的fork流程
-
第九节-Android 11.0 PackageManagerService(一)工作原理及启动流程
-
第十节-Android 11.0 PackageManagerService-APK安装流程
第二章-日志系统篇
- 第一节-Android11.0 日志系统分析-logd、logcat 指令说明、分类和属性
第三章-Binder通信原理
-
第一节-Android11.0 Binder通信原理(一)Binder、HwBinder、VndBinder概要
-
第二节-Android11.0 Binder通信原理(二)-Binder入门篇
-
第三节-Android11.0 Binder通信原理(三)-ServiceManager篇
-
第四节-Android11.0 Binder通信原理(四)-Native-C\C++实例分析
-
第五节-Android11.0 Binder通信原理(五)-Binder驱动分析
-
第六节-Android11.0 Binder通信原理(六)-Binder数据如何完成定向打击
-
第七节-Android11.0 Binder通信原理(七)-Framework binder示例
-
第八节-Android11.0 Binder通信原理(八)-Framework层分析
-
第九节-Android11.0 Binder通信原理(九)-AIDL Binder示例
-
第十节-Android11.0 Binder通信原理(十)-AIDL原理分析-Proxy-Stub设计模式
-
第十一节-Android11.0 Binder通信原理(十一)-Binder总结
第四章-HwBinder通信原理
-
第一节-HwBinder入门篇-Android10.0 HwBinder通信原理(一)
-
第二节-HIDL详解-Android10.0 HwBinder通信原理(二)
-
第三节-HIDL示例-C++服务创建Client验证-Android10.0 HwBinder通信原理(三)
-
第四节-HIDL示例-JAVA服务创建-Client验证-Android10.0 HwBinder通信原理(四)
-
第五节-HwServiceManager篇-Android10.0 HwBinder通信原理(五)
-
第六节-Native层HIDL服务的注册原理-Android10.0 HwBinder通信原理(六)
-
第七节-JAVA层HIDL服务的注册原理-Android10.0 HwBinder通信原理
-
第八节-HwBinder驱动篇-Android10.0 HwBinder通信原理
第五章-编译原理
-
第一节-编译系统入门篇-Android10.0编译系统
-
第二节-编译环境初始化-Android11.0编译系统
-
第三节-make编译过程-Android11.0编译系统(三)
-
第四节-Image打包流程-Android11.0编译系统(四)
-
第五节-Kati详解-Android11.0编译系统
-
第六节-Blueprint简介-Android11.0编译系统-
-
第七节-Blueprint代码详细分析-Android11.0编译系统
需要完整版1595页的《Android11.0 最新Framework解析》,文末点击卡片免费领取