Advertisement
  1. Code
  2. Android SDK

谷歌2017 I/O大会后续:Android Studio 3 有哪些新特性?

by
Read Time:10 minsLanguages:

Chinese (Simplified) (中文(简体)) translation by Zhang Xiang Liang (you can also view the original English article)

在这个系列文章中,我们已经探索了今年谷歌 I/O 大会上的一些新的安卓特性和工具,今天你能获取更详细的信息。

本文将介绍AS3(Android Studio 3)预览版的主要新特性。

假如你还没有AS3预览版,你可以从安卓官方网站下载。需要注意的是,这是一个早期发布版本,所以最好不要在日常开发工作中使用。

一、内置支持Kotlin 

本次大会上宣布的一个重大消息是谷歌让Kotlin成为了安卓开发最好的语言。

尽管之前AS可以通过插件的形式支持Kotlin,现在将Kotlin内置AS后可以让开发者更加容易开始使用Kotlin。

AS3支持三种方式使用Kotlin. 

方式一:新建Kotlin工程 

首先,你会在创建工程的向导中看到”Include Kotlin support”复选框。如下图: 

When youre creating a project you can select the Include Kotlin Support checkboxWhen youre creating a project you can select the Include Kotlin Support checkboxWhen youre creating a project you can select the Include Kotlin Support checkbox

当你勾选后,AS会自动产生支持Kotlin的所有代码。假如你打开工程build.gradle文件,你将会在buildscript里面看到你正在使用的Kotlin版本:

假如你打开模块build.gradle文件,你会发现一些Kotlin相关代码被添加进来。

方式二:将已有的Java文件转换为Kotlin

第二种方式是将已有的Java文件转换为Kotlin

  • Project视图下选择你要转换的文件(单个) 
  • -在AS工具栏选择Code > Convert Java file to Kotlin file此步骤通过转换器将java文件转换为等价的Kotlin代码 
  • 此时AS会提示你Kotlin在你的工程没有配置,点击该提示语中的Configure 按钮。 
  • 选择Android with Gradle 
  • All modules, All modules containing Kotlin files中选择,或者选择你想要支持Kotlin的module. 
  • 点击OK

方式三:给已经存在工程增加Kotlin类 

在你想要创建Kotlin文件的目录右击,然后选择New > Kotlin file / class,假如你的工程没有配置支持Kotlin,AS同样会出现Configure提示框,解决方法同上。

假如你对Kotlin不熟悉,并想知道要注意的细节,你可以参考这系列文章。 点此打开该系列文章getting started with Kotlin for Android development.

二、一个新的Android Profiler 

AS3预览版用一个全新的Android Profiler替换了 Android Monitor窗口。

打开该新工具的方式为,View > Tool Windows > Android Profiler ,或者点击IDE窗口底部的Android Profiler 按钮。

类似于Android Monitor, Android Profiler也只能连接正在运行的app,所以你要确保你想要测试的app在模拟器或真机上运行,这样才能在屏幕上可见。点击下拉菜单选择你想要分析的设备和进程。

一旦你选择了一个进程,Android Profiler会自动连接到该进程,并且显示当前运行app的网络时间表,还有CPU,内存使用情况,它们都是实时更新。 

The Android Profiler displays three timelines CPU Memory and NetworkThe Android Profiler displays three timelines CPU Memory and NetworkThe Android Profiler displays three timelines CPU Memory and Network

如果想查看它们的详细信息,只需要点击Android Profiler按钮,你会看到一个专门显示你选择主题(比如说CPU)的新profiler。

Network Profiler

该Profiler展示了网络活动时间表,显示发送的数据和接收的数据,以及当前的连接数。要注意的是,Network Profiler只能支持HttpURLConnection 库和OkHttp 库,所以假如你使用了不同的库,你可能无法看到你的app网络活动情况。 

CPU Profiler 

该Profiler展示了你的app的CPU使用和线程活动情况。你还能够精确的看到哪些方法正在被执行,并且每个方法消耗CPU资源的情况,这些通过记录一个方法的踪迹完成。

为了记录踪迹,打开下拉菜单,选择Sampled Instrumented,然后点击Record 按钮。 花一些时间在你的app交互上以确保你想要记录的内容被你都操作过,然后点击Stop recording按钮。CPU Profile就会展示刚才采样周期的数据记录。

Memory Profiler 

该Profiler通过展示app内存使用情况图表帮助你识别内存泄漏,内存抖动和不合理的内存分配方式。你还以使用它捕获heap dump,提供app内存分配快照,知道每一个对象占用了多少内存,以及每一个对象在你的代码中的什么地方被引用。 最后点击Record memory allocations按钮,你能够记录app内存分配情况。

三、创建独立的即时app模块 

安卓即时app可以让用户通过URL快速运行app,而无需先安装app。基于此,你就可以将你app中的大部分重要功能面向更多的用户,而不是希望他们下载安装整个app。

在工程中增加安卓即时app功能的第一步是将你的app划分为更小的module,以便用户下载你的工程中的某一部分。由于将你的app被划分为多个独立的module不是一件容易的事,AS3预览版引入了将你的任何类模块化的新特性。 

  • 打开你想模块化的类,并且选中该类名。
  • 右击,选择Refactor > Modularize. 
Control-click a class and select Refactor Modularize from the dropdown that appearsControl-click a class and select Refactor Modularize from the dropdown that appearsControl-click a class and select Refactor Modularize from the dropdown that appears
  • 选择Preview 来查看即将被融合到新模块中的类,方法和资源。 
  • 你可以反选不需要被引入到新模块的子项。假如你不删除某些子项,你一般都需要花些时间来调整代码以确保能够正确运行。 
  • 当你选择好了以后,点击OK,创建模块。

四、改善对Java8的支持 

AS3预览版内置对Java8语言特性子集的支持,并且支持使用了这些特性的第三方库,比如: 

  • Lambda 表达式 
  • 方法引用 
  • 类型注解 
  • 默认和静态接口方法 
  • 重复注解

除此之外,如下的Java8特性兼容API24及更高

  • java.lang.annotation.Repeatable
  • java.util.function
  • java.lang.reflect.Method.isDefault()
  • java.lang.FunctionalInterface
  • java.util.stream
  • annotatedElement.getAnnotationsByType(Class)

为了改善对Java8的支持,你需要将Gradle插件 更新到v 3.0.0-alpha1(或者更高)。打开gradle-wrapper.properties文件,修改distributionUrl

然后打开工程build.gradle文件,确保你正在使用谷歌的最新Maven 库。 将Gradle插件 更新到v 3.0.0-alpha1,

为了使用AS对Java8支持的改善,假如你之前打开了Jack 编译器,你需要关闭它。为了删除Jack,打开modlue的build.gradle,删除jackOptions 部分, 

最后你需要增加Java8的compileOptionsbuild.gradle文件: 

五、更加容易的自定义字体 

给app增加自定义字体,通过在Android O版本上将字体这种资源提升至完全被支持的资源类型,谷歌正在让这件事变得更加容易。虽然我们已经研究了 working with custom fonts 。但是,AS3预览版增加更加方便的特性,该特性可以更加方便的浏览自定义字体,并且更加方便的添加到工程。 

  • 打开任何包含TextView的layout资源文件 
  • 选择Design 按钮
  • 在编译器里面选择TextView,Properties 菜单会出现在AS窗口左侧。 
  • 滚动菜单的textAppearance 部分,并且点击箭头展开。 打开fontFamily 下拉框,选择More fonts。你就会打开一个可供下载的字体库窗口。 
In the Properties menu expand the textAppearance section and then open the subsequent fontFamily dropdownIn the Properties menu expand the textAppearance section and then open the subsequent fontFamily dropdownIn the Properties menu expand the textAppearance section and then open the subsequent fontFamily dropdown
  • 如果想要增加字体,选中后点击OK
  • 打开工程的res/font文件夹,你就会看到刚才被增加的字体,准备被你使用。
  • 为了将此字体应用于任何文本,只需要增加属性android:fontFamily="@font/name-of-your-font"

六、其他值得注意的更新 

AS3.0预览版还提供了一些有用的新工具 

APK Debugger 

该工具使得分析和调试apk更加容易,在AS工具栏选择 File > Profile or debug APK,然后选择你想要查看的APK 。或者在AS的Welcome 界面选择Profile or debug APK。 

Device File Explorer 

与设备的文件系统交互,包括查看,复制,删除以及上传文件到设备。右击AS屏幕,选择Device File Explorer,或者从AS工具栏选择View > Tool Windows > Device File Explore。 

Adaptive Icon Wizard(可适应的icon向导) 

在Android O中,原始的设备制造商能将mask应用到设备上的所有app启动图标。为了确保应用图标正确的展示,而不用考虑mask,你需要提供一个adaptive launcher icon。 

虽然,我们之前探索过相关话题,但是AS3预览版引入了专用向导,有了它就可以更容易的创建可适应的icon。 打开向导的方法,右击工程的 res文件夹,选择New > Image Asset。 在出现的窗口中,打开 Icon type下拉框,将它设置为 Launcher Icons (Adaptive and Legacy)。选择前置背景层和后置背景层后创建可适应的icon.

Android Studios Image Asset window will walk you through the process of creating an adaptive icon Android Studios Image Asset window will walk you through the process of creating an adaptive icon Android Studios Image Asset window will walk you through the process of creating an adaptive icon

结语 

本文探索了AS3预览版的新工具和特性,包括内置Kotlin语言支持,对Java8支持的改进,新的Android Profiler。有了这些新特性,开发安卓app将变得越来越有趣。

下面是我们关于安卓app开发的其他教程和视频课程。

关注我们的公众号
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.