Android APP测试常用工具和技术

1 系统监控常用ADB命令

  • 查看应用启动耗时

adb-s *设备id shell am start -W -n 应用名.app/ .MainActivity

  • 获得电池电量和电池温度

adb shell dumpsys battery

  • 获得最耗资源的应用

adb -s ***设备id *** shell top -m 6 -n l -s cpu

  • 获得内存使用情况

adb -s 设备id adb shell dumpsys meminfo 应用程序包名

  • 获取指定程序cpu使用情况

adb -s 设备id shell dumpsys cpuinfo 应用程序包名

  • 获取指定程序PID

adb shell “ps | grep packageName”

2 需要功能

  • 检测当前时间被测应用的CPU使用率 以及 总体CPU使用量。
  • 检测当前时间被测应用占用的内存量、百分比,剩余内存量。
  • 检测应用从启动开始到当前时间消耗的流量数。
  • 测试数据写入到CSV文件中,存储在手机/storage/sdcard0目录下,同时支持以邮件形式发送文件。
  • 可以选择开启浮窗功能,浮窗中实时显示被测应用占用性能数据信息。
  • 在浮窗中可以快速启动或者关闭手机的wifi网络。

3 实现原理

  • 监控CPU的实现原理
    Android系统是基于Linux内核的,所以系统文件的结构和Linux下一样,系统总体CPU使用信息放在/proc/stat文件下,/proc/cpuinfo文件存放CPU的其它信息,包括CPU名称,直接读取即可。Emmagee是将选中应用的PID传入,读取/proc/PID/stat文件信息及可获取该PID对应程序的CPU信息。
  • 监控内存的实现原理
    内存和cpu的处理方式类似。先获取到当被测应用的PID,然后按照PID从 /proc/meminfo文件中获取当前被测应用占用的内存信息。
  • 监控流量消耗的实现原理
    系统中有存放整体流量和针对当程序的流量统计,/proc/net/dev和/proc/uid_stat/UID下存放tcp_rcv和tcp_send文件,分别存放下行流量和上行流量,操作前后相减就得出结果 。
  • 监控电量的实现原理
    电量、电压和温度情况是通过监听系统的电池管理事件的广播来获取的。
  • 监控启动时间的实现原理
    我们点击界面的开始测试时,程序会启动,之后所有的数据统计以及更新进行处理的。会在onStartCommand()里面启动一个线程“handler.postDelayed(task, 1000)”,进行数据的更新同时会尝试通过ActivityManger从logcat中获取到软件的启动时间。
    红色框框内的东西就是通过调用一个管理Android帧缓冲区的系统服务SurfaceFlinger来获取用于计算fps的帧数据,具体可参考:Android fps的计算方式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值