Android: What, Me Fragmented?
Android brands are almost as diverse as the models, openSignalMaps discovered. Further, the application programming interface (API) level, meaning the Android version, has also become more fragmented over time.
These facts bear out the general impression that Android is a fragmented operating system. However, that's not necessarily a bad thing.
Fragmentation "may make things tricky for developers, but by opening up to so many markets by its presence on such a diverse range of devices, it also affords developers huge opportunity," James Robinson, the lead Android developer and cofounder of OpenSignalMaps, told LinuxInsider.
"Credit should also go to Google's Android team, who have continued to provide tools that help developers target many devices," he added.
What Is Fragmentation, Anyhow?
"Fundamentally, the core of Android doesn't change; what Google's giving you is API access to different functionalities" when it releases a new version of Android, such as Honeycomb or Ice Cream Sandwich, Michael Morgan, a senior analyst at ABI Research, told LinuxInsider. "They're bringing to the table new things you can now do with your app. It doesn't mean you can't do the old things any more, it just means you can do new things with it."
That means older apps will merely be unable to access additional functions offered by new APIs, Morgan pointed out. On the other hand, devs don't necessarily use all the functions of any API. "Just because you have a giant supermarket doesn't mean you have to buy everything in it," Morgan explained. "It depends on what you want to do with your apps."
For supporting screen size, devs can either use dynamic design or hard-code support into their app. "Say you want 20 percent of whatever screen a device uses to be blue no matter the size of the screen," Morgan said. "That's one way to program. But, for graphic designers and people who stake their lives on how beautiful they can make things, they can hard-code the design and have only three screens it can work on."
The Agony and the Ecstasy of Fragmentation
Android has a "good API set," Sam Abadir, chief technology officer at AppMobi, said.
On the other hand, "it's becoming impossible to target [Android] as a platform since almost every device has its own aspect ratio and resolution," Abadir told LinuxInsider. "There are so many OS versions -- 2, 3, 4 -- that, in combination with OEM modifications, the cross-product results in thousands of variations on a testing matrix, meaning it's impossible to test [the product] thoroughly."
Android fragmentation "is definitely a problem, but it's not insurmountable," Andy Jones, senior Android developer at PayAnywhere, told LinuxInsider. "The important thing to do is identify the minimum API level that your app will run well on and program for that API level."
Although there were "significant paradigm shifts" between the smartphone and tablet versions, meaning Gingerbread and Honeycomb, generally speaking devs don't need to rewrite code in order for the newer versions of Android to run their app, Jones said. In that case, however, the apps won't take advantage of the better APIs in the newer versions of Android.
The Thousand Faces of Android
Custom ROMs are "implemented by every major carrier and every third party company that I know of" because they are "the only way they can distinguish themselves," PayAnywhere's Jones said. However, the differences between ROMs "generally don't hurt application developers -- as long as one uses mostly the generic Android APIs."
Screen support "is by far the biggest fragmentation problem," Jones stated. Different image and layouts may need to be created for different screen resolutions, densities and sizes, especially if the accuracy of taps, is very important.
Another problem is that some brands fail to correctly implement APIs, openSignalMaps' Robinson pointed out. For example, getting signal strength updates and tower locations "doesn't work on many TouchWhizz devices from Samsung."
While Google "does good work explaining the API changes and how to handle things when old functions are killed off, they need to do more to ensure that the APIs are implemented as uniformly as possible within the custom user interfaces," Robinson stated.