Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

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

by
Difficulty:BeginnerLength:MediumLanguages:

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 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 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 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 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

结语 

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

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

关注我们的公众号
Advertisement
Advertisement
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.