In your application, you have 3 controls for the sdk version.
<uses-sdk android:minSdkVersion="integer" android:targetSdkVersion="integer" android:maxSdkVersion="integer" />
MinSdkVersion sets the minimum api level at which your application will be allowed to install.
TargetSdkVersion is a version of sdk whose application will actually be created against.
maxSdkVersion is the same as the minimum version of sdk, but in general it should never be used.
Each version of Android must be backward compatible, so often the solution to the problem is aimed at the minimum version of sdk. In your case, you can target to 2.3, and your application will work fine on 4.0. However, if you do this, you will not be able to use any of the 4.0 specific API changes, many of which are tablet specific, and you will not miss.
If you want to take advantage of only 4.0, you can either download two separate applications to the market (most of the code base can be the same), as described in this blog post , or if these are very small sections of the code, you may find the version of the API during execution as described in fooobar.com/questions/1387431 / ....
Jeffs source share