Google faces many interesting challenges with Android Auto. It seems like a simple task to build an interface that is less messy and more enjoyable than existing in-car systems. Given the low bar set by most existing platforms, this doesn't sound very difficult. However, Google is taking advantage of more advanced technology and clever design so Auto isn't just another small iterative step forward. A teardown of the latest update shows some interesting progress on new input methods that don't require as much attention and a parking assistant feature that remembers where you left your vehicle.

Teardown

Disclaimer: Teardowns are based on evidence found inside of apks (application packages) and are necessarily speculative and usually based on incomplete information. It's possible that the guesses made here are totally and completely wrong. Even when predictions are correct, there is always a chance that plans may change or could be canceled entirely. Much like rumors, nothing is certain until it's officially announced.

"Scribble" Handwriting Keyboard

Drivers are supposed to keep most of their attention focused on the road, but it's usually safe to make appropriately timed glances at a screen to look at the next street you're going to turn on or to see what song just started. While it's fairly easy to absorb small amounts of information with a quick look, it's much harder to interact with it. Text input in particular is inefficient and frustrating without constant attention, not to mention how uncomfortable and inaccurate your arm is at typing when it's held out at an angle.

Google's initial solution to this problem was to push voice commands for everything – well, voice commands start things, but you have to resort to tapping the touchscreen anytime a voice command requires more decisions. As long as we speak clearly and don't have too much background noise, this is fairly effective for navigation and text messaging. Thanks to contextual cues and a really smart speech interpreter, you can usually get by without too many hiccups. Things get a bit trickier when you're trying to say complicated street names or forcing Play Music to find a confusing or creatively spelled band or song name. It happens more than you'd expect.

screendump-2015-12-14-133645

Current Android Auto keyboard.

For about as long as the Android Auto app has been around, there have been signs of alternate keyboards. Some of them have been spotted at special events or mentioned in one context or another, but for regular Auto users, we've been stuck with a fairly generic keyboard that can only be seen while our cars are parked (usually with the parking brake on). New text in the Android Auto companion app describes "handwriting input" which can be used to draw letters or numbers in Android Auto.

<string name="companion_handwriting_input_title">Handwriting input</string>
<string name="companion_handwriting_input_body">To draw letters or numbers in Android Auto, install handwriting support.</string>
<string name="companion_handwriting_input_action">Install now</string>
<string name="companion_handwriting_input_downloading">Downloading…</string>
<string name="companion_handwriting_input_finished">Finished</string>
<string name="companion_handwriting_input_retry">Retry</string>

One particular detail worth calling out from these strings is that handwriting support must be downloaded. To be more specific, the Android Auto app has to download character recognition models so it has a way to interpret our awkwardly scrawled finger doodles.

This wasn't always the case, there was actually a pretty large (21 MB) file named latin_20150608_bundle_hwr_prodim.jpg until just this update. It contained the character models for the Latin alphabet, which covers most written languages in North America and Western Europe. This was the model used for testing and development of the feature. There are now several separate models and word lists, each optimized for a particular language. A combination of models and word lists will be chosen and downloaded based on Android's chosen system language on the device. The fact that language support was just escalated from what the developers themselves use to a list that covers almost every major language on the planet is a great sign that this feature is destined for the public.

Here's a full list of supported languages and character sets, along with the model URLs below (not that much can be done with them). It looks like a mix of full names, ISO 639-1, and ISO 639-2 codes were used for labeling.

  • Afrikaans
  • Albanian
  • Arabic
  • Azerbaijani
  • Basque
  • Belarusian
  • Bengali
  • Bosnian
  • Bulgarian
  • Catalan; Valencian
  • Cebuano
  • Chichewa; Chewa; Nyanja
  • Chinese: Hong Kong, traditional characters
  • Chinese: Mainland China, simplified characters
  • Chinese: Taiwan, traditional characters
  • Croatian
  • Cyrillic
  • Czech
  • Danish
  • Devanagari
  • Dutch; Flemish
  • Esperanto
  • Estonian
  • Finnish
  • French
  • Galician
  • German
  • Greek
  • Gujarati
  • Haitian; Haitian Creole
  • Hebrew
  • Hmong; Mong
  • Hungarian
  • Icelandic
  • India Odisha, Jharkhand
  • Indonesian
  • Irish
  • Italian
  • Japanese
  • JW (?)
  • Kannada
  • Khmer
  • Kirghiz; Kyrgyz
  • Korean
  • Kurdish
  • Lao
  • Latin
  • Latvian
  • Lithuanian
  • Macedonian
  • Malagasy
  • Malay
  • Malayalam
  • Maltese
  • Maori
  • Marathi
  • Mongolian
  • Myanmar / Burmese
  • Nepali
  • Norwegian
  • Panjabi; Punjabi
  • Persian
  • Polish
  • Portuguese
  • Romanian; Moldavian; Moldovan
  • Serbian
  • Sinhala; Sinhalese
  • Slovak
  • Somali
  • Spanish; Castilian
  • Sundanese
  • Swahili
  • Swedish
  • Tagalog
  • Tamil
  • Telugu
  • Thai
  • Turkish
  • Ukrainian
  • Vietnamese
  • Welsh
  • Xhosa
  • Zulu

Handwriting Model URLs

<string-array name="model_urls">
<item>http://dl.google.com/handwriting/models/af20141124.hwr_prodlm.4586CED4.zip</item>
<item>http://dl.google.com/handwriting/models/arabic20150605.bundle.8695F3F0.zip</item>
<item>http://dl.google.com/handwriting/models/arabic20150605.bundle.hwr_prodlm.D9D15724.zip</item>
<item>http://dl.google.com/handwriting/models/az20141124.hwr_prodlm.D1627623.zip</item>
<item>http://dl.google.com/handwriting/models/be20141126.hwr_prodlm.796236E8.zip</item>
<item>http://dl.google.com/handwriting/models/bengali20150318.bundle.A468F619.zip</item>
<item>http://dl.google.com/handwriting/models/bengali20150318.bundle.hwr_prodlm.D927B06B.zip</item>
<item>http://dl.google.com/handwriting/models/bg20141126.hwr_prodlm.06F4D708.zip</item>
<item>http://dl.google.com/handwriting/models/bs20141124.hwr_prodlm.E00A905D.zip</item>
<item>http://dl.google.com/handwriting/models/ca20141124.hwr_prodlm.7B89F1E2.zip</item>
<item>http://dl.google.com/handwriting/models/ceb20141124.hwr_prodlm.33EFEF9F.zip</item>
<item>http://dl.google.com/handwriting/models/chinese20150601.bundle.83693F26.zip</item>
<item>http://dl.google.com/handwriting/models/chinese20150601.bundle.hwr_prodlm.408CDA26.zip</item>
<item>http://dl.google.com/handwriting/models/cs20141124.hwr_prodlm.BBFCA70E.zip</item>
<item>http://dl.google.com/handwriting/models/cy20141124.hwr_prodlm.CDA844CF.zip</item>
<item>http://dl.google.com/handwriting/models/cyrillic20141203.bundle.1140E5BC.zip</item>
<item>http://dl.google.com/handwriting/models/cyrillic20141203.bundle.hwr_prodlm.9B4019F5.zip</item>
<item>http://dl.google.com/handwriting/models/da20150121.hwr_prodlm.17DCF3C5.zip</item>
<item>http://dl.google.com/handwriting/models/de20141119.hwr_prodlm.1979BDB2.zip</item>
<item>http://dl.google.com/handwriting/models/devanagari20150224.bundle.21AE400F.zip</item>
<item>http://dl.google.com/handwriting/models/devanagari20150224.bundle.hwr_prodlm.62A25ACB.zip</item>
<item>http://dl.google.com/handwriting/models/eo20141124.hwr_prodlm.61C0D9A4.zip</item>
<item>http://dl.google.com/handwriting/models/es20141119.hwr_prodlm.43F0E4BE.zip</item>
<item>http://dl.google.com/handwriting/models/et20150121.hwr_prodlm.8573B018.zip</item>
<item>http://dl.google.com/handwriting/models/eu20141124.hwr_prodlm.17C3342F.zip</item>
<item>http://dl.google.com/handwriting/models/fa20150605.hwr_prodlm.16C268FE.zip</item>
<item>http://dl.google.com/handwriting/models/fi20150126.hwr_prodlm.E6CB9A86.zip</item>
<item>http://dl.google.com/handwriting/models/fr20150126.hwr_prodlm.FA20F7D9.zip</item>
<item>http://dl.google.com/handwriting/models/ga20141124.hwr_prodlm.2EE6BB1D.zip</item>
<item>http://dl.google.com/handwriting/models/gl20141124.hwr_prodlm.B899898C.zip</item>
<item>http://dl.google.com/handwriting/models/greek20150319.bundle.AA16BBA4.zip</item>
<item>http://dl.google.com/handwriting/models/greek20150319.bundle.hwr_prodlm.767CD3CB.zip</item>
<item>http://dl.google.com/handwriting/models/gujarati20150407.bundle.811C3348.zip</item>
<item>http://dl.google.com/handwriting/models/gujarati20150407.bundle.hwr_prodlm.1C316DF7.zip</item>
<item>http://dl.google.com/handwriting/models/hebrew20150520.bundle.9C66545A.zip</item>
<item>http://dl.google.com/handwriting/models/hebrew20150520.bundle.hwr_prodlm.7C1E6655.zip</item>
<item>http://dl.google.com/handwriting/models/hmn20141124.hwr_prodlm.44D58425.zip</item>
<item>http://dl.google.com/handwriting/models/hr20150121.hwr_prodlm.76CD5951.zip</item>
<item>http://dl.google.com/handwriting/models/ht20150121.hwr_prodlm.40D85B8D.zip</item>
<item>http://dl.google.com/handwriting/models/hu20141124.hwr_prodlm.DCBD9ED6.zip</item>
<item>http://dl.google.com/handwriting/models/id20141124.hwr_prodlm.99F952CC.zip</item>
<item>http://dl.google.com/handwriting/models/is20150121.hwr_prodlm.8E4699DA.zip</item>
<item>http://dl.google.com/handwriting/models/it20150126.hwr_prodlm.6B759765.zip</item>
<item>http://dl.google.com/handwriting/models/japanese20150330.bundle.9CCBA148.zip</item>
<item>http://dl.google.com/handwriting/models/japanese20150330.bundle.hwr_prodlm.B87CAB9C.zip</item>
<item>http://dl.google.com/handwriting/models/jw20150121.hwr_prodlm.89EB6668.zip</item>
<item>http://dl.google.com/handwriting/models/kannada20150225.bundle.448361F8.zip</item>
<item>http://dl.google.com/handwriting/models/kannada20150225.bundle.hwr_prodlm.FD03FDA6.zip</item>
<item>http://dl.google.com/handwriting/models/khmer20150408.bundle.92F55F55.zip</item>
<item>http://dl.google.com/handwriting/models/khmer20150408.bundle.hwr_prodlm.1C7E8F65.zip</item>
<item>http://dl.google.com/handwriting/models/korean20150408.bundle.580A9707.zip</item>
<item>http://dl.google.com/handwriting/models/korean20150408.bundle.hwr_prodlm.6F6A3B47.zip</item>
<item>http://dl.google.com/handwriting/models/ku20141124.hwr_prodlm.4BAC9ECE.zip</item>
<item>http://dl.google.com/handwriting/models/ky20141126.hwr_prodlm.B3E79A48.zip</item>
<item>http://dl.google.com/handwriting/models/la20150121.hwr_prodlm.E00ABC7F.zip</item>
<item>http://dl.google.com/handwriting/models/lao20150304.bundle.1484562C.zip</item>
<item>http://dl.google.com/handwriting/models/lao20150304.bundle.hwr_prodlm.B364FA3B.zip</item>
<item>http://dl.google.com/handwriting/models/latin20150608.bundle.4EA9F9CB.zip</item>
<item>http://dl.google.com/handwriting/models/latin20150608.bundle.hwr_prodlm.114A11F8.zip</item>
<item>http://dl.google.com/handwriting/models/latin20150608.bundle.wordlist.CEDD50DD.zip</item>
<item>http://dl.google.com/handwriting/models/lt20150121.hwr_prodlm.4ED7F0A3.zip</item>
<item>http://dl.google.com/handwriting/models/lv20141124.hwr_prodlm.B907F78B.zip</item>
<item>http://dl.google.com/handwriting/models/malayalam20150904.bundle.91AADDBD.zip</item>
<item>http://dl.google.com/handwriting/models/malayalam20150904.bundle.hwr_prodlm.6416A84D.zip</item>
<item>http://dl.google.com/handwriting/models/mg20150121.hwr_prodlm.54C5D886.zip</item>
<item>http://dl.google.com/handwriting/models/mi20141124.hwr_prodlm.EB23BA45.zip</item>
<item>http://dl.google.com/handwriting/models/mk20141126.hwr_prodlm.B95BA583.zip</item>
<item>http://dl.google.com/handwriting/models/mn20141126.hwr_prodlm.021DAA52.zip</item>
<item>http://dl.google.com/handwriting/models/mr20141117.hwr_prodlm.A2A37575.zip</item>
<item>http://dl.google.com/handwriting/models/ms20141124.hwr_prodlm.4B1BADDB.zip</item>
<item>http://dl.google.com/handwriting/models/mt20141124.hwr_prodlm.5E1CB8D8.zip</item>
<item>http://dl.google.com/handwriting/models/myanmar20151014.bundle.22D1C520.zip</item>
<item>http://dl.google.com/handwriting/models/myanmar20151014.bundle.hwr_prodlm.50CD974E.zip</item>
<item>http://dl.google.com/handwriting/models/ne20150224.hwr_prodlm.26DD68ED.zip</item>
<item>http://dl.google.com/handwriting/models/nl20141124.hwr_prodlm.C9C5E92E.zip</item>
<item>http://dl.google.com/handwriting/models/no20141124.hwr_prodlm.9BF99796.zip</item>
<item>http://dl.google.com/handwriting/models/ny20141124.hwr_prodlm.E04130BC.zip</item>
<item>http://dl.google.com/handwriting/models/odia20141226.bundle.E10874E7.zip</item>
<item>http://dl.google.com/handwriting/models/odia20141226.bundle.hwr_prodlm.935F5A15.zip</item>
<item>http://dl.google.com/handwriting/models/pl20141124.hwr_prodlm.120763CA.zip</item>
<item>http://dl.google.com/handwriting/models/pt20141124.hwr_prodlm.00FFAC3B.zip</item>
<item>http://dl.google.com/handwriting/models/punjabi20150424.bundle.9286BF7D.zip</item>
<item>http://dl.google.com/handwriting/models/punjabi20150424.bundle.hwr_prodlm.305A8841.zip</item>
<item>http://dl.google.com/handwriting/models/ro20141119.hwr_prodlm.32221B43.zip</item>
<item>http://dl.google.com/handwriting/models/sinhala20150312.bundle.56EAE77F.zip</item>
<item>http://dl.google.com/handwriting/models/sinhala20150312.bundle.hwr_prodlm.B51A18A6.zip</item>
<item>http://dl.google.com/handwriting/models/sk20150121.hwr_prodlm.F8F3921D.zip</item>
<item>http://dl.google.com/handwriting/models/sl20141124.hwr_prodlm.FB4A0623.zip</item>
<item>http://dl.google.com/handwriting/models/so20141124.hwr_prodlm.65DB22B6.zip</item>
<item>http://dl.google.com/handwriting/models/sq20141124.hwr_prodlm.7BC7619B.zip</item>
<item>http://dl.google.com/handwriting/models/sr20141126.hwr_prodlm.A958C387.zip</item>
<item>http://dl.google.com/handwriting/models/su20141124.hwr_prodlm.141F372C.zip</item>
<item>http://dl.google.com/handwriting/models/sv20141124.hwr_prodlm.FF4E0773.zip</item>
<item>http://dl.google.com/handwriting/models/sw20141124.hwr_prodlm.1360CF27.zip</item>
<item>http://dl.google.com/handwriting/models/tamil20150904.bundle.E226FABA.zip</item>
<item>http://dl.google.com/handwriting/models/tamil20150904.bundle.hwr_prodlm.B7828022.zip</item>
<item>http://dl.google.com/handwriting/models/telugu20150213.bundle.F7BBED39.zip</item>
<item>http://dl.google.com/handwriting/models/telugu20150213.bundle.hwr_prodlm.01D080BB.zip</item>
<item>http://dl.google.com/handwriting/models/thai20141126.bundle.ADB601DA.zip</item>
<item>http://dl.google.com/handwriting/models/thai20141126.bundle.hwr_prodlm.F6F29777.zip</item>
<item>http://dl.google.com/handwriting/models/tl20141124.hwr_prodlm.E6975CAD.zip</item>
<item>http://dl.google.com/handwriting/models/tr20141124.hwr_prodlm.2C5182C3.zip</item>
<item>http://dl.google.com/handwriting/models/uk20141126.hwr_prodlm.2E191D3E.zip</item>
<item>http://dl.google.com/handwriting/models/ur20150605.hwr_prodlm.133B594E.zip</item>
<item>http://dl.google.com/handwriting/models/vietnamese20150313.bundle.0D092250.zip</item>
<item>http://dl.google.com/handwriting/models/vietnamese20150313.bundle.hwr_prodlm.0991DE3C.zip</item>
<item>http://dl.google.com/handwriting/models/xh20141124.hwr_prodlm.D4AA8F94.zip</item>
<item>http://dl.google.com/handwriting/models/zh-cn20150127.hwr_prodlm.3AD5E858.zip</item>
<item>http://dl.google.com/handwriting/models/zh-hk20150127.hwr_prodlm.0E67AB84.zip</item>
<item>http://dl.google.com/handwriting/models/zh-tw20150127.hwr_prodlm.94D7FCE1.zip</item>
<item>http://dl.google.com/handwriting/models/zu20141124.hwr_prodlm.7DB44DFD.zip</item>
</string-array>

As I mentioned before, this handwriting keyboard isn't technically new, signs have existed for a while that there was some semi-active development. However, it's the sudden addition of interface text and language support that proves it's not just an experiment that would never see the light of day. As it turns out, the handwriting keyboard has actually been demonstrated in the wild.

DSC00754

The picture above was snapped by David Ruddock about a month ago at the LA Auto Show. The screen is part of the Audi Q7, which trades out the touchscreen we've come to expect from Android Auto and instead uses a small track pad and rotary dial for input. In this case, the driver can draw letters on the track pad and use the dial to scroll through and select items from a list.

The question, of course, is if a handwriting keyboard will be limited to cars equipped with a special track pad or if it will be accessible on touchscreens too. It may not be any more comfortable to hold an arm at an angle to draw letters, but it would demand a bit less precision.

"Scribble" Rotary Keyboard

A couple unfamiliar keyboards are mentioned alongside the handwriting keyboard. Strangely, the name "Scribble" is used to identify both a handwriting keyboard and a rotary keyboard. Again, the rotary keyboard has been popping up since Auto started, but was never exposed to regular users. This too was shown during the Audi Q7 demo mentioned above.

DSC00753

The rotary keyboard shown in the Audi demo was operated by a small control knob located in easy reach of the driver's right hand. The operation is fairly obvious from the picture. The spinning knob slides through the alphabet and a simple press of the button drops in the currently selected letter. This may not be exceptionally fast, but it is immediately easy to read at a glance and doesn't require any precision with a touchscreen.

<string name="content_browse_touch_abc_keyboard_mode">ABC keyboard (Touch)</string>
<string name="content_browse_touch_letter_bins_mode">Letter bins (Touch)</string>
<string name="content_browse_rotary_scribble_mode">Scribble (Rotary)</string>
<string name="content_browse_touch_scribble_mode">Scribble (Touch)</string>

There is also one other input method called "Letter bins," but there aren't any details or real life pictures to go with it. However, if I were to guess, I'm pretty sure this is based on T9 predictive text input where letters are grouped into eight numbered buttons (2-9, with 1 and 0 providing symbols and a space, respectively).

We can see that Google is working to implement different ways to interact with Auto that don't strictly rely on a touchscreen and voice commands. It's still telling that three out of four keyboards still rely on touch of some kind, but none of the new ones rely on close inspection like a full on-screen QWERTY keyboard. It looks like both the rotary and handwriting keyboards might be linked to cars with specific hardware, for now; but I hope there are going to be ways to attach aftermarket accessories that will give some of the same capabilities to cars that don't come equipped with every possible input method.

Parking Memory

Keeping track of where you parked a car is definitely one of those little problems that simply shouldn't be a problem anymore. Most of us have probably seen the Parking Card in Google Now, but it can be somewhat unreliable and has a bad habit of disappearing when it shouldn't. It can also be tricked if you stop your car in one place and hop into another for a ride somewhere else. Now it looks like Android Auto is going to take some of the guesswork out of tracking down your ride.

<string name="companion_last_approximate_location_title">Your last approximate location</string>
<string name="companion_last_location_action">View in Maps</string>
<string name="companion_last_location_body">"Here's where you were when you last used Android Auto."</string>
<string name="companion_last_location_title">Your last location</string>

It's an obvious, no-brainer kind of feature. Auto will simply record the location where you last unhooked from your car. Afterwards, you'll be able to open the app and get a link to Google Maps with a pin pointing to the coordinates. Of course, this necessitates that you actually had your phone connected during your last drive and didn't pull the plug before parking.

I've tried to use this in the last couple of days, but it doesn't appear to be live yet. My guess is that the Auto team is still giving it some more testing before cutting it loose to the public. Just think, there might finally be a reason to open the Android Auto app after the initial setup.

Download

The APK is signed by Google and upgrades your existing app. The cryptographic signature guarantees that the file is safe to install and was not tampered with in any way. Rather than wait for Google to push this download to your devices, which can take days, download and install it just like any other APK.

File Name: com.google.android.projection.gearhead_1.5.100945_(2462389-release)-15100945_minAPI21(armeabi-v7a)(nodpi).apk

Version: 1.5.100945 (2462389-release) (15100945)