Android进程启动流程简析

  • 时间:2019-02-24 21:30 作者:smartzheng 来源:smartzheng 阅读:484
  • 扫一扫,手机访问
摘要:WechatIMG276.jpeg自己画了一张简单流程图启动一个新进程主要涉及四步:1、发送启动进程的需求,可能是Launcher启动一个新的APP,或者者APP开启独立进程或者其余APP2、发送需求的进程通过Binder通信机制与SystemServer进程通信,通过运行在其中的ActivityMan
WechatIMG276.jpeg

自己画了一张简单流程图
启动一个新进程主要涉及四步:
1、发送启动进程的需求,可能是Launcher启动一个新的APP,或者者APP开启独立进程或者其余APP

2、发送需求的进程通过Binder通信机制与SystemServer进程通信,通过运行在其中的ActivityManagerService来执行下一步流程

3、AMS通过Socket将创立新进程的请求发送给Zygote进程,在Zygote启动后会执行runSelectLoop方法来等待创立进程请求,当接收到AMS的请求之后fork出新进程,并创立Binder线程池,将新进程的主线程加入到其中,这样新进程也可以使用Binder通信机制了。

4、Zygote进程通过Binder与新开启的应用进程通信,ActivityThread的内部类ApplicationThread作为跨进程通信的桥梁(8.0之后采用AIDL实现,之前使用的是代理商模式),ApplicationThread运行在Binder线程中,所以最后需要通过线程切换(H.sendMessage)来进入主线程

由此可见,一个新进程的创立涉及4个进程,3次跨进程通信,2次为Binder,1次为Sockt

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】从谷歌到手机厂商都下决心了,要清除32位应用这匹“害群之马”(2025-10-17 05:41)
【系统环境|】Windows上使用QEMU创建aarch64(ARM64)虚拟机(2025-10-17 05:40)
【系统环境|】nodejs 如何安装在aarch64平台(2025-10-17 05:39)
【系统环境|】常用git命令-从远程更新代码合并分支、提交代码等(2025-10-17 05:38)
【系统环境|】技术干货|常用的 Git 功能和选项(2025-10-17 05:38)
【系统环境|】掌握git命令,图解一目了然(2025-10-17 05:37)
【系统环境|】总结几个常用的Git命令的使用方法(2025-10-17 05:36)
【系统环境|】这篇 Git 教程太清晰了,很多 3 年经验程序员都收藏了(2025-10-17 05:35)
【系统环境|】Git常用命令及操作指南(2025-10-17 05:35)
【系统环境|】「实用」盘点那些开发中最常用的Git命令(2025-10-17 05:34)
手机二维码手机访问领取大礼包
返回顶部