If I created an app using 1.5 will that app work on all devices that have version 1.5 - 3.2 (highest current version)? Or are there issues between the versions? I understand 3.0 is the tablet version so an app made for 1.5 probably won't look good, but will it work without having to create specific version targeted versions of the app?

Also, why does it take so long for some phones to get updates? Is Android so tied to specific device hardware that upgrading it is not possible without other device specific modifications? I would have expected that if a phone is able to run a new version it would get it OTA, but reading around it seems a lot of android users complain that it's taking so long to get x update or that they don't even know if they will get it.

2 Answers
2

From logical point of view if you create an app with SDK 1.5 it should run on devices with OS version 1.5 and higher. But reality is a bit different.

The same application that works on Samsung device with 1.5 may not work on HTC with the same os version and vice versa. Also there is no 100% guarantee that it will work on other devices with newer OS versions.

Why?

There is no strict standard on hardware/software implementation among all Android manufacturers. Every manufacturer makes his own device and makes his own version of Android OS for the device which complies to the relevant SDK version, but has some additions/differences.

Screen resolutions - You can have a varying degree of screen sizes between phones (and tablets). Solution? Developers have to make sure their UIs scale gracefully. It's not much different than creating websites for different screen resolutions. This isn't a new problem. Apple "solved" this by forcing their phones to have one resolution (plus a 2x resolution which make it easy to scale things up). See Android dev guide for some more information.

Hardware - No phone is exactly like another phone. Beyond screen sizes, we have different processors (or multiple!), different video graphics, different sizes of memory (on board and external), different keyboards (or no keyboards!), (optional) notification lights, (optional) track balls, (optional) cellular antennas, etc, etc, etc. There are at least 500 different types of Android devices out there. One thing may run great on my phone, but not yours due to different hardware limitations.

Operating System - Each flavor of Android brings out new APIs for developers to use. This means that developers have to conditionally check whether or not they can use these APIs based on the device in use. Additionally, carriers/manufacturers can be slow at updating (or may never update) their devices' software. So some devices may "lag behind" in updates. Even more: some manufactures like to skin/theme Android to their own liking (TouchWiz, MotoBlur, etc.). This can cause some fragmentation as a stock version of Android behaves a bit different than a device with a skin.