对于Android开发了解Android的Framework 层有多重要,Android Framework精编内核解析。
Posted datian1234
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于Android开发了解Android的Framework 层有多重要,Android Framework精编内核解析。相关的知识,希望对你有一定的参考价值。
前言
了解android的Framework 层对工作能起到什么帮助?Framework 的知识对于Android开发有多重要?
如果你去 Github 上看过腾讯 Matrix 的源码,就知道 Framework 的知识有多重要了。
像掉帧监控,函数插桩,慢函数检测,ANR 监控,启动监控,都需要对 Framework 有比较深入的了解,才能知道怎么去做监控,利用什么机制去监控,函数插桩插到哪里,反射调用该反射哪个类哪个方法哪个属性……
另外 Framework 作为 Android 框架层,为 App 提供了众多 API 去调用 ,但是很多机制都是 Framework 包装好了给 App 来用的,如果不知道这些机制的原理,那么很难去在这基础上做优化。
举个简单栗子,如果对源码不了解,估计做梦都想不到,在onCreate启动Service或者发送一个MainHandler消息,通通都是排在onStart,onResume后面才执行的。
举个栗子,如果你了解 Android App 的启动机制,优化启动速度的时候会更得心应手:
定制什么样的 StartingWindow;
什么时候可以拿到图片的宽高;
DelayLoad 怎么做才会更合适;
Service 什么时候启动可以不影响启动速度;
Activity onResume 回调的时候真的可见了么?
Redex 为什么会加快应用启动速度?
ContentProvider 会不会影响启动速度?为什么会影响?
比如我们经常说的 Handler,MessageQueue,Looper。看源码你就可以更好的理解那些概念:
ThreadLocal 做什么的;
Thread 和 Handler 的关系;
为什么不能在子线程更新 UI?
idleHandler 什么时候运行?
主线程为什么循环却不会卡死?
ContentProvider、Broadcast、Service 是怎么利用 Message 监控 ANR 的?
再比如说 Android 的进程管理机制:
AMS 把 Android 进程按照一定的规则,设置不同的优先级,在内存比较低的时候,高优先级的 App 比低优先级的 App 更不容易被系统干掉!那么 AMS 是按照什么规则来设置优先级的呢?了解这些规则是不是可以提高 App 的存活率呢?这都是可以通过熟读 AMS 代码知道的。
再比如说 Activity 启动的模式,可能你会熟练使用各种模式,但是如果你学习 Framework 中 Activity 和进程的管理,知道 Activity 栈和 Task 的管理。那么你会对这启动模式的使用更加深刻。
正所谓知其然知其所以然,API 只是 Android 开发的一部分,底层的实现庞大而又复杂,不用心去读源码很难将知识点深入理解。
这里给大家分享一份腾讯总监整理的这份《Android Framework开发揭秘》总共将近20万字,通过经典Binder、Handler、AMS等面试题解析加深你对Android Framework框架层的理解,今天在这里拿出来分享给大家。扫一扫下方二维码添加助理小姐姐微信即可免费获取↓↓↓
《Android Framework 开发揭秘》
第一章 系统启动流程分析
第一节 Android启动概览
第二节 init.rc解析
第三节 Zygote
第四节 面试题
第二章 Binder解析
第一节 宏观认识Binder
第二节binder的jni方法注册
第三节binder驱动
第四节 数据结构
第五节 启动service_manager
第六节获取service_manager
第七节 addService流程
第八节 Binder面试题全解析
第三章 Handler解析
第一节 源码分析
第二节 难点问题
第三节Handler常问面试题
第四章 AMS 解析
第一节 引言
第二节 Android架构
第三节 通信方式
第四节 系统启动系列
第五节 AMS
第六节 AMS 面试题解析
第五章 WMS解析
第一节Activity与Window相关概念
第二节 Android窗口管理服务WindowManagerService计算Activity窗口大小的过程分析
第三节Android窗口管理服务WindowManagerService对窗口的组织方式分析
第四节 Android窗口管理服务WindowManagerService对输入法窗口的管理分析
第五节 Android窗口管理服务WindowManagerService对壁纸窗口的管理分析…
第六章PKMS Android10.0 源码解读
第一节 前言 PKMS 是什么东西?
第二节 PKMS 概述信息
第三节 PKMS角色位置
第四节 PKMS 启动过程分析
第五节 APK的扫描
第七节 PMS之权限扫描
第八节 PackageManagerService大综合笔记
《Android Framework 精编内核解析》
这份《Android Framework 精编内核解析》内容涵盖:深入解析 Binde、深入解析 Handler 消息机制、Dalvik VM 进程系统、深入解析 WMS、PackageMS 启动五个章节,一共455页。
《Android Framework开发揭秘》以及《Android Framework 精编内核解析》资料免费获取,扫一扫下方二维码添加助理小姐姐微信即可免费获取↓↓↓
第一章 深入解析Binder
- Binder系列—开篇
- Binder Driver初探
- Binder Driver再探
- Binder 启动 ServiceManager
- 获取 ServiceManager
- 注册服务 (addService)
- 获取服务 (getService)
- framework 层分析
- 如何使用 Binder
- 如何使用 AIDL
- Binder 总结
- Binder 面试题全解析
第二章深入解析Handler消息机制
- 宏观理论分析与Message源码分析
- MessageQueue的源码分析
- Looper的源码分析
- handler的源码分析
- Handler机制实现原理总结
- Handler面试题全解析
第三章Dalvik VM进程系统
- Android系统启动-综述
- Init篇
- zygote篇
- SystemServer上篇
- SystemServer下篇
第四章深入解析WMS
- WMS概述
- WMS的诞生
第五章PackageMS启动
- PackageMS相关框架类
- PackageMS启动过程
相信这两份资料,一定可以为大家在Framework的学习上提供强有力的帮助和支撑,快人一步成为真正的高级Android开发者。以上内容全都已打包整理好都是免费分享,扫一扫下方二维码添加助理小姐姐微信即可免费获取↓↓↓
以上是关于对于Android开发了解Android的Framework 层有多重要,Android Framework精编内核解析。的主要内容,如果未能解决你的问题,请参考以下文章
Android开发现状如何?都有哪些内容需要了解?涨薪小意思啦!