2010-11-18 18 views
3

Android 1.6でメモリ不足を起こすAndroidアプリケーションがあります。それは2.0以降でうまくいきます。この時点でランタイムメモリの使用量を減らそうとしています。Android App - 実行時にイメージを再利用できますか?

私たちは、各画面の背景画像などの画像を再利用することを考えていました。アプリ起動時に背景画像を一度メモリに読み込んで、この画面をRAMに保存するのと同じ背景画像を読み込むのではなく、各画面でこのキャッシュされたコピーを再利用することは可能ですか?

ランタイムメモリの使用に関する他の多くの方法とベストプラクティスがあります。しかし、現時点では、この「イメージ再利用」アプローチが本当に実現可能かどうかを知りたがっています。

「はい」の場合、どうすればこのことができますか?メモリを節約することはできますか?または、Android OSはメモリの観点から何の利益も与えずに、各画面に対して同じアセットの複数のコピーを作成しますか?

私の記事を読んでいただきありがとうございます。

答えて

0

はい、画像を再利用できます。

通常、各行に同じ画像が含まれるListViewの場合に実行されます。

この場合、アダプタのコンストラクタでBitmapを1度取得し、getView()メソッドで再利用できるため、各行にロードする必要はありません。このトリックが表示されますhere

あなたの場合は、主なアクティビティのonCreate()メソッドで背景ビットマップを読み込み、public static属性として保存してから、すべてのアクティビティで再利用できます。

しかし、私はそれがあまり差をつけずにコードを追加料金で請求することはないと思います。

あなたのUIを微調整しようとしているときに、まだ見ていない場合は2009 Google I/O Presentation by Romain Guyを見ることをお勧めします。これは、特にビットマップ操作に関して、UIのパフォーマンスを向上させるための多くの有用なトリックを示しています。

2

この背景イメージがリソースからDrawableとしてロードされている場合、その方法で作成されたすべてのDrawable間でビットマップデータが既に共有されています。そうではありません、あなたの特別なケースではおそらくあなたに利益をもたらさないでしょう。

関連する問題