使用 adb 获取 Android 性能数据--内存篇

adb命令查看内存使用情况:

adb shell top //查看设备cpu和内存占用情况

adb shell top -m 6// 查看内存占用前八的程序

adb shell top -n 1//刷新一次内存信息,返回

adb shell top -m 6 -n 1//查看某一时刻,内存占用前八的程序




内存说明

VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)

RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)

PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)

USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS


查看单个应用内存占用量

#单个应用的最大内存限制

adb shell "getprop|grep heapgrowthlimit"

#应用启动后分配的初始内存

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

#单个java虚拟机的最大内存限制

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


Android内存采集的三种方式

1.通过Dumpsys 来获取
adb shell dumpsys meminfo

2.获取单个应用的详细内存
adb shell dumpsys meminfo pakagename or Pid

3.用/system/xbin/procrank工具 获取
adb shell procrank

procrank命令获取只管,但有些手机可能没有procrank



3.使用adb dumpsys 命令
adb是一个非常强大的工具,使用adb查看应用程序内存使用情况可按如下格式在命令行里查看内存使用情况:
adb shell dumpsys meminfo <package_name>
其中,package_name 也可以换成程序的pid,pid可以通过 adb shell top | grep app_name 来查找,下图是某个程序的内存使用情况:

重点关注如下几个字段:
(1) Native/Dalvik 的 Heap 信息
具体在上面的第一行和第二行,它分别给出的是JNI层和Java层的内存分配情况,如果发现这个值一直增长,则代表程序可能出现了内存泄漏。

(2) Total 的 PSS 信息
这个值就是你的应用真正占据的内存大小,通过这个信息,你可以轻松判别手机中哪些程序占内存比较大了。






  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值