- 四大组件的启动都依赖于 ActivityManagerService,半依赖 PackageManagerService。
- 启动过程都是相似。Activity启动 、 Service绑定或者开启 、 动态 注册BroadcastReceiver都将信息放入 Intent(ContentProvider 在AndroidManifest 中),通过 Binder 传递给 AMS,AMS 根据 Client 进程传递的信息从 PMS 查询对应的Info(App 在安装的时候 PMS 会解析 AndroidManifest 中的信息)(四大组件需要在 AndroidManifest注册(动态广播除外))。
- AMS 查询目标组件对应的进程是否已经启动,如果未启动则先启动目标进程。同事会保存目标组件信息在 AMS
- 目标进程启动后,和 AMS 通信。AMS 会在依次检查目标进程相关的组件 。然后通知目标进程对目标组件进行实例化进行初始化。同时通知 AMS 启动完成。
- AMS 再根据需要,返回Client 进程以使用。
网友评论