众所周知,这一段时间整个移动互联网行业哀声一片,无止境的裁员和毁约,近1100万的本科毕业生即将涌入,让本就为数不多的岗位加剧内卷,薪资或将继续倒挂,所有从业者头上蒙上了一层阴影,真是一年比一年难…
移动开发落幕了
现在想想,移动互联网的发展不知不觉已经十多年了,随着各赛道的前三名座次落定,圈地运动接近尾声。在同个应用里面便利、高效地搞定所有事情,这是用户天生的需求。
用户不断往头部应用集中,导致细分领域的 APP 开始消亡,它们逐渐被订阅号、服务号、小程序等所取代,市场对 Android 开发的需求开始萎缩回落,到目前已经趋近饱和。
薪资水准自然而然也开始回调,但细心的朋友会发现移动开发中有一个岗位不降反增,那就是懂底层源码的系统开发岗。
其延展出的车载系统开发甚至拉回了一波android,ios就不是这么好运了…
事实证明只会原生开发将越走越窄,回想下,自己从业多年以来,干过最多的是不是「画UI,写界面,写业务逻辑」,这对刚毕业的大学生来说谁不会做,可替代性太强。
这时有人反驳,现在连大公司的工程师都是在做 UI 的展示逻辑,其根本没有多少深度可挖,干不下去还是早点转行好。
其实并不然,拿android举例,除了app,向下还有framework,再往下就是Linux,再再往下还有硬件,起码干三十年肯定行。
而大部分人因常年做应用层开发,对Framework层源码这些东西并不熟悉,只是简单的听说过,从而很难达到这种水平。
于是在此为了方便大家阅读Framework层源码,分享一份阿里内网自用的Framework学习手册,其包括了系统启动流程分析、跨进程通信IPC、Handler源码、AMS解析、WMS解析、Surface源码、PKMS源码等多方面源码分析。
第一章 系统启动流程分析
- 第一节 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配置的更新