Я разрабатываю приложение для Android в Eclipse. Я хотел бы ориентироваться на самые разные устройства и версии SDK (например, я могу опционально поддерживать мультитач). Я понимаю рекомендуется выделить все новые функции в отдельный класс и использовать отложенную загрузку, чтобы загружать только этот класс при запуске. время, если хост-устройство действительно поддерживает эту функцию.
Недостатком этого подхода является то, что мне приходится компилировать весь свой код с SDK новейшей функции, которую я хочу использовать. Это означает, что если какая-то новая функция просочится в мой независимый от версии код, компилятор больше не сможет ее уловить.
Я хотел бы, чтобы в Eclipse была возможность скомпилировать мой проект со старым Android SDK, чтобы убедиться, что мой код, не зависящий от версии, в порядке. Я бы хотел, если это возможно, не перемещать свою систему сборки из Eclipse. Меня устраивает, что эту старую сборку SDK немного неудобно запускать.
Я думаю, что это сводится к выполнению некоторой условной компиляции (или условной компоновки) внутри Eclipse? Например, в моем проекте при сборке с SDK-1.6 я хотел бы оставить исходный код MultiTouchHandler.java вне сборки. Однако я не уверен, что в Eclipse можно выразить такие типы сборки.
Похоже, что хакерское решение просто вручную меняет версию SDK проекта, перестраивает и просматривает ошибки и игнорирует «ожидаемые» ошибки. Решение overkill, похоже, пишет мои собственные сценарии сборки ant/maven/make.
Похожие вопросы
Этот вопрос: Управление версиями и общие кодовые базы с Eclipse охватывает аналогичную тему. , но потребует перемещения всех классов, зависящих от версии, в отдельные библиотеки. (И я думаю, что у меня все еще будет проблема с несколькими типами сборки в Eclipse.)
Этот вопрос: Построить несколько конфигураций проекта с помощью eclipse подразумевает, что я должен перейти к внешняя система сборки (например, ant или maven), но это намного больше работы, чем просто время от времени пытаться собрать старый SDK.