In a 2010 blog posting, Google’s Dan Morrill wrote: “Nobody ever defined ‘fragmentation.’” But in 2017, it’s still a significant issue, with a major portion of the Android device ecosystem running outdated software. A new report lays out just how bad the situation has become.
Hardware engineer (and former Google employee) Dan Luu used data from Google’s developer dashboard to examine the long tail of Android fragmentation.
Luu’s data, which stretches back to 2010, shows that Android fragmentation is bad. Really bad. Worse, in fact, than in 2014, when Android first passed one billion active monthly users. Today, more than a billion devices are running an “outdated” version of Android, out of two billion monthly active devices worldwide.
Luu’s findings lean into API version usage, which may be the clearest way to pick through this data. If a device can access the latest API, it’s logically up-to-date (and new APIs are typically not to fussy to implement).
Luu points to three possibilities for increased Android fragmentation. Platform growth and device turnover are likely slowing, and those older devices don’t receive updates. ‘Old’ is a relative term, too; Google only supports devices for about two years after release, with OEMs such as Samsung and LG faring even worse on that front.
One of the proposed stopgaps for Android fragmentation is Project Treble. This is Google’s method for leapfrogging many of the hurdles Android OEMs and carriers face. “With Project Treble, we’re re-architecting Android to make it easier, faster and less costly for manufacturers to update devices to a new version of Android,” Google wrote in a corporate blog posting. “The core concept is to separate the vendor implementation — the device-specific, lower-level software written in large part by the silicon manufacturers — from the Android OS Framework.”
In lay-terms, Google is changing how Android is ‘skinned’ by the likes of LG and Samsung – and even Verizon, which adds its own suite of bloatware to many Android devices it sells. If manufacturers and carriers can update to the newest version without needing to rework their own apps or services, it may persuade them to push updates more frequently.
The issues with Treble are easily identifiable: it’s untested (Google hasn’t even published full documentation for it yet) and only pertains to new devices. That doesn’t help developers today. From Luu:
We’ve seen that Android devices appear to be getting more out of date over time. This makes it difficult for developers to target “new” Android API features, where new means anything introduced in the past few years. It also means that there are a lot of Android devices out there that are behind in terms of security. This is true both in absolute terms and also relative to iOS.
Treble also isn’t Google’s first stab at trying to fix fragmentation. In 2011 (about a year after it asserted ‘fragmentation’ was essentially a made-up phrase), it launched the Android Update Alliance. The initiative was a sort of good-‘ol-boy handshake agreement between Google and its partners to support devices for up to 18 months after release.
The Android Update Alliance was quickly forgotten, and never really supported. Devices launched with outdated versions of the operating system, with promises of updates at a ‘later time.’
Let’s go back to Morrill’s 2010 post about fragmentation, in which he insisted that everyone has a different idea of what it actually means:
The thing is, nobody ever defined “fragmentation” — or rather, everybody has a different definition. Some people use it to mean too many mobile operating systems; others to refer to optional APIs causing inconsistent platform implementations; still others use it to refer to “locked down” devices, or even to the existence of multiple versions of the software at the same time. I’ve even seen it used to refer to the existence of different UI skins. Most of these definitions don’t even have any impact on whether apps can run!
Because it means everything, it actually means nothing, so the term is useless. Stories on “fragmentation” are dramatic and they drive traffic to pundits’ blogs, but they have little to do with reality. “Fragmentation” is a bogeyman, a red herring, a story you tell to frighten junior developers. Yawn.
TL;DR? Fragmentation is fake news.
Digging up an old blog post for context proves one point: Google never really cared about fragmentation. Like its partners, Google is motivated by income. If an outdated device still allows users to search, check Gmail and utilize all the things that make Google money, why fight it?
Similarly, Samsung really doesn’t care that a small percentage of its users want Android Oreo yesterday. Sony sells flashy hardware, and it looks great in your hand; everything else is secondary. For many OEMs, in short, Google’s operating system has never been the main selling point.
OSNews has a unique spin on this, positing that Treble may be Google’s attempt to containerize the runtime so it can spin Android proper into a new operating system. An interesting wrinkle to that: Google’s recent love affair with Kotlin, which is sort of the new Java; there’s also Go, which is taking off just as much as Kotlin. Throw in Google Play Services, which allows Google to update core apps outside of proper OS updates, and it’s easy to believe that Google is up to some grand OS strategy.
Old devices are personal data sieves, relics of an era when we companies just didn’t seem to care as much about security. Fragmentation also makes it hard for developers to offer flashy new tools Google boasts about every few months. It’s in Google’s interest to ensure that fragmentation becomes a thing of the past.