我的Activity的回调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继续减少。现在为了确保对象被正确销毁,我采用了hprof内存转储。正如预期的那样,正在销毁的对象不会显示在这些转储中。
此外,availMem应该是整个系统可用的内存,而不仅仅是我的应用程序,这使得它甚至更奇怪。
任何人都可以帮我理解这里发生的事情。任何帮助将非常感激。谢谢!