Floyd Patrick Piedad May 14, 2015
This article was originally published at TeachBeacon in May 2015.
The openness of Android may be good for consumers, but it hurts the platform's potential for wearables and the Internet of Things (IoT). Developers who were already frustrated with Android fragmentation are finding IoT design a real nightmare—and many are opting to build their first products on iOS instead.
Google has responded by making the platform less open, but it may be too late. If Android is forever a mess of not-quite-compatible platforms, should developers keep IoT development focused on iOS?
Open source sounded so good
When Google launched Android in 2008, it was greeted with excitement. It was freely available and highly customizable, and it gave developers immediate access to the app store. The contrast with iOS was stark. Apple tightly controlled its hardware and OS, and apps faced a slow approval process.
Given its advantages, it's no surprise that Android now commands 82 percent of the market. With this level of achievement, one might expect Android's future to be secure; however, Android's suitability for the IoT is being undermined by its own success.
Android fragmentation was inevitable
Hardware fragmentation was an expected side effect of Android's openness. Since the base OS is the same for all devices, hardware is the easiest place for manufacturers to differentiate. Consider the following specs snapshot:
|Type||Qualcomm Snapdragon, Texas Instruments OMAP, Samsung Hummingbird, Nvidia Tegra, Intel, Mediatek|
|Cores||Dual-core, quad-core, octa-core|
|GPU||PowerVR, NVidia, Adreno, Mali|
|Size||Small (2—3.5"), normal (3.5—4.5"), large (4.5—7"), extra-large (7"+)|
|Density||120 dpi, 160 dpi, 320 dpi, 480 dpi, 640 dpi|
|Touch||Single-finger, two-finger, four-finger, eight-finger|
|ROM||2 GB, 4 GB, 8 GB, 16 GB|
|RAM||256 MB, 512 MB, 1 GB, 2 GB, 4 GB|
|Location||GPS, A-GPS, Glonass, or none|
|Other||Accelerometer, magnetic field, temperature, barometer, proximity, orientation, light, fingerprint, heart rate|
|Capability||Varying sensitivity, resolution, and performance|
|Resolution||VGA, QVGA, 1 MP, 2 MP, 4 MP, 8 MP, 16 MP|
|Quality||Varying lens quality and image processing algorithms|
|Bluetooth||4.1, 4.0, 3.1, 3.1, 2.1|
|Network||2G, Edge, 3G, HSPA, HSPA+, LTE|
|Buttons||Physical or virtual|
|Other||Presence and location of power, volume, and camera buttons|
Whose fork is this?
Things aren't much better on the software side. There have been 12 major Android releases since 2008, and old versions have remained in use long after their release. The latest version, 5.0 Lollipop, has only a 5 percent market share. Even the most popular version, 4.4 KitKat, has just a 41 percent market share.
Aside from the official Google versions, there have been numerous unofficial forks from companies like Amazon, Cyanogen, Nokia, and Xiaomi. Particularly noteworthy is the MIUI fork from #3 phone maker Xiaomi, which claims 100 million users. Cyanogen also has broad support, with more than 50 million users.
The result? By the end of 2014, there were an estimated 19,000 unique Android device types in use worldwide.
Device manufacturers also introduce fragmentation when they pre-install apps that add, replace, or duplicate functions that normally come with Android. These include apps for email, messaging, clock, calendar, camera, Internet browser, and other utilities.
Meanwhile, iOS 8 is already at more than 75 percent of all devices—and it runs on iPhones released more than three and a half years ago.
Fragmentation hurts innovation
Android fragmentation benefits consumers in the short term because competition drives prices down. In the long term, however, it hinders app and device development.
This has always been a problem for Android, but the emergence of wearables and the IoT are elevating the issue into a crisis. Simply put, trying to connect multiple devices is much harder when the underlying platform is so unpredictable.
On the hardware side, fragmentation may result in the following:
+Apps may stop functioning on some CPUs. +Games may not run smoothly on some GPUs. +Apps may be too small or too big on some displays. +Small RAM may prevent an app from being installed, force-close it during execution, or create conflicts with other running apps. +Apps that use Bluetooth may get disconnections, slow data transfers, or even corrupted data if the hardware is not 100 percent compatible with the way the app implements the communication protocol. +Location data may not be available fast enough or may not be accurate enough. +Syncing with a remote server may take much longer on some devices, potentially triggering an error condition even when there is none.
On the software side, Android fragmentation has led to the following: +Developers must build apps for the lowest-end devices they want to support and thus not take advantage of newer features. +Newer apps may not be installable on older devices, cutting off many potential users. +Varying user-interface elements and button placements complicate support and make it hard to deliver a consistent user experience. +Apps with questionable quality and stability may be unpredictable and cause difficult to diagnose problems with your own app. +Fragmentation makes Android development costs higher than iOS. Android requires a greater number of test devices, takes longer to run tests, and results in an increased volume of support requests from the public. The IoT makes things much worse because it expands the already huge test matrix of phones and OS versions to include a vast universe of wearables and other devices.
It may be tempting to skimp on compatibility, performance, and stability testing, but doing so just pushes quality assurance onto users. The resulting support burden and reputation damage may be even more costly than QA testing.
Building an Android walled garden
Apple's iOS platform has been largely criticized for its locked-down hardware, forced OS updates, and strict app-store submission process. But over the years iOS users have realized that this walled garden approach has given them a more trouble-free, predictable, and enjoyable experience. Even Google knows this, and it has slowly introduced hardware and software changes to form its own walled garden.
When Google launched Android, it partnered with HTC to build a reference device called the G1. Google hoped that other manufacturers would copy the G1, making it easier to deploy OS updates and write apps that worked across devices. But Google did not have control over its partners, and even HTC came up with its own non-reference mobile devices. Google has since released a series of reference devices, but its market share shrank with each release. Today, Google's Nexus 5 has less than 1 percent market share.
Reference designs not a quick fix
In response, the company worked with top manufacturers to release Google Play editions of their phones. These devices ran the reference version of Android, free from custom apps and features, and were guaranteed the same speed of updates as the Nexus devices. Unfortunately, Google Play phones suffered from high prices and limited availability, and the program appears to be dead.
Google's latest effort to lessen fragmentation is its Android One initiative. One offers a reference hardware design for an entry-level smartphone, an OS that is very close to the reference Android version, and early access to software updates. Nine manufacturers have already released their own branded Android One devices, targeting developing markets in Southeast Asia. How much success Android One will have is unknown, but the biggest obstacle for Google is that more capable yet cheaper Android phones are now available in the market.
Un-opening the software
Google's software efforts are bearing more fruit. The biggest change is Google Play Services, which pulls Google facilities for maps, places, location tracking, health, gaming, and others out of the core OS. By separating these services, Google can unilaterally update older devices—all the way back to Android 2.3—without user or OEM intervention. This change has significantly reduced (but certainly not eliminated) Android fragmentation, at the cost of a less open architecture.
Last but not least, Google has silently implemented machine-assisted human reviews of app store submissions to reduce junk, malware, and pirated and illegal content. It has also started a "designed for families" program for app developers, which entails a rating system as well as a specialized review process.
Who's better for IoT?
Given Android's market dominance, it's likely that the platform will play a key role in the future of IoT and wearables. Developers, however, should take a realistic view of the platform's potential and limitations. While Google has done a commendable job of addressing fragmentation, the problem is far from solved.
With billions of smartphones already in use and device sales clearly beyond Google's control, Android fragmentation will persist, leaving the door open for iOS to be the platform of choice for the IoT.