0

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

4

1 回答 1

0

查看Android 运行时

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

还有,

于 2013-01-07T12:10:10.183 回答