Я только хочу обновить до последних стабильных выпусков, а не бета-версий.
Что касается библиотек поддержки, альфа и бета-версии рекламируются как таковые с точки зрения версий артефакта. Например, библиотеки ConstraintLayout
в настоящее время составляют -beta1
, IIRC.
Что касается Android SDK, то правило в течение последних трех лет заключается в том, что если он называется «предварительный просмотр разработчика», это не то, что вы считаете стабильным выпуском. Если у него есть обычный номер версии Android (например, 7.0), он является стабильной версией.
Вы выражаете озабоченность по поводу Android 7.1, и это несколько исключение из предыдущего правила. ИМХО, Google прикрутил это, по-видимому, из-за типичного исполнительного идиотизма. Фактически, API-уровень 25 является окончательным, поскольку они уже являются устройствами доставки (Pixel), имеющими Android 7.1, а исходный код находится в репозиториях AOSP. Поскольку они описывают the APIs as final, я также считаю их окончательными и чувствовать себя комфортно, рекомендуя людям скомпилировать их. «Предварительный просмотр» этого аспекта в большей степени зависит от доступности для другого оборудования, и это, по-видимому, является главным способом попытаться удержать собак в страхе «почему у нас нет 7.1 для такого-то устройства Nexus все же?" Вы можете не соглашаться и считаете, что API-уровень 25 «еще не испечен», но тогда вам нужно будет придумать свою эвристику для того, что вы считаете «еще не испеченным» или нет.
До появления L Developer Preview в 2014 году для большинства выпусков Android, если SDK был отправлен, он был окончательным. Иногда он отправлялся после того, как ОС была доступна для пользователей.
Кроме того, я не хочу бета-версию любой библиотеки поддержки Android, даже если lint сообщает мне, что один из них доступен.
Lint не должен делать этого; если у вас есть доказательства об обратном, укажите проблему. Опять же, «бета-версия» будет обозначена как таковая. Так, например, выпуски 25.0.0 библиотек поддержки не являются бета-версиями. Если вы хотите считать, что 25.0.0 является бета-версией, по какой-то причине вы можете это сделать, но тогда вам нужно будет придумать собственную эвристику для того, что есть и не является бета-версией.
Как определить, какие версии указать в build.gradle для объявлений, таких как следующее?
Для compileSdkVersion
установите его в любое удобное для вас состояние. Прямо сейчас, это может быть 24. Это может быть 25. Это может быть 25.
Для targetSdkVersion
установите его в соответствии с тем, что имеет смысл для вашего приложения. Это значение конкретно, разработанное для не строго следуйте за compileSdkVersion
, для случаев, когда у вас есть существующая база кода и требуется время, чтобы адаптировать код к более новому поведению.
Для версий поддерживающих библиотек основная версия должна соответствовать вашему compileSdkVersion
. Незначительные/patchlevels должны быть последними доступными для этой основной версии.
Кроме того, анализ кода Android Studio предупреждает вас, если у вас есть зависимость от библиотеки поддержки до 25.0.0, но не говоря уже о том, что 25 является просмотр
Это потому, что 25 не просмотр , Имеет смысл использовать его только после того, как вы установили compileSdkVersion
на номер 25 —, который вы не сможете скомпилировать против него иначе —, но во всех остальных отношениях он является окончательным, как любое другое обновление библиотеки поддержки, которое специально не обозначено как альфа, бета, RC и т. д.
Поиск новостных изданий не идеален либо потому, что вам необходимо вручную просеять обновленные и устаревшие статьи, особенно с точечными релизами, такими как 7.1.1.
версии ОС Android объявлены на the Android Developer Blog. Например, here is the announcement about Android 7.0 starting to ship to devices.
Установите 'compileSdkVersion' на самый высокий уровень API для производства (в настоящее время 24). Установите «targetSdkVersion» на то, что имеет смысл для вашего приложения (24, если вы готовы к этому, ниже, если вы этого не сделаете). Основная версия библиотек поддержки должна соответствовать вашей 'compileSdkVersion' и использовать в ней последний минимальный/patchlevel. – CommonsWare
Я ищу независимый от версии процесс, а не конкретные ответы только на сегодня. Например, как быстро определить, что уровень API 24 является последним стабильным в наши дни? Есть ли каноническая веб-страница, которая публикует это? Библиотеки поддержки имеют незначительные выпуски. Как определить их последние стабильные версии? –
«Например, как быстро определить, что уровень API 24 является последним стабильным в наши дни?» - потому что Android 7.0 отправлен, а Android 7.0 - это API-уровень 24 (см. 'Build.VERSION_CODES'). «Есть ли каноническая веб-страница, которая публикует это?«- Релизы ОС Android покрываются многими крупными новостными новостями:« Как определить их последние стабильные версии? »- это самое высокое число, если предположить, что не добавлено« -альфа »или аналогичного суффикса. – CommonsWare