Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android上是否可能消耗比堆大小更多的内存?_Android_Memory - Fatal编程技术网

在Android上是否可能消耗比堆大小更多的内存?

在Android上是否可能消耗比堆大小更多的内存?,android,memory,Android,Memory,我让我的应用程序在aSamsung Galaxy note 3的前台运行了24小时。一开始我拍了一张RAM快照 {“AvailableSystemRAM”:1341,“AvailableAppRAM”:10,“TotalAppRAM”:49} 更改12小时: {“AvailableSystemRAM”:1265,“AvailableAppRAM”:4,“TotalAppRAM”:52} 24小时后,结果是: {“AvailableSystemRAM”:992,“AvailableAppRAM”:

我让我的应用程序在aSamsung Galaxy note 3的前台运行了24小时。一开始我拍了一张RAM快照

{“AvailableSystemRAM”:1341,“AvailableAppRAM”:10,“TotalAppRAM”:49}

更改12小时:

{“AvailableSystemRAM”:1265,“AvailableAppRAM”:4,“TotalAppRAM”:52}

24小时后,结果是:

{“AvailableSystemRAM”:992,“AvailableAppRAM”:0,“TotalAppRAM”:61}

这是内存泄漏或其他应用程序和服务在后台处理的迹象吗?我假设如果我使用所有可用的内存,Android会抛出OutOfMemoryError

更新

答案是肯定的。一些本机函数导致了一个在Android Studio的内存监视器中看不到的小内存泄漏。

我正在使用它转换图像。后来我在这里找到了一份关于此方法的报告:


可能是你的重复让我错了。我不需要增加堆,但我感兴趣的是它到底是如何工作的。我可以使用比堆限制更多的RAM吗,否则会抛出OutOfMemoryError?所以,我可以在安卓设备上泄漏400MB的内存,或者说这是设计上不可能的。我明白了。我被标题弄糊涂了。。虽然我不确定你能把它改成什么来消除混乱。实际上,我在工作中遇到了这样的问题。在一次巨大的神秘分配之后,我们在某些设备上获得了
OutOfMemoryError
。所以,我想,有趣的是,在一定的消耗水平下,你只会得到一个OOM异常。如果你想知道你的应用程序是否有内存泄漏,你应该监控你应用程序的堆,而不是你设备的总堆。这通常是正确的。但在本例中,我在本机环境中有一个很小的内存泄漏,从长远来看,它导致了意外的应用程序关闭。