minSdkVersion vs targetSdkVersion
В файле build.gradle уровня приложения можно указать оба значения. Разница в них следующая:
• minSdkVersion — указывает минимальную версию Android (а точнее version Android SDK Platform API), на которую можно будет установить приложение
Например, при разработке вы заметили, что используете функцию, которая появилась только с Android API 20. Если не установить minSdkVersion = 20, то у пользователей на более ранних версиях приложение будет падать на месте вызове несуществующей в их версии функции
• targetSdkVersion — указывает версию Android SDK, фишки который вы, как разработчик, полностью оттестировали
Например, в версии 23 (Android 6.0) переработали систему разрешений (permissions): раньше все разрешения приложение должно было запросить в процессе установки. Начиная с SDK 23, разрешения запрашиваются во время работы приложения
Получается, все приложения, не обновленные разработчиками после выхода Android 6.0, должны падать с ошибкой Runtime Permission, так как во время выполнения приложения разрешения в коде не проверяются?
Нет, падать они не будут. В них установлен targetSdkVersion < 23, а это значит, что система сделает для них исключение и даст им работать по старым правилам (то есть им будет достаточно получить разрешения во время установки приложения)
....
Если с этими все понятно, то что такое maxSdkVersion и compileSdkVersion?
Почему стоит следить за обновлением targetSdkVersion или почему не стоит оставаться на старых версиях?
Post #26
1.29K