Android app 的启动流程

Android app 的启动流程

一、 这是一个android app启动的UML

app
zygote 进程
system serivce 进程
7. 反射 初始化mainacitivty
1.用户点击上面的应用A
2. 通过ipc 的binder通信 告诉服务器进程 app启动
3.ipc 通信给
4.使用fork 方式复制建立
5.ipc 请求application绑定
6.ipc application绑定完成
主进程
activity oncreate
zygote
Activity Management service
Lunch app

二、步骤补充说明
1、用户点击桌面的应用
2、这里是桌面luncher app 向 system service 进程发起 startActivity 启动,主要是由Activity Management service 来处理
3、Activity Management service 通知zygote 建立app的主进程,zygote 是 大多数进程的父进程,包括 system service 也是它fork 出来的,所以被称为孵化器
4、zygote 通过 fork 孵化了app的主进程
5、app主进程自身建立application 后,会通知 system service 进程 进行系统绑定
6、system service 通知 app 主进程application 绑定已经完成了
7、app主进程就初始化android manifest 中注册启动activity ,回调 oncreate onstart onresume 等生命周期

三、自我思考几个问题
1、如果是app第二,第三进程等的初始化过程,是如何进程的?
2、kill掉 app,那么主进程,第二进程,第三进程等,结束顺序是怎样的?服务等的结束又是怎么样的,有木有手机厂商版本,系统版本的差异下,这些结束流程是否存在巨大差异。

四、最后,水平有限,或许会有错误之处,望不吝指出,谢谢~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值