Android targetSdkVersion поведение

Я запутался в требовании / поведении targetSdkVersion, Насколько я понял, установка целевого SDK для конкретной версии указывает на то, что поведение приложения (UI) обеспечивается до этой конкретной версии.

В моем приложении я установил для targetSdkVersion значение 1 (для тестирования), и у меня есть несколько кнопок на моей странице. Я ожидал, что при нажатии кнопки не будет никаких волновых эффектов (что было введено в более поздних версиях Android). Но когда я нажал кнопку, был эффект пульсации.

Приложение работало на lollipop,

Может ли кто-нибудь объяснить, как это работает.

2 ответа

Решение

Существует три уровня SDK:

  • targetSdkVersion: это подсказка для Android о том, на какую версию рассчитано приложение. Примером этого является то, что если вы установите targetSdkVersion до 22, то android не будет применять разрешения, представленные в версии 23 ... и если вы установите targetSdKVersion до 23, android примет это как признак того, что ваше приложение знает, как обрабатывать запросы на разрешение системы.

  • minSdkVersion: минимальная версия (которую вы говорите), на которой будет работать ваше приложение. Play не будет показывать приложение пользователям более низкой версии.

  • compileSdkVersion: это версия вашего приложения. Вам нужно скачать соответствующий SDK для сборки. Это переменная, которая будет иметь ожидаемый эффект в приведенном выше примере. Поскольку соответствующая система API не будет доступна для вашего приложения.

На мой взгляд, targetSDK не будет иметь значения для поведения вашего приложения. Это всего лишь уровень API и не касается части интерфейса пользователя.

Целое число, обозначающее уровень API, на который нацелено приложение.

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

Надеюсь, что это помогает друг!

Другие вопросы по тегам