Fragmentation can be a pain, especially when you’re waiting on your carrier to update its bloat-ware when all you want it to get your hands on the latest Android features and bug fixes. However, it turns out that the Android development team are eager to get on top of this problem, as they discussed fragmentation and other questions from an audience of developers at Google I/O.
During the interview, the Android team were quick to acknowledge the problems with fragmentation, but obviously it’s a difficult balance to maintain between supporting older hardware and pushing innovation forward. Dave Burke, the engineering director for Android, had this to say:
There is so much more we can do. And there is also so much more that can be done at the hardware level too. There's lots more innovation that can come.
Of course, the pursuit of more and more features and innovation is mainly what has caused this problem. We’ve already seen that a huge percentage of Android handsets are still running 2.3 Gingerbread, and some are running even older versions like Froyo. Newer versions, like Ice Cream Sandwich, require more system memory, which has left older handsets stuck with dated operating systems regardless of carrier intentions to provide upgrades or not, which is a problem that Firefox has also spotted and plans to put an end too.
We're trying to make Android more efficient so that even entry-level smartphones can use the software,
To address the wider problem, Google already significantly altered Android programming interfaces in Android 4.0. The layered nature of the software was designed to allow hardware designers to update and tweak software more easily, which was supposed to speed up the updating process. But as a result, we’re seeing more and more apps which only support Android 4.0 and higher. Sadly, this appears to be an unavoidable sacrifice of altering the platform in order to produce better results in the future.
Perhaps we’ll see further updates more along the lines of Android 4.1 to 4.2, where new features are added, yet the fundamental operating system remains the same. That way, specific features can be address without having to completely re-work the underlying operating system, and device manufacturers shouldn’t have to worry about updating their software.
The Nexus effect
Burke also alluded to the problems caused by device manufacturer’s non-“pure” Android versions, which again slow down the updating process. It’s obvious that every time a new version of Android is released that it takes some time for third party developers to update their own software, and this costs time and money, which some handset developers aren’t willing to put into such incremental upgrades.
The Nexus experience is clearly beneficial if you want the latest features, and devices like the pure Android Galaxy S4 show that developers believe that consumers have an appetite for more consistent updates.
The Samsung Galaxy S4 will have the Nexus experience, and it will have more timely updates
Perhaps we’ll be seeing a larger number of devices shipping with default Android, or at least a greater consumer choice when it comes to Nexus type devices in the future. But again, this doesn’t really help users already locked out of newer Android features, but it would help reduce future Android fragmentation.
Striking the right balance
We’ve already seen software changes, like Project Butter, attempt to improve the performance of the Android operating system, but so far performance improvements like these haven’t been able to make their way onto lower end devices. Burke stated that although Jelly Bean has gone some ways to improve the performance of Android, there still is lot of work to be done.
In order for these future improvements to have a real impact on fragmentation, Burke suggests the need for more testing on lower end devices. Take the Nexus 4 for example, it’s a pretty high end smartphone and there are lots of users using lower spec devices, so developing for these higher specs is always going to leave the more budget orientated customers behind. But again, this has to be balanced against the demand for new features and innovative ideas. Bringing down memory usage is one thing, but you can’t take advantage of multi-core support or graphics computational power on older hardware.
So, is Google really going to be able to solve the problem of fragmentation? Well, probably not, at least not without forcing the handset manufactures and carriers to update.
Android covers a vast range of hardware configurations, and you’re never going to be able to support aging technologies for ever. However, there are lots of things which Google can do, and is doing, to offer consumers ways out of the problem. Nexus devices are a good solution to the problem, and more Nexus devices, like the Galaxy S4, could offer consumers a range of solutions, hopefully eventually encompassing a wider range of budgets.
Secondly, building Android around lower specifications could help keep updates running on a wider range of devices, but it doesn’t guarantee that carriers and handset manufacturers will update their handsets. However, if the updates can be targeted at more specific pieces of software, rather than OS wide updates, then updates may be easier to rollout. Android 4.1 to 4.2 for example was a much more simple upgrade than 2.3 to 4.0.
There will always be cut-off points for how long handsets can be supported. But hopefully in the future, if Google can achieve these goals, we could see software updates roll out a little quicker, and hopefully have a little more choice regarding which handsets to buy for reliable updates.