tgoop.com/android_live/680
Last Update:
compileSdkVersion vs targetSdkVersion
#gradle
Уверен, что каждый из вас хотя бы раз обновлял параметры compileSdkVersion
и targetSdkVersion
. Чаще всего, мы обновляем их вместе, иногда ставим одно и то же значение, не задумываясь о том, что они значат, и для чего нужны.
Вот вам отличная статья, которая описывает разницу между этими параметрами. Если совсем кратко:
🔹 compileSdkVersion определяет, какая версия Android SDK будет использоваться gradle для компиляции вашего приложения.
Например, в последней версии Android появилось новое API для работы со splash-экранами. Если вы хотите использовать данную фичу, то вам следует поднять ваш compileSdkVersion
до 31 версии.
Это не значит, что теперь вы будете использовать только новое API и забудете о пользователях, которые находятся на более старых версия системы. В случае, если minSdkVersion
меньше, чем 31 вам потребуется сделать реализацию splash также и для остальных пользователей.
Частенько после изменения compileSdkVersion вы можете увидеть warnings и ошибки в логах, так как некоторые методы могут стать deprecated, а API поменяться.
🔹targetSdkVersion определяет, на какой версии системы ваше приложение было протестировано и создано.
Если запустить приложение на версии Android, которая выше, чем ваша targetSdkVersion
, то система постарается сделать backwards-compatibility для некоторых из фич, добавленных именно в этой системе.
Например, в Android 12 поменялся дизайн отображения уведомлений, и они будут выглядеть по-разному, если вы поставите targetSdkVersion
30 или 31.
Кстати, между этими параметрами можно выделить следующее правило: targetSdkVersion
не может быть больше compileSdkVersion
, а в идеале они должны быть равны между собой и равны последней версии SDK.
BY Android Live 🤖

Share with your friend now:
tgoop.com/android_live/680