一,查询手机总共内存以及剩余内存
1.使用adbshell命令进入手机的shell模式
2.cat proc/meminfo
3.显示结果:
-------------------------------------------
MemTotal: 2052440kB //总内存
MemFree: 50004kB //空闲内存
Cached: 436412kB //高速缓冲存储器使用的大小
----------------------------------------------
所以我们统计的系统剩余内存为MemFree+ Cached
一般低于20M的话,就属于内存较低的情况了。
二,查看各个进程的内存信息
1.使用adbshell命令进入手机的shell模式
2.procrank
3.显示结果:
-----------------------------------------------
PID Vss Rss Pss Uss cmdline
262 53828K 49888K 21094K 18688K system_server
7244 57936K 48604K 20153K 17948K com.medicaltreatment
1247 53108K 48972K 19730K 17040K com.tencent.mobileqq
-----------------------------------------------
VSS是单个进程全部可访问的地址空间。其大小包括可能还尚未在内存中驻留的部分。比如地址空间已经被malloc分配,但是还没有实际写入。对于确定单个进程实际内存使用大小, VSS用处不大。
RSS 是单个进程实际占用的内存大小。RSS易被误导的原因在于,它包括了该进程所使用的所有共享库的全部内存大小。对于单个共享库,尽管无论多少个进程使用,实际该共享库只会被装入内存一次。对于单个进程的内存使用大小,RSS 不是一个精确的描述。
PSS 不同于RSS,它只是按比例包含其所使用的共享库大小。例如, 三个进程使用同一个占用 30 内存页的共享库。对于三个进程中的任何一个,PSS将只包括10个内存页。PSS是一个非常有用的数字,因为系统中全部进程以整体的方式被统计,对于系统中的整体内存使用是一个很好的描述。如果一个进程被终止, 其PSS中所使用的共享库大小将会重新按比例分配给剩下的仍在运行并且仍在使用该共享库的进程。
USS 是单个进程的全部私有内存大小。亦即全部被该进程独占的内存大小。USS是一个非常非常有用的数字,因为它揭示了运行一个特定进程的真实的内存增量大小。如果进程被终止,USS就是实际被返还给系统的内存大小。USS是针对某个进程开始有可疑内存泄露的情况,进行检测的最佳数字。
三,查看系统内存碎片情况
1.使用adbshell命令进入手机的shell模式
2.cat proc/buddyinfo
3.显示结果:
-----------------------------------------------------------------
Normal 4021 1008 197 38 20 2 0 0 0 0 0
-----------------------------------------------------------------
上述数据以4kb,8,16,32,64,128,256,512,1024,2048,4096kb为单位的所有可分配内存之和,如果出现如下数据,则极有可能出现内存碎片严重的情况。
-----------------------------------------------------------------
Normal 5890 1 0 0 0 0 0 0 0 0 0
----------------------------------------------------------------
四,查看系统整体状态
1.使用adbshell命令进入手机的shell模式
2.vmstat
3.显示结果:
--------|---------------------------------------------------|--------
procs | memory system | cpu
r b | free mapped anon slab in cs flt | us ni sy id wa ir
0 0 | 6396 32552 237620 18880 448 202 | 0 0 0 099 0 0
1 0 | 6396 32552 237620 18880 409 134 | 0 0 0 299 3 0
1 0 | 6396 32552 237620 18880 439 200 | 0 0 0 199 0 0
--------|---------------------------------------------------|--------
五,查询当前系统所有的进程
1.使用adbshell命令进入手机的shell模式
2.ps
3.显示结果:
-------------------------------------------------
root 68 2 0 0 c469a460 00000000 S jbd2/mmcblk0p13
root 69 2 0 0 c458321c 00000000 S ext4-dio-unwrit
root 70 2 0 0 c469a460 00000000 S jbd2/mmcblk0p14
root 71 2 0 0 c458321c 00000000 S ext4-dio-unwrit
root 72 2 0 0 c469a460 00000000 S jbd2/mmcblk0p10
root 73 2 0 0 c458321c 00000000 S ext4-dio-unwrit
root 74 2 0 0 c458321c 00000000 S gpu_dfs
root 75 2 0 0 c458321c 00000000 S mali-pmm-wq
--------------------------------------------------
六,查看当前CPU占有率
1.使用adbshell命令进入手机的shell模式
2.top –m 10 //显示CPU占用率前10位的进程
3.显示结果:
------------------------------------------------------------
User 0%, System 2%, IOW 0%, IRQ 0%
User 2 + Nice 0 + Sys 14 + Idle 613+ IOW 0 + IRQ 0 + SIRQ 0 = 629
PID PR CPU% S #THR VSS RSS PCY UID Name
11259 0 2%R 1 1052K 440K fg root top
333 0 0% S 22 304576K 37928K fg system com.android.systemui
84 0 0% S 14 62996K 5324K fgsystem /system/bin/surfaceflinger
10942 1 0%S 5 4528K 244K fg shell /sbin/adbd
55 1 0% R 1 0K 0K fgroot mmcqd/0
1247 1 0% S 32 334624K 48784K fgapp_51 com.tencent.mobileqq
12 1 0% S 1 0K 0K fgroot fs_sync
13 0 0% S 1 0K 0K fgroot sync_supers
14 0 0% S 1 0K 0K fgroot bdi-default
15 1 0% S 1 0K 0K fgroot kblockd
------------------------------------------------------------
七,查看ROM使用情况
1.使用adbshell命令进入手机的shell模式
2.df
3.显示结果:
------------------------------------------------------------
Filesystem Size Used Free Blksize
/dev 211M 76K 211M 4096
/mnt/asec 211M 0K 211M 4096
/mnt/obb 211M 0K 211M 4096
/system 281M 207M 73M 4096
/data 1G 577M 1G 4096
/cache 140M 4M 136M 4096
/productinfo 4M 4M 856K 4096
/mnt/internal 998M 428M 569M 4096
------------------------------------------------------------
如果data分区的Free数值过小,就会弹出ROM警告。我们可以使用下面的命令
来寻找是否有过大文件导致data分区剩余空间不足。
1.使用adbshell命令进入手机的shell模式
2.cd data –>进入data目录
3. busybox find . -type f -size +500k –>查找大于500K的文件。
当手机出现稳定性性能问题的时候,我们就可以参照下面的图,运用上面的命令查看手机情况。不过有点注意的是,上面命令都必须持有问题手机进行adb连接。