What is Android Fragmentation??
Android Fragmentation means that applications that are built for one variant might not work on others. For example, the applications that are designed to run on IceCream Sandwich won’t be able to run on Gingerbread. Just like Windows, the applications that require Windows 7 operating system might not run on Windows XP. There is some degree of incompatibility potentially between the two. In Android there are thousand different devices to choose from and those different devices need not be cross compatible with each other, add to that you have a fragmentation where the experience on one device maybe completely different from the other.
Android is fragmented because it is available on variety of devices, all offer different screen size, processors, etc. It is not a shortcoming of a platform. It is a shortcoming of the way developers have treated the platform. Fragmentation is also a good thing because it gives a rich experience to a wide range of people. From the power users with super phone to a naïve user with little experience about the platform but want to keep in touch with technology.
Applications that are built for supporting a specific form factor or resolution might not be compatible with devices that have different characteristics in those areas. Some applications that run on tablets don’t run on phone. Due to several variants of Android available in the market the developer cannot make one application to work on all variants. When an application starts it maps pixel-to-pixel and it expects a particular screen size. The WVGA resolution (800×480) was the standard resolution and the developers were quite used to it. But then the qHD (960×540) came and the apps that were made for the WVGA resolution wouldn’t fill the screen resolution and hence crashes.
From the developer’s point of view, creating different version of the same application and maintaining them is expensive. There are so many devices running on so many different Android versions which confuse the developers and the user does not get consistent experience. There are Development Guidelines by Google which offers the developers to make applications that can be scaled to different screen densities and pixels. But there are developers who don’t follow those guidelines and release the applications.
From the end-user point of view, when you’re running on Gingerbread and try to install some new good app/game it simply won’t show up in the Play Store because it’s an IceCream Sandwich-only app (Eg. Boid).
Google cannot be blamed; it’s the OEM’s fault of not pushing the updates. The themed version of OS takes weeks to refactor their custom framework to work with the new platform. A heavy-themed release. Timescape by Sony, MotoBLUR by Motorola, Sense by HTC, etc are the culprits. Google is trying to get better at this, it has clamped down on the amount of customizations that can be made, wiping down additional framework that might confuse the user and the developers. A developer quotes “There are simple, well-documented patterns to implement the same functionality for filtering your code. There is zero reason that you should not be able to write an application that targets every platform, every screen, and every device.” Android was causing less fragmentation if Google wasn’t around multiple manufacturers.