onresume 调用2次 Android应用性能测试(2)

电脑杂谈  发布时间:2017-12-29 21:09:44  来源:网络整理

方法二:adb命令获取,在前面的博文中对adb shell也有些许介绍。

1)获取app包名和类名

>adb shell dumpsys activity|findstr mFocusedActivity

2)获取启动时间

>adb shell am start -W –n <packageName>/<activityName>

image

通过比较,可以发现这两种方法获取到的时间是一样的。(注意:这两种方法都是同一次启动,非同一次启动,会有差异)

对于这几个时间,这里引用知乎作者Gracker答案中的结论:“如果只关心某个应用自身启动耗时,参考TotalTime;如果关心系统启动应用耗时,参考WaitTime;如果关心应用有界面Activity启动耗时,参考ThisTime。”

二.性能测试工具——Emmagee

Emmagee是一款简单易用的Android性能检测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化。onresume 调用2次

1)通过官方网站安装(个别机型目前不支持),设置“应用退出后台后仍可”便于自动化测试。

onresume 调用2次_android onresume_onresume执行两次

2)通过adb命令在sdcard目录下pull出测试结果csv文档(也可通过app配置邮箱,发送到自己的邮箱)。

image

image

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

image

注释:

已知部分不支持的机型可在此查阅: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

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 黄胜全
      黄胜全

      应毫不客气地予以回击

    • 浦长见
      浦长见

      小米给送了多少钱啊

    热点图片
    拼命载入中...