当Google发布Android SDK更新时,将Android Studio中开发的项目保持最新的可靠流程是什么?
我只想更新到最新的稳定版本,而不是beta版本。例如,目前,我对Android 7.1.1(API 25)SDK不感兴趣,因为它仍在预览中。同样,我不想要任何Android支持库的测试版,即使lint告诉我一个可用。
具体来说,如何确定从SDK Manager安装哪些软件包,以及如何确定在build.gradle
中指定哪些版本用于声明,如下所示?
compileSdkVersion xxx
...
targetSdkVersion xxx
...
compile 'com.android.support:support-v4:xxx'
更新有关更多背景信息,请参阅评论讨论提示的新Android Studio问题Lint prompts upgrade to partially distributed SDKs。
答案 0 :(得分:2)
我使用这些链接来找到最新的。主要是android网站:
compileSdk & targetSdk:向下滚动到平台表。两者都等于最新平台版本的API,即27
supportLibVersion:以稳定版本为准
gradle & plugin version:请确保从此页面升级gradle和插件
googlePlayServicesVersion:滚动至表格,然后每行显示尾号
buildToolsVersion:显然,在gradle版本3.0.0之后,您不再需要声明构建工具,但以防万一,您需要它
firebase:根据需要查找所有库
我通常在项目级别的build.gradle中设置以下内容,并设置一个变量以供其他build.gradle使用:
ext {
compileSdkVersion = xxxx
targetSdkVersion = xxxx
supportLibVersion = "xxxx"
buildToolsVersion = "xxxx"
googlePlayServicesVersion = "xxxx"
}
如果您保留了这些书签,则应该可以轻松找到每个书签的最新信息。
答案 1 :(得分:0)
我只想更新到最新的稳定版本,而不是beta版本。
关于支持库,alphas和beta都是根据工件版本进行广告宣传的。例如,ConstraintLayout
库目前为-beta1
,IIRC。
关于Android SDK,过去三年的规则是,如果它被称为"开发者预览",那么它不是您认为的稳定版本。如果它有一个常规的Android版本号(例如7.0),则它是一个稳定版本。
您已经对Android 7.1表示过担忧,这在以前的规则中有些例外。恕我直言,谷歌搞砸了这一点,大概是由于典型的执行白痴。实际上,API Level 25是最终的,因为他们已经发布了具有Android 7.1的设备(Pixel),并且源代码在AOSP存储库中。由于他们正在描述the APIs as final,我也认为它们是最终的,并且在建议人们反对它们时感到舒服。 "预览"它在其他硬件的可用性方面更多,而且这似乎主要是一种试图让狗躲避的方式,为什么我们不会因为某种程度的Nexus而拥有7.1。设备呢?"欢迎您不同意并认为API等级25已经过了#34;尚未出现",但是您需要提出自己的启发式算法,以确定您认为的目标是什么"尚未烘焙" ;或不。
在2014年L Developer Preview之前,对于大多数Android版本,如果SDK发布,那么它是最终的。有时,它是在用户可以使用操作系统之后发布的。
同样,我不想要任何Android支持库的测试版,即使lint告诉我一个可用。
Lint不应该这样做;如果您有相反的证据,请提出问题。再次," beta版"将被指定为此类。因此,例如,25.0.0版本的支持库不是测试版。无论出于何种原因,如果您希望将25.0.0视为测试版,我们欢迎您这样做,但是您需要提供自己的启发式功能,而不是测试版。
如何确定要在build.gradle中为声明指定的版本,例如以下内容?
对于compileSdkVersion
,将其设置为您认为稳定的任何内容。现在,那可能是24岁。那可能是25岁。
对于targetSdkVersion
,请将其设置为对您的应用有意义的内容。此值专门设计为不严格遵循compileSdkVersion
,以便您拥有现有代码库并需要时间使代码适应更新的情况行为。
对于支持库版本,主要版本应与您的compileSdkVersion
匹配。次要/补丁级别应该是该主要版本的最新版本。
同样,如果您在25.0.0之前依赖支持库,Android Studio的代码分析会发出警告,但是没有提到25是预览
那是因为25不是预览。只有在将compileSdkVersion
设置为25后才能使用它 - 否则您可能无法对其进行编译 - 但在所有其他方面,它与任何其他支持库更新不同标记为alpha,beta,RC等。
搜索新闻媒体并不理想,因为您需要手动筛选更新和过时的文章,特别是使用7.1.1等点发布。
Android操作系统版本在the Android Developer Blog上公布。例如,here is the announcement about Android 7.0 starting to ship to devices。
答案 2 :(得分:0)
这是我能找到的最佳流程:
使用SDK Manager中未标记为预览的最新版本,其中包含对您很重要的所有软件包(图像,源代码等)。将此版本用于compileSdkVersion
和targetSdkVersion
,除非您需要暂停目标SDK版本,因为您的代码并未考虑SDK中的重大更改。
使用library revision history上发布的最新支持库版本获取您正在使用的SDK版本。
它并不像我想要的那样自动化,但至少看起来我们可以信任SDK Manager中的预发布包被标记为这样。