Javaでデバイスのヒープ全体のサイズのうちどれだけのメモリがあるかを確認する良い方法はありますか?私のアプリはadobeairで作成されており、ネイティブ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;
}
しかし、私のギャラクシーS2ではそれは完全に無視されているようです。おそらく、アプリが2つの部分で構成されているためです。1つはJavaで、もう1つはAdobeAirです。画像をアプリケーションメモリにロードする前に確認する必要がある別のメモリ値はありますか?ありがとうございました!