Google is the main reason for fragmentation on Android with their lack of standards. The phone design is irrelevant, again, look at the Galaxy for exapmple Same CPU/Ram as the Nexus S and plenty of storage yet it isn't getting ICS. Samsung claims "hardware limitations" yeah it limits you buying the S II
ok wow.. try reading before you post ok?? i never said hardware caused fragmentation. Software does.. like HTC sens , MOTO blure....
Goole them self dont cause the fragmentation ( they actually try to avoid it )
but because of the OPEN SOURCE codes... OEM's (Samsung,HTC,LG,Sony ) can change the codes with OUT sharing it with Google... so when the new update comes out Google cant write compatible codes to mach the once from the OEM's codes. witch causes fragmentation. or lack of compatibility,
Open source on android works liek this:
1.Google writes a code then they share it with the world ( OEMs).
2. then the OEMs uses the code and adds extra features to it ( like HTC sens , MOTO BLURE ) witch they DO NOT need to share with the rest of the world.( OEM secrets)
so when google makes the NEXT version (the update), they have NO idea what HTC,Samsung or Motorola did to the past codes. so they cant adapt the update to be compatible with old phones ( unless you put a cocked ROM)
hence causing fragmentation.
There are different open-source licenses that have different use conditions, from the GPL (GNU General Public License) -- which allows "free distribution under the condition that further developments and applications are put under the same license" -- to more liberal licenses like the Apache License, which doesn't require modifications to be open and have the source code available. Android uses both of these licenses
Oem's use the: Apache License ( meaning they dont need to share, hence causing fragmentation when new updates come out.)
fully explained here:
http://www.androidcentral.com/what-open-source-android-z