Yes there is fragmentation on the Android side of things. I have code in place to check for DPI of the device to tweak things in my custom controls. There are also issues on the iOS side of things so let's just cut the crap here Apple.
I have a UIAlertView with a text entry field in it. Under iOS 4+ it works fine. The UIAlertView is moved up and out of the way of the on-screen keyboard. Under iOS 3.x it is hosed. Since Apple leaves things centered on screen keyboard or not adding a control to an UIAlertView hoses you. Used to be people could not even get the UIAlertView to rotate. Nice UI there Apple, even today you can't rotate the simple calendar.
I can get it to work if I lock into a mode - portrait or landscape - but if the user rotates during the view I can't figure out a way to move the current UIAlertView. I have a pointer to it, I can run transforms on it, I can reset its center but nothing has any affect once it is on screen. Sure, the OS will move it about but I can't get it to move.
Time to punt and move on. I will just have our app require iOS 4+ as most phones run this and we are targeting Doctors who tend to upgrade at will.
I do see various posts on how to add code to check for older iOS versions. There is fragmentation on the iOS side of things. The original iTouch and iPhone are stuck in 3.x land never to move forward. As a developer you have to decide when to punt. We support Android 1.6 and newer only. That is a pretty old version. 3.x is not that old but also not worth too much hassle in the big picture.
Even Xcode does not what you playing back in 3.x land. They have one emulator - a combination 3.2 for the iPad and iPhone. You get to 2x your iPhone app to test it. Screw those bastards! Hell their battery should have died by now anyway right?