获取在Android中使用Application的总RAM大小

Vik*_*yan 5 java memory ram android memory-management

我想从我的Android手机中收集一些统计数据.

当我开始我的应用程序时,我想知道以下内容:

  • 应用程序使用多少RAM.
  • 我的手机有多少可用内存.
  • 我的手机有多少RAM.

我必须做些什么来收集统计信息,可能会写一些代码,或者你可能会使用一些提供这些信息的应用程序或其他东西.我使用MAT,但它对我没有帮助,也许我想念一些东西.

我想收集这些统计数据的主要原因是,应用程序可能会开始杀死其他应用程序以释放更多空间,如果我可以收集此类信息,我将了解所有内容.


编辑

例如我的应用程序使用大小为85 MB的库(helper.jar),我知道如果应用程序使用.jar它加载到手机的RAM,现在我怎么看到我的RAM从2增加到2 + 85(大小.jar).

如果我从ADB 键入adb shell cat/proc/meminfo此命令,我将看到有关内存的一些信息.

我如何从JAVA代码中做到这一点?


最诚挚的问候,ViTo Brothers.

js-*_*js- 2

如果您想知道您的应用程序可以使用多少 RAM,请查看ActivityManager.getMemoryClass

应用程序可以拥有的内存存在这种限制,因此应用程序无法窃取其他应用程序的所有内存。基本上你的应用程序不应该能够杀死其他应用程序。至少只要您不在应用程序中使用“大堆大小”选项即可。

每个应用程序的限制约为 16(在 G1 上)到 48 MB。应用程序可以拥有的内存量在很大程度上取决于设备的总 RAM。例如,48 MB 适用于 1 GB RAM。

获取应用程序当前内存使用情况的一种方法是查看 logcat。它会说类似的话

GC_CONCURRENT freed 1109K, 12% free 10115K/11463K, paused 5ms+2ms
Run Code Online (Sandbox Code Playgroud)

这意味着您的程序大约需要 11 MB 的 RAM。