检查android堆大小

时间:2013-01-07 11:57:43

标签: java android air-native-extension

有没有一种好方法可以检查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。在将图像加载到应用程序内存之前,我应该检查另一个内存值吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

查看Android Runtime

调用Runtime.getRuntime().freeMemory()可返回正在运行的应用程序可用的内存资源。

此外,this