Страницы

Поиск по вопросам

четверг, 25 октября 2018 г.

Какое отличие между параметрами compileSdkVersion и targetSdkVersion?

Какое отличие между параметрами compileSdkVersion и targetSdkVersion?


Ответ

Немного дополню исходный ответ (по ссылке из комментария @dubok79) + попытаюсь объяснить на пальцах.
compileSdkVersion - та версия SDK, с которой будут собираться билды. По большому счету, влияет на всевозможные сообщения отладки. В финальный билд само SDK, конечно же, никак не "зашивается", более того, даже упоминания об этой настройке в нем не будет.
Лично я стараюсь держать ее равной targetSdkVersion. В теории возможна, например, следующая ситуация (чисто выдуманная, но логика должна быть понятна). С новой версией SDK несколько методов стали deprecated. Если повысить значение параметра, будем получать предупреждения при сборке проекта. Однако в данный момент команде надо срочно делать новый функционал, избавлением от устаревшего получится заняться только по завершении. Тогда лучше не повышать, чтобы среди игнорируемых пока предупреждений не пропустить важные.
targetSdkVersion - максимальная версия, под которую вы проверяли свое приложение. Это нужно Android, чтобы понимать - можно ли использовать свежий функционал в приложении или оно может оказаться к нему не готово. Помогает избегать ситуаций, когда с обновлением версии оси поменялись какие-то значения / поведения по-умолчанию, от чего ваше приложение может начать работать хуже. Пример, приходящий в голову: когда обязательность кнопки меню убрали и заменили на ActionBar.
Опять же, в моем случае стараюсь держать этот параметр всегда актуальным последней версии оси. Но переход - это всегда необходимость проверить, не сломалось ли чего, комплексно пробежать по приложению. Потому не всегда он делается сразу и быстро.

Комментариев нет:

Отправить комментарий