FirstScreenCost.md
Activity启动耗时
首先:测试方法:
AMS会打印启动Activity的耗时,Android 10之后打印tag为ActivityTaskManager,Android10之前打印ActivityManager;
在Android 10(Q)版本中,Android系统引入了ActivityTaskManager(ATM),并在很大程度上取代了之前的ActivityManagerService(AMS)的许多职责。具体来说,AMS负责管理整个系统的活动生命周期和任务堆栈,而在Android 10中,这些职责被重新分配并分离到新的ActivityTaskManager和ActivityManager中。
ActivityTaskManager专注于任务和活动的管理,处理任务堆栈的操作和活动的启动、切换等。而ActivityManager则更多地处理与应用进程管理相关的功能,如进程的生命周期、内存管理等。
这一改变是为了简化代码结构、提升系统的模块化和可维护性,同时也是为了更好地支持多窗口和多任务操作等新的特性。
总结起来,ActivityTaskManager的引入和实现从Android 10开始正式应用,取代了原有的部分ActivityManagerService的功能。
ActivityManager : Display / startActivity Android6/7
简单结论:display 只统计A onPause之后(不包含A onPause)
AMS 启动新ActivityB 并 执行 B的onCreate、onstart、onresume 与 B向WMS注册窗口到编舞者发起的第一次测绘 完成
Activity的启动可以分为三个步骤,以ActivityA启动ActivityB为例,三步骤分别为:
以ActivityA调用startActivity,到ActivityA成功pause为止
displayTimeStart
ActivityB成功初始化,到执行完resume为止
ActivityB向WSM注册窗口,到第一帧绘制完成为止
displayTimeEnd
FirstScreenCost.md