官方给出消息,过去8个月里,Android Studio团队暂缓新特性开发工作,重点提升Studio的产品质量,只为带来速度更快的日常开发体验,谷歌把这项工作命名为Project Marble计划。该计划围绕系统健康、特性优化和错误修复三大核心领域,力图在Android Studio与Android模拟器中构建功能强大且稳定的基础特性与流。
为了提升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中的多个错误。
系统健康
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.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支持