正在确定最新的稳定 Android SDK
Determining the latest stable Android SDK
随着 Google 发布其 Android SDK 的更新,使在 Android Studio 中开发的项目保持最新的可靠过程是什么?
我只想更新到最新的稳定版本,而不是测试版。例如,目前,我对 Android 7.1.1 (API 25) SDK 不感兴趣,因为它仍处于预览阶段。同样,我不想要任何 Android 支持库的测试版,即使 lint 告诉我一个可用。
具体来说,如何确定要从 SDK 管理器安装哪些包,以及如何确定要在 build.gradle
中为以下声明指定的版本?
compileSdkVersion xxx
...
targetSdkVersion xxx
...
compile 'com.android.support:support-v4:xxx'
更新:有关更多背景信息,请参阅新的 Android Studio 问题,Lint prompts upgrade to partially distributed SDKs,由评论讨论提示。
I only want to update to the latest stable releases, not beta releases.
关于支持库,alpha 和 beta 是根据工件版本进行宣传的。例如,ConstraintLayout
库目前是 -beta1
、IIRC.
关于Android SDK,过去三年的规则是,如果它被称为"developer preview",它就不是你认为的稳定版本。如果它具有常规 Android 版本号(例如 7.0),则它是一个稳定版本。
您表达了对 Android 7.1 的担忧,它在某种程度上是对先前规则的例外。恕我直言,Google 搞砸了,大概是由于典型的执行白痴。实际上,API 级别 25 是最终级别,因为他们已经在运送具有 Android 7.1 的设备(Pixel),并且源代码在 AOSP 存储库中。因为他们描述的是 the APIs as final,我也认为他们是最终的,并且很乐意推荐人们根据他们进行编译。它的 "preview" 方面更多地是在其他硬件的可用性方面,这似乎主要是一种试图让狗远离 "why don't we have 7.1 for such-and-so Nexus device yet?" 的方法,欢迎您不同意并考虑 API 25 级为 "not baked yet",但随后您需要针对您认为是否 "not baked yet" 提出自己的启发式方法。
在 2014 年的 L Developer Preview 之前,对于大多数 Android 版本,如果 SDK 已发布,则它是最终版本。有时,它会在 OS 可供用户使用后发货。
Likewise, I don't want a beta version of any Android support library, even if lint tells me one is available.
Lint 不应该这样做;如果您有相反的证据,请提出问题。同样,"beta version" 将被指定为这样。因此,例如,支持库的 25.0.0 版本不是测试版。如果您希望将 25.0.0 视为 Beta 版,无论出于何种原因,我们都欢迎您这样做,但是您需要针对什么是 Beta 版和什么不是 Beta 版提出自己的启发式。
how do I determine what versions to specify in build.gradle for declarations such as the following?
对于compileSdkVersion
,将其设置为您认为稳定的值。现在,可能是 24。可能是 25。
对于 targetSdkVersion
,将其设置为对您的应用有意义的值。此值专门设计为而非严格遵循compileSdkVersion
,适用于您拥有现有代码库并需要时间的情况使代码适应一些更新的行为。
对于支持库版本,主要版本应与您的 compileSdkVersion
匹配。 Minor/patchlevels 应该是该主要版本的最新版本。
Likewise, Android Studio's code analysis warns you if you have a dependency on a support library before 25.0.0, but doesn't mention that 25 is preview
那是因为25不是预览。只有在将 compileSdkVersion
设置为 25 后才使用它才有意义——否则你可能无法对其进行编译——但在所有其他方面,它与任何其他不明确的支持库更新一样是最终的标记为 alpha、beta、RC 等
Searching news outlets isn't ideal either because you need to manually sift through updated and out of date articles, especially with point releases like 7.1.1.
Android OS 版本于 the Android Developer Blog. For example, here is the announcement about Android 7.0 starting to ship to devices.
公布
这是我能找到的最好的过程:
使用 SDK Manager 中未标记为预览的最新版本,其中包含对您很重要的所有包(图像、源代码等)。将此版本用于 compileSdkVersion
和 targetSdkVersion
,除非您需要保留目标 SDK 版本,因为您的代码未考虑 SDK 中的重大更改。
为您正在使用的 SDK 版本使用 library revision history 上发布的最新支持库版本。
它不像我希望的那样自动化,但至少我们似乎可以相信 SDK 管理器中的预发布包被标记为这样。
我使用这些链接查找最新的。主要是 android 网站:
compileSdk & targetSdk:向下滚动到平台 table。两者都等于最新平台版本的 API 即 27
supportLibVersion: 哪个是stable release
gradle & plugin version:请务必从该页面升级 gradle 和插件
googlePlayServicesVersion:滚动到 table 以及每行的尾数
buildToolsVersion:显然在 gradle 版本 3.0.0 之后您不再需要声明构建工具,但以防万一您需要它
firebase: 根据需要查找所有库
我通常在我的项目级别 build.gradle 中设置以下内容,并设置一个变量供其在我的其他 build.gradle 中使用:
ext {
compileSdkVersion = xxxx
targetSdkVersion = xxxx
supportLibVersion = "xxxx"
buildToolsVersion = "xxxx"
googlePlayServicesVersion = "xxxx"
}
如果您保留这些书签,您应该能够轻松找到每个书签的最新版本
随着 Google 发布其 Android SDK 的更新,使在 Android Studio 中开发的项目保持最新的可靠过程是什么?
我只想更新到最新的稳定版本,而不是测试版。例如,目前,我对 Android 7.1.1 (API 25) SDK 不感兴趣,因为它仍处于预览阶段。同样,我不想要任何 Android 支持库的测试版,即使 lint 告诉我一个可用。
具体来说,如何确定要从 SDK 管理器安装哪些包,以及如何确定要在 build.gradle
中为以下声明指定的版本?
compileSdkVersion xxx
...
targetSdkVersion xxx
...
compile 'com.android.support:support-v4:xxx'
更新:有关更多背景信息,请参阅新的 Android Studio 问题,Lint prompts upgrade to partially distributed SDKs,由评论讨论提示。
I only want to update to the latest stable releases, not beta releases.
关于支持库,alpha 和 beta 是根据工件版本进行宣传的。例如,ConstraintLayout
库目前是 -beta1
、IIRC.
关于Android SDK,过去三年的规则是,如果它被称为"developer preview",它就不是你认为的稳定版本。如果它具有常规 Android 版本号(例如 7.0),则它是一个稳定版本。
您表达了对 Android 7.1 的担忧,它在某种程度上是对先前规则的例外。恕我直言,Google 搞砸了,大概是由于典型的执行白痴。实际上,API 级别 25 是最终级别,因为他们已经在运送具有 Android 7.1 的设备(Pixel),并且源代码在 AOSP 存储库中。因为他们描述的是 the APIs as final,我也认为他们是最终的,并且很乐意推荐人们根据他们进行编译。它的 "preview" 方面更多地是在其他硬件的可用性方面,这似乎主要是一种试图让狗远离 "why don't we have 7.1 for such-and-so Nexus device yet?" 的方法,欢迎您不同意并考虑 API 25 级为 "not baked yet",但随后您需要针对您认为是否 "not baked yet" 提出自己的启发式方法。
在 2014 年的 L Developer Preview 之前,对于大多数 Android 版本,如果 SDK 已发布,则它是最终版本。有时,它会在 OS 可供用户使用后发货。
Likewise, I don't want a beta version of any Android support library, even if lint tells me one is available.
Lint 不应该这样做;如果您有相反的证据,请提出问题。同样,"beta version" 将被指定为这样。因此,例如,支持库的 25.0.0 版本不是测试版。如果您希望将 25.0.0 视为 Beta 版,无论出于何种原因,我们都欢迎您这样做,但是您需要针对什么是 Beta 版和什么不是 Beta 版提出自己的启发式。
how do I determine what versions to specify in build.gradle for declarations such as the following?
对于compileSdkVersion
,将其设置为您认为稳定的值。现在,可能是 24。可能是 25。
对于 targetSdkVersion
,将其设置为对您的应用有意义的值。此值专门设计为而非严格遵循compileSdkVersion
,适用于您拥有现有代码库并需要时间的情况使代码适应一些更新的行为。
对于支持库版本,主要版本应与您的 compileSdkVersion
匹配。 Minor/patchlevels 应该是该主要版本的最新版本。
Likewise, Android Studio's code analysis warns you if you have a dependency on a support library before 25.0.0, but doesn't mention that 25 is preview
那是因为25不是预览。只有在将 compileSdkVersion
设置为 25 后才使用它才有意义——否则你可能无法对其进行编译——但在所有其他方面,它与任何其他不明确的支持库更新一样是最终的标记为 alpha、beta、RC 等
Searching news outlets isn't ideal either because you need to manually sift through updated and out of date articles, especially with point releases like 7.1.1.
Android OS 版本于 the Android Developer Blog. For example, here is the announcement about Android 7.0 starting to ship to devices.
公布这是我能找到的最好的过程:
使用 SDK Manager 中未标记为预览的最新版本,其中包含对您很重要的所有包(图像、源代码等)。将此版本用于
compileSdkVersion
和targetSdkVersion
,除非您需要保留目标 SDK 版本,因为您的代码未考虑 SDK 中的重大更改。为您正在使用的 SDK 版本使用 library revision history 上发布的最新支持库版本。
它不像我希望的那样自动化,但至少我们似乎可以相信 SDK 管理器中的预发布包被标记为这样。
我使用这些链接查找最新的。主要是 android 网站:
compileSdk & targetSdk:向下滚动到平台 table。两者都等于最新平台版本的 API 即 27
supportLibVersion: 哪个是stable release
gradle & plugin version:请务必从该页面升级 gradle 和插件
googlePlayServicesVersion:滚动到 table 以及每行的尾数
buildToolsVersion:显然在 gradle 版本 3.0.0 之后您不再需要声明构建工具,但以防万一您需要它
firebase: 根据需要查找所有库
我通常在我的项目级别 build.gradle 中设置以下内容,并设置一个变量供其在我的其他 build.gradle 中使用:
ext {
compileSdkVersion = xxxx
targetSdkVersion = xxxx
supportLibVersion = "xxxx"
buildToolsVersion = "xxxx"
googlePlayServicesVersion = "xxxx"
}
如果您保留这些书签,您应该能够轻松找到每个书签的最新版本