В вашем приложении есть 3 элемента управления для версии SDK.
<uses-sdk android:minSdkVersion="integer"
android:targetSdkVersion="integer"
android:maxSdkVersion="integer" />
minSdkVersion устанавливает минимальный уровень API, на который будет разрешено устанавливать ваше приложение.
targetSdkVersion - это версия sdk, против которой фактически будет построено приложение.
maxSdkVersion - это то же самое, что и минимальная версия SDK, но, как правило, его не следует использовать.
Предполагается, что каждая версия Android совместима с предыдущими версиями, поэтому часто решение состоит в том, чтобы установить минимальную версию SDK. В вашем случае вы можете выбрать 2.3, и ваше приложение будет отлично работать на 4.0. Однако, если вы сделаете это, вы не сможете использовать какие-либо специфичные для 4.0 изменения API, многие из которых относятся к планшетам, и вы пропустите.
Если вы хотите воспользоваться преимуществами только 4.0, вы можете либо загрузить на рынок два отдельных приложения (большая часть кода может быть одинаковой), как описано в этом сообщении в блоге , или если это очень маленькие фрагменты кода, вы можете определить версию API во время выполнения, как подробно описано в в этом вопросе о стеке .