Android Studio 3.2 都有哪些更新?这些关键点不要错过
作者:Jamal Eason, Android 产品经理
每一位开发者都应该使用 Android Studio 3.2 来过渡到使用新应用发布格式 Android App Bundle。只需极少的工作,就能用 Android Studio 生成一个 App Bundle。将 App Bundle 上传到 Google Play 后即可向用户分发更小的优化后应用。早期采用者已证实 App Bundle 比旧的 APK 应用尺寸减少了 11% - 64%。
另一个您不想错过的功能是 Energy Profiler (电量分析器)。新分析器提供一套工具帮助诊断和改善应用的能耗。更长的设备电池寿命一直是用户最关心的一方面,而利用 Android Studio 3.2 中的电量监测器,您可以通过确保应用在正确的时间使用适当的电量,帮助改善设备电池寿命。
您还应该试试新的 Android 模拟器 Snapshots 快照功能。利用这个功能,您可以将模拟器的当前状态快速生成一张快照,包括屏幕、应用和设置的当前状态。您能够在 2 秒内恢复或引导到您的模拟器快照。对于任何一位寻求超快引导时间或寻求在一个预期的 Android 环境中运行测试的应用开发者而言,Android 模拟器快照都是应用开发的一项革命性功能。
除了这些重磅功能外,Android Studio 3.2 中有 20 项新功能以及许多内部的质量改进。利用 Android Studio 3.2,您还可以通过 Android Slices 针对最新技术进行开发,从 Android Jetpack,到与 Google AI 无缝整合。
>> Android Slices
https://developer.android.google.cn/guide/slices/
感谢为 canary 和 beta 版提供早期反馈的开发者们。您们的反馈帮我们改进了 Android Studio 3.2 的质量和功能。如果您已经准备好迎接下一个稳定版,并希望使用各种新的生产力特性,Android Studio 3.2 已经准备就绪可以下载了。
下面是 Android Studio 3.2 新特性完整列表,按关键开发者流程组织。
开发
Slices 支持 - Slices 是一种接入内置 Android AI 功能的新方式,能够在 Google 搜索和 Google 智能助理中呈现应用内容。Android Studio 3.2 有一个内置模板可以帮您用新的 Slice Provider API 来扩展您的应用,以及新的 Lint 检查来确保您在构建 Slice 时遵循最佳实践。如需使用,在项目文件夹上右键,依次选择 “New→ Other→ Slice Provider”。
样本数据 - 这个特性允许您使用占位符数据协助设计应用。这将帮助您根据运行时环境数据将布局可视化。通过 “布局编辑器” 中的一个弹出窗口,您可以为各种视图添加内置样本数据,如 RecyclerView、ImageView 和 TextView。
Material Design 更新 - 当您从 Android Design 支持库迁移到新的 MaterialComponents 应用主题和库时,Android Studio 3.2 将为您提供新的和更新的小部件,如:BottomAppBar、按钮、卡片、文本域、新字体样式等。
CMakeList 编辑支持 - 对于在应用中使用 C/C++ 的开发者,Android Studio 优化了对 Cmake 的支持。在 Android Studio 3.2 里,代码补全和语法高亮现在都对一般 CMakeList 构建脚本命令有效。
更新助理 - Android Studio 3.2 有一个新的助理面板,每次更新后会自动打开来通知您关于 IDE 的最新变化。您也可以通过依次选择 “Help → What's New in Android Studio” 来打开这个面板。
AndroidX 重构支持 - Android Jetpack 的组件之一是引入了 Android 扩展库(AndroidX)替换了 Android 支持库。如需添加 AndroidX 到一个新项目,需要添加 android.useAndroidX=true 到 gradle.properties 文件。此外,Android Studio 3.2 有一个新的内置重构动作以帮助您将项目迁移到新的命名空间和依赖。而且如果您有任何 Maven 依赖尚未迁移到 AndroidX 命名空间,Android Studio 构建系统将自动转换这些项目依赖。
IntelliJ 平台更新 - Android Studio 3.2 包含了 IntelliJ 2018.1.6 平台发布。这个 IntelliJ 版本大幅改进了数据流分析、调试、新检测、行内外部注释、Git 部分提交等等。
Kotlin 更新 - Android Studio 3.2 捆绑了 Kotlin 1.2.61,支持 Kotlin 友好的 Android 9 Pie SDK。
构建
Android App Bundle - Android App Bundle 是新的应用发布格式,旨在帮您向用户提供更小的 APK 并降低应用的下载大小。Google Play 名为 Dynamic Delivery “动态交付” 的新应用服务模式会处理您的 App Bundle,针对每个用户的设备配置生成并服务优化后的 APK,从而让用户只需下载其需要的代码和资源就能运行您的应用。利用 Android Studio 3.2 或通过 命令行可以轻松将您的代码构建为一个 App Bundle,并根据语言、屏幕密度和 ABI 缩减 APK 大小,且应用代码不会改变。
△ 构建 Android App Bundle
D8 Desugaring - 某些情况下,新的 Java 语言特性要求新的字节码和语言 API。但较旧的 Android 设备可能不支持这些特性。Desugaring允许您通过在构建过程中将新字节码和语言 API 替换为旧版,从而在较旧的设备上使用这些特性。D8 Desugaring 在 Android Studio 3.2 中默认启用,现在您可以使用大多数最新的语言变更,同时针对较旧的目标设备。
R8 优化器 - 从 Android Studio 3.2 开始,我们将逐渐使用 R8 替代 ProGuard 来优化和缩减 Java 语言字节码。R8 仍处于实验阶段,因此我们尚不推荐您使用 R8 发布您的应用,但现在很适合向 Android Studio 团队提交早期反馈,以便我们在 R8 正式取代 ProGuard 前进行调整。
测试
模拟器 Snapshots - 最新版的 Android 模拟器允许您将模拟器的当前状态创建一份快照,并在 2 秒内引导和切换到任何快照。基于 Android 模拟器 Quickboot 特性构建的 Android 快照稳定版能够更快保存和加载,这主要得益于内部的速度改进优化。 在测试和开发应用时,Android 快照允许您预配置一个拥有您想要的预设、应用、数据和设置的 Android 虚拟设备(AVD)快照,并反复回到同样的快照。
△ Android 模拟器 Snapshots
Microsoft® Hyper-V™ 支持 - 现在您可以在 Windows® 10 启用了 Hyper-V 的电脑上运行 Android 模拟器。Intel HAXM 仍是默认的 hypervisor,能够提供最快的 Android 模拟器体验。但得益于微软近年的开源贡献,以及新 Windows Hypervisor Platform (WHPX) API 的加入,Android 模拟器能够与其他使用 Hyper-V 的应用共存,如:使用新 Hyper-V 支持的本地虚拟机。
AMD® 处理器支持 - 现在 Windows 10 上的 Android 模拟器支持 AMD 处理器。以前 AMD 处理器运行 Windows 时,Android 模拟器只能进行缓慢的软件模拟,但现在使用 AMD 处理器的开发者拥有了硬件加速性能。
Android 模拟器中的录屏 - 现在您可以使用 Android 模拟器中新增的录屏功能在任何 Android API Level 录制屏幕和音频。过去,受 Android 模拟器支持的限制,物理 Android 设备上的录屏只能在 Android 4.4 KitKat (API 19) 及以上进行,且没有音频。利用最新的 Android 模拟器 (v28.0.+) 您将不再受此限制。此外,还内置了转换器,支持输出为 GIF 和 WebM。您可以通过 Android 模拟器扩展控制面板、命令行和从 Android Studio 中触发新的录屏特性。
Android 模拟器的虚拟场景摄像头 - Android 模拟器的新虚拟场景摄像头,能够帮您为 Google 构建虚拟现实体验的平台 ARCore 进行开发。模拟器经校准,可使用 ARCore API 用于 AR 应用,还允许您注入虚拟场景位图图像。该虚拟场景摄像头还可以用作兼容 HAL3 的摄像头。
ADB 连接助手 - Android Studio 3.2 有一个新的助手系统,能帮助解决 Android ADB 设备连接问题。ADB 连接助手会引导您进行一般的解决步骤,以将您的 Android 设备连接到您的开发机。您可以通过 “运行” 对话框或依次选择 “Tools → Connect Assistant” 来触发助手。
优化
Energy 分析器 - 许多手机用户都十分关心电池寿命,而您的应用对电池寿命的影响可能超出您的预期。Android Studio 性能监测器套件中的电量监测器能够帮您了解您的应用对 Android 设备电量的影响。现在您能够以可视化的方式估计系统组件的用电情况,还能检查可能耗尽电池的后台事件。要使用电量监测器,请确保您已经连接到一部运行 Android 8.0 Oreo (API 26)或更高级系统的 Android 设备或模拟器。
△ 电量监测器
System Trace 系统跟踪 - CPU 监测器中的新 “系统跟踪” 特性允许您查看您的应用与系统资源交互的详情。查看您的线程状态的精确时序和持续时间,以可视化方式查看您的 CPU 各核心的瓶颈,以及添加定制跟踪事件以供分析。要使用系统跟踪,开始监测您的应用,点击进入 CPU 监测器,然后选择 “系统跟踪” 记录配置。
Profiler Sessions - 现在我们能够自动将监测器数据保存为 “会话” 以便之后打开 Android Studio 时再次访问和查看。我们还新增了导入和导出 CPU 记录和堆转储的功能,以便之后用其他工具分析或查看。
自动 CPU 记录 - 现在您可以使用调试 API 自动记录 CPU 活动。在您将您的应用部署到一部设备之后,当您的应用调用 startMethodTracing(String tracePath) 时监测器会自动开始记录 CPU 活动,而当您的应用调用 stopMethodTracing() 时会停止记录。类似地,现在您还可以通过在您的运行配置里启用 “启动时开始记录方法跟踪” 选项,在应用启动时自动开始记录 CPU 活动。
JNI 引用追踪 - 如果您的 Android 应用中有 C/C++ 代码,现在 Android Studio 3.2 允许您在内存监测器中查看您的 JNI 代码的内存分配。只要您将您的应用部署到一部运行 Android 8.0 Oreo(API 26)或更高级系统的设备上,您就可以从您的 JNI 引用中下钻查询分配调用堆栈。要使用该功能,启动一个内存监测器会话,并从 Live Allocation 下拉菜单中选择 JNI 堆。
新版本重点特性总结
最新版 Android Studio 3.2 Canary 包含:
开发
AndroidX 重构
样本数据
Material Design 更新
Android Slices
CMakeList 编辑
新助理
新 Lint 检查
Intellij 平台更新
Kotlin 更新
构建
Android App Bundle
D8 Desugaring
R8 优化器
测试
Android 模拟器截图
Android 模拟器中的录屏
虚拟场景 Android 模拟器摄像头
AMD 处理器支持
Hyper-V 支持
ADB 连接助手
优化
电量分析器
系统跟踪
监测器会话
自动 CPU 记录
JNI 引用追踪
开始使用
要使用上述的 Android 模拟器特性,请确保您正在运行通过 Android Studio SDK 管理器下载的最新版 Android 模拟器 v28.0.7 或更高版本。
我们感谢您的任何反馈、问题以及您希望看到的特性。请注意,要保持高产品质量,您在早期发布通道见过的一些特性(如:导航编辑器)并未在稳定发布通道默认启用。如果您发现 bug 或其他问题,欢迎您向我们反馈,或在文章下方留言给我们。
>> 导航编辑器
https://developer.android.google.cn/topic/libraries/architecture/navigation/navigation-implementing#Set-up
>> 向我们反馈
https://source.android.com/source/report-bugs#developer-tools
推荐阅读
· 如何获得更小的应用文件尺寸?来了解下 Android App Bundle
· Android Jetpack: LiveData 和 Lifecycle 介绍 | 中文教学视频
· Android 9 Pie 兼容性常见问题及注意事项