阅读 3134

Android Studio 3.5: 稳步推进 Project Marble 计划

作者: Jamal Eason, Android 产品经理

您是否曾希望 Android Studio 可以速度更快、性能更优、效率更高?如是的话,请立即下载最新的 Android Studio 3.5!您将会体验到前所未有的稳定版 Android Studio。在过去的 8 个月中,Android Studio 团队暂缓了新特性的开发工作,专心提升 Studio 的产品质量,只为让您享受到速度更快的日常开发体验!我们把这项工作命名为 Project Marble 计划。该计划围绕系统健康、特性优化和错误修复三大核心领域,力图在 Android Studio 与 Android 模拟器中构建功能强大且稳定的基础特性与流。我们会在 Project Marble 计划中直接整合收到的开发者反馈,欢迎大家继续向我们提交反馈,分享您的想法与感受。

为了提升 Android Studio 的系统健康,我们首先开发了一套全新的基础架构和内部仪表盘,以便更好地监测系统性能问题。通过这种方法部署的安全网可以帮助我们成功捕捉到常规单元测试难以识别的问题。接着,团队解决了一系列问题,其中包括: 修复了 600 余个错误、50 个内存泄漏以及 20 个 IDE 挂起问题,并且减缓了 XML 和 Kotlin 从输入到被显示的延迟现象。此外在 Android 模拟器方面,我们降低了 CPU 和内存对您开发设备的影响。尽管 Project Marble 计划的工作重心在于优化 IDE 和 Android 模拟器的系统健康,但是在计划的实施阶段,我们还发现了几个新的质量领域,需要团队在未来继续攻克。

除了内存和性能以外,团队还投入了大量时间用以优化和修复面向开发者的若干核心特性。例如: 我们检查了设备上的应用部署流,对 Instant Run 进行了彻底重构,开发出了一款更加可靠且值得信赖的替代方案——Apply Changes。引入 Apply Changes 后,我们不会再在构建时重写您的 APK 文件,而是利用 runtime instrumentation 在运行时重新定义类。如果您想要快速编辑代码,并查看代码变更,请立即上手试一下 Android Studio 3.5。

最后,我们还在 Project Marble 计划期间,修复了 Android Studio 3.5 中的多个错误。感谢大家向我们提交错误报告,并在多个社交平台上与团队进行积极互动,特别是 Android 社区中的 40 位外部贡献者,非常感谢他们一直以来的热心奉献,帮助团队提交和解决 Android Studio 3.5 中的重要质量问题。尽管 Android Studio 3.5 稳定版的发布对我们来说已经是一个里程碑,象征着团队为提升 IDE 质量所付出的艰苦努力,但是我们的质量调优工作并不会止步于 Project Marble 计划。我们希望每一位下载并使用 Android Studio 3.5 的开发者都可以享受到 Project Marble 计划所带来的裨益,借助高质量产品和全新架构,显著提升 Android 应用的开发效率。

我们在 Android Studio 3.5 中引入了许多质量变更,请参阅《Android Studio 3.5 Beta 现已发布》或者 Android Studio 版本说明,查看完整版变更列表。当然,您也可以先阅读一下这篇文章或收看下方视频,快速了解一下其中的若干重要变更:

系统健康

Project Marble 计划中系统健康方面的改进包括: 内存性能、输入与用户界面冻结、构建速度、CPU 使用以及 I/O 性能。我们针对这五点分别设计了新的监测机制,以便在开发过程中更准确地识别问题,此外,流程上的优化也让团队得以更好地分析用户反馈,从开发者自愿分享的统计数据和错误报告中获取更多洞见。

尽管系统健康的许多优化项可能并不为大家所熟知,不过其中还是有几个比较明显的变更,其中包括:

自动推荐内存设置

在 Android Studio 3.5 中,IDE 会识别出一个应用项目在 RAM 容量更高的机器上何时需要更多的 RAM,并在通知开发者增加内存堆大小;或者您也可以在 Appearance & Behavior → Memory Settings 下自行调整设置。

内存设置

用户界面冻结

在 Project Marble 计划开发期间,我们在产品分析数据中发现 IDE 中的 XML 代码编辑速度明显较慢。我们基于这个数据点优化了 XML 输入,使得 Android Studio 3.5 的性能表现有了极大的提升。从以下两张图中您可以发现,得益于输入延迟的改进,使用 XML 编辑数据绑定表达式的速度明显加快了。

改进前: 在 Android Studio 3.4 中编辑代码

改进后: 在 Android Studio 3.5 中编辑代码

构建速度

为了提高 Android Studio 3.5 的构建速度,我们采取了许多措施,其中最为重要的一项变更是为顶级注释处理器添加增量构建支持,这些处理器包括 Glide、AndroidX data binding、Dagger、Realm 和 Kotlin (KAPT)。增量支持能够显著提高构建速度。更多内容,请阅读《在 Android Studio 中加快构建速度》。

磁盘 I/O 文件访问速度

Android Studio 的许多用户都在使用微软旗下的 Windows 系统。我们发现与其他平台相比,Windows 的磁盘 I/O 文件访问耗时明显更久。深度分析数据后,我们发现在一些杀毒程序在默认设置下,并未将 Android Studio 的构建输出文件夹 (build output folder) 排除在扫描范围之外。在 Android Studio 3.5 中,一旦系统监测到这个情况,Studio 将通过弹窗引导您进行最优设置。

系统健康通知——杀毒软件检查

特性优化

除改善系统健康之外,我们还重新检查了一些关键用户流程, 修复了一些错误以及若干导致不良用户体验的问题,涉及领域包括: 数据绑定、布局、Chrome OS 支持和项目升级,而应用部署流则是其中较为关键的一项改进。

Apply Changes

在 Project Marble 计划期间,我们移除了 Instant Run,然后在 Android Studio 3.5 中重新构建并实现了一个更加实用的替代方案,即 Apply Changes。Apply Changes 使用 Android Oreo 及以上版本中的平台特定 API 来确保可靠且一致的系统行为。与 Instant Run 的机制不同,更改系统配置并不会重写您的 APK 文件。为了支持此项变更,我们重构了整个部署管道,以此提升部署速度;与此同时,我们还微调了工具栏中的运行与部署按钮,希望借此为您提供更为精简的开发体验。

Apply Changes 按钮

应用部署用户流

总结一下,Android Studio 3.5 共修复几百个错误,并针对以下核心领域引入了若干关键变更:

系统健康

  • 内存设置
  • 内存使用报告
  • 减少异常
  • 用户界面冻结
  • 构建速度
  • IDE 速度
  • Lint 代码分析
  • I/O 文件访问
  • 模拟器 CPU 使用

特性优化

  • Apply Changes
  • Gradle 同步
  • 项目更新
  • 布局编辑器
  • 数据绑定
  • 应用部署
  • C++ 改进
  • Intellij 2019 平台升级
  • 动态特性支持之条件交付
  • 模拟器对可折叠设备及 Google Pixel 设备的支持
  • Chrome OS 支持

更多内容,请参阅 Android Studio 版本说明,或阅读下列与 Project Marble 计划相关的深度学习专栏或收看 Google I/O 专题分享会:

自愿数据分享与反馈

我们基于开发者提交的反馈与指标数据,判断 Android Studio 中有哪些内容适用于 Project Marble 计划,并决定具体的优化项目和实现手段。开发者可自愿在 Android Studio 内勾选数据分享,收集上来的数据将帮助团队判定产品是否含有波及全体用户的问题,接着在此基础上,调整功能开发工作的顺序,优先解决最令用户头疼的问题。为了获取最优洞见,我们在产品整合了多种不同的反馈渠道,指标数据分享是其中最基本的一款反馈工具,您可通过以下路径在 Android Studio 中启用该功能 Preferences /Settings → Appearance & Behavior → Data Sharing。

IDE 数据分享
不知道您今年是否留意到 IDE 右下角的用户心情标志。Android Studio 通过这个小小的心情标志,了解用户的使用感受,并获取与实际用例相关的反馈。这是用户向团队提交错误报告最快的途径。

IDE 用户反馈

即刻体验

下载

请前往下载页面,获取 Android Studio 3.5。如果您当前正在使用旧版本的 Android Studio,请直接进行升级操作即可。

如需使用上述 Android 模拟器特性,请确保您正在运行通过 Android Studio SDK 管理器下载的 Android 模拟器 v29.1.9 或更高版本。

非常感谢大家继续踊跃反馈,与我们分享您的所感所想,建议与意见,或者任何您期望看到的新特性。如果您遇到任何错误或问题,请提交错误报告,或在评论区留言。

点击这里提交产品反馈建议

关注下面的标签,发现更多相似文章
评论