[译]Android Studio 3.6 新特性概览
设计
设计编辑器
设计编辑器(比如布局编辑器和导航编辑器)现在提供了一个拆分视图模式,能够同时查看 UI 界面的 Design 视图和 Code 视图。拆分视图取代并改进了早期的预览窗口,并且可以对每个文件进行设置,并且可以保存上下文信息,比如:缩放比例和设计视图选项等。想要开启拆分视图,单击编辑器窗口右上角的拆分图标即可。相关文档:https://medium.com/androiddevelopers/android-studio-design-tools-ux-changes-split-view-dcde75e88a0c
设计编辑器的分割视图颜色资源选择器
在这个版本中,通过颜色资源选择器可以快速的在应用程序中选择和替换颜色资源值。在设计工具和 XML 编辑器都可以使用颜色资源选择器。
颜色选择器资源选项卡开发
View binding
View binding 是一个新特性,它通过在代码中引用视图时提供编译时安全性,使我们能够更容易地编写与视图交互的代码。如果启用,视图绑定将为模块中的每个 XML 布局文件生成绑定类。在大多数情况下,视图绑定取代 findViewById 方法。我们可以在代码中引用所有具有 ID 的 view,但不会有空指针或类强制转换的错误风险。这些差异意味着布局和代码之间的不兼容将导致编译时而不是运行时的构建失败。要在项目中启用视图绑定,请在每个模块的 build.gradle
文件中包含以下内容:
android {
viewBinding.enabled = true
}
一位 GDE 写的 View binding 相关 blog: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 声明自动创建一个 stub 实现函数。首先定义 JNI 声明,然后在 C/C++ 文件中输入“ JNI” 或方法名称来激活
更多详细信息:https://developer.android.google.cn/studio/preview/features/#3.6-ndk-updates
IntelliJ Platform 更新
Android Studio 包含 IntelliJ 2019.2 版本的所有特性。 这个 IntelliJ 版本包括许多改进,从新的服务工具窗口到大大改进的启动时间。更多详情:https://blog.jetbrains.com/idea/2019/07/intellij-idea-2019-2-java-13-preview-features-profiling-tools-services-tool-window-and-more/
Add classes with Apply Changes
现在可以添加一个类,然后通过单击 Apply Code Changes
或 Apply Changes and Restart Activity
按钮将代码变更部署到正在运行的应用程序中。关于 Apply Cahnges 的更多详情:https://developer.android.google.cn/studio/run#apply-changes
构建
Android Gradle 插件更新
Android Gradle 插件 3.6 以及更高版本包括对 Maven Publish Gradle 插件的支持,这个插件可以让我们将构建产物发布到 Apache Maven 仓库中。Android Gradle 插件为应用程序或库模块中的每一个 build variant 创建一个组件,我们可以使用该组件将构建产物发布到自定义的 Maven 仓库中。这一变更将使我们更容易地管理各种 targets 的发布周期。更多详情:https://developer.android..google.cn/studio/releases/gradle-plugin#maven-publish
新的打包工具
Android 构建团队一直在努力的改进构建性能,在这个版本中,将开发调试模式时的默认打包工具改为了 zipflinger
。这样在调试开发的时候构建速度将会有所提高,但是我们也可以在gradle.properties
文件中设置 android.useNewApkCreator=false
来改用旧的打包工具。
Test
Android 模拟器-谷歌地图界面
Android Emulator 29.2.12 为 App 开发人员提供了一种新的操纵模拟设备位置的新方法。在扩展控件菜单中嵌入了谷歌地图用户界面,方便开发人员更容易地指定位置,也可以根据两个地点位置创建导航路线。而且单个一个位置还可以保存并重新作为虚拟位置发送到模拟器,路线导航也可以通过输入地址或单击两个点来生成。这些路线导航可以可以实时回放,路线导航沿线的位置信息也会被发回到模拟器的系统内。
带有实时定位流的 Android 模拟器定位 UI多个屏幕支持
Emulato 29.1.10 更新了对多个虚拟屏幕的初步支持。随着越来越多的设备可以使用多个屏幕,在多种屏幕配置上测试你的应用程序是非常重要的。可以通过设置菜单(扩展控件设置)配置多个屏幕。
Android 模拟器中的多显示支持 在 Android 模拟器扩展控件面板中配置辅助显示断点续传下载 SDK
当使用 Android Studio SDK Manager 下载 Android SDK 组件和工具时,Android Studio 现在可以继续之前中断的下载(例如,由于网络问题) ,而不是从头重新下载。在网络连接不可靠的情况下,这个更新对需要下载大的 SDK 组件和工具时非常有帮助,比如 Android 模拟器或系统映像。
暂停并继续 SDK 下载In-place updates for imported APKs
Android Studio 允许我们导入外部构建的 APKs 来调试和分析它们。以前,当对这些 apk 进行更改时,我们必须再次手动导入它们并且需要重新添加符号表和源代码。Android Studio 3.6 现在可以自动检测导入的 APK 文件所做的更改,并且会提供一个重新导入该文件的选项。
Attach Kotlin sources to imported APKs
我们增加了对将 Kotlin 源文件附加到导入的 apk 的支持。 要了解更多信息,请参见 Attach Kotlin/Java 源代码。
将 Kotlin/Java 源代码附加到导入的 APKs优化
在内存分析器中检测内存泄漏
根据反馈,Android Studio 开发团队在内存分析器中添加了检测可能泄漏的活动和片段实例的功能。首先,在内存分析器中捕获或导入堆转储文件,然后选中 activity/fragments Leaks
复选框就会生成检测结果。相关文档:https://developer.android.google.cn/studio/profile/memory-profiler#profiler-memory-leak-detection
Deobfuscate class and method bytecode in APK Analyzer
当使用 APK 分析器检查 DEX 文件时,现在可以对类和方法字节码进行去混淆处理。 在 DEX 文件查看器中,加载正在分析的 APK 的 ProGuard 映射文件。 加载后,就可以通过右键单击要检查的类或方法,然后选择 Show Bytecode
来去除混淆。
作者:Scott Swarthout 原文地址:https://android-developers.googleblog.com/2020/02/android-studio-36.html