持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情
adb 常用命令
1.获取连接设备号:adb devices
2.列出设备所有已安装的包名 (不需root权限)
adb shell “pm list packages”,可以加上grep 进行筛选(windows系统使用findstr /i "xxxx" 或者 find)
3.Adb shell ps 查看所有运行的进程
4.adb shell kill -9 PID 杀死进程
内存说明
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
adb 查看单个内存占用量
1.单个应用的最大内存限制\
adb shell "getprop | grep heapgrowthlimit"
2.应用启动后分配的初始内存\
adb shell "getprop|grep dalvik.vm.heapstartsize"
单个java虚拟机的最大内存限制\
adb shell "getprop|grep dalvik.vm.heapsize"
CPU占用率
-
CPU使用背景知识
在开发过程中,我们会遇到手机的CPU使用率过高而引发的问题,那接下来,我对这方面知识做些整理及归纳:
CPU利用率是指: CPU执行非系统空闲进程的时间 / CPU总的执行时间。
而Android关于进程使用率的限制:
前台进程不超过95%,后台进程5%, 但是在系统没有前台进程时,后台进程可以超过5%
(关于什么是前/后台进程,我就不啰嗦了)
-
可能引发的问题
整体性能降低
界面卡顿
响应慢,容易引起ANR
-
数据获取
- 通过ADT中的DDMS来查看
电量、流量
流量测试,同样需要引入几个名词
中等负荷:应用正常操作
高负荷:应用极限操作
流量测试包括以下测试项:
a、应用首次启动流量提示
b、应用后台连续运行2小时的流量值
c、应用高负荷运行的流量峰值
d、应用中等负荷运行时的流量均值
- 通过PID