私はAndroidアプリケーションを開発しています。そのアプリケーションに RAM を割り当てることは可能ですか? 例: アプリケーションを開くと、30MB の RAM を割り当てる必要があります。API について言及します。
2 に答える
いいえ、できません。これはシステムによって完全に管理されます。
実際、システムは必要なときにアプリケーションに割り当てられたヒープを増やします。ただし、メモリ消費に関してはアプリケーションによる制限があります。この制限を取得するには、次を使用できます。
/* Expressed in Megabytes */
Runtime.getRuntime().maxMemory() / 1024 / 1024
最後に、以下を追加することで、アプリケーションが通常のアプリよりも多くのメモリを使用する可能性が高いことをマニフェストで指定できるようです。
このタグを使用する場合は、ActivityManager.getLargeMemoryClass()を見て、アプリに割り当てられた値を確認してください。戻り値はメガバイト単位で表されます。デバイスのメモリの可用性が許す限り、ActivityManager.getMemoryClass()によって返される値よりも大きくなる可能性があります。
いいえ、それはできません。アプリケーションに割り当てられるメモリは、デバイスに固有です。このトピックをより深く理解するために、Google IO 2011 のメモリ管理に関するビデオをご覧になることを強くお勧めします。
さらに、logcat のデバッグ ログを見て、アプリに割り当てられているメモリの量と残りの量を把握してください。
01-13 14:37:54.538: D/dalvikvm(27390): GC_CONCURRENT 解放 393K、47% 解放 3377K/6279K、外部 2003K/2199K、一時停止 2ms+3ms
largeHeap="true" の使用もお勧めしません。@Halim が彼の投稿で指摘したように、追加のメモリがアプリに割り当てられない場合があります。
一部のデバイスは使用可能なメモリの合計によって制限されるため、これを有効にしても、使用可能なメモリが固定的に増加することは保証されません。
30MB のメモリの必要性と、それを削減する方法に注目してください。