Android/OutOfMemory対策/基本
提供: 初心者エンジニアの簡易メモ
- Bitmapサイズを軽減する
// ビットマップ作成オブジェクトの設定 BitmapFactory.Options bmfOptions = new BitmapFactory.Options(); // ARGBでそれぞれ0~127段階の色を使用 bmfOptions.inPreferredConfig = Bitmap.Config.ARGB_4444; // 画像を1/4サイズに縮小 bmfOptions.inSampleSize = 4;
- Bitmapを忘れずにonDestoryイベントで解放させる
- 作ったインスタンス(mLayerやmContextなど)をonDestoryイベントで解放させる
画像をリサイズさせる際の注意
- 元画像ソースを解放する
if (src != null) { // Bitmapデータの解放 src.recycle(); src = null; }
負荷のかかるところに書く
try { Log.e("WallPaperSettings", (new StringBuilder("ERR:")).append(notfoundexception.toString()).toString()); } catch (OutOfMemoryError e) { System.gc(); Log.e("WallPaperSettings", "OutOfMemoryError >> System.gc()"); e.printStackTrace(); }