facebook twitter hatena line google mixi email

Android/OutOfMemory対策

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
  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();
}