Android13已来,做好迎接它的准备了吗

Carson带你学习Android

共 2029字,需浏览 5分钟

 ·

2022-05-12 19:20

从做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源码,这里分享给大家一份Google大神整理的《Android11.0最新 Framework解析》,带你把Framework扒个精光!

《Android11.0 最新Framework解析》
第一章-系统启动
Android系统架构
Android是怎么启动的
Android 11.0系统启动之init进程
Android11.0系统启动之Zygote进程

Zygote架构图

Zygote 是如何被启动的

Zygote 启动后做了什么

Android 11.0 系统启动之SystemServer进程

SystemServer架构图

SystemServer思维导图



Android 11.0 系统服务之ActivityMnagerService-AMS启动流程

Android11.0系统启动之Launcher(桌面)启动流程
Android11.0应用进程创建过程以及Zygote的fork流程
Android 11.0PackageManagerService-APK安装流程

第二章-日志系统篇
Android11.0 日志系统分析-logd、logcat 指令说明、分类和属性

第三章-Binder通信原理
Binder、HwBinder、VndBinder概要
Binder入门篇
ServiceManager篇
Native-C\C++实例分析

Binder驱动分析
Binder数据如何完成定向打击

Framework层分析

扫码即可领取资料


第四章-HwBinder通信原理
HwBinder通信原理
HIDL示例-C++服务创建Client验证
HwServiceManager

Native层HIDL服务的注册原理
HwBinder驱动篇

第五章-编译原理
Android11.0-编译系统入门
Android11.0-编译环境初始化
Android11.0-make编译过程

Android11.0-Image打包流程
Android11.0-Kati详解
Android11.0-Blueprint简介
Android11.0-Blueprint代码详细分析


篇幅原因,就不在这里为大家赘述了,需要的朋友可以直接扫描目录下方二维码领取这份《Android11.0最新 Framework解析》,助你早日成为底层原理大师!


扫码即可领取资料


PS:在5月11-12日,我们特邀腾讯课堂Alvin老师为大家带来Framework之Handler&Binder的讲解,带你深入Android最关键的两大通信机制原理


浏览 49
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报