在手机菜单:setting->apps->running apps里面看到的 可用内存是如何计算的?
![](https://onlinesso.mediatek.com/FAQ%20PDF%20Picture%20Library/2015/1008//6351587645869198881033089011image.jpg)
[SOLUTION]
计算方法请参考:RunningProcessView.java(/alps/packages/apps/settings/src/com/android/setting/applications)里面的void refreshUi(boolean dataChanged)接口:
1、首先获取 /proc/meminfo信息
2、availMem = mMemInfoReader.getFreeSize() + mMemInfoReader.getCachedSize()
- SECONDARY_SERVER_MEM; (因为不同平台,不同配置SECONDARY_SERVER_MEM会不同,如果想确定该值具体大小,建议您在这边自行加log打印该值)
- SECONDARY_SERVER_MEM; (因为不同平台,不同配置SECONDARY_SERVER_MEM会不同,如果想确定该值具体大小,建议您在这边自行加log打印该值)
3、 mLastAvailMemory = availMem;
long freeMem = mLastAvailMemory + mLastBackgroundProcessMemory;
long freeMem = mLastAvailMemory + mLastBackgroundProcessMemory;
4、freeMem即为可用内存,已用内存即为meminfo.total - freeMem
所以,这里会包含background process占据的内存
其它内存相关FAQ,欢迎访问
FAQ04223 如何查看Modem/Kernel/FrameBuffer的Footprint?
FAQ04354 内存不足时查看内存使用情况的一些adb command
FAQ07759 如何查看当前项目的physical memory layout
FAQ07760 如何查看当前项目的virtual memory layout
FAQ09454 如何计算开机之后留给Linux Kernel可用的总内存
FAQ09456 zram(内存压缩)介绍
FAQ04223 如何查看Modem/Kernel/FrameBuffer的Footprint?
FAQ04354 内存不足时查看内存使用情况的一些adb command
FAQ07759 如何查看当前项目的physical memory layout
FAQ07760 如何查看当前项目的virtual memory layout
FAQ09454 如何计算开机之后留给Linux Kernel可用的总内存
FAQ09456 zram(内存压缩)介绍