有没有一种好方法可以检查Java中设备的整体堆大小有多少内存? 我的应用程序是用adobe air编写的,它使用本机Java扩展来从SD卡加载多个图像。我找到了这段代码来检查位图是否可以加载到内存中:
public boolean checkBitmapFitsInMemory(long bmpwidth,long bmpheight, int bmpdensity ){
long reqsize=bmpwidth*bmpheight*bmpdensity;
long allocNativeHeap = Debug.getNativeHeapAllocatedSize();
final long heapPad=(long)Math.max(4*1024*1024,Runtime.getRuntime().maxMemory()*0.1);
if ((reqsize + allocNativeHeap + heapPad) >= Runtime.getRuntime().maxMemory())
{
return false;
}
return true;
}
然而,似乎在我的Galaxy S2上它完全被忽略了。也许是因为该应用程序由两部分组成 - 一部分是Java第二部分是adobe air。在将图像加载到应用程序内存之前,我应该检查另一个内存值吗? 谢谢!
答案 0 :(得分:0)