Deallocate gesture trail bitmap when unneeded

This frees up 1.7MB on Nexus 4 (occam), and 900KB on occam_svelte while
LatinIME goes to background.
The keyboard bring-up speed feels acceptable on both devices.

bug: 8967766
Change-Id: I5bc980c4dc41bc304be3c190934c1f7c55c9d244
This commit is contained in:
Ken Wakasa 2013-07-30 20:29:19 +09:00
parent 2d7e927354
commit c8814e20b7
3 changed files with 10 additions and 0 deletions

View file

@ -1370,4 +1370,8 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
drawIcon(canvas, mSpaceIcon, x, y, iconWidth, iconHeight);
}
}
public void deallocateMemory() {
mGestureTrailsPreview.deallocateMemory();
}
}

View file

@ -104,7 +104,12 @@ public final class GestureTrailsPreview extends AbstractDrawingPreview {
freeOffscreenBuffer();
}
public void deallocateMemory() {
freeOffscreenBuffer();
}
private void freeOffscreenBuffer() {
mOffscreenCanvas.setBitmap(null);
if (mOffscreenBuffer != null) {
mOffscreenBuffer.recycle();
mOffscreenBuffer = null;

View file

@ -894,6 +894,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
if (mainKeyboardView != null) {
mainKeyboardView.cancelAllOngoingEvents();
mainKeyboardView.deallocateMemory();
}
// Remove pending messages related to update suggestions
mHandler.cancelUpdateSuggestionStrip();