回答:
android:largeHeap = "true"を使用できますをて大きなヒープサイズをリクエストが、これはHoneycomb以前のデバイスでは機能しません。2.3より前のデバイスでは、VMRuntimeクラスを使用できますが、これはGingerbread以上では機能しません。
NDKはSDKのようにメモリ制限を課さないため、制限をできるだけ大きくする唯一の方法は、NDKを介してメモリを集中的に使用するタスクを実行することです。
または、現在表示されているモデルの部分のみをロードし、残りを必要に応じてロードする一方で、未使用の部分をメモリから削除することもできます。ただし、アプリによっては、これができない場合があります。
largeHeap=trueFTW
アプリケーションが使用できるこのメモリサイズを増やす方法はありますか?
APIレベル11+上で動作しているアプリケーションは持つことができるandroid:largeHeap="true"上<application>、より大きな通常よりもヒープサイズを要求するために、マニフェストの要素、そしてgetLargeMemoryClass()上のActivityManagerヒープがあることをどのように大きなを教えてくれます。しかしながら:
これは、APIレベル11以上(つまり、Honeycomb以降)でのみ機能します。
大きなヒープの大きさは保証されていません
ユーザーは大きなヒープリクエストを認識します。これは、他のアプリのRAMを強制的に終了させるため、他のアプリのプロセスを終了して、システムRAMを解放して大きなヒープで使用できるようにするためです。
#3、およびそれandroid:largeHeapが悪用されることを期待しているという事実のため、これに対するサポートは将来的に中止されるか、インストール時にユーザーにこれについて警告される可能性があります(たとえば、特別な許可を要求する必要があります) )
現在、この機能は簡単に文書化されています
inBitmap上BitmapOptions)。さらに、それらへの参照をすべて削除すると、最終的にはガベージコレクションされます。
android:largeHeap。ただし、大きなヒープを要求すると、他のアプリケーションプロセスが本来必要とするよりも早く終了するため、ユーザーエクスペリエンス全体に悪影響を与える可能性があります。
ヒープサイズを動的に増やすことはできません。
android:largeHeap="true"マニフェストでを使用して、さらに使用するように要求できます。
また、あなたは使うことができます native memory (NDK & JNI)、実際にはヒープサイズの制限を回避。
これについて私が作成したいくつかの投稿があります:
そして、ここに私が作成したライブラリがあります:
これは、Android OSに応じて2つの方法で実行できます。
android:largeHeap="true"Androidマニフェストのアプリケーションタグでして、より大きなヒープサイズを要求が、これはHoneycomb以前のデバイスでは機能しません。VMRuntime.getRuntime().setMinimumHeapSize(BIGGER_SIZE);
HeapSizeを設定する前に、他のアプリケーションやOSの機能に影響を与えない適切なサイズを入力したことを確認してください。設定する前に、アプリのサイズを確認し、ジョブを実行するためにサイズを設定してください。あまり多くのメモリを使用しないでください。そうしないと、他のアプリが影響を与える可能性があります。
リファレンス:http : //dwij.co.in/increase-heap-size-of-android-application