这一节主要介绍dumpsys meminfo获取的数据是如何得到的。
首先看一下命令执行后的输出:
………………
631K: akmd09912 (pid 431)
………………
187,163K: com.android.systemui (pid 1942)
………………
Total RAM: 1,845,568K (status moderate)
Free RAM: 520,576K ( 232,788K cached pss + 207,248K cached kernel + 80,540K free + 0K ion cached + 0K gpu cached)
Used RAM: 1,882,255K (1,495,695K used pss + 332,360K kernel + 56K trace buffer + 54,144K ion disp + 0K cma usage)
Lost RAM: -90,749K
ZRAM: 175,348K physical used for 750,476K in swap ( 922,780K total swap)
KSM: 41,132K saved from shared 3,244K 154,928K unshared; 25,028K volatile
Tuning: 256 (large 512), oom 322,560K, restore limit 107,520K (high-end-gfx)
首先要说的是native进程(也就是这里的akmd09912)所占用的内存大小(也就是这里的631K)
从前面的文章中我们知道,计算native process的代码片段如下:
synchronized (mProcessCpuTracker) {
final int N = mProcessCpuTracker.countStats();
for (int i=0; i<N; i++) {
ProcessCpuTracker.Stats st = mProcessCpuTracker.getStats(i);
if (st.vsize > 0 && procMe