1. 查看任务栈所有activity信息命令
adb shell dumpsys activity activities | sed -En -e '/Running activities/,/Run #0/p'
2. 查看gpu 呈现模式数据命令
adb shell dumpsys gfxinfo packagename > file.log
3.调试启动activity
adb shell am start -D -S -W com.lzl.name/.SplashActivity
4. 查看activity启动时间
adb shell am start -W com.lzl.name/.MainActivity (api21+)
该指令一共给出了三个时间:
ThisTime:最后一个启动的Activity的启动耗时
TotalTime:自己的所有Activity的启动耗时
WaitTime: ActivityManagerService启动App的Activity时的总时间(包括当前Activity的onPause()和自己Activity的启动)
这三个时间不是很好理解,我们可以把整个过程分解
1.上一个Activity的onPause()——2.系统调用AMS耗时——3.第一个Activity(也许是闪屏页)启动耗时——4.第一个Activity的onPause()耗时——5.第二个Activity启动耗时
那么,ThisTime表示5(最后一个Activity的启动耗时)。TotalTime表示3.4.5总共的耗时(如果启动时只有一个Activity,那么ThisTime与TotalTime应该是一样的)。WaitTime则表示所有的操作耗时,即1.2.3.4.5所有的耗时。
5.计算启动时间——Screen Record
adb shell screenrecord --bugreport /sdcard/test.mp4(API21+)
出来的视频左上角会有一行数字:
前面的4个数字,就是时间戳,即12点31分22秒261,f=后面的数字是当前的帧数,注意,不是帧率,而是代表当前是第几帧,括号中的数字,代表的是『Dropped frames count』,即掉帧数。
6. 自主设置打印启动时间
使用 api reportFullyDrawn()(API19+)
7.查看权限列表命令
adb shell pm list permissions -d -g(以分组形式展示 dangerous权限)
8.查看Android定时事件(AlarmManager)
提供了两个用来测试定时事件的命令:adb shell dumpsys alarm和adb shell dumpsys activity intents通过这两个命令可以查看那些操作被放到定时队列中了。