Android Framework框架层源码解读(含系统启动流程/IPC/Handler/AMS/WMS等)

前言

随着谷歌对Android框架的越加深度的封装,包括各种JetPack框架的推出等都是为了让应用开发更加精简。 这样带来的直接影响就是Android门槛被拉低了,应用开发只需要一个Activity就能制作一个App,貌似也不需要什么高深的技能。

然而Android这个是一个庞大的系统性的工程,各个版本都有一定兼容性问题,为了能快速定位问题,也为了学习Android框架中一些优秀的思想,时常需要查看Android系统源码层面的知识。

Framework是我们Android开发最常接触的框架,也是最优秀的框架之一,Framework的源码质量也是开源框架中的佼佼者,一个程序员想要让自己的开发水平得到提升,阅读源码是必不可少的,但是大部分人日常工作中能够接触到的代码有限,如果你只是在日常的工作中阅读同事的代码,那能学到的东西是非常有限的。

一来,工作中能接触到的同事的能力上限,跟全世界顶尖程序员的能力上限相比,差距是非常大的;再者,工作中的场景,经常被工期等非技术因素影响,并不能完全把开发者的技术水平体现出来。

因此,众多的优秀开源项目,就是一座巨大的知识宝库,这里就分享一份腾讯大佬整理Android Framework源码解读,相信能很好的帮助你从项目的整体架构中,学会组织代码的方法,或者一些架构的思维。

第一章 系统启动流程分析

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

图片

第二章 跨进程通信IPC解析

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

图片

第三章 Handler源码解析

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

图片

第四章 AMS 源码解析

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

图片

第五章 WMS源码解析

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

图片

第六章 Surface源码解析

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

图片

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

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

图片

第八章 PKMS源码解析

  • 第一节 PKMS调用方式

  • 第二节 PKMS启动过程分析

  • 第三节 APK的扫描

  • 第四节 APK的安装

  • 第五节 PKMS之权限扫描

  • 第六节 静默安装

  • 第七节 requestPermissons源码流程解析

  • 第八节 PKMS面试题

图片

第九章 InputManagerService源码解析

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

图片

第十章 DisplayManagerService源码解析

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

图片

结语

由于 Framework层代码量巨大,涉及到的逻辑线也非常多,经常容易看完后面的,忘记前面的,因此,要记得看完一部分及时总结。总结可以是一个流程图、一篇文章,或者任何你认为合适的方式,一来可以加深记忆,二来可以复习和会刊。

猜你喜欢

转载自blog.csdn.net/m0_59614665/article/details/128321202