Android Studio 3.0 新功能全面解析和旧项目适配问题

简介:

Android Studio是Android的官方IDE。它是专为Android而打造,可以加快您的开发速度,帮助您为每款Android设备构建最优应用。

它提供专为Android开发者量身定制的工具,其中包括丰富的代码编辑、调试、测试和性能分析工具。

上周四,Google 终于在经历大半年的打磨锤炼之后正式发布 Android Studio 3.0 版本,给广大安卓开发人员一份满意的答卷。如往常一样,每次新版开发工具的发布,很多谨慎点的朋友仍担心稳定性、是否存在坑等问题,选择隔岸观火,等一段时间再更新升级。

经过查看官网对新版开发工具的新功能介绍之后,当天我就选择了升级。事实上,我也的确折腾良久,但是截至目前,没有发现所谓的坑。只是需要对旧的工程做一些配置上的调整而已。各方面响应速度和新功能的使用,总体还是觉得值得升级。这篇文章,就来介绍新版开发工具给我们带来哪些实用的改变,并以实际操作经验告诉大家,旧工程的配置需要如何做兼容修改。

3.0 带来的改变

Kotlin Support

在 Android Studio 3.0 之前,使用 Kotlin 语言开发安卓应用,需要额外配置 Kotlin 插件。而新版本内置默认支持 Kotlin 语言,来减少我们在配置上的工作。

选择工具栏 Code -> Convert Java File To Kotlin File,或者使用快捷键的形式,你可以一键实现 Java 文件到 Kotlin 文件的转换。

备注:关于快捷键的使用,你可以使用 Command + Shift + A 这组快捷键打开 Find Action 窗口,输入关键字寻找对应功能及其快捷键,效果就像上面 Gif 图展示的这样。

Java 8 Support

3.0 对 Java 8 语言特性的默认支持使你不用在 build.gradle 配置文件中添加 jackOptions 一项。如果你有使用到的话,记得删除:

android {
 ...
 defaultConfig {
 ...
 // Remove this block.
 jackOptions {
 enabled true
 ...
 }
 }
}

选择工具栏 File ——》Project Structure,修改 Source Compatibility 和 Target Compatibility 选项到 1.8 即可使我们的项目支持 Java 8 语言特性。

Android Profiler

过去我们使用的 Android Monitor 工具从 3.0 版本开始被 Android Profiler 替代掉了。如图,run 按钮一栏多了一个 Android Profiler 按钮:

Android Profiler 提供有 CPU、Memory 和 Network 三大调试分析利器,实时跟踪 Apk 的运行状态,可以帮助我们可视化地做一些性能调优工作。

这三个工具在开发阶段非常实用,比如 CPU Profiler 能够分析应用中的线程使用情况,Memory Profiler 能够检测出内存泄漏,Network Profiler 能够拦截网络请求实现抓包功能等。这里列举一些使用图片,简单预览一下这三大工具的风采:

有关这几个工具的详细使用细节,可以参考官方的介绍:

Device File Explorer

这个功能厉害了。新版开发工具带来的资源管理器允许我们访问连接设备的文件系统,实现 PC 端到手机或模拟器端的便捷文件传输。有了这个工具,从此就可以告别之前使用的「文件传输助手」等第三方工具啦。

Adaptive Icons wizard

选择 File -> New -> Image Asset,利用 Android Studio 提供的工具创建图片资源一直以来也是开发利器之一。现在,这个工具开始支持 vector drawables格式,并且能够创建用于适配 Android 8.0 系统上各种形状的桌面图标。

URL intent-filter validator

这个功能也蛮贴心的。Manifest 清单文件开始支持一个特殊的标签,用于测试给定的 Url 字符串是否符合 intent-filter 标签内容所定义的规则。举个例子:

如图,这里使用 data 标签定义一个 Url 规则,并使用 tools:validation 标签验证一个错误的测试 Url 地址,检测器能够自动识别并给出错误提示。这个例子很简单,肉眼一眼就能看出错误。那如果是比较复杂的规则呢,可能就不那么容易看得出来。这个时候,这个工具就可以派上用场啦。

APK Analyzer

3.0 版本对 APK Analyzer 的功能做了进一步强化。主要在于:对于使用 ProGuard 混淆过的 APK 文件,我们能够上传 mapping.txt 文件进行代码还原;Dex 文件提供显示各个包目录的大小;等等。

其他功能

除了上面介绍的这些变化,还有一些其他大大小小的变更。比如 Layout Inspector 和 Layout Editor 工具在 UI 上有所调整,比如 App Links Assistant 和 Firebase App Indexing Assistant 的强化使用,这些留着大家自己去探索发现吧。也可以访问 Android Studio Release Notes 官网,了解 3.0 版本的更多发布细节。

旧项目的适配

Android Studio 3.0 发布的同时,Android Plugin for Gradle 3.0.0 也同时发布。编译速度整体都得到了大幅提升。升级完 Android Studio 之后,旧的工程需要做出部分改变,才能通过 Gradle 的编译。这里根据我的一个实际项目,介绍一下需要改变的内容。当然,也许你的项目用不上这些,也可能不止这些。

distributionUrl

Plugin 3.0.0+ 需要配置 Gradle 的最小版本是 4.1,我们可以通过 File -> Project Structure -> Project 的方式设置 Android Plugin 的版本,或者修改 gradle.properties 文件的内容,添加 distributionUrl 属性:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

Google's Maven repository

新版 Android Studio 工具默认使用 Google's Maven Repository 用于下载依赖 Android Support Library,替代了 Android SDK Manager 的本地依赖方式。所以,需要在工程根目录下的 build.gradle 文件中添加 google() 一行代码:

allprojects {
 repositories {
 google()
 }
}

buildToolsVersion

Android Plugin For Gradle 3.0.0 默认自动添加插件所需要用到的最小版本的编译工具。所以,我们不需要再手动在 build.gradle 添加一行 buildToolsVersion 属性的代码。对于旧的项目,可以去掉这行配置,比如:

android {
 compileSdkVersion 26
 // remote buildToolsVersion
 buildToolsVersion "25.0.2"
 ...
}

flavor dimensions

Plugin 3.0.0 开始,如果 build.gradle 自定义有 productFlavors 配置的话,需要添加定义 flavorDimensions(风味维度)。否则,编译报错:

rror:All flavors must now belong to a named flavor dimension.
The flavor 'flavor_name' is not assigned to a flavor dimension.

flavorDimensions 的出现使得构建变种类型更加多样化:

可构建的变种数量 = 风味维度的数量 * 构建类型的数量

详细使用可参考 配置构建变体。对于旧项目,简单的话,可以随意定义一个风味维度,保证编译通过,如(这里的“minApi”可自由定义):

flavorDimensions "minApi"
productFlavors {
 beta {
 dimension "minApi"
 ...
 }
 production {
 dimension "minApi"
 ...
 }
}

each() 和 outputFile()

Plugin 3.0.0 版本移除了一些用于编译配置的 API,其中比较常见的就是 each() 和 outputFile(),两个常用于修改输出

Apk 文件名和路径的方法。

在之前的文章 Android Gradle 常用使用场景实现方式的总结 中有提到,自定义输出 APK 文件名可以这样做:

android {
 android.applicationVariants.all { variant ->
 variant.outputs.each { output ->
 output.outputFile = new File(output.outputFile.parent, rootProject.getName()
  + "-" + buildType.name
  + "-" + releaseTime()
  + "-v" + defaultConfig.versionName
  + "-" + defaultConfig.versionCode
  + ".apk");
 }
 }
}

但是使用 Plugin 3.0.0 时就会出现编译报错,我们需要修改 each() 和 outputFile() 方法为 all() 和 outputFileName,比如:

android {
 android.applicationVariants.all { variant ->
 variant.outputs.all {
 outputFileName = rootProject.getName()
  + "-" + buildType.name
  + "-" + releaseTime()
  + "-v" + defaultConfig.versionName
  + "-" + defaultConfig.versionCode
  + ".apk";
 }
 }
}

对于旧的工程,基本上便是这些配置上的适配修改。如果你还遇到了别的问题,别紧张,按照编译错误提示一步步操作,也能成功通过编译。总体来说,这次 Android Studio 3.0 和 Plugin For Gradle 3.0.0 的发布还是非常值得升级尝试的,并没有网上说的那么多坑。何况,我们作为写代码的程序员,本来不就是为了解决问题而来嘛。

总结

以上所述是小编给大家介绍的Android Studio 3.0 新功能全面解析和旧项目适配问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Android Studio升级到3.0后遇到的坑

    这几天谷歌推出了as3.0的正式版,相信大家都进行更新了,然后对3.0的新特性也有过一些了解,最后磨刀霍霍开始宰杀,然鹅却一不小心就开始了排坑之路. 第一坑.必须升级gradle到4.0以上 相信这个大坑,一般使用as的人都会解决了,所以就不多说 第二坑.buildToolsVersion升级到26.0.0 其实这个不算坑,一般buildToolsVersion都会升级到最新的版本,直接更新就是了 第三坑.Error:Resource shrinker cannot be used for li

  • Mac Android Studio 3.0 Terminal 中文乱码问题处理

    前几天,收到 AS 发布的 3.0 更新,就迫不及待的更新了,更新后发现整个界面的画风都变了,和 IDEA 更像了 本人是命令行重度使用患者,平时都是使用 AS 下面的 Terminal,升级完成后,使用 git log 命令查看历史 log,发现中文全部显示不出来 开始以为是 git 的问题,经测试现象如下 直接输入中文会显示 <00e6><0096> 云云,使用 ls 命令查看会显示 ??? 一堆问号,使用 ls | grep 反而正常,具体原因不详 后来在 Google 上找

  • Android Studio3.0新特性及安装图文教程

    Android Studio是Android的官方IDE.它是专为Android而打造,可以加快您的开发速度,帮助您为每款Android设备构建最优应用. 它提供专为Android开发者量身定制的工具,其中包括丰富的代码编辑.调试.测试和性能分析工具. 一.Android Studio3.0新特性 (1).核心IDE更改 我们将基础IDE从IntelliJ 2016.2升级到2017.1.2,在2016.3和 2017.1中增加了许多新功能, 包括参数提示,语义突出显示,搜索中的即时结果等等.

  • 浅谈Android Studio 3.0 的一些小变化

    前言 一大早还在北京拥挤的地铁里,我的CTO闫哥在微信里给我发了一条信息:Android Studio 3.0发布了. 为什么会这么关注Android Studio 3.0 的版本发布呢?主要是因为公司即将开发的新app准备使用Kotlin语言,而Android Studio 3.0 已经把Kotlin的语言支持内置进去了,这样就省去了很多的麻烦,如果你还没接触过Kotlin语言,可以去百度一下 他们的官网,如果你现在使用的Java语言,那么你真是太幸运了,因为Kotlin对于你来说,将会非常简

  • android studio 3.0 升级 项目遇到的问题及更改思路(问题小结)

    Android Studio从3.0版本新增了许多功能,当然首当其冲就是从3.0版本新增了对 Kotlin 开发语言的支持,除此之外还有其他一些新功能,例如:Android Profiler (其中包含了: CPU Profiler.Memory Profiler.Network Profiler ),APK Debugger,Device File Explorer,Java 8 Language Features等. android studio 3.0版本升级问题修改: ===> 问题一

  • 详解Android Studio 3.0的新特性与适配

    简介 Android Studio升级到3.0后,有不少的改动和新特性,先贴出官方的迁移说明. 本文会持续收集与总结本人在使用Android Studio 3.0进行开发的过程中所遇到的问题. 版本配置 Gradle版本 Android Studio 3.0需要的Gradle版本至少为4.1. 如果是使用gradle wrapper,则工程根目录/gradle/wrapper/gradle-wrapper.properties中的distributionUrl字段为https\://servic

  • Android studio 3.0上进行多渠道打包遇到的问题小结(超简洁版)

    Error:All flavors must now belong to a named flavor dimension. The flavor 'xiaomi' is not assigned to a flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html Android studio 3.0上进行多渠道打包时编译时出现这个错误 多渠道

  • Android Studio 3.0 新功能全面解析和旧项目适配问题

    简介: Android Studio是Android的官方IDE.它是专为Android而打造,可以加快您的开发速度,帮助您为每款Android设备构建最优应用. 它提供专为Android开发者量身定制的工具,其中包括丰富的代码编辑.调试.测试和性能分析工具. 上周四,Google 终于在经历大半年的打磨锤炼之后正式发布 Android Studio 3.0 版本,给广大安卓开发人员一份满意的答卷.如往常一样,每次新版开发工具的发布,很多谨慎点的朋友仍担心稳定性.是否存在坑等问题,选择隔岸观火,

  • Android Studio 4.0 新功能中的Live Layout Inspector详解

    最近 Android Studio 4.0 稳定版本正式发布,其中一个重要升级就是新版的Layout Inspector 旧版的Layout Inspector 4.0 之前我们通过Tools -> Android -> Layout Inspector 可以对当前进程现实中画面进行分析,获取视图的Hierarchy以及Property信息 Live Layout Inspector 4.0 通过同样的菜单可以打开新版的 Layout Inspector 运行APP后,选择当前进程,可以看到当

  • Android Studio 4.0新特性及升级异常问题的解决方案

    一.升级问题 1. dataBinding开启配置修改 升级到AS 4.0以后,出现如下的预警,对于我这种有代码洁癖的人是不能忍的,必须解决 DSL element 'android.dataBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.dataBinding' 解决方法: dataBinding { enabled = true } 这是原有的DataBinding开启方式,在升级后

  • 神经网络API、Kotlin支持,那些你必须知道的Android 8.1预览版和Android Studio 3.0新特性

    谷歌2017发布会更新了挺多内容的,而且也发布了AndroidStudio3.0预览版,一些功能先睹为快. 过去的五个月里, Kotlin一直是我们反复谈论的重点.现在要告诉大家的是,Android Studio 3.0可以将Kotlin添加到您的项目中了.最新版本的Android Studio在支持Java 8语言功能上得到了改进,另外一个亮点是,有了用于Gradle 3.0.0的Android插件. 好,下面步入正文. 曾仅用 55 秒发布会的 Android 8.0 Oreo 在时隔两个月

  • 浅谈Android Studio 3.0 工具新特性的使用 Android Profiler 、Device File Explorer

    前言: 其实 studio3.0的工具大家也已经使用过一段时间了,自己呢,就是从bate版开始使用的,我觉得比较好用的几个地方.就几个,可能还没用到其他的精髓. 但我觉的这个两个功能对我是比较实用的.好那么下面就给大家介绍一下吧. 正文: 话不多说咱们直接上图吧.(个人比较喜欢看图说话) 第一个(Android Profiler)我要介绍的就是这个了.(先看一下效果"震撼一下") (图-1) (图-2) (图-3) (厉害不厉害,牛逼不牛逼)那么我们怎么来操作这个工具呢,来咱们接着看图

  • Android Studio 3.0 原生支持kotlin 例子详解

    安卓虽然已经成为了移动设备第一操作系统,且影响力也延伸到了汽车和tv端,不过对于谷歌来说,需要依靠Java来做安卓开发一直是一个心病,因为Oracle公司因为java和谷歌在安卓系统上的诉讼搞得心力憔悴. 现在好了,谷歌官方正式支持Kotlin(官方网站 https://kotlinlang.org/,居然没被墙)成为官方认可的安卓开发第一语言,而且从Android Studio 3.0开始,将直接集成Kotlin而无需安装任何的插件.这个语言是由JetBrains去年发明的,它受到欢迎,主要是

  • Android Studio 3.0上分析内存泄漏的原因

    以前用eclipse的时候,我们采用的是DDMS和MAT,不仅使用步骤复杂繁琐,而且要手动排查内存泄漏的位置,操作起来比较麻烦.后来随着Android studio的潮流,我也抛弃了eclipse加入了AS. Android Studio也开始支持自动进行内存泄漏检查,并且操作起来也比较方便. 封面 戳我下载 Android Studio 3.0 这个不用梯子我会告诉你吗 1.写在前面 Google在上周发布了Android Studio 3.0的正式版本,周四早晨在上班的地铁上就看到群里在沸沸

随机推荐