【Android禅修之路】Android的知识体系搭建

1,895 阅读3分钟

一概述

为什么要写

做 Android 开发已经好多年了,从最初的 CSDN 到后来的简书,再到如今的掘金,零零散散也写了不少博客,但是一直以来都感觉不成体系。并且每次写博客时,感觉自己掌握了的知识,后来再回头看,已经会发现有许多遗漏。所以,在写了这么多博客之后,我思考着,是否能够体系化的整理总结一份,全面的,体系的,还易懂的 Android 知识体系的博客。于是,就有了这个系列博客。

我要写什么

关于 Android 的博客,网络上已经非常多了,大神也是风起云涌。但是我依旧还是想写,一个是为了自我的鞭策,还有一个更重要的原因,则是很多资料都是 Android 4.4 到 Android 6,Android 10 以上的资料就已经零零碎碎了,更不要说今年 Android 14 的开发预览版已经出来了,要么变化,许多核心已经是老的那些,但是要说没变,其实也有许多改变。

所以我希望能够,在基于那些大神的基础上,尽量基于 Android 较新的源码,来对 Android 系统中的一些原理或者机制,做一些解析。因为文章的写作时间有先后,所以版本并不会一直不变,我也会跟随者现有市场的版本占比,来根据不同版本的源码。

我会如何写

最后,我再说说我会怎么写。关于 Android 系统的源码,我的观点一直是庞大而复杂,所以对于很多地方,并不能一篇文章就解释清楚,甚至好多篇也不一定能完全覆盖,所以我尽量以问题驱动的形式,尽量每篇文章围绕者一个问题,或者一个核心。对于其他的问题,会分不同的篇幅进行解答。

最后我想说的是,阅读源码不是一蹴而就的事,很多地方我读了几遍已经有很多不懂的地方,学习就是一个不断进步的过程,大家共勉。

二 Android 系统基础

2.1 系统的启动

开篇

init进程的启动

Zygote的启动

Zygote的工作原理

SystemServer的启动

Launch的启动

2.2 四大组件

Activity启动源码解析

Service启动源码解析

BroadcastReceiver源码解析

ContentProvider源码解析

三 系统服务

3.1 PMS系列

PMS系列

PackageManagerService 源码解析——开篇

PMS源码解析——PMS的启动流程

PMS工作原理解析——app目录的解析流程

PMS源码解析——apk的安装流程


3.2 AMS系列

AMS系列

ActivityManagerService源码解析——开篇

AMS之AMS的启动流程

AMS之进程的启动流程

AMS之进程管理LRU算法


3.3 WMS系列

WMS系列

WMS之WindowContainer窗口框架简介


3.4 SurfaceFlinger系列

SurfaceFlinger系列

SurfaceFlinger的启动过程

SurfaceFlinger合成总览

解读SurfaceFlinger中的BufferQueue

解读Vsync(一)

解读Vsync(二)

解读 GraphicBuffer 开篇

四 Android 系统机制

4.1 Handler系列

Handler系列

解析Handler消息机制

TODO 未完待续