Looking at the Android Operating System
The term Android can refer to either an Android mobile device or to the Android operating system. The Android operating system powers all Android devices. Think of it as the underlying software that instructs your device what to do, much like how the Windows operating system powers laptop and desktop computers.
When you install an Android app onto an Android device, you are installing an app that was written specifically for the Android operating system. You can install Android apps onto a Windows computer — and even on Macs and Linux PCs — but only if the computer is running special software called an Android emulator, which creates a virtual Android device on your computer.
Speaking of Linux, the Android operating system is actually an offshoot of the Linux operating system. Since its inception, however, Android has developed into a robust, independent operating system designed for mobile devices, and it’s not actually directly compatible with Linux.
Dealing with fragmentation on Android devices
Android is an open source operating system — a large community of companies and developers maintain it and contribute toward developing newer versions of it. This all takes place under the auspices of Google, which bought the company (Android, Inc.) that first developed the Android OS.
Unlike Apple’s iOS operating system for mobile devices, the Android operating system’s ongoing development isn’t hidden behind lock and key. In fact, about 80 companies are members of the group — the Open Handset Alliance — that contribute towards the further development of the Android operating system.
All of this openness allows for innovation from many different sources. This also allows for many different Android devices in all shapes and sizes, which creates a compatibility problem for the app developers. The compatibility issue with Android devices has even got a name: fragmentation.
Manufacturers can modify the Android operating system as they see fit for their devices. This allows them a way to differentiate their devices from their competitors’ devices, by adding unique features. This also results in different customized versions of Android running on different devices.
An example of this is that mobile phone maker HTC inserts its own HTC Sense user interface into many of its Android phones, whereas Samsung puts its own TouchWiz user interface into its Android devices. The following figure shows a couple of screens from the Samsung Epic 4G Android phone.
Compatibility issues for Android apps
Mobile device manufacturers also control which version of the Android operating system powers their devices. Just because an update to the operating system is available doesn’t mean that a manufacturer is willing or ready to update a device’s operating system.
Another big differentiator between devices is the hardware that runs them. Some Android devices have big screens, fast processors, and lots of bells and whistles; other Android devices have tiny displays, slow CPUs, and very few extras. And there are plenty of Android devices that fall in between these two extremes.
All these differences between Android devices wind up creating huge headaches for app developers. They need to try to ensure compatibility on many different devices, using dissimilar hardware, running various versions of the Android operating system, and must take into account any customizations made to the Android operating system by the manufacturers.
The end result is apps mayhem. In some cases, the apps simply won’t run on some devices. Other times, the apps run, but certain features won’t work. And in some instances, the apps appear to run fine for a few minutes, but then suddenly stop working.