#ifdef
для обработки во время компиляции, и даже если бы это было общепринятой практикой в Java (это не так, но существуют сторонние инструменты для поддержки этой концепции), это вряд ли поможет вам, так как вам нужночтобы принять решение во время выполнения о среде, в которой вы работаете (если вы не хотите создавать несколько пакетов?).
Как указывает ссылка fabricemarcelin (http://stackoverflow.com/questions/3506792/android-api-version-programmatically), вы можете определить версию своей системы времени выполнения)достаточно просто. Вам нужно будет записать ваше приложение в API, который, как вы знаете, будет существовать во время выполнения (система 2.2, если это ваш нижний предел), и вам нужно будет принять решение во время выполнения о вызове функций 4.0. Для 4.0функциональности, вам, вероятно, понадобится найти свои API-интерфейсы с помощью рефлексии.
Я использовал рефлексию для доступа к вещам, которые доступны только в более новых системах Android, и он работает хорошо. Один совет - организоватьрасположение рефлексии / API в начале вашего приложения, если это разумно, а если нет,хотя бы договориться об этом только один раз за звонок.