minSdkVersion 15: с этой конфигурацией я заставляю использовать только функции уровня api 15 и не выше. Верно?
№ A minSdkVersion
из 15 означает, что вы не хотите, чтобы ваше приложение запускалось на устройствах с более низким уровнем API, чем это. 15 соответствует Android 4.0.3.
minSdkVersion 15 и compileSdkVersion 24: с этой конфигурацией я могу использовать уровень апи до уровня 24. Разве это правильно?
Ваша IDE позволит вам писать код с использованием классов, методов, полей и т. Д. С уровня API 24. Ваша IDE также должна предупредить вас, что с помощью классов, методов, полей и т. Д., Которые были добавлены в SDK после уровня API 15 может привести к ошибкам во время выполнения.
minSdkVersion 15 и compileSdkVersion 23: с этой конфигурацией, если я использовать функции API из API 23, это приложение не будет работать в андроид устройства с уровнем апи 20, например, правильно?
Ну, API-уровень 20 - это специальная версия Android для устройств Android Wear первого поколения. Но если мы переключим это на API 19 (Android 4.4), если вы вслепую называете метод Android 5.1 (API уровня 23), вы столкнетесь с Android 4.4. Вот почему IDE предупредит вас об этом, почему вы часто видите проверки BuildConfig.VERSION.SDK_INT
и почему у SDK есть эти классы ...Compat
(которые пытаются скрыть многие из этих различий в версии).
С предыдущей конфигурации, и андроид устройства с уровнем апи 20 будет иметь возможность скачать и установить приложение, поскольку его апи выше minSdkVersion 15, но не сможет работать, потому что он имеет функции из API 23 , правильно?
Устройство попытается запустить приложение. Как далеко оно зависит от того, насколько хорошо написано приложение. Опять же, вы можете создать приложение, которое использует новые API-функции, которые изящно деградируют для работы на старых устройствах. Это не сильно отличается от того, как веб-сайт или веб-приложение может использовать последние функции HTML5, но изящно деградирует для обработки более старых или менее способных браузеров.
Если я хочу, чтобы убедиться, что я хочу, чтобы использовать уровень апи и не выше из-за предыдущих проблем комментировали, конфигурация minSdkVersion 15 и 15 compileSdkVersion это единственный способ?
No. Опять же, IDE будет (обычно) кричать на вас, когда вы пытаетесь использовать функции SDK, которые являются приемлемыми для compileSdkVersion
но новее, чем minSdkVersion
.
- обычная практика?
Не так с 2010 года.
FWIW, здесь the documentation on this subject, ограничено как может быть.
Итак, что я понял, если вы делаете проверки версии андроида, в которой работает приложение, вы можете написать код выше, чем api 15, и если вы не применяете этот код, но если вы не будете писать эти проверки и использовать и api уровень выше, чем версия Android, приложение будет раздавить 100% уверенно, правильно? – user3254515
@ user3254515: Если вы выполняете код, который зависит от более высокой версии Android, чем устройство работает, вы обязательно столкнетесь. – CommonsWare
Хорошо, понял. Но если я хочу иметь чистый код и не полный проверок о версии Android, в которой работает приложение, может быть, не так уж плохо, что minSdkVersion == compileSdkVersion – user3254515