为什么要学Framework

为什么要学 Framework?最直接最功利的原因就是面试要问,比如:

Activity 的启动过程,这个会涉及到 AMS/ATMS 和 WMS 的实现。
Binder 如何通过一次拷贝完成 IPC。
View的绘制流程。
SurfaceFlinger 的工作原理与流程。

对于应用开发来说,大部分类似的题目是没有太大意义的。从2023年开始,面试的内容已经在 app 层挖掘完了,再想提高面试门槛就只能往深了挖。

Android Framework学习指南,提升开发技能,提高职场竞争力_Android

Framework 的内容足够多,应聘者不可能熟悉所有的源码,只要面试官愿意,肯定能问倒应聘者的。

如果我们能系统科学地学习 Framework,掌握 Framework 中基础的核心的内容,以不变应万变。当问到我们不熟悉的部分,大胆承认,说出该部分内容会涉及到哪些基础内容,如何着手去分析,面试官大概率也会给过的。

Android 的应用非常广泛,不仅是手机,可能汽车,手表,冰箱,微波炉,电视,机顶盒,空调的内部都有一个 Android 系统。广泛的应用促使了对 Framework 人才的大量需求,因为 Framework 学习门槛较高,导致企业招聘相对困难,薪资也比大部分 App 开发岗位高出不少。如果能系统地学习 Framework 并加入这类企业,不论从经济上还是个人职业发展上都是非常不错的选择。

Android Framework学习指南,提升开发技能,提高职场竞争力_Android_02

但是现在大部分Android开发者,都是在从事业务层面的开发,每天就写一些简单的代码,拿着别人的框架在搬运,每天重复性的操作。所以对于。对Framework、Handler源码、Binder源码这些的东西并不熟悉,只是简单的听说过。

为此特地给大家准备了 Android Frmaework内核源码知识体系图 以及《Android Framework源码开发解析》学习笔记!!!


Android Framework学习指南,提升开发技能,提高职场竞争力_事件处理_03

《Android Framework源码开发揭秘》

第一章 系统启动流程分析

  • 第一节 Android启动概括
  • 第二节 init.rc解析
  • 第三节 Zygote
  • 第四节 面试题

第二章 跨进程通信IPC解析

  • 第一节 Service还可以这么理解
  • 第二节 Binder基础
  • 第三节 Binder应用
  • 第四节 AIDL应用(上)
  • 第五节 AIDL应用(下)
  • 第六节 Messenger原理及应用
  • 第七节 服务端回调
  • 第八节 获取服务(IBinder)
  • 第九节 Binder面试题全解析

第三章 Handler源码解析

  • 第一节 源码分析
  • 第二节 难点问题
  • 第三节 Handler常问面试题

第四章 AMS源码解析

  • 第一节 引言
  • 第二节 Android架构
  • 第三节 通信方式
  • 第四节 系统启动系列
  • 第五节 AMS
  • 第六节 AMS面试题解析

第五章 WMS源码解析

  • 第一节 WMS与activity启动流程
  • 第二节 WMS绘制原理
  • 第三节 WMS角色与实例化过程
  • 第四节 WMS工作原理

第六章 Surface源码解析

  • 第一节 创建流程及软硬件绘制
  • 第二节 双缓冲及Surface View解析
  • 第三节 Android图形系统综述

第七章 基于Android12.0的SurfaceFlinger源码解析

  • 第一节 应用建立和SurfaceFlinger的沟通桥梁
  • 第二节 SurfaceFlinger的启动和消息队列处理机制
  • 第三节 SurfaceFlinger之VSyns(上)
  • 第四节 SurfaceFlinger之VSyns(中)
  • 第五节 SurfaceFlinger之VSyns(下)

第八章 PKMS源码解析

  • 第一节 PKMS调用方式
  • 第二节 PKMS启动过程分析
  • 第三节 APK的扫描
  • 第四节 APK的安装
  • 第五节 PKMS之权限扫描
  • 第六节 静默安装
  • 第七节 requestPermissions源码流程解析
  • 第八节 PKMS面试题

第九章 InputManagerService源码解析

  • 第一节 Android Input输入事件处理流程(1)
  • 第二节 Android Input输入事件处理流程(2)
  • 第三节 Android Input输入事件处理流程(3)

第十章 DisplayManagerService源码解析

  • 第一节 DisplayManagerService启动
  • 第二节 DisplayAdepter和DisplayDevice的创建
  • 第三节 DMS部分亮灭屏流程
  • 第四节 亮度调节
  • 第五节 Proximity Sensor灭屏原理
  • 第六节 Logical Display和Physical Display配置的更新