作者 / Scott Swarthout, Product Manager
我们很高兴为大家带来 Android Studio 3.6 的稳定版本,该版本提供的功能与特性旨在提升代码编辑和调试场景中的品质。已经结束的 Project Marble 聚焦于夯实集成开发环境 (IDE) 的功能和流程基础,而 Android Studio 3.6 则是 Project Marble 之后的第一个版本。我们从 Project Marble 中学到了很多,在 Android Studio 3.6 中,我们引入了一些新功能,完善了既有功能,并且投入了很大的精力来修复错误及改善基础性能,以确保我们达到去年设定的高质量标准。
Android Studio 3.6 的一些亮点包括: 使用 XML 快速设计、开发和预览应用布局的新方式,以及设计编辑器中新加入的分割视图 (Split View) 。我们将 Google Maps 直接嵌入到了 Android Emulator 的扩展控制面板中,因此现在您无需手动输入 GPS 坐标即可在应用中测试位置。最后,我们通过自动检测 Fragment 和 Activity 的内存泄漏,让优化应用和查找错误变得更加容易。希望这些功能可以让您在 Android 上进行开发时更愉快和高效。
我们要感谢那些在预览版本阶段提供早期反馈的开发者们,正是大家的反馈让我们得以迭代和改进 Android Studio 3.6 中的功能。如果您已经准备好使用这个全新的稳定版本,及其带来的全新生产力功能,请即刻下载 Android Studio 3.6。
Android Studio 3.6
https://developer.android.google.cn/studio
接下来我们会按照主要的开发流程为大家逐一介绍 Android Studio 3.6 的新功能。
腾讯视频链接
https://v.qq.com/x/page/p0932212o0c.html
Bilibili 视频链接
https://www.bilibili.com/video/av95444110/
设计
设计编辑器中的分割视图 (Split View)
设计编辑器 (如 Layout Editor 和 Navigation Editor) 现在新增了分割 (Split) 视图,使您可以同时查看 UI 的设计视图和代码视图。分割视图由早先的预览窗口 (Preview window) 改进而来,并且可以按文件单独配置以保留上下文信息,包括缩放比例和设计视图选项等,这样您就可以为每一种用例选择最适合的视图。想要启用分割视图,请单击编辑器窗口右上角的 "Split" 图标。
△ 设计编辑器中的 "分割视图 (Split View)"
如果您想了解更多关于 Android Studio 3.6 版本中加入的 Split View,请参阅今天的第三条推送: 《Android Studio Design Tools 中的 UX 更改 — Split View》。
颜色选择器资源选项卡
在 Android Studio 3.6 中,我们希望使您更容易应用那些被定义为 "颜色资源" 的颜色。因此现在颜色选择器将加载并给出应用中的颜色资源,方便您快速选择和替换颜色。您可以在设计工具和 XML 编辑器中访问颜色选择器。
△ 颜色选择器资源选项卡
开发
视图绑定 (View Binding)
视图绑定可以在代码引用视图时提供编译时安全性,让您得以更轻松地编写与视图交互的代码。在启用后,视图绑定将为该模块中存在的每个 XML 布局文件生成一个绑定类。在大多数情况下,视图绑定会替代 findViewById。您可以引用所有拥有 ID 的视图,而不会遭遇 null pointer exception 或 class cast exception。这些变化意味着,布局和代码之间的不兼容而导致的错误将在 "编译时" 而不是 "运行时" 发生。如要在项目中启用视图绑定,请在每个模块的 build.gradle 文件中添加以下内容:
android {
viewBinding {
enabled = true
}
}
了解更多视图绑定的信息,请关注我们今天推送的第二条:《使用视图绑定替代 findViewById》,或参阅我们的一位开发专家撰写的博客文章。
视图绑定
https://developer.android.google.cn/topic/libraries/view-binding
博客文章 (Android 中的视图绑定)
https://medium.com/google-developer-experts/exploring-view-binding-on-android-44e57ba11635
Android NDK 更新
Android Studio 中的以下 NDK 功能以前在 Java 语言中受支持,现在也在 Kotlin 中受支持:
从 JNI 声明转到 C/C++ 中的对应实现函数。只需将鼠标悬停在托管源代码文件中的行号附近的 C 或 C++ 项标记上方,即可查看此映射。
自动为 JNI 声明创建桩实现函数。首先定义 JNI 声明,然后输入 "jni" 或 C/C++ 文件中的方法名称进行激活。
了解更多:
Android Studio 3.6 中的 NDK 更新
https://developer.android.google.cn/studio/preview/features/#3.6-ndk-updates
IntelliJ 平台更新
Android Studio 3.6 包含 IntelliJ 2019.2 平台版本。这个 IntelliJ 版本提供了大量改进,包括新服务工具窗口、大幅优化启动时间等。查阅相关文档了解更多。
IntelliJ IDEA 2019.2
https://blog.jetbrains.com/idea/2019/07/intellij-idea-2019-2-java-13-preview-features-profiling-tools-services-tool-window-and-more/
通过 Apply Changes 添加类
您现在可以通过两项简易操作来添加一个类,然后将该代码更改部署到正在运行的应用中 —— 点击 Apply Code Changes 按钮或 Apply Changes and Restart Activity 按钮。要详细了解这两项操作之间的区别,请参阅应用更改。
应用更改
https://developer.android.google.cn/studio/run#apply-changes
构建
Android Gradle 插件 (AGP) 更新
Android Gradle 插件 3.6 及更高版本支持 Maven Publish Gradle 插件,可让您将构建工件发布到 Apache Maven 代码库。Android Gradle 插件会为应用或库模块中的每个构建变体工件创建一个组件,您可以使用它来自定义要发布到 Maven 代码库的发布内容。这项更改将让您可以更轻松地管理各种目标的发布生命周期。
了解更多:
Maven Publish Gradle 插件
https://developer.android.google.cn/studio/releases/gradle-plugin#maven-publish
此外,Android Gradle 插件在大型项目的注解处理 / KAPT 中实现了显著的性能提升。这是因为 AGP 现在直接生成 R 类的字节码,而不是 .java 文件。
新打包工具
Android 构建团队一直在不断进行改进,以提高构建性能,在这个版本中,我们把测试构建默认的打包工具改为 zipflinger。用户应该会看到构建速度有所提高,但是您也可以在 gradle.properties 文件中设置 android.useNewApkCreator=false 从而继续使用原来的打包工具。
△ 编辑 gradle.properties 文件以禁用新的打包工具
zipflinger
https://android.googlesource.com/platform/tools/base/+/refs/heads/mirror-goog-studio-master-dev/zipflinger/
测试
Android 模拟器 - Google Maps UI
Android 模拟器 29.2.12 为应用开发者提供了一种全新的模拟输入设备位置的方法。我们将 Google Maps 用户界面嵌入到了扩展控件菜单中,方便您更容易地输入位置,以及通过两个位置点生成路线。您可以保存各个位置点,并将其作为虚拟位置重新发送到设备,您还可以通过键入地址或点击两个点来生成路线。这些路线可以实时重播,因为路线上的位置也被发送到了模拟器里的操作系统中。
△ Android 模拟器位置 UI 中的实时位置流
支持多显示屏
Android 模拟器 29.1.10 版本中包含了对多显示屏 (Multi-display) 的初步支持。随着多屏设备的不断涌现,为您的应用测试多显示屏的配置变得十分重要,您可以通过模拟器的 Extended controls 窗口,选择 Settings 选项来设置多屏幕。
△ Android 模拟器中的多显示屏支持
△ 在 Android 模拟器扩展控件面板中配置辅助的显示屏
可恢复的 SDK 下载
在使用 Android Studio SDK 管理器下载 Android SDK 组件和工具时,Android Studio 现在允许您恢复已中断的下载 (例如,由于网络问题),而不是从头开始重新下载。当互联网连接不可靠时,此增强功能对大量数据的下载 (如 Android 模拟器或系统映像) 特别有用。
△ 暂停和恢复 SDK 下载
就地更新导入的 APK
Android Studio 允许您导入外部构建的 APK,并对其进行调试和分析。以前,对这些 APK 进行更改后,您需要再次手动将其导入,并重新附加符号和代码。Android Studio 3.6 现在可以自动检测对导入的 APK 文件所做的更改,并提供就地重新导入的选项。
导入外部构建的 APK
https://developer.android.google.cn/studio/debug/apk-debugger
将 Kotlin 源代码附加到导入的 APK
现在支持将 Kotlin 源文件附加到导入的 APK。要了解更多信息,请参阅附加 Kotlin/Java 代码。
△ 将 Kotlin/Java 代码附加到导入的 APK
附加 Kotlin/Java 代码
https://developer.android.google.cn/studio/debug/apk-debugger#attach_java
优化
Memory Profiler 中的泄漏检测
根据大家的反馈,我们在 Memory Profiler 中添加了泄漏检测功能,用于检测可能泄漏的 Activity 和 Fragment 实例。首先,请在 Memory Profiler 中捕获或导入堆转储文件,然后勾选 "Activity/Fragment Leaks" 以生成结果。想要进一步了解 Android Studio 如何检测泄漏,请参阅我们的官方文档。
△ 在 Memory Profiler 中检测泄漏的 Activity 和 Fragment
Memory Profiler 文档
https://developer.android.google.cn/studio/profile/memory-profiler#profiler-memory-leak-detection
在 APK 分析器中对类和方法字节码进行去混淆处理
现在,当您使用 APK 分析器检查 DEX 文件时,您可以对类和方法字节码进行去混淆处理。在 DEX 文件查看器中,为要分析的 APK 加载 ProGuard 映射文件。加载完成后,右键点击您要检查的类或方法,然后选择 Show Bytecode 即可。
△ 在 APK 分析器中选择 Show Bytecode 对类和方法字节码进行去混淆处理
了解更多:
APK 分析器
https://developer.android.com/studio/build/apk-analyzer
☞ 这里让我们快速回顾一下 Android Studio 3.6 中新增的改进及功能:
设计
设计编辑器中的 Split View
拾色器资源选项卡
开发
视图绑定
Android NDK 更新
IntelliJ 平台更新
通过 Apply Changes 添加类
构建
Android Gradle 插件 (AGP) 更新
新打包工具
测试
Android 模拟器 - Google Maps UI
多显示屏支持
可恢复的 SDK 下载
就地更新导入的 APK
将 Kotlin 代码附加到导入的 APK
优化
Memory Profiler 中的泄漏检测
在 APK 分析器中对类和方法字节码进行去混淆处理
即刻开始
下载
请前往下载页面下载 Android Studio 3.6。如果您使用的是之前版本的 Android Studio,则只需将其更新为最新版本即可。要使用文中提到的 Android 模拟器功能,请通过 Android Studio SDK 管理器下载并运行 Android Emulator v29.2.12 或以上版本。
下载页面
https://developer.android.google.cn/studio/
和以往一样,我们欢迎大家向我们反馈您喜欢的特性、发现的问题或者想要的功能。如果您发现了错误或问题,请随时告知我们。
点击屏末 | 阅读原文 | 即刻体验 Android Studio 3.6
想了解更多 Android 内容?
在公众号首页发送关键词 "Android",获取相关历史技术文章;
在公众号首页发送关键词 "ADS",获取开发者峰会演讲中文字幕视频;
还有更多疑惑?欢迎点击菜单 "联系我们" 反馈您在开发过程中遇到的问题。
推荐阅读