应用冷启动和热启动从用户感知层面的定义
冷启动时间:冷启动表示用户首次打开应用,这时进程还没创建,包含了Application创建的过程。冷启动时间指从第一次用户点击Launcher中的应用图标开始,到首页内容全部展示出来的时间。
热启动时间:热启动表示用户在首页按了返回,首页Activity已经Destroy,不过Application仍在内存中存在,对应的进程并没有被杀掉,不包含Application创建过程。热启动时间指在Application仍然存在的情况下,从用户点击桌面图标,到首页内容全部展示出来的时间。
第一种:使用screenrecord进行屏幕录制
1)输入命令adb shell screenrecord录制视频。
2)点击收集图标,app完全启动后,使用ctrl+c结束视频录制。
3)使用命令adb pull sdcard/lanch.mp4 ./,导出视频
4)导出视频到电脑,使用可以按帧播放的视频软件打开(mac上quicktime就可以,win下可以用Potplayer),并按帧播放。
@echo.
@echo off
adb shell mkdir /sdcard/screenrecord/
@echo. -------开始录屏---------------------------
@echo. Ctrl+C停止录制,选择 N 并进入下一步
FOR /F "tokens=*" %%A IN ('TIME/T') DO SET Now=%%A
adb shell screenrecord /sdcard/screenrecord/screenrecord_%Now:~0,2%%Now:~3,2%.mp4
adb pull sdcard/screenrecord/ .
adb shell rm -rf /sdcard/screenrecord
@echo. -------视频文件已导出----------------------
第二种:通过 adb logcat 查看APP 启动时间
2.1针对冷启动
在Log中,主要是通过分析logcat中app 在 ActivityManager: Displayed
的时间值 ,此时间值包含以下时间综合信息:
- Launch 进程
- 初始化对象
- 创建并初始化Activity
- 填充布局
- 第一次绘制app 内容
比如下图:音乐程序启动时间 3.365s
或者在cmd窗口输入:adb shell "logcat | grep Displayed"