From 1e0e143c40a83580b5ced3ee28407119c1acb217 Mon Sep 17 00:00:00 2001 From: Ahan Wu Date: Fri, 22 Mar 2019 15:07:06 +0800 Subject: [PATCH] Release bitmap reference right after Per85ComputeTask done its job. In some weird cases, AsyncTasks might not be released as soon as we expect and the params might also be kept for a long time. Therefore, we try to nullify the reference to the params right after background job has been completed to avoid this kind of leakage. Bug: 124127996 Test: run "atest android.app.cts.WallpaperManagerTest" Test: Observe the memory usage during and after cts tests. Change-Id: I1bb7fa827be84e1739ed47df521e687a3d7a1727 --- .../com/android/systemui/glwallpaper/ImageProcessHelper.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/glwallpaper/ImageProcessHelper.java b/packages/SystemUI/src/com/android/systemui/glwallpaper/ImageProcessHelper.java index 477e7d7ebf72f..d1939d0fddb0b 100644 --- a/packages/SystemUI/src/com/android/systemui/glwallpaper/ImageProcessHelper.java +++ b/packages/SystemUI/src/com/android/systemui/glwallpaper/ImageProcessHelper.java @@ -85,7 +85,9 @@ class ImageProcessHelper { Bitmap bitmap = bitmaps[0]; if (bitmap != null) { int[] histogram = processHistogram(bitmap); - return computePercentile85(bitmap, histogram); + Float val = computePercentile85(bitmap, histogram); + bitmaps[0] = null; + return val; } Log.e(TAG, "Per85ComputeTask: Can't get bitmap"); return DEFAULT_PER85;