前言
为什么要学习Android framework? Android framework到底有多重要? Android framework该如何学习? 如何从应用深入到framework? 你作为Android开发程序员,是否也遇到过一样的问题?
一、为啥Framework对Android开发人员如此重要?
- 第一,不管你去面试哪家公司,Framework是必问项,而Framework使用范围广,无论如何是避不开的;而且掌握framework的岗位工资相对较高。
- 第二,你对Framework掌握的越深入,意味着你能做的事情越多。我在面试的时候也经常看到一些程序员写“精通Framework”,但大多数人对精通存在一定误区。 Framework始终穿插在 App 整个研发生命周期中,不管是从 0 到 1 的建立阶段,还是从 1 到 N 打磨阶段,都离不开Framework。所以与它相关的知识都尤为重要,面试官会通过连环炮来试探你相关技能的边际所在。对于大部分程序员来说,Framework用了很久,但依然会出现面对棘手问题束手无策的状况,大多是因为对源码和底层原理模糊不清。
二、学习Android framework的必要性
- 面试被问到的概率很高。Android就业环境日益艰难,许多企业对Android工程师的要求也不断提高。有的公司的面试可能大部分都是关于Framewoke方面的,尤其是Android Framework中各个组件的原理。
- 学好Framework本身就是有价值的。很多公司的应用开发需要基于模块化、层次化、组件化、控件化来设计架构,它的基础就是建立在Android Framework框架的底层原理之上,学习Framework可以深层次的去解决安卓应用开发时遇到的一些难题,甚至不少公司都有设置专门的Android Framework开发岗位。
三、Android framework技术进阶
这就要接触到Android系统中Framework层次的东西。说到Framework层,就不得不提到其三大核心内容:
- View/AMS/WMS。View:负责布局的排列、绘制、测量和事件分发以及按键事件。
- AMS:管理所有应用程序的Activity等。
- WMS:给所有应用程序分配窗口,并管理这些窗口。
附上技术清单
学习framework是一个系统且漫长的过程,我常常也会在framework上遇到很多问题。所以我将framework的所有知识点整理成了PDF版本,整份资料几十万字,在这里完全展示出来是不太现实的。有需要的朋友可以一起交流。👀关注公众号:Android老皮!!!欢迎大家来找我探讨交流👀
第一章系统启动流程分析
a)Android启动概括 b)init.rc解析 c)Zygote d)面试题
第二章跨进程通信IPC解析
a)Sercice 还可以这么理解 b)Binder基础 c)Binder应用 d)AIDL应用(上) e)AIDL应用(下) f)Messenger原理及应用 g)服务端回调 h)获取服务(IBinder) i)Binder面试题全解析
第三章Handler源码解析
a)源码分析 b)难点问题 c)Handler常问面试题
第四章AMS源码解析
a)引言 b)Android架构 c)通信方式 d)系统启动系列 e)AMS f)AMS 面试题解析
第五章WMS源码解析
a)WMS与activity启动流程 b)WMS绘制原理 c)WMS角色与实例化过程 d)WMS工作原理
第六章Surface源码解析
a)创建流程及软硬件绘制 b)双缓冲及SurfaceView解析 c)Android图形系统综述
第七章基于Android12.0的SurfaceFlinger源码解析
a)应用建立和SurfaceFlinger的沟通桥梁 b)SurfaceFlinger的启动和消息队列处理机制 c)SurfaceFlinger 之 VSync(上) d)SurfaceFlinger之VSync(中) e)SurfaceFlinger之VSync(下)
第八章PKMS源码解析
a)PKMS调用方式 b)PKMS启动过程分析 c)APK的扫描 d)APK的安装 e)PKMS之权限扫描 f)PKMS之权限扫描 g)静默安装 h)requestPermissions源码流程解析 i)PKMS面试题
第九章InputManagerService源码解析
a)Android Input输入事件处理流程(1) b)Android Input输入事件处理流程(2) c)Android Input输入事件处理流程(3)
第十章DisplayManagerService源码解析
a)DisplayManagerService启动 b)DisplayAdapter和DisplayDevice的创建 c)DMS部分亮灭屏流程 d)亮度调节 e)Proximity Sensor灭屏原理 f)Logical Display和Physical Display配置的更新