The Android Problem: Software Version & Hardware Fragmentation
Written by John Thompson on March 27, 2010 · Filed under Software, Tech
Since Google introduced Android to the world with the release of the T-Mobile G1, the uptake of the mobile OS has been impressive, and continues to rise with the release of new devices on the market taking advantage of Googles open source offerings.
A quick look at the Android Market, however, will tell you that Google’s still playing catch up with Apple’s App Store, which has over 100,000 applications in its catalogue. There are many great Android apps out there that can give you some really cool functionality such as Android internet connection tethering. However, Android users are particularly deprived of game titles to choose from, despite some additions that would never be seen on the App Store, such as GBA and NES emulators.
The future of Android itself is one I believe Google must think carefully about. Already, there is a great mixture of devices on the market running different flavours and different versions of Android. Those of you using HTC devices running Android will be accustomed to the Sense UI, but what if you switch devices? If you decided to buy a Nexus One, or Motorola Milestone (known as the Droid in USA), you’d be presented with a phone running a different flavour of Android, with different controls and buttons.
Whilst a problem such as this may seem trivial for the average consumer who are perhaps used to different interfaces for different mobiles, it does illustrate just one of the problems developers face when developing an application for the Android platform. If you’re a games developer, for example, you want to create a game with great graphics, usable controls and support for as many devices as possible. When creating such a game, however, many devices on the market will undoubtedly be isolated. They may be running an older version of Android not supported by the game or may not have hardware capable of running the best titles on the Android Market.
Compare this to the iPhone. Developers have only 3 models to cater for: iPhone, iPhone 3G and iPhone 3GS. Each have similar hardware, they all have screens running at the same resolution (although the iPad has a different resolution for obvious reasons) and there’s not a lot of diversity on the platform. The care Apple takes to make this possible is clearly apparent. When designing the iPad, they made sure that the resolution would cater for older apps by being able to upscale them to full screen without any problems. In doing this, Apple have ensured that developers can create apps that work well, look good and behave the way they should.
This is in stark contrast to the Android Market. You’ll seldom see an app without a comment complaining that it’s force closed on a device, or doesn’t support their device, and this is a problem that Google need to overcome. Even their own apps are incompatible with many phones on the market. Google Earth will only run on ‘most’ phones running Android 2.1, which isn’t very many right now. Also, if ‘most’ phones are supported, which devices aren’t?
Consumers have been promised that the majority of devices will be running Android 2.1 soon, but many users are still running Android 1.6 or lower. Meanwhile, even newer devices are releasing with already outdated versions! As mobile platforms go, Android is becoming increasingly reminiscent of having the same weakness that Windows Mobile ended up with so many different versions on a variety of hardware specifications.
Google needs to give Android more focus and direction. Being an open source OS is obviously a great feature, but restrictions need to be applied to make sure that the platform is safe in the long term. I’m not suggesting that Google be as controlling as Microsoft are being with Windows Phone 7 Series, but if devices were restricted to, for instance, 3 screen resolutions and had to meet certain hardware requirements to run a version of Android (and that version was then kept up to date across all devices), applications could be more stable and compatible. You never know, we might even see some big games companies join the fun!

I personally think that it’ll be great to see Android on so many different handsets and is probably the only way that the iPhone platform can be challenged at this point, but this strength is also it’s greatest weakness.
I’ve not personally got an Android phone yet, but am hoping to get one soon, but one of my concerns with it is that the OS across all the devices do not get updated simultaneously like the iPhones do – having so many different versions makes it tough for developers and annoying for users, for instance, if you’re lacking a lot of OS features and access to apps that have cool functionality because your handset is left behind in Android versions, whereas your friends’ phone which could be the same age, but offer so much more.
I think some kind of standard variations really need to be established that manufacturers can work towards.
I just hope Google are looking back at Windows Mobile and trying to learn from that rather than repeat the mistakes of the past!
I think this is something they’re addressing in Froyo and Gingerbread (Next Android releases), so hopefully things will become more clear!
The learning curve might be steeper, there’s a bunch of BS to put up with and work through, and it just doesn’t have that bouncy, smooth feel that permeates most everything Apple puts out…but I’d so much rather work with those negatives in order to get the customization and options available to me on a good Android phone.
I have tons of stuff ready to be loaded on there, including NES, SNES, and GBA emulators, with near complete romsets (though who knows how much I’ll actually put on there), and an app that lets me use the Wiimote with a classic controller to play games. Umm…holy crap??! That’s frieking awesome. I might have some hassles trying to get everything to work like I want it to, but to me, the end result is worth it.
Maybe it’s not worth it to some people, but personally…yeah totally worth it.
I dunno, there’s only very few things that developers actually need to worry about.
Yes, there are slightly different interfaces, but if you think about it, it’s largely all the same:
- a large-ish touchscreen.
- a d-pad / keyboard
- a trackpad / rollerball
That’s it. Support these three and bam, you got yourself an app that supports all common Android input methods. Adding support for BT gamepads would fall under multiple categories (d-pad and / or trackpad), so it’s not that much more work.