从android.view.GLES20DisplayList释放位图

有谁知道如何从 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());

结果:

12-06 17:15:27.129: I/System.out(30752): isHardwareAccelerated: true
12-06 17:15:27.129: I/System.out(30752): isHardwareAccelerated: true

解决方法

这似乎是4.2中的内存泄漏.看起来这个修复是针对它的: https://android.googlesource.com/platform/frameworks/base/+/034de6b1ec561797a2422314e6ef03e3cd3e08e0

我在清单中禁用了硬件加速,为我遇到此问题的活动4.2,这有助于android.view.GLES20displayList内存保存.

在活动清单中:
机器人:硬件加速= “@布尔/ gpu_enabled”

在v17的values.xml中:

<bool name="gpu_enabled">false</bool>

在default values.xml中,我将其设置为true.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...