I don't understand the whole "fragmentation" thing. It's not fragmentation, it's a natural effect of development on a (mostly) open code-base. Google releases Android, then AOSP. Manufacturers can modify it as they see fit, but it's still Android.
I don't know why automatically having various choices on user interface is somehow a downside.
If Amazon wants to put another user interface on top of Android, great. Let them. Why is that a bad thing? Why is "fragmentation" thrown around like it's somehow the silver bullet that makes Android bad?
I'm guessing you've never used Android.
Fragmentation hurts apps (and end users) because developers
can't know all the possible hardware and software combinations that a user may have.
It's the same thing with Windows. Think of all the time a developer spends on a program. The program it, test it, find it works GREAT, and then they release it ... only to be flooded with a million bug reports from users running a million different configurations, all saying "it doesn't work!".
There is Google open source, but then each device manufacturer tweaks a little for their device. Some leave it mostly stock, but many add their own interface, their own way of working with the file system, their own resolution settings, etc. Then there are community projects like CyanogenMod (and a hundred spin-offs). An app made for Motorola Droid may work with the out-of-the-box software, but may crash with the same device running CyanogenMod, or MIUI, or whatever else the user may have on it.
You end up with apps that force close, appear corrupted on the screen, don't run at all, run at a tiny resolution (320x480) when the screen is running at 1024x600 (with a ton of empty space around the app), or just generally unknown and unpredictable behavior.
Google even lets developers white list apps so they only install on specific devices. Maybe the developer tested 6 devices, and so they only white-list those. You end up with 500+ other Android devices that can't install it from the Market. If they remove the white-list and let anyone install it, then
maybe it will work fine. Many times it doesn't.
Some developers even say things like "This doesn't work with XXX device" in their product description (but still lets it be purchased and installed by that unsupported device).
Fragmentation is a huge issue with Android. iOS developers usually don't have to worry too much about the platform. Pick iPhone/iPod or iPad resolution. 5.0, 4.3.x, or 4.2.x (and maybe 3.1.x) support. Android developers have to worry about 4.x, 3.x, 2.3, 2.2, 2.1, and 1.6, a hundred different resolutions, custom launchers, DPI issues, other running programs, etc. Plus with Google's "freedom", not only do you have to worry about other programs running, you have to worry about any random program having complete and total
free reign on the system, which may cause your application to crash.
Fragmentation was listed as the #1 issue with developers. Google knows this, and is trying to makes things better with Android 4.0.
"As Android Splits, Developers Get Frustrated"
http://articles.businessinsider.com...d-market-android-developers-mobile-developers
"Developers frustrated with fragmented Android"
http://www.telecomtv.com/comspace_newsDetail.aspx?n=47453&id=e9381817-0593-417a-8639-c4c53e2a2a10
"Android fragmentation igniting developer burnout"
http://blog.alphasoftware.com/2011/04/android-fragmentation-igniting.html