一个APP从启动到主页面显示经历了哪些过程?
2024-09-06 15:29:37
①点击桌面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://github.com/LRH1993/android_interview/blob/master/android/advance/app-launch.md
最新文章
- CSS 3 学习——transform 3D转换渲染
- [OSG]OSG例子程序简介
- vps主机修改系统远程端口号/添加防火墙
- [转]不再以讹传讹,GET和POST的真正区别
- 电赛菜鸟营培训(二)——STM32F103CB之中断控制
- 报错总结_java.lang.RuntimeException: Invalid action class configuration that references an unknown class name
- c语言字符串大小写字母转换
- ArcGis:vs c#编程遇到问题The specified filename is invalid
- [Cache] C#操作缓存--CacheHelper缓存帮助类 (转载)
- Java基础加强学习笔记(二)
- sql执行顺序整理
- windows平台下node,npm,gulp配置
- github 项目绑定自己的域名
- Implement heap using Java
- Java基础——Instanceof 运算符
- 理解npm run
- 安装yii2 需要token 记录
- [转] node.js下mongoose简单操作实例
- Luogu1979 NOIP2013D2T3 华容道 搜索、最短路
- N! java