facebook twitter hatena line email

Android/OutOfMemory対策

提供: 初心者エンジニアの簡易メモ
2015年5月20日 (水) 03:10時点における127.0.0.1 (トーク)による版 (ページの作成:「#Bitmapサイズを軽減する // ビットマップ作成オブジェクトの設定 BitmapFactory.Options bmfOptions = new BitmapFactory.Options(); // ARGBでそれ...」)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
  1. Bitmapサイズを軽減する
// ビットマップ作成オブジェクトの設定
BitmapFactory.Options bmfOptions = new BitmapFactory.Options();
// ARGBでそれぞれ0~127段階の色を使用
bmfOptions.inPreferredConfig = Bitmap.Config.ARGB_4444;
// 画像を1/4サイズに縮小
bmfOptions.inSampleSize = 4;
  1. Bitmapを忘れずにonDestoryイベントで解放させる
  2. 作ったインスタンス(mLayerやmContextなど)をonDestoryイベントで解放させる

画像をリサイズさせる際の注意

  1. 元画像ソースを解放する
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();
}