应用内部启动startActivity-Android12
Posted xhBruce
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了应用内部启动startActivity-Android12相关的知识,希望对你有一定的参考价值。
应用内部启动startActivity-android12
android12-release
桌面冷启动查看AMS:startActivity桌面启动应用
1. 明确冷启动相关对象
首先桌面冷启动查看AMS:startActivity桌面启动应用,明确几个对象:
ActivityThread【ApplicationThread】
已经fork主线程app = newProcessRecordLocked(info, processName, isolated, isolatedUid, hostingRecord)
,process属性
系统默认使用package的名称Application / Instrumentation / Activity
初始化- 简要关系
应用ActivityThread【Activity】 -- Instrumentation -- AMS/ATMS -- 应用另一个Activity
2. 启动流程
参考 AMS:startActivity桌面启动应用 流程
2.1 Intent Flag
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
一般没有改flag,在同一个Task中
frameworks/base/services/core/java/com/android/server/wm/ActivityStarter.java
2.2 直接执行realStartActivityLocked
- 不需要fork应用进程
mService.startProcessAsync()
frameworks/base/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
3. 时序图
以上是关于应用内部启动startActivity-Android12的主要内容,如果未能解决你的问题,请参考以下文章