Ironically the elegant answer to fragmentation is to fragment the OS.  Fragmentation on Android comprises developers:

  • dealing with 4 different versions of the Android OS (1.6 - 2.1);

  • dealing with at least 3 different screen sizes/aspect ratios; and

  • dealing with different hardware.

If developers do their job well then fragmentation shouldn't be a problem for or noticed by users.

The first of the three things identified above shouldn't really be a problem.  Devices are upgradeable and so should simply upgrade to the lastest version of the OS over time.  Thats the theory anyway.  As it turns out device vendors are not very good at keeping old devices up to date, they are too busy beavering away on their next big thing.  So devices get orphaned or at least fall way behind the curve.

Google has come up with an elegant solution - break the OS apart.  There is no reason for it to be monolithic.  So break out many of the key features and make them seperately updateable via the marketplace.  This removes them from the purview of the device vendors so users of older devices will get the cool new mapping, email, wifi software etc at the same time as everyone else.

By reducing the amount of the OS that device vendors need to look at before dropping a new version to their users this will hopefully mean that core OS updates are less work and happen more regularly as well.

That's the theory anyway.