自从工作越来越忙后,越来越懒得写文章了,趁着1024程序员节,仪式性地写篇文章,分享一下最近调试设备经常用到的adb指令~
1.查看应用内存占用
1.1 dumpsys meminfo package
dumpsys是查看系统服务信息的一个常用指令,可以用dumpsys -l
查看系统所有的服务,dumpsys meminfo可以查看到应用最详细的内存占用情况,主要有两大用途
- 查看应用的内存占用情况,可以看到不同的内存类型占用,详细的占用情况可助于分析应用哪一块占用了较大内存。
- 辅助分析内存泄露问题,该命令可以查看到Activity的个数,当退出界面后仍然还有activity存在或者个数不对,则说明该activity已经泄露了。
命令查询的数据示例如下:
Applications Memory Usage (in Kilobytes):
Uptime: 195423478 Realtime: 195423478
** MEMINFO in pid 23209 [com.example.myfirstapp] **
Pss Private Private Swap Heap Heap Heap
Total Dirty Clean Dirty Size Alloc Free
------ ------ ------ ------ ------ ------ ------
Native Heap 8406 8284 0 0 20620 17082 3537
Dalvik Heap 988 900 0 0 2962 1426 1536
Dalvik Other 481 476 0 0
Stack 56 56 0 0
Ashmem 7 0 0 0
Other dev 12 0 12 0
.so mmap 2123 160 8 0
.jar mmap 1737 0 24 0
.apk mmap 1027 0 0 0
.ttf mmap 48 0 0 0
.dex mmap 1944 4 1936 0
.oat mmap 66 0 0 0
.art mmap 5883 5508 0 0
Other mmap 60 20 0 0
Unknown 725 688 0 0
TOTAL 23563 16096 1980 0 23582 18508 5073
App Summary
Pss(KB)
------
Java Heap: 6408
Native Heap: 8284
Code: 2132
Stack: 56
Graphics: 0
Private Other: 1196
System: 5487
TOTAL: 23563 TOTAL SWAP (KB): 0
Objects
Views: