activity启动四-总结
1、启动桥梁 Intent
intent初始化时启动信心封装在ComponentName中,包括包名和类的完整名称
2、Instrumentation 仪表类
启动Activity时获取AMS的引用(binder)
Activity各生命周期调用
3、AMS
持有活动栈管理对象(ActivityStackSupervisor)
要启动的类检测完毕后让启动的Activity进入 onPause状态
检测应用程序进程是否已经存在,不存在就将启动信心通过socket传入zygote进程,让其孵化应用程序进程
接收程序入口(ActivityThread中的main方法 )信息,让client初始化并绑定application
接收到applicaiton绑定成功的信息后真正的启动Activity
activity处于onResume后,通过进程间通讯让launcher执行onStop生命周期
4、ActivityStackSupervisor
获取PackManagerService,解析Intent
5、PackManagerService
持有的本地服务根据ComponentName封装的信息检测程序是否安装,并返回应用程序信息
6、ActivityThread 与内部类ApplicationThread
程序的真正入口(main),告知AMS进程孵化成功
初始化并绑定application
收到 AMS可以启动Activity信息后,通过H(继承了Handler)发送启动Activity请求
获得mClassLoader加载初始化activity,进入onCreate->onStart->onResume生命周期
将Idler加入消息队列,其执行后告知AMS活动已处于运行状态,让AMS去通知Launcher执行onStop
本文地址:https://blog.csdn.net/pydlxh/article/details/107140252
推荐阅读