Android Go review—Google’s scattershot attempt at a low-end Android OS

Here in the US and other developed countries, the smartphone and Internet markets are more or less saturated—most people are online and swiping away at their smartphones. This isn’t the case everywhere though—only about half of the worldwide population is on the Internet. That means there are more than 3.5 billion people that don’t have access to the largest collection of human knowledge (and dank memes) ever assembled.

These throngs of disconnected people come from poorer countries, so when they do eventually get online, they will do so via the most inexpensive devices they can get. The cheapest online-capable devices we make are also the smallest: smartphones. And on smartphones, unless you’re spending several hundred dollars on an Apple device, there’s one OS out there: Android.

Google has taken to calling these people the “next billion users” and has been chasing them for some time with various programs. The effort we’re looking at today, Android Go, is Google’s largest to date. It offers the whole Android package but reworked with entry-level phones in mind.

The first-ever Android Go device in the US is the ZTE Tempo Go, and after plunking down a cool $80 at ZTE’s website, we walked away with a cheap hunk of plastic sporting Google’s newest OS. We’ll give the Tempo Go a quick rundown later in the article (it won’t be pretty), but we’re mostly concerned about Google’s newest OS release.

The basics of Android Go

Android Go isn’t a totally different version of Android—the OS is regular old Android 8.1 Oreo with a special “low ram” flag flipped, which turns it into the “Go Edition.” You also get a suite of special “Go” apps from Google, which are targeted at low-end devices and developing world users. The Go config is something that Google will continue to develop, so future versions of Android will also bring more “Go”-specific changes. As of Android 8.1, the Go loadout is mandatory for devices with 1GB of RAM or less, so in the entry-level phone market, we should be seeing lots of Go Edition phones in the future.

If you’re wondering just how big the entry-level Android market is, Google says that one in three Android devices shipped in 2017 were sub-$100 devices, and the US is the second-largest market for these entry-level devices.

Android Go aims to address several problems people run into in the entry-level or developing-world markets.

  • Light on storage and memory—Android Go aims to reduce the amount of storage space the OS and base apps take up—with only 8GB of storage on the ZTE Tempo Go, space is definitely at a premium. Go aims to cut down on memory usage, too—also at a premium on our low-end, 1GB of RAM device.
  • Data usage—Android Go offers ways to deal with limited bandwidth, giving users ways to carefully watch over their limited data plans, and providing options for offline storage. This set of features is mostly meant for the developing world, where data is more expensive, limited, and pre-paid by the megabyte.
  • Bilingual language support—Since most of “the next billion users” are not native English speakers, Android Go adds language features for bilingual users, who often want to simultaneously use their native language along with the Internet’s dominant language of English. (Although, I think most of these language features have trickled out into mainline Android now and are old news).

This list of bullet points comes from Google’s own descriptions of what Android Go is supposed to address, so this is the standard to which we’re going to hold each app. Some apps focus on one thing more than the others, but just about every redesigned app or new UI element was made with an eye towards one of these goals.

It’s also important to note that nothing about Android Go guarantees an unmodified build of Google’s OS—that’s a separate program called Android One. Just like with regular Android, OEMs are free to rebrand and skin the OS however they see fit. (A heavy OEM skin seems to run counter to the goal of a slim, fast OS, doesn’t it?)

Thankfully, the Tempo Go is a good first phone for Android Go, and it’s mostly stock, with only a skinned camera app. The Tempo Go also includes a gallery, music app, sound recorder, and video player from ZTE, but those are easily ignored.

Since Android Go is regular Android, it mostly looks just like stock Android 8.1. There’s a small amount of tweaks here and there, the biggest of which is a scaled-down Recent Apps UI. For the “Go” apps, you get “Assistant Go,” “Google Go,” “Google Maps Go,” “Gmail Go,” and “Files Go.” Google also makes “YouTube Go,” but this does not come packed in with the ZTE Tempo Go. This is kind of understandable since YouTube Go leans the most toward the developing-world use case.

Android versus Android Go

The biggest UI change you’ll notice in Android Go is the new Recent Apps screen, which has been reworked to use less memory. First, the layout is different. Normal Android shows large app thumbnails in an overlapping, scrollable list, but Android Go uses a vertical grid of smaller thumbnails that don’t overlap.

Normally, Android displays the Recent Apps thumbnails in the full resolution, but that resolution is noticeably cut down on Android Go to save memory. When you tap on an app in Recents, the thumbnail will expand to fill the screen while the app loads. This is a nice trick to make you think the app is loading faster than it is, and while on regular Android, the thumbnail-to-app swap is seamless, you will definitely notice when the low-res, full-screen thumbnail transitions to a real, full resolution app. Everything shifts from blurry to crisp when you switch apps.

The new Recent Apps list caps out at nine entries. Scrolling is considerably slower than on normal Android, just because fling scrolling doesn’t work anymore. The scrolling behavior really likes to lock into an app thumbnail and come to a stop, rather than the free-flowing cascade of normal Android. Android manages open apps automatically, but if you want to wipe everything out yourself, there’s a feel-good “clear all” button pinned to the bottom of the Recent Apps screen. It looks like someone forgot to design it though. It’s just a black rectangle.

A few other things in Android Go have been disabled for performance reasons—or at least, don’t work on our ZTE Tempo Go. Most of these are flagship-centric features you would not expect to get on a low-end device.

  • Split-screen support. Side-by-side apps are apparently too much for 1GB of memory.
  • Daydream VR. Totally reasonable.
  • Android for Work.
  • Android Wear. No smartwatches allowed.
  • Android Auto.
  • No on-by-default storage encryption. You can manually enable it though.

Under-the-hood improvements

Google likes to say Android Go has been “optimized for low-end devices” but doesn’t often go into details about what exactly those optimizations are. The one time the company opened up about Android Go’s under-the-hood changes was at Google I/O 2017, but even that was just an overview.

Patrik Torstensson, an Engineering Manager on Android Go, described some of the changes. “We spent time on tuning the kernel to be more optimized for entry-level devices. This seems like a simple task, but it involves a lot of nitty-gritty details like tuning cache sizes, tuning swapping, and tuning all kind of threading parameters. Linux for a long time has been optimized for the server side. Even though Android has done a lot of changes, there’s still a lot to do there.”

To help alleviate low-memory problems, Android Go is more aggressive at clearing memory from “low-priority” background processes. Before Go, Android’s Activity Manager was the primary memory traffic cop, but with Go, Google is integrating Linux memory management techniques like CGroups to better limit, track, and isolate memory usage. Torstensson says this allows Android to be “much more aggressive with swapping away memory for low-priority processes and do a better job of selecting what processes to stop.”

Google is also promising a smaller RAM footprint for most apps thanks to an optimized Dex-file layout. A Dex file is Android’s executable bytecode format, which is generated by a compiler and zipped up into an APK to make an Android app. The compiler now uses device profile information to layout the Dex files, which Google says should result in lower RAM usage and faster startup times.

Google Play Services, which contains myriad Google APIs various apps need to call on, is being re-architected and split into smaller chunks. With a more modular architecture, apps can only load the parts of Play Services that they actually need, saving memory.