Earlier today, Google released a relatively minor update to its keyboard application with only one really useful change: numbers in the top row on tablets. While the update itself is indeed not too significant, it did manage to bring several interesting half-baked under-the-hood bits which aren't quite ready for consumption. These are exactly the kinds of bits we like here in the AndroidPolice teardown kitchen.

Armed with some of Ron's initial findings, my teardown partner Santiago Rosales and I dug into the innards of the v1.1 APK. Here's what we discovered.

Space-aware gestures

Remember SwiftKey's Flow Through Space which lets you swipe through multiple words without lifting a finger by swiping through the space bar? I bet this feature, when it's ready, will be exactly the same or very similar. It's marked as confidential in the strings.xml - so mysterious!

<string name="gesture_space_aware">Phrase gesture (Confidential)</string>
<string name="gesture_space_aware_summary">Input spaces during gestures by gliding to the space key</string>

There is a function called forceSetEnableSpaceAwareGesture() that enables space-aware gestures, but from what I can tell it's currently limited to only users with @google.com accounts, meaning Google employees.

External dictionary packs

Google Keyboard v1.1 adds support for adding external dictionary packs, which could mean two things:

  1. Updating existing language packs without requiring an app update (though I don't think this is the primary purpose of this function).
  2. More likely: loading additional language packs straight from the web. I'm guessing you will be able to load rare languages that don't ship by default this way, or maybe Google will even strip most languages in the future and make everything downloadable, which is exactly how SwiftKey behaves. This will slim down the APK quite a bit.

After digging around some, we found that Google has created a site that is currently hosting three external language packs for these locales: fa (Persian), in (Indonesian), and iw (Hebrew). Downloading these from the Android device pops up a dialog that lets you install the packs right from the browser. Here's what it all looks like:

wm_Screenshot_2013-08-28-12-18-22 wm_Screenshot_2013-08-28-12-18-35 wm_Screenshot_2013-08-28-12-19-16


<activity android:name="com.android.inputmethod.latin.debug.ExternalDictionaryReaderActivity">
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="https" android:host="sites.google.com" android:pathPrefix="/site/languagemodel" />

Auto-space adjustment

Google tweaked the space behavior around punctuation slightly and removed the "*" character from both symbols_preceded_by_space and symbols_followed_by_space. These variables now have the following values:

<string name="symbols_preceded_by_space">([{&amp;</string>
<string name="symbols_followed_by_space">.,;:!?)]}&amp;</string>

XXHDPI support

A folder with xxhdpi drawables has been added to better support extra-extra-high-density screens (480dpi), such as the Xperia Tablet Z, Xperia Z, HTC One, Galaxy S4, etc.


New translation - Georgian

Google added a new translation language for the ka locale, which happens to be Georgian. Georgian looks absolutely crazy to me - it's probably the hardest to visually parse language I've ever seen.


Maybe new? Personal dictionary now separates languages and has the a For all languages section

This one is weird and I could only reproduce it on the Nexus 4. The Personal dictionary settings menu is now split into individual languages. There's also a global For all languages section that applies to everything. On all my other devices, there is no such separation, before or after the update. Weird.

Personal dictionary supports text expansion and is one of my favorite features of the Google Keyboard.

wm_Screenshot_2013-08-28-12-34-48 Screenshot_2013-06-06-18-02-51 Screenshot_2013-06-06-18-18-37m

The Debug menu

The Debug mode has been in the app for a while now, but it's now gained a few options. It's activated by starting a hidden activity called Android keyboard debug settings (the easiest way is by using Nova Launcher -> Shortcuts -> Activities -> Google Keyboard).

Inside, we have several toggles: debug mode, enable user feedback, keyboard theme, force non-distinct multitouch, usability study mode, and read external dictionary file. The latter option gives us an alternative method of loading external dictionaries that I mentioned earlier.

The debug mode is more interesting. Unfortunately, it doesn't seem to unlock much in the main app, but it does do one thing. See those tiny numbers and the + sign above suggestions? Those correspond to probability values and the "word missing - tapping it will add it to the personal dictionary," respectively. It's nothing groundbreaking, but it does offer us an interesting and rare insight into the prediction engine.

The other values are kind of boring. Oh yeah, the themes are still there (we've been able to change them for a few years now). There aren't any new ones, unfortunately, but I'll recap them all below anyway, for the unaware ones among you.

wm_Screenshot_2013-08-28-12-20-40 wm_Screenshot_2013-08-28-13-41-11


wm_Screenshot_2013-08-28-17-19-59 wm_Screenshot_2013-08-28-17-20-16 wm_Screenshot_2013-08-28-17-20-33

wm_Screenshot_2013-08-28-17-22-08 wm_Screenshot_2013-08-28-17-22-26 wm_Screenshot_2013-08-28-17-22-46

Thanks to Santiago Rosales, my teardown partner, for his help once again!

Artem Russakovskii
Artem is a die-hard Android fan, passionate tech blogger, obsessive-compulsive editor, bug hunting programmer, and the founder of Android Police.
Most of the time, you will find Artem either hacking away at code or thinking of the next 15 blog posts.

  • isaiah

    Just wanna say, I love these APK tear down pieces. Keep doing them, I don't usually comment, or necessarily view the full article (Feedly) but seriously, so awesome. Keep it up :)

  • mgamerz

    I about died when I saw the gingerbread keyboard on a Jellybean phone.

    • http://www.androidpolice.com/ Artem Russakovskii

      Really shows progress seeing them all side-by-side like that, doesn't it?

      • Trent Callahan

        Yeah. I can't believe we used to think that Gingerbread looked good! I still think Google needs to overhaul the Android UI, and retake control though...

        Android Holo + Cards UI would look AMAZING imo.

        I just got so far off topic..

        Keep up the good work, I really like these!

        PancakeHappyFlopJumpBANANA :D

        • Simon Belmont

          The GB keyboard brought some important upgrades, though. The addition of multitouch in the GB keyboard was a big deal for increasing typing speed.

          I will admit, though, that it looks quite dated next to the Holo keyboards now. Still, you gotta progress from something.

  • Michael Ta

    i wonder when will this keyboard support TELEX input style for Vietnamese.. why other languages get so less attentions..

    tôi muốn tiếng việt!!

    • Powrót TOMa

      cuz no one likes Vietnam... xD

  • DJ SPY

    How do I access the debug settings without using Nova? I would like to play around with the themes.

  • Henron Man

    Yes!!! Finally. Indonesian.

  • Crispin Swickard

    Now if they would add cloud saves for user dictionary that would be pretty great. Its annoying to reprogram the dictionary after flashing, of going from phone to tablet, or vice versa. Wifi settings sync from devices, but not user dictionaries..

    • http://www.androidpolice.com/ Artem Russakovskii

      Absolutely. I tested for that - nada yet.

      • Ashish

        Well it seems odd but my personal dictionary was present after i flashed 4.3 on my nexus 4. Dont know how but it was there. May be because 4.2.2 was having android keyboard built in and 4.3 is having google one. And I configured my personal dictionary after downloading google keyboard on it. Its I am not why dictionary came back.

    • Qin-Root

      hmm, my German custom dictionary has been partly syncing between my devices/firmware flashes over the last year. So the feature must be there but it doesn't work everytime/completly to call it reliable.

      • http://www.androidpolice.com/ Artem Russakovskii

        I think that's different, or at least not nearly as robust as it should be to be acceptable. The cloud sync needs to a) happen on at least a semi-frequent basis (it doesn't) and b) be user-configurable (it's not) and possibly have an option to manually trigger it - the way SwiftKey's Cloud works.

  • Kcls

    Can anyone explain to me why the Google keyboard still spaces quotes like"this"when swiping, but spaces slashes & ampersands correctly?

    • Paul_Werner

      I really loathe this

  • spydie

    Google keyboard word predictions really suck compared to the aftermarket keyboards like SwiftKey

    • miri

      To my thumbs at least, Swiftkey's, well, keys feel really weird and the logic for gesture typing drives me crazy. I've never been able to type accurately with it even with it's prediction prowess. The main issue the Google Keyboard is that it doesn't learn for the odd word that it does get wrong, but you can fix that in the personal dictionary.

      • http://www.androidpolice.com/ Artem Russakovskii

        That's weird, I can literally stomp on my device if I'm using SwiftKey, and it would still know exactly what I'm typing. I pretty much type blind at this point.

        • Imparus

          Problem is if you use more than one languish, swiftkey prediction lowers a lot in quality, I mainly use google keyboard because of it :-/

          • http://www.androidpolice.com/ Artem Russakovskii

            Are you saying that the Google keyboard somehow does a better job in multi-language situations though, overall?

          • Imparus

            since it separate them, you are sure it doesn't automatically change between them which is a pro if your language contain quite a few English words that can confuse keyboards like swiftkey, this mean the prediction is more precise on google keyboard than swiftkey for both english and danish, at least for me it is.

          • Jose Antonio

            For me the opposite is what makes me stay with Swiftkey. I write in english, spanish and french and most of the times swiftkey figures out the language I'm writing and adjust predictions and corrections. There are a few cases in which I get a french word when I want to write in spanish but with time and in latest versions I get this less often.
            Google Keyboard, on the other hand doesn't even suggest me words in the spanish language, only in the english one and figuring out how to get a QWERTY keyboard but change the language to french (which by default is AZERTY) took me a while navigating through the options. For me Switkey is the clear winner. I wish the theme integrated better with Holo (I mean Android's style Holo, not Star Trek's Holo which is what you get in the default Cobalt theme) but otherwise it's great.

          • Imparus

            For the android keyboard all it take to change between the languish is clicking on the globe or holding it in to change to a specific languish or keyboard, I find this a much better solution at least for my usage, since Danish borrows quite a few words from English, so swiftkey easily became confused.

          • Jose Antonio

            For me the main problem with the Android keyboard comparing to swiftkey is:

            1. It doesn't suggest me the next word if the language is not english (I don't get suggestion either in spanish or french)

            2. It seems it doesn't learn. Swiftkey learns from your patterns and in the end it suggest more likely the word that you will put.

            Anyway, maybe I'm ok with it because words in english, and above all spanish and french might be similar but different enough to distinguish them once you've written a couple of letters.

          • Imparus

            the first one doesn't bother me since I'm always swyping, the second is why I'm still using it for my tablet where I mainly will be writing in English, since I don't have to answer SMS on it. ;)
            I'm not saying swiftkey is bad, I actually quite like it, I'm just not a fan of them mixing the languish, else it is a very nice keyboard, except I miss the delete swype gesture it used to have :-/

    • Paul Taylor

      Is there a quick way to switch to the emoji keyboard from within Swiftkey? I tried it out, but got frustrated by that. In the standard keyboard, you just hold and space and choose the iWnn keyboard.

      • Jose Antonio

        In the next version (currently in beta, you can download it if you want) there's support for Emoji.

  • miri

    Personal dictionary sync... please.

  • Brandon Watkins

    Is there an app out there that allows for users to put there own themes, or even just theme packs that will show up?

  • Marcell Lévai

    The different language sections have been available for a while now, it's nothing new :)

    • http://www.androidpolice.com/ Artem Russakovskii

      What different language sections?

      • Marcell Lévai

        In the personal dictionary. I remember seeing this when I saved and restored words via an app

        • http://www.androidpolice.com/ Artem Russakovskii

          Ah, yeah, I really don't understand why I'm only seeing them on one device, yet others have just one section.

  • PhilNelwyn

    The separation of languages in the personal dictionary isn't new for me, but the "for all languages" section is.

    And I've noticed a bug which I'm not sure is new: when changing the phone's orientation in the middle of a sentence, the keyboard is kind of reset and wants to start a new sentence.

  • indopr0

    Wow. Some nice goodies inside.

    And the theme is neat too.

    Oh wait.. are you installing the indonesian file? Serius?

    • http://www.androidpolice.com/ Artem Russakovskii

      I had to test. Siriusly.

  • Amanda Kistilensa

    Is there another way to access these external dictionary packs and install them onto the Google Keyboard? (Indonesian, specifically) Going to the link through Chrome on my device lets it get opened by Google Keyboard, but Google Keyboard keeps crashing while it downloads the external dictionary file. Would be glad for any kind of help :D Thanks