android App启动流程

点击桌面App图标,Launcher进程采用Binder IPC向system_server进程发起startActivity请求

system_server进程接收到请求后,向zygote进程发送创建进程的请求

Zygote进程fork出新的子进程,即App进程

App进程,通过Binder IPC向sytem_server进程发起attachApplication请求

system_server进程在收到请求后,进行一系列准备工作后,再通过binder IPC向App进程发送scheduleLaunchActivity请求

App进程的binder线程(ApplicationThread)在收到请求后,通过handler向主线程发送LAUNCH_ACTIVITY消息

主线程在收到Message后,通过发射机制创建目标Activity,并回调Activity.onCreate()等方法

App便正式启动,开始进入Activity生命周期,执行完onCreate/onStart/onResume方法,UI渲染结束后便可以看到App的主界面

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200904A09JNH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券