diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 44aab33..c585494 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -667,9 +667,12 @@
             Log.w(TAG, "Use EditorInfo.IME_FLAG_FORCE_ASCII flag instead");
         }
 
-        mTargetApplicationInfo = null;
-        new TargetApplicationGetter(this /* context */, this /* listener */)
-                .execute(editorInfo.packageName);
+        mTargetApplicationInfo =
+                TargetApplicationGetter.getCachedApplicationInfo(editorInfo.packageName);
+        if (null == mTargetApplicationInfo) {
+            new TargetApplicationGetter(this /* context */, this /* listener */)
+                    .execute(editorInfo.packageName);
+        }
 
         LatinImeLogger.onStartInputView(editorInfo);
         // In landscape mode, this method gets called without the input view being created.
diff --git a/java/src/com/android/inputmethod/latin/TargetApplicationGetter.java b/java/src/com/android/inputmethod/latin/TargetApplicationGetter.java
index 109f23f..46300b4 100644
--- a/java/src/com/android/inputmethod/latin/TargetApplicationGetter.java
+++ b/java/src/com/android/inputmethod/latin/TargetApplicationGetter.java
@@ -20,9 +20,19 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.os.AsyncTask;
+import android.util.LruCache;
 
 public class TargetApplicationGetter extends AsyncTask<String, Void, ApplicationInfo> {
 
+    private static final int MAX_CACHE_ENTRIES = 64; // arbitrary
+    private static LruCache<String, ApplicationInfo> sCache =
+            new LruCache<String, ApplicationInfo>(MAX_CACHE_ENTRIES);
+
+    public static ApplicationInfo getCachedApplicationInfo(final String packageName) {
+        return sCache.get(packageName);
+    }
+    // TODO: Wipe the cache when new packages are installed.
+
     public interface OnTargetApplicationKnownListener {
         public void onTargetApplicationKnown(final ApplicationInfo info);
     }
@@ -38,12 +48,12 @@
 
     @Override
     protected ApplicationInfo doInBackground(final String... packageName) {
-        // TODO: cache app info. Wipe the cache when new packages are installed.
         final PackageManager pm = mContext.getPackageManager();
         mContext = null; // Bazooka-powered anti-leak device
         try {
             final ApplicationInfo targetAppInfo =
                     pm.getApplicationInfo(packageName[0], 0 /* flags */);
+            sCache.put(packageName[0], targetAppInfo);
             return targetAppInfo;
         } catch (android.content.pm.PackageManager.NameNotFoundException e) {
             return null;
