Android进阶(二): 应用进程启动过程

1.前言

  • 最近一直在看 《Android进阶解密》 的一本书,这本书编写逻辑、流程都非常好,而且很容易看懂,非常推荐大家去看看(没有收广告费,单纯觉得作者写的很好)。
  • 今天就将 应用进程启动过程 总结一下(基于Android 8.0 系统)。
  • 文章中实例  linhaojian的Github

2.应用进程启动过程

应用进程启动流程.png


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_简书

不定期分享关于安卓开发的干货。


写技术文章初心

  • 技术知识积累
  • 技术知识巩固
  • 技术知识分享
  • 技术知识交流

猜你喜欢

转载自blog.csdn.net/qwe851023/article/details/84756069