Android App启动流程

devtools/2024/12/22 17:59:02/

1.通过 Launcher 启动应用时,点击应用图标后,Launcher 调用 startActivity 启动应用。
 2.Launcher Activity 最终调用 Instrumentation 的 execStartActivity 来启动应用。
 3.Instrumentation 调用 ActivityManagerProxy (ActivityManagerService 在应用进程的一个代理对象) 对象的 startActivity 方法启动 Activity。
 4.到目前为止所有过程都在 Launcher 进程里面执行,接下来 ActivityManagerProxy 对象跨进程调用 ActivityManagerService (运行在 system_server 进程)的 startActivity 方法启动应用。
 5.ActivityManagerService 的 startActivity 方法经过一系列调用,最后调用 zygoteSendArgsAndGetResult 通过 socket 发送给 zygote 进程,zygote 进程会孵化出新的应用进程。
 6.zygote 进程孵化出新的应用进程后,会执行 ActivityThread 类的 main 方法。在该方法里会先准备好 Looper 和消息队列,然后调用 attach 方法将应用进程绑定到 ActivityManagerService,然后进入 loop 循环,不断地读取消息队列里的消息,并分发消息。
 7.ActivityManagerService 保存应用进程的一个代理对象,然后 ActivityManagerService 通过代理对象通知应用进程创建入口 Activity 的实例,并执行它的生命周期函数。


http://www.ppmy.cn/devtools/102341.html

相关文章

springboot后端开发-自定义参数校验器

背景 在使用springboot进行后端开发的时候,经常会遇到数据校验的问题, 有时候可能默认的校验器不足以满足自己的需求, 这个时候就需要开发一个自己的校验器 在 Spring Boot 中自定义参数校验器通常涉及以下几个步骤: 1. 定义注解…

STM32嵌套向量中断控制器—NVIC

NVIC简介: NVIC,即Nested Vectored Interrupt Controller(嵌套向量中断控制器),是STM32中的中断控制器。它负责管理和协调处理器的中断请求,是STM32中处理异步事件的重要机制。 NVIC提供了灵活、高效、可扩…

【Unity输入】Unity输入方式总结

在Unity中,常见的输入方式包括以下几种: 1. 键盘输入 Input.GetKey(): 用于检测特定键是否被按下。例如,用Input.GetKey(KeyCode.W)检测玩家是否按下“W”键来控制角色移动。Input.GetKeyDown(): 用于检测某个键在当前帧是否被按下。Input.…

深度学习100问3-什么是共现矩阵及其作用

一、看词和词的关系 共现矩阵就像一个表格,能让我们清楚地看到不同的词在一些文本里出现的关联情况。要是两个词经常一起出现,那在这个矩阵里对应的地方数字就会比较大,说明这两个词关系很紧密。比如在科技文章里,“人工智能”和“…

202. 快乐数【 力扣(LeetCode) 】

一、题目描述 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为…

IOS半越狱工具nathanlr越狱教程

简介 nathanlr 是一款半越狱工具,不是完整越狱。 半越狱只能使用一些系统范围的插件。 无法做到完整越狱 Dopamine 越狱一样插件兼容性。 nathanlr支持 iOS 16.5.1 – 16.6.1 系统。 支持 A12 及以上设备。 肯定有人问,为什么仅仅支持这些系统&#xff…

重构多重children数据 减少数据

为了将给定的数据结构从使用 key 和 title 转换为使用 value 和 label,并且确保子节点(如果有的话)也遵循相同的结构,你可以使用JavaScript的map方法来遍历数组并重构每个对象。这里是如何做的: const originalData …

读书学习笔记 # Datawhale X 李宏毅苹果书 AI夏令营

文章目录 🚩学习目标🚩学习内容🚩 Task1.1🎯为什么优化会失败📌因非信息梯度导致的失败 🎯局部极小值与鞍点🎯临界点及其种类🎯如何判断临界值种类📌更简便的方法来判断 …