简单说说 Android Studio3.0的更新

2020-02-20 13:20:09 浏览数 (1)

Android Studio 3.0 正式发布了,这意味着我们的 Android 开发又要进入了一个新的阶段。这样很好,不过重大突破总是需要痛苦的迁移才能享受到,这也是意料之中的事情。

下面我主要提几个点,看看大家是否都注意到了。

1. IDE 升级和构建插件升级

虽然我们说升级的是 Android Studio,这货是个 IDE,不过请你务必注意,升级的还有 Android 的构建插件,也就是我们说的 gradle 插件了:

代码语言:javascript复制
dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
}

升级的内容当中提到了很多 IDE 的新特性,比如内置 Kotlin 的支持(这个很好),设备文件浏览器,APK 分析器等等,注意这些都是 IDE 的新特性,这些特性很好,很值得一试。不过,当中还提到了构建速度的显著提升,这一点实际上主要是针对这个插件的,如果你只是想尝鲜用下 IDE 的新特性,那么不要升级 gradle 插件的版本,用之前的 2.2.3 或者其他版本,一样可以开发。

再说一次,如果只是要体验 IDE 的新特性,为了不折腾,先不要着急升级 gradle 插件。

为什么说这个?因为我看到群里面有小伙伴升级了之后说报了一堆错,没办法只好回去用 2.3 了。额。。我能说我一直都同一个工程 2.3 和 3.0 的 IDE 切来切去么?只要你不升级 gradle 插件,你原有的工程配置根本不会有什么毛病。

2. 构建插件的升级

就像前面说的,大家遇到了构建报错,其实主要是构建插件升级导致的,请再次注意这个插件是 gradle 插件。

No pain, No gain.

这次更新,对于构建依赖图的配置要求更新详细了,这样做的好处就是避免了很多无用的构建,也正是这样,可以想象对于一些巨无霸的项目,构建速度会有多么显著的提升。当然如果你得项目只有寥寥几个模块,这个功能也许并没有多么的有用。

具体 gradle 要怎么迁移,大家还是要看下官方文档,相比其他时候的更新说明,G 家的这份说明显得非常的良心实用:https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html

简单来说,就是用了 productFlavor 的要迁移,所有配置的依赖也都需要更新为更为细致的编译期不透传依赖(implementation)和编译期透传依赖(api)以及编译期依赖(compileOnly)和运行时依赖(runtimeOnly)。

那么这次插件升级对于使用了自定义构建的工程可能影响会比较大,例如我们之前自定义过构建流程,甚至 hack 过 aapt,随着这次插件的升级,构建工具也有了较为显著的革新,那么惨了,我们这些工具在升级新版本之前都要做验证和同步更新,这将是一次痛苦的历程。

3. 支持 Kotlin

说实话,这个的意义在于官方对于 Kotlin 的态度,而非其他。这次更新对于 Kotlin 来说,从 IDE 的角度就只是帮我们安装了一下 Kotlin 插件而已,别的改动似乎并没有很大。

但这表明,Google 对 Kotlin 的支持并非停留在口头上,而是有实际行动的。嗯,别犹豫了,赶紧上车,去年没买上房子的教训还不够吗??

关于支持 Kotlin 这个问题,其实真正意义上的支持,应该把 Kotlin 的标准库内置于 Android 系统中,例如也许从 Android 10.0 开始我们用 Kotlin 开发 Android 就不用单独引入 kotlin-stdlibs 了。除此之外,我们也再也不需要在 gradle 当中配置这样的东西:

代码语言:javascript复制
apply plugin: "kotlin-android"

使用 Kotlin 开发就像现在用 Java 开发那样自然,那才叫妙。不过现在的情形,Java 仍然是” First Language“,Kotlin 和 C 只能算是 ”First Class Language“。

要啥自行车?

不管怎样,这样其实对于 Kotlin 支持者们来说,已经是一个好消息了。

4. 小结

好啦,这次 Android Studio 的更新就说这么多吧,至于 Java 8 新特性的支持,不说也罢。

0 人点赞