アクティビティのコールバック onLowMemory() が呼び出され続けたため、問題を調査するために、メインのゲーム ループに次のコード行を記述しました。
ActivityManager activityManager = (ActivityManager) Activity.getActivity().getSystemService(Activity.ACTIVITY_SERVICE);
MemoryInfo mi = new MemoryInfo();
activityManager.getMemoryInfo(mi);
Log.v("Tag", "Testing mem: " + mi.availMem);
ログは非常に興味深いものでした。availMem は減少し続けていました。オブジェクトが適切に破棄されていることを確認するために、II は hprof メモリ ダンプを取得しました。予想どおり、破棄されていたオブジェクトは、それらのダンプに表示されません。
また、availMem は、私のアプリだけでなく、システム全体で使用できるメモリであると想定されているため、さらに奇妙になります。
ここで何が起こっているのかを理解するのを手伝ってくれる人はいますか。どんな助けでも大歓迎です。ありがとう!