Android性能测试

300 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情

adb 常用命令

1.获取连接设备号:adb devices

image.png 2.列出设备所有已安装的包名 (不需root权限)
adb shell “pm list packages”,可以加上grep 进行筛选(windows系统使用findstr /i "xxxx" 或者 find) 3.Adb shell ps 查看所有运行的进程

image.png 4.adb shell kill -9 PID 杀死进程

image.png

内存说明

VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS

内存限制

adb shell进入手机,这此参数被纪录在/system/build.prop中,如果想直接查看可以使用adb shell getprop
dalvik.vm.heapgrowthlimit 单个应用程序最大内存限制,超过这个值会产生OOM
dalvik.vm.heapstartsize 应用启动后分配的初始内存
dalvik.vm.heapsize 单个java虚拟机最大的内存限制,超过这个值会产生OOM

以下是在dos中,在linux中可以直接adb shell getprop|grep

image.png

adb 查看单个内存占用量

1.单个应用的最大内存限制\

adb shell "getprop | grep heapgrowthlimit"

image.png 2.应用启动后分配的初始内存\

adb shell "getprop|grep dalvik.vm.heapstartsize"

image.png 单个java虚拟机的最大内存限制\

adb shell "getprop|grep dalvik.vm.heapsize"

image.png

CPU占用率

  • CPU使用背景知识

在开发过程中,我们会遇到手机的CPU使用率而引发的问题,那接下来,我对这方面知识做些整理及归纳:
CPU利用率是指: CPU执行非系统空闲进程的时间 / CPU总的执行时间。
Android关于进程使用率的限制:
前台进程不超过95%,后台进程5%, 但是在系统没有前台进程时,后台进程可以超过5%
(关于什么是前/后台进程,我就不啰嗦了)

  • 可能引发的问题

整体性能降低
界面卡顿
响应慢,容易引起ANR

  • 数据获取

  • 通过ADT中的DDMS来查看

电量、流量

流量测试,同样需要引入几个名词
中等负荷:应用正常操作
高负荷:应用极限操作

流量测试包括以下测试项:
a、应用首次启动流量提示
b、应用后台连续运行2小时的流量值
c、应用高负荷运行的流量峰值
d、应用中等负荷运行时的流量均值

  • 通过PID

image.png