App的启动过程
来源:互联网 发布:肝脏再造术的真假知乎 编辑:程序博客网 时间:2024/06/08 15:35
Launcher 中的 Icon 点击,broadcast 发送,启动 Service 等组件见的跳转,都会通过 AndroidManagerProxy 来进行中转,而 AndroidManagerProxy 通过向 SystemServer 请求名为 Activity 的 ActivityManagerService 的 Binder 对象,这个 Binder 对象可以粗略地看作是 ActivityManagerService 的句柄,从 Binder 对象可实际操作 ActivityManagerService。
ActivityManagerService 在实际启动相应组件时,会先判断是否有相应的 ProcessRecord,如果不存在,就需要新建进程,这个进程就是相应的应用进程。ActivityManagerService 通过 Socket 通信的方式和 Zygote 进行协商,Zygote 在其监听的 /dev/socket/zygote socket 中发现有需要创建进程的请求后,会 fork 自身,并返回相应的 Process Id。这个 Process 会进行相应的初始化,使得其具备与系统服务进行 IPC 通信的能力,在此之后,调用 ActivityThread 中的 main 方法,开启 Looper,主线程启动。到此为止,整个应用进程启动完毕。
阅读全文
0 0
- App的启动过程
- Android App的启动过程
- Android App的启动过程
- Android的APP启动过程分析
- iOS中一个APP的启动过程
- iOS-了解App的启动过程
- Android App 的启动过程简析
- 第二次启动android app的过程分析
- ionic+angularJs的App启动过程
- Android中APP的自启动过程
- zygote 和 app 的启动过程
- 深入理解iOS App的启动过程
- iOS APP启动过程
- android app启动过程
- app启动过程
- Android app启动过程
- APP启动过程
- APP启动过程
- 函数重载
- 关于Django的TIME_ZONE时区问题的若干总结
- 我的第一个个人网站-建站全程记录
- C语言基础练习之数组
- JavaScript获取光标位置、定位光标位置
- App的启动过程
- STM8L 151G6U6 驱动RW1820温度传感器
- 安卓隐藏输入法键盘以及去除光标方法
- cookie 和session 的区别详解
- c语言基础(五)
- rabitMQ windows安装
- CSS实现单行、多行文本溢出显示省略号(…)
- Nginx反向代理
- 条形码组件Spire.Barcode 教程:如何在C#中创建EAN-13条码