Цель сборки проекта Android

У меня есть существующее приложение с минимальной версией android:minSdk для Android 2.1. Я заметил, что мое приложение работает вяло на планшетах Android (3.0+), поэтому я хотел включить аппаратное ускорение, которое было добавлено в Android 3.0.

Где я запутался в eclipse в разделе «Свойства проекта» -> «Android». Я изначально выбирал Android 2.2 (API 8), но для того, чтобы новое аппаратное ускорение работало, мне нужно выбрать Android 3.0 (API 11). Мой вопрос: каков риск при переключении моей цели сборки проекта на Android 3.0? И вообще, должен ли я просто выпускать компиляцию с последней целью сборки проекта? Что делают другие люди? Вы просто всегда выпускаете с последним API?

Я пытался немного поискать, но смог найти только обсуждения android:minSdkVersion и android:targetSdkVersion, но ничего о фактическом Android API, используемом в сборке.

Спасибо за любую помощь


person w.donahue    schedule 02.08.2011    source источник


Ответы (1)


Я думаю, вы не читали документацию

http://developer.android.com/guide/topics/manifest/uses-sdk-element.html

android:minSdkVersion

Целое число, обозначающее минимальный уровень API, необходимый для запуска приложения. Система Android не позволит пользователю установить приложение, если уровень API системы ниже значения, указанного в этом атрибуте. Вы должны всегда объявлять этот атрибут.

android:targetSdkVersion

Целое число, обозначающее уровень API, на который нацелено приложение. С этим установленным атрибутом приложение говорит, что оно может работать в более старых версиях (вплоть до minSdkVersion), но было явно протестировано для работы с указанной здесь версией. Указание этой целевой версии позволяет платформе отключить параметры совместимости, которые не требуются для целевой версии (которые в противном случае могут быть включены для обеспечения прямой совместимости), или включить новые функции, недоступные для старых приложений. Это не означает, что вы можете запрограммировать разные функции для разных версий платформы — это просто информирует платформу о том, что вы протестировали целевую версию, и платформа не должна выполнять никаких дополнительных действий для обеспечения прямой совместимости с целевой версией.

android:maxSdkVersion

Целое число, обозначающее максимальный уровень API, для которого предназначено приложение. В Android 1.5, 1.6, 2.0 и 2.0.1 система проверяет значение этого атрибута при установке приложения и при повторной проверке приложения после обновления системы. В любом случае, если атрибут android:maxSdkVersion приложения ниже уровня API, используемого самой системой, система не позволит установить приложение. В случае повторной проверки после обновления системы это эффективно удаляет ваше приложение с устройства.

Будущие версии Android (помимо Android 2.0.1) больше не будут проверять или применять атрибут android:maxSdkVersion во время установки или повторной проверки. Однако Android Market по-прежнему будет использовать этот атрибут в качестве фильтра при представлении пользователям приложений, доступных для загрузки.

person Dharmendra    schedule 02.08.2011
comment
Итак, если мой targetSdkVersion равен 11, а мой minSdkVersion равен 8, то я не могу использовать любой API, доступный только после 11, чтобы убедиться, что он работает на устройствах, работающих с SDK версии 8? Верно? - person Sudarshan Bhat; 19.07.2012
comment
Если вы хотите использовать некоторые функции API 11, вам необходимо установить targetSdkVersion ›= 11. Также, если вы хотите поддерживать это же приложение в более ранней версии, предположим, что вы хотите поддерживать его в API8 и выше, тогда вам следует установить minSdkVersion = 8. Теперь ваше приложение работает на API 8,9,10 и 11, но функция доступна только в API 11, поэтому во время выполнения вам нужно будет проверить уровень API устройства и, если он поддерживается, используйте функцию функция еще не использовать или создать альтернативу. - person Dharmendra; 19.07.2012
comment
Спасибо за ответ. Хотя делать такие вещи кажется джугааду! Поэтому я не уверен, что это лучший способ сделать это. - person Sudarshan Bhat; 19.07.2012
comment
Итак, что на самом деле Project Build Target вы можете выбрать в Eclipse? И почему он может отличаться от android:targetSdkVersion? - person davids; 09.10.2012
comment
@davids Вы можете обратиться на этот форум для ваш вопрос - person Dharmendra; 09.10.2012