Is anyone knows how to Release bitmaps from android.view.GLES20DisplayList. And why it keeps them alive even if you clean, let\'s say, ImageView manually? Or maybe there is a wa
This seems to be a memory leak in 4.2. Looks like this fix is intended against it: https://android.googlesource.com/platform/frameworks/base/+/034de6b1ec561797a2422314e6ef03e3cd3e08e0
I disabled hardware acceleration in the manifest for 4.2 for the activity where I encountered this problem, this helped with android.view.GLES20DisplayList memory holding.
In the manifest for activity:
android:hardwareAccelerated="@bool/gpu_enabled"
In values.xml for v17:
<bool name="gpu_enabled">false</bool>
In default values.xml, I set it to true.
I recently did an in-depth memory analysis regarding this issue. As Yulia pointed out above, disabling hardware acceleration would do the trick in general. Alternatively, you can set the ImageView’s Drawable to null, recycle the bitmap, or detach the ImageView as you pointed out.
However, depending on the API version, the bitmap memory may or may not be released from GLES20DisplayList. I discussed these different behaviors and possible solutions in-depth on my blog post – Android Bitmap Memory Analysis, but the quick solution would be to disable hardware acceleration.