大量のメモリを使用(および保持)する必要がある場合は、はい、使用できますandroid:largeHeap="true"
。ただし、それを使用する場合は、他のアプリがフォアグラウンドにあるときはいつでも、アプリをメモリからフラッシュする準備をしておく必要があります。
「準備する」とは、その可能性を考慮して設計し、onStop()
とonResume()
メソッドをできるだけ効率的に記述しながら、ユーザーにシームレスな外観を提供する方法で関連するすべての状態を保存および復元できるようにすることを意味します。
:そこは、このパラメータに関連する3つの方法がありmaxMemory()
、getMemoryClass()
とgetLargeMemoryClass()
。
ほとんどのデバイスでmaxMemory()
はgetMemoryClass()
、デフォルトでと同様の値を表しますが、後者はメガバイトで表され、前者はバイトで表されます。
largeHeap
パラメータを使用するmaxMemory()
と、デバイス固有の高いレベルに増加しgetMemoryClass()
ますが、同じままです。
getMemoryClass()
はヒープサイズを制限しませんが、実行している特定のデバイスの制限内でアプリを快適かつ互換的に機能させる場合に使用する必要があるヒープの量を示します。
maxMemory()
対照的に、はヒープサイズを制限するため、値を増やすことで追加のヒープにアクセスし、その値をlargeHeap
増やすことができます。ただし、増加するヒープの量はまだ制限されており、その制限はデバイス固有になります。つまり、アプリで使用できるヒープの量は、アプリが実行されているデバイスのリソースによって異なります。したがって、largeHeap
アプリを使用してすべての注意を放棄し、食べ放題のビュッフェを試してみることはできません。
アプリはlargeHeap
、メソッドを呼び出してパラメーターを使用することにより、特定のデバイスで利用可能なメモリの量を正確に検出できますgetLargeMemoryClass()
。返される値はメガバイト単位です。
この以前の投稿には、largeHeap
いくつかの特定のAndroidデバイスでパラメーターを使用した場合と使用しない場合に使用できるヒープの量の例だけでなく、パラメーターの説明も含まれています。
Androidでアプリケーションヒープサイズを検出する
このパラメーターをtrueに設定して自分のアプリをデプロイしていません。ただし、開発中にのみ実行される一連の最適化関連パラメーターをコンパイルするために、アプリの1つにいくつかのメモリ集中型コードがあります。largeHeap
このコードの実行中のメモリ不足エラーを回避するために、開発中にのみパラメーターを追加します。しかし、アプリをデプロイする前にパラメーター(およびコード)を削除します。