Android app 的启动流程
一、 这是一个android app启动的UML
二、步骤补充说明
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,那么主进程,第二进程,第三进程等,结束顺序是怎样的?服务等的结束又是怎么样的,有木有手机厂商版本,系统版本的差异下,这些结束流程是否存在巨大差异。
四、最后,水平有限,或许会有错误之处,望不吝指出,谢谢~