targetSDKVersion
The version you are compiling. If you try to use any new apis, you just get compiler errors, because the compiler will not know what these apis mean.
minSdkVersion
The minimum version of sdk that you support. Any device below this will not see or cannot install your application from the market.
Beware that if you use api from the target sdk, which is not available in lower versions, they will compile but will not work and may lead to your application crashing. For this reason, you will need to create your code with this in mind.
For example, perform type checks
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) ... Use ice cream sandwich apis ...
to ensure that users who are prior to API 14 are not crashing.
Edit:
List of API changes from version to version http://developer.android.com/sdk/index.html
For example, a review of the new in release 4.0.3: http://developer.android.com/sdk/android-4.0.3.html
And really the real details of this release: http://developer.android.com/sdk/api_diff/15/changes.html
source share