1.前言
- 最近一直在看 《Android进阶解密》 的一本书,这本书编写逻辑、流程都非常好,而且很容易看懂,非常推荐大家去看看(没有收广告费,单纯觉得作者写的很好)。
- 今天就将
应用进程启动过程
总结一下(基于Android 8.0 系统)。 - 文章中实例 linhaojian的Github
2.应用进程启动过程
3.各部分说明
3.1 ActivityManagerService:
- 准备需要启动的应用进程相关信息与资源(进程类名、进程uid等等)。
3.2 Process:
- 工具类,管理OS系统所有进程。
3.3 ZygotePrcess:
- 连接Zygote服务器Socket;封装与Zygote通讯的数据格式 & 发送至Zygote。
3.4 ZygoteInit:
- 创建Binder线程池;创建应用进程实例。
3.5 ZygoteServer:
- 注册本地服务器Socket;轮询Socket接收ActivityManagerService请求创建应用进程的数据。
3.6 ZygoteConnection:
- 接收 & 解析ActivityManagerService请求创建应用进程的数据。
3.7 Zygote:
- 根据解析的数据创建进程。
3.8 RuntimeInit:
- 通过反射的方式调用ActivityThread的main方法。
3.9 ActivityThread:
- 代表一个应用进程,负责所有的Activity管理、调度、执行与其他操作请求;
4.总结
- 到此,简单把应用进程启动过程介绍完毕。
- 如果喜欢我的分享,可以点击 关注 或者 赞,你们支持是我分享的最大动力 。
- linhaojian的Github
欢迎关注linhaojian_CSDN博客或者linhaojian_简书!
不定期分享关于安卓开发的干货。
写技术文章初心
- 技术知识积累
- 技术知识巩固
- 技术知识分享
- 技术知识交流