2011-06-01 108 views
0

我有一个扎根的Evo作为测试设备。现在我一直都在测试我的应用程序,最近(相对),我有不断的内存泄漏或分配过多。因此,我决定在我工作的平板电脑上进行测试。该应用程序运行良好。甚至没有暗示内存问题。所以我开始怀疑是否在我的设备上生成了我的堆大小?当我的Evo上的应用程序崩溃时,我怀疑的一部分来自此行。现在,如果这条线可以被信任,这是离开的方式。我认为堆(最低限度)为16MB ---我的2.2 Evo为24MB。快速检查堆?

dalvikvm E Out of memory: Heap Size=4803KB, Allocated=2452KB, Bitmap Size=19002KB 

所以我的问题是:有没有办法在我的手机上找到实际允许的堆大小?任何方式来修改它?

TFYT〜Aedon

回答

1

要将您的手机上的实际允许的堆,您可以使用http://developer.android.com/reference/android/app/ActivityManager.html#getMemoryClass()将返回表示每个应用程序的最大堆MB量的整数。

而你不能改变它作为一个应用程序的开发者(你可以改变你拥有的设备的最大堆)。但是,如果您的目标是API Level 11(Honeycomb),则可以在清单文件中放入android:largeHeap="true",然后致电http://developer.android.com/reference/android/app/ActivityManager.html#getLargeMemoryClass()以获取每个应用程序的最大堆数,该堆可能比正常的堆大小要大。