vov*_*kab 7 android memory-leaks out-of-memory
有谁知道如何从android.view.GLES20DisplayList释放位图.为什么它会让它们保持活力,即使你清洁,让我们说,ImageView手动?或者也许有一种方法可以禁用GLES20DisplayList,尝试在AndroidManifest中使用android:hardwareAccelerated ="false",仍然没有运气.
看起来只受4.2(1)影响
更新:看起来你无法在4.2.1上禁用硬件加速(bug?)
简单测试:
Android manifest:
application ... android:hardwareAccelerated="false"
System.out.println("isHardwareAccelerated: " + mListView.isHardwareAccelerated());
mListView.setLayerType(LAYER_TYPE_SOFTWARE, null);
System.out.println("isHardwareAccelerated: " + mListView.isHardwareAccelerated());
Run Code Online (Sandbox Code Playgroud)
结果:
12-06 17:15:27.129: I/System.out(30752): isHardwareAccelerated: true
12-06 17:15:27.129: I/System.out(30752): isHardwareAccelerated: true
Run Code Online (Sandbox Code Playgroud)
这似乎是 4.2 中的内存泄漏。看起来这个修复是针对它的: https: //android.googlesource.com/platform/frameworks/base/+/034de6b1ec561797a2422314e6ef03e3cd3e08e0
我在 4.2 的清单中针对遇到此问题的活动禁用了硬件加速,这有助于 android.view.GLES20DisplayList 内存保持。
在活动清单中:
android:hardwareAccelerated="@bool/gpu_enabled"
在 v17 的 value.xml 中:
<bool name="gpu_enabled">false</bool>
Run Code Online (Sandbox Code Playgroud)
在默认值.xml 中,我将其设置为 true。