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为例,三步骤分别为:

  1. 以ActivityA调用startActivity,到ActivityA成功pause为止

    displayTimeStart

  2. ActivityB成功初始化,到执行完resume为止

  3. ActivityB向WSM注册窗口,到第一帧绘制完成为止
    displayTimeEnd

Author

white crow

Posted on

2024-06-04

Updated on

2024-06-04

Licensed under