Fragmentation on Android is misunderstood. Here's why.
1. Some say the problem is that huge variances in hardware as compared to the iPhone. This isn't true. When you develop for iPhone hardware, what CPU's do you account for? You account for the ARMv6 and ARMv7 Instruction sets using the ARM11 and ARM Cortex A8 MPCores (yes, the iPhone 3G is still supported, which uses VERY old technology). As for graphics chips, you account for 2 different GPUs right now, both of which support Open GL ES 1.0, the latter also supporting 1.1 and 2.0. Not sure if the original supports 1.1. Android has the exact same variance in hardware, except that you also have to deal with the Scorpion MP Core. Since this is pretty much just an A8 on steroids, most developers just code for ARM11 and A8.
2. So the next level of fragmentation is the OS itself. Some people say that you have to code for multiple OSes. Not necessarily true. The biggest gap in compatibility was 1.5 to 1.6. Heck, 1.6, 2.0, and 2.1 all use the same kernel. Aside from OS specific features, if you make an app compatible with 1.6, it should work fine on any newer version.
3. The main problem with fragmentation on the Android OS right now is the screen. On iOS, you have one aspect ratio (3:2) and two resolutions to code for. Since they use the same aspect, you could just support the lower resolution and let the OS scale the image for the newer screen. On Android, you have several different aspect ratios and many different resolutions. Windows handles this by using a windowing system. Linux handles it by using the X-window system. Basically, the OS knows to stretch, scale, window, or letterbox as needed. Android doesn't, so the developer has to deal with it. THIS is where fragmentation affects developers the most.
So yes, fragmentation is an issue, but it's not because of the OS version or the guts of the device. It's the screen and a lack of a true windowing system.
1. Some say the problem is that huge variances in hardware as compared to the iPhone. This isn't true. When you develop for iPhone hardware, what CPU's do you account for? You account for the ARMv6 and ARMv7 Instruction sets using the ARM11 and ARM Cortex A8 MPCores (yes, the iPhone 3G is still supported, which uses VERY old technology). As for graphics chips, you account for 2 different GPUs right now, both of which support Open GL ES 1.0, the latter also supporting 1.1 and 2.0. Not sure if the original supports 1.1. Android has the exact same variance in hardware, except that you also have to deal with the Scorpion MP Core. Since this is pretty much just an A8 on steroids, most developers just code for ARM11 and A8.
2. So the next level of fragmentation is the OS itself. Some people say that you have to code for multiple OSes. Not necessarily true. The biggest gap in compatibility was 1.5 to 1.6. Heck, 1.6, 2.0, and 2.1 all use the same kernel. Aside from OS specific features, if you make an app compatible with 1.6, it should work fine on any newer version.
3. The main problem with fragmentation on the Android OS right now is the screen. On iOS, you have one aspect ratio (3:2) and two resolutions to code for. Since they use the same aspect, you could just support the lower resolution and let the OS scale the image for the newer screen. On Android, you have several different aspect ratios and many different resolutions. Windows handles this by using a windowing system. Linux handles it by using the X-window system. Basically, the OS knows to stretch, scale, window, or letterbox as needed. Android doesn't, so the developer has to deal with it. THIS is where fragmentation affects developers the most.
So yes, fragmentation is an issue, but it's not because of the OS version or the guts of the device. It's the screen and a lack of a true windowing system.
Upvote
0