26.11.2018 iMarketing5

В чем разница между compileSdkVersion и targetSdkVersion?

compileSdkVersion

compileSdkVersion — это версия API, с которой компилируется приложение. Это означает, что вы можете использовать функции Android API, входящие в эту версию API (как и все предыдущие версии, очевидно). Если вы попытаетесь использовать функции API 16, но установите compileSdkVersion на 15, вы получите ошибку компиляции. Если вы установите compileSdkVersion в 16, вы все равно можете запустить приложение на устройстве API 15, если ваши пути выполнения приложений не будут пытаться вызывать любые API, специфичные для API 16.

targetSdkVersion

targetSdkVersion не имеет никакого отношения к тому, как скомпилировано ваше приложение или какие API вы можете использовать. Предполагается, что targetSdkVersion указывает, что вы протестировали ваше приложение (предположительно до и включая) указанную вами версию. Это больше похоже на сертификацию или подписку, и вы даете ОС Android как подсказку, как она должна обрабатывать ваше приложение с точки зрения возможностей ОС.

Например, как в документации говорится:

Например, если установить это значение на «11» или выше, система может применить новую тему по умолчанию (Holo) к вашему приложению при работе на Android 3.0 или выше…

ОС Android, во время выполнения, может изменить способ стилизации или стирания вашего приложения в контексте ОС на основе этого значения. Есть несколько других известных примеров, на которые влияет это значение, и этот список, вероятно, только увеличится с течением времени.

Для всех практических целей большинство приложений захотят установить targetSdkVersion в последнюю выпущенную версию API. Это гарантирует, что ваше приложение будет выглядеть как можно лучше на самых последних устройствах Android. Если вы не укажете targetSdkVersion, по умолчанию будет minSdkVersion.

Понравилась статья? Поделись с друзьями в:

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *