Android エミュレータではメモリ不足エラーが発生しますが、デバイスでは発生しません 質問する

Android エミュレータではメモリ不足エラーが発生しますが、デバイスでは発生しません 質問する

Androidエミュレータでアプリを終了してすぐに再度実行すると、

OutOfMemoryError: bitmap size exceeds VM budget.

しかし、デバイス自体では、これは起こりません。なぜでしょうか?

ベストアンサー1

エミュレータでは、デフォルトの最大ヒープ サイズは約 13 MB です。

デバイスによっては、電話機と Android のバージョンによって異なります。私の Motorola Droid では、最大ヒープ サイズは約 21 ~ 22 MB で、HTC Desire では約 32 MB です。

そのため、デバイスではなくエミュレータでクラッシュが発生します。

アプリケーションのヒープ サイズを監視する場合は、同様のメソッドを呼び出すことができます。

protected void displayMemoryUsage(String message) {
    int usedKBytes = (int) (Debug.getNativeHeapAllocatedSize() / 1024L);
    String usedMegsString = String.format("%s - usedMemory = Memory Used: %d KB", message, usedKBytes);
    Log.d(TAG, usedMegsString);
}

おすすめ記事