方法二:adb命令获取,在前面的博文中对adb shell也有些许介绍。
1)获取app包名和类名
>adb shell dumpsys activity|findstr mFocusedActivity
2)获取启动时间
>adb shell am start -W –n <packageName>/<activityName>

通过比较,可以发现这两种方法获取到的时间是一样的。(注意:这两种方法都是同一次启动,非同一次启动,会有差异)
对于这几个时间,这里引用知乎作者Gracker答案中的结论:“如果只关心某个应用自身启动耗时,参考TotalTime;如果关心系统启动应用耗时,参考WaitTime;如果关心应用有界面Activity启动耗时,参考ThisTime。”
二.性能测试工具——Emmagee
Emmagee是一款简单易用的Android性能检测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化。onresume 调用2次
1)通过官方网站安装(个别机型目前不支持),设置“应用退出后台后仍可”便于自动化测试。
2)通过adb命令在sdcard目录下pull出测试结果csv文档(也可通过app配置邮箱,发送到自己的邮箱)。


3)查看测试结果csv文档,这里以百度浏览器app为例,测试结果如下。

注释:
已知部分不支持的机型可在此查阅:https://github.com/NetEase/Emmagee/wiki/Some-devices-are-not-supported
电流: 小于0是放电大于0是充电
启动时间: 为空是应用已启动或者未搜集到启动时间
N/A: 不支持或者数据异常
4)利用excel的功能生成统计图,方便分析。
该工具测试的结果可作为测试参考,另外对于帧率还可以用FPS Meter工具进行测试。
三.利用adb命令监测app相关性能信息
在这里就不一一演示了。
//内存使用率 1.adb shell dumpsys meminfo <pakagename> 2. 通过android提供的API来测试(ActivityManager.MemoryInfo()) //CPU占有率 1.adb shell top 2.adb shell dumpsys cpuinfo //功耗 1.adb shell dumpsys battery 2.通过android本身的API来测试(ProwerManager.WakeLock) //查看总体的CPU占用 # cat /proc/stat //查看进程的CPU占用 # cat /proc/<PID>/stat //查看总体的RAM # cat /proc/meminfo | head -n 4 //查看进程的RAM # dumpsys meminfo <packagename> # dumpsys meminfo <PID> //查看进程的当前RAM # procrank //开机后的总流量(字节数) # cat proc/self/net/dev //上传流量/上行流量 # cat /proc/uid_stat/2000/tcp_snd //下载流量/下行流量 # cat /proc/uid_stat/2000/tcp_rcv
四.稳定性测试/压力测试
在前面的博客中介绍过adb shell monkey来对app进行压力测试,请参考。
五.其他
在这里推荐两个云测平台:
1.itestin
2.腾讯优测
参考文献:
1.Android Activity生命周期:25/
2.Emmagee官网:https://github.com/NetEase/Emmagee/releases
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-56835-2.html
小米给送了多少钱啊
应毫不客气地予以回击