安卓 - 获取分配的内存

5
有没有办法在Android应用程序中确定实际分配的内存(在代码中)?谢谢。Waypoint

Waypoint,看到这个可能会有帮助 通过/proc/meminfo读取android设备的总内存 - ρяσѕρєя K
1
我只能获取到总的内存量,但我需要获取我的应用程序实际使用的内存。 - Waypoint
运行以下命令 Runtime.getRuntime().exec("/system/bin/top -n 50");,这将提供所有进程信息,然后解析它。 - ρяσѕρєя K
航点,请参阅此帖子:如何在Android中发现我的应用程序的内存使用情况 - ρяσѕρєя K
1个回答

4
如果您谈论的是Android应用程序内存,那么ActivityManager.getMemoryInfo()是我们查看整体内存使用情况的最高级别API。
更低级别的是,您可以使用Debug API来获取有关内存使用情况的原始内核级别信息。
请注意,从2.0开始还有一个API,ActivityManager.getProcessMemoryInfo,可用于获取有关另一个进程的此信息。
此外,您可以解析/proc/meminfo命令,并获取内存信息的响应。 编辑:
ActivityManager activityManager =  (ActivityManager) getSystemService(ACTIVITY_SERVICE);
MemoryInfo memoryInfo = new MemoryInfo();
activityManager.getMemoryInfo(memoryInfo);
Log.i("memory free", "" + memoryInfo.availMem);

欲了解更多信息,请查看以下两个SO问题:

  1. 如何在Android中发现我的应用程序的内存使用情况
  2. 如何获取当前Android的内存使用情况?

谢谢,但是ActivityManager.getMemoryInfo()的具体方法是什么?似乎没有一个适合我的。 - Waypoint
感谢您的编辑,我无法解析proc/meminfo,所以我尝试使用ActivityManager.getMemoryInfo,但它只显示availMem。无论我加载字段与否,availMem都不会改变。 - Waypoint
在这个问题中https://dev59.com/e3A75IYBdhLWcg3wxcDV 使用/proc/meminfo文件获取内存信息。 - user370305
1
/proc/meminfo 只提供了最大的 RAM 大小,我需要实际分配的大小。 - Waypoint

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接