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

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


写技术文章初心

  • 技术知识积累
  • 技术知识巩固
  • 技术知识分享
  • 技术知识交流
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 进程启动过程 Android应用程序框架层创建的应用程序进程具有两个特点,一是进程的入口函数是Activit...
    Kevin_Junbaozi阅读 3,914评论 0 23
  • 系统启动后,我们就比较关心应用程序是如何启动的 1.应用程序进程概述 要想启动一个应用程序,首先要保证这个应用程序...
    凯玲之恋阅读 346评论 0 1
  • 在了解蒙氏教育中关于孩子敏感期基本概念之后,我能够理解儿子无理取闹,可能处于执拗诅咒敏感期。但如只是理解而无法解决...
    言父词母阅读 1,201评论 0 0
  • 在我们已走过的人生路中,我们或许都经历过一段让你念念不忘的感情,你总是会想起那个人,在白天,在黑夜,在似曾相识的场...
    我的血液住着风阅读 669评论 0 0
  • 熟悉的你 以陌生的姿势出现在我面前 造就不可逾越的分离 撕碎大片大片的信仰 我跪坐在夜的细雨中 妄图把你带走的东西...
    重复走阅读 95评论 0 0