0

こんにちは、チャットアプリを作っています。そのアプリケーションでは、多くのビットマップを使用しています。このアプリケーションは、約 55 MB のメモリ領域を必要とします。アプリケーションを最適化してメモリ内のスペースを少なくする方法を教えてください。一部の友人は、ビットマップのバインドを解除することを提案していますが、私にはそれについてわかりません。誰でも私を助けることができます。前もって感謝します。

4

2 に答える 2

3

「ビットマップを効率的に表示する」トレーニング クラスを見たことがありますか? http://developer.android.com/training/displaying-bitmaps/

手動でバインドを解除しても、どこかでメモリ リークが発生しない限り、メモリの使用量はあまり役に立ちません。あなたが見たいかもしれない呼び出しはBitmap.recycle()です。

于 2013-01-25T12:06:48.387 に答える
1

そのアプリケーションでは、多くのビットマップを使用します

同時に多くのビットマップを使用しますか?

ビットマップ オブジェクトが実際には不要になったときに、それらへの参照を保持していますか? はいの場合 - そうしないでください。

ビットマップを実際に表示するために必要な高さと幅にデコードしますか? (それらを表示する実際のimageViewサイズ)そうでない場合-そうする必要があります!

Bitmap.recycle()私の提案を受け入れても、ネイティブ メモリを大量に消費する場合は、不要になったビットマップ オブジェクトのメソッドを呼び出して、呼び出したとおりに「バインド解除」を実行できます。このメソッドは、ビットマップに関連付けられたネイティブ メモリにあるピクセル配列を解放します。

誰もビットマップ参照を保持していない場合、システムはこのメモリを自動的に解放しますが、recycle()メソッドを呼び出すと、システムはメモリを解放します。これは、短時間に大量のビットマップを使用している場合に役立ちます。通常、システムはその時間内にメモリの解放をトリガーしませんでした。

于 2013-01-25T12:26:00.220 に答える