DESCRIPTION]
在手机菜单: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占据的内存