Androidエミュレーターで、アプリを終了してすぐに再実行すると、次のようになります。
OutOfMemoryError: bitmap size exceeds VM budget.
しかし、デバイス自体では、これは起こりません。どうして?
エミュレーターでは、デフォルトの最大ヒープサイズは約13MBです。
デバイスでは、電話とAndroidバージョンによって異なります。MotorolaDroidでは、最大ヒープサイズは約21〜22 MBで、HTCDesireでは約32MBです。
そのため、デバイスではなくエミュレータでクラッシュが発生します。
アプリケーションのヒープサイズを監視する場合は、同様のメソッドを呼び出すことができます。
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);
}
AVD RAMおよび最大VMアプリケーションヒープサイズをVMオプションで増やします。
これを行うには、
ウィンドウ-> AVDマネージャー->仮想デバイス->編集。
ヒープサイズを増やすエミュレーターの場合-それは私のために機能しました16Mから32Mに増やしました
これは、Andriod studio1.2.0からエミュレーターのヒープサイズを操作するオプションを見つける方法についての怠惰です
おそらく、デバイスのメモリがエミュレータよりも多いためです。 This SO question は、エミュレーターのサイズを増やす方法を示しています。
さらに、 Java VMヒープサイズ を増やす)。
割り当てられるメモリのサイズを増やします...