How Facebook Is Solving the Android Problem
The world’s most popular social network has developed a system to manage Android fragmentation — the proliferation of thousands of models of Android devices that use older versions of the operating system, making it difficult for developers to get their apps to perform consistently. In a post on the company’s development blog, Facebook’s Chris Marra and Daniel Weaver explained a new classification system for the Android phones that more than half a billion people use to connect to Facebook each month.
Marra and Weaver note that Android users around the world use more than 10,000 different Android device models to connect to Facebook. “With so many different types of phones in the world, being able to segment people and their devices to understand usage patterns and performance is a significant task,” they explain. Traditionally, Facebook has classified its Android user base by the version of the Android operating system that they were running:
Historically we relied on cuts by Android OS version, looking at how Gingerbread behaved differently from Ice Cream Sandwich, how Ice Cream Sandwich behaved differently from Jelly Bean, and so on. However, the recent explosion of affordable Android devices around the world has shifted the median, and the bulk of devices we now see are running Jelly Bean.
But shifts in the global market have made it more useful to segment the user base by the specifications — like RAM, CPU cores, and clock speed — of the actual phone. Using those three specs, Facebook has classified each Android phone into a group of similarly capable devices. The groups are classified by “year class,” or the year in which a given device would have been considered high-end.
As the post explains, the year class system enables Facebook to equip the array of mobile development teams within the company with the same set of common tools and knowledge about the social network’s Android user base:
This allows teams around the company to segment the breadth of Android devices into a more understandable set of buckets, and as new phones are released, they’re automatically mapped into the representative year. For example, the Alcatel T-Pop I bought at a market in Mexico is immediately recognized as a 2010-class phone, despite its 2012 release.
Marra and Weaver report that about two-thirds of the phones connected to Facebook are equivalent to a phone released in 2011 or earlier. While the Android OS version is “still useful for reliability and crash benchmarks,” grouping phones by year class gives Facebook “a much more accurate portrayal of how performance and behavior can vary between different devices.”
Facebook can now analyze data by year class. Marra and Weaver give the example of screen resolution, which can be used in conjunction with year class to determine why user behavior shifts on different devices. “Is it performance, screen real estate, or something else?” Facebook is also using year class to roll out new features. For example, Facebook was able to roll out a better commenting user interface for 2012 devices while working to optimize the interface for older models.
Year class also informs the News Feed rankings, so that Facebook doesn’t show as many video stories to users on phones that can’t display them smoothly, for example. Using year class, the News Feed is now able to “prioritize showing you things that work best on your phone,” and the blog post notes that “Going forward, year class can help determine many other logic decisions around animation, how much content to load, and other elements of the app’s performance.”
The post reports that because year class has been so successful in helping teams within Facebook understand “the breadth of Android,” the company has also started investigating the addition of clusters for other important device characteristics. “Just like not all phones are made equal, not all 3G networks are equal,” Marra and Weaver write:
Looking at the network latency between devices and our servers, as well as the transfer rate for sufficiently large images, our Android app computes its own “connection quality” score ranging from poor to moderate to good to and excellent. Then, regardless of whether a connection says it is 2G, 3G, or Wi-Fi, we can adjust features like video autoplay and photo quality to make the app more performant in these circumstances.
Facebook has found that WiFi and 3G networks in areas with less-developed infrastructure or more-crowded networks are two to four times slower, on average, than the speeds experienced in “developed markets.” Based on that finding, the team is optimizing the app to scale “all the way down to a congested EDGE connection gracefully.”
As Tech Cheat Sheet reported in September, fragmentation is a big problem for Android, and finds its roots in Android’s status as a free, open-source operating system. Around the world, Android is used by countless device manufacturers, who create thousands of devices of every kind imaginable.
High-end phones, low-end phones, phones for mature markets, and phones for markets where Internet access is rare and expensive, all run Android. Many devices don’t run the latest version of Android, and they vary by shape, size, capabilities, and performance levels, and carriers and device manufacturers aren’t obligated to update their devices to the latest version of the operating system. Many users of cheaper hardware around the world use older versions without the core features and security that Google built into later versions.
As OpenSignal reported in August, Android’s fragmentation has grown quickly, thanks to an ever-increasing number of different devices available. At the time, OpenSignal found that 18,796 different Android devices accounted for 682,000 downloads of its app worldwide. That’s up from 11,868 distinct Android devices in 2013, and 3,997 devices in 2012 — meaning that device fragmentation has more than quadrupled. OpenSignal also noted that while last year the top 10 most popular devices represented 21% of all devices, they represent only 15% this year. Those top 10 devices are becoming less and less representative of the wide array of Android phones in use around the world.
Additionally, as Apple Insider’s Daniel Eran Dilger points out, many Android users either have phones that aren’t capable of running Facebook, or decide not to use Facebook from their mobile device. That means that the fragmentation that Facebook reports represents only part of the market, and the year class system actually covers a self-selected Android user base with higher-end specifications, on average, than the general Android population.
Android fragmentation contrasts sharply with the adoption rate of Apple’s iOS mobile operating system. Apple’s Developer Support portal reports that as of October 27, 52% of iOS devices are running iOS 8. 43% are using iOS 7, and only 5% are using an earlier version of the operating system. And as Dilger notes, a report that compared iOS and Android advertising found that iOS revenue per click was six times higher than Android’s, and return on investment was 18 times higher.
The report also found that it costs advertisers more money to place ads on Android than they make — about a 10% loss — versus the returns of more than 160% that iOS advertisements brought.
As Google makes efforts to unify the fragmented Android ecosystem — with programs like Android One, which enable manufacturers to quickly create devices that are capable of running the latest Android features and cloud-based Google services — app developers like Facebook are looking for a way to gain a little bit more control over the experience that users have with their apps, despite the incredible variety of Android devices in use around the world.
Facebook’s year class system seems like a smart way to understand fragmentation, as it affects the user base of the largest social network in the world — and determine exactly how to optimize each of the Android app’s features to enable Facebook users with every device or operating system version to use Facebook as a way to connect and communicate.