Запутался в Android API и совместимости - PullRequest
4 голосов
/ 02 июня 2010

Я купил HTC Incredible и погрузился в мир андроида! Только для того, чтобы полностью запутаться в уровнях API и обратной совместимости.

Мое устройство работает под управлением ОС 2.1, но я знаю, что большинство устройств работают под управлением 1.5 или 1.6; и скоро операционная система 2.2 будет работать на новых устройствах. SDK претерпел такие огромные изменения, что даже константы были переименованы (например, из VIEW_ACTION в ACTION_VIEW). Методы были добавлены и удалены (onPause заменяет предыдущий вызов и т. Д. Al).

Итак, если я хочу написать приложение, которое будет работать с версии 1.6+, значит ли это, что я должен установить и написать свой код с использованием API 1.6; тогда проверить на более поздних версиях? Или я могу написать с помощью 2.1 SDK и просто установить уровень minSDK и не использовать «новые» функции?

Я никогда не работал с SDK, который так сильно меняется от выпуска к выпуску! Поэтому я не уверен, что делать ....

Я прочитал статью на сайте разработки Android (и это сообщение о переполнении стека, которое ссылается на него: Следует ли перестраивать устаревшее приложение Android с помощью SDK 2.1? ), но оно все еще не очень понятно мне. Любая помощь будет оценена

Ответы [ 2 ]

5 голосов
/ 02 июня 2010

SDK прошел через такой огромный изменения, что даже константы были переименован (из VIEW_ACTION в ACTION_VIEW например). Методы имеют были добавлены и удалены (onPause замена предыдущего вызова и т. д. al).

Это было два года назад, на бета-версии платформы, до того, как появились устройства для доставки. Начиная с Android 1.0, очень мало что нарушает прямую совместимость, в основном в области настроек, которые были перенесены в безопасный API, поэтому приложения SDK не могут связываться с ними.

Итак, если я хочу написать приложение это будет работать с 1.6+, делает это значит я должен установить и написать свой код с использованием API 1.6; затем проверить более поздние версии? Или я могу написать с помощью 2.1 SDK и просто установите minSDK уровень и не использовать "новые" функции?

Похоже, они взаимоисключающие. На самом деле они в значительной степени идентичны.

  • Держите ваш набор инструментов на последней версии инструментов разработки Android
  • Поместите minSdkVersion в манифест, чтобы указать, какой самый низкий уровень API вы хотите поддерживать
  • Поместите targetSdkVersion в манифест, чтобы указать, каков ваш «целевой» уровень API, чтобы Android мог применять некоторые помощники по совместимости, если ваше приложение работает на более новой версии Android (обычно вы «целитесь» на текущий текущий). Уровень API)
  • Пишите ваш код в основном на уровне API, указанном вами в minSdkVersion, опционально используя отражение или условную загрузку классов для доступа к новым API на устройствах, которые их поддерживают
  • Тестируйте все, что вы можете получить, по крайней мере, эмуляторы для разных уровней API
3 голосов
/ 02 июня 2010

Вы можете использовать текущий SDK и установить уровень minSDK на любой желаемый уровень.Если вы сделаете это, вы не сможете использовать любые функции, которых нет в minSDK.Хотя это также хорошая идея, чтобы протестировать его на всех версиях SDK с помощью эмулятора.

<uses-sdk minSDK="4" targetSDK="8"/>

Это позволяет понять, что вы нацеливаетесь на 2.2, но минимальный уровень SDK, на котором вы хотите, чтобы ваше приложение работалоэто 1.6.Делая это, вы можете использовать некоторые из новых XML-материалов в более новых версиях, таких как support-screen и различные drawables для разных экранов и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...