Могу ли я установить targetSdkVersion меньше, чем minSdkVersion?
Мне нужны функции из Android API-уровня 11, но если я установлю targetSdkVersion равным 10, то получу нужные мне меню в старом стиле (с помощью кнопки меню). Являются ли эти значения "легальными" для установки, или targetSdkVersion должен быть выше или равен minSdkVersion?
(Примечание: кажется, работает!)
2 ответа
Как говорится в документе о android:targetSdkVersion
,
Целое число, обозначающее уровень API, на который нацелено приложение. Если не установлено, значение по умолчанию равно значению, данному minSdkVersion. Этот атрибут информирует систему, которую вы протестировали с целевой версией, и система не должна разрешать какие-либо действия совместимости, чтобы поддерживать прямую совместимость вашего приложения с целевой версией. Приложение все еще может работать на более старых версиях (вплоть до minSdkVersion).
В любом случае,targetSdkVersion
всегда должно быть больше или равно minSdkVersion
потому что ваше приложение никоим образом не может работать ниже minSdkVersion
, Если вы поставили targetSdkVersion
меньше чем minSdkVersion
это означает, что вы говорите системе Android, что вы проверили это приложение на targetSdkVersion
, но это невозможно (поскольку ваше приложение может работать на устройствах с минимальной minSdkVersion
).
Отсюда противоречие targetSdkVersion
всегда должно быть больше, чем равно minSdkVersion
,
Всегда делайте targetSdkVersion
больше чем равно minSdkVersion
,
Вы можете обойти android:targetSdkVersion
версия и использование функции для определенного уровня API. Наилучшим способом решения этой проблемы было бы программно определить версию устройства во время выполнения и перейти к конкретной реализации API, а не указывать жестко закодированное значение.
Посмотреть здесь,
// Make sure we're running on Honeycomb or higher
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
// set the new menu styles
} else {
// do nothing and it will show the default theme
}
Проверьте официальную документацию здесь,
http://developer.android.com/training/basics/supporting-devices/platforms.html