User Interface Freezes

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

文章摘要
1、 选择和构建不同的模块
2、更改运行/调试配置
3、更改构建变体
4、监控构建流程
5、关于 Instant Run

澳门新葡萄京所有网站 1

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


在 Android Studio 3.5 中,改进输入延迟,用 XML
编辑数据绑定表达式的速度更快。

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

英文文献

Build Speed

最后,还在Project Marble计划期间,修复了Android Studio 3.5中的多个错误。

默认情况下,Android Studio
仅需点击几下即可设置要部署至模拟器或物理设备的新项目。使用 Instant
Run,您无需构建新的
APK,就可以将更改推送至方法,将现有应用资源推送至正在运行的应用,所以几乎立刻就能看到代码更改。

Android
应用程序开发的另一个长期问题是构建应用程序所需的时间。新版的 Android
Studio
为应用程序编译带来了两个显著的改进,第一个是注解处理器中添加了增量构建支持,包括
Glide、AndroidX 数据绑定、Dagger,、Realm 和 Kotlin(KAPT)。

Android Studio 3.5下载:点此链接。

要构建和运行应用,请点击 Run。Android Studio 使用 Gradle
构建您的应用,会要求您选择部署目标(模拟器或连接的设备),然后将您的应用部署至目标。您可以通过更改运行配置自定义一些这样的默认行为,例如选择自动部署目标。
如果想要使用 Android
Emulator
运行您的应用,您需要准备好 Android Virtual Device
(AVD)。如果您尚未创建模拟器,点击 Run 后,在 Select Deployment
Target
对话框中点击 Create New Emulator。按照 Virtual Device
Configuration 向导操作,定义您想要模拟的设备类型。

第二个改进涉及 Windows 上的磁盘
I/O。Windows Defender(现在称为 Windows
Security)具有实时扫描文件(创建或修改文件时)的功能,以保护用户免受恶意软件的攻击。Android
Studio 3.5
将显示一个提示,说明你可以采取哪些步骤将项目目录排除在这个实时保护之外,完成最佳设置以加快构建速度。

系统健康

如果您正在使用物理 Android 设备,则需要在设备上启用 USB 调试。

澳门新葡萄京所有网站 2

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

:您也可以通过点击 Debug
,在调试模式下部署应用。在调试模式下运行应用让您可以在代码中设置断点、在运行时检查变体和评估表达式,以及运行调试工具。

Apply Changes

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

一、选择和构建不同模块

如果您的项目除默认应用模块之外还有多个模块,可以执行以下操作来构建特定模块:

  • 在 Project 面板中选择模块,然后点击 Build > Make Module
    module-name。
    Android Studio 使用 Gradle
    构建模块。模块构建后,如果您已经为新应用或新设备构建了模块,可以运行和调试模块;或者如果您已构建了库或
    Google 云模块,可以将其用作依赖项。
    要运行构建的应用模块,请执行以下操作:
  • 点击 Run > Run,然后从 Run 对话框中选择模块。

  • 澳门新葡萄京所有网站 3

澳门新葡萄京所有网站 4

自动推荐内存设置

二、更改运行/调试配置

运行/调试配置指定要运行的模块、要部署的软件包、要启动的行为、目标设备、模拟器设置、logcat
选项,等等。默认运行/调试配置会启动默认项目行为并使用 Select Deployment
Target 对话框选择目标设备。

  • 澳门新葡萄京所有网站 5

如果默认设置不适合您的项目或模块,您可以自定义运行/调试配置,也可以在项目、默认和模块级别创建新配置。要编辑运行/调试配置,请选择
Run > Edit Configurations。

  • 澳门新葡萄京所有网站 6

Android Studio 3.5 中的另一个显著变化是引入了 Apply
Changes,它取代了旧的 Instant Run。Instant
Run 是为了更容易地对应用程序进行小的更改并测试它们,但它会产生一些问题。为了解决这一问题,谷歌已经彻底删除了
Instant Run,并从根本上构建了 Apply Changes ,不再在构建过程中修改
APK,而是使用运行时工具动态地重新定义类,它应该比立刻运行更可靠和更快。

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

三、更改构建变体

默认情况下,在您点击 Run 后,Android Studio
可以构建应用的调试版本,不过仅用于测试目的。您需要构建发布版本,为应用公开发布做准备。

要更改 Android Studio 使用的构建变体,请转到 Build > Select
Build
Variant
,然后从下拉菜单中选择不同的变体。默认情况下,新项目使用调试和发布构建变体进行设置。

  • 澳门新葡萄京所有网站 7

使用产品定制,您可以为不同版本的应用(每个版本的应用均具有不同功能或设备要求)创建其他的构建变体。

APP 部署流程

用户界面冻结

四、监控构建流程

您可以通过点击 Gradle Console
来查看与构建流程相关的详细信息。控制台会显示为构建应用 Gradle
执行的每个任务,如图 1 所示。

  • 澳门新葡萄京所有网站 8

    图 1.Android Studio 中的 Gradle 控制台。

如果您的构建变体使用产品定制,Gradle
也会调用任务来构建这些产品定制。要查看所有可用构建任务的列表,请点击 IDE
窗口右侧的 Gradle

  • 澳门新葡萄京所有网站 9

如果构建过程中出现错误,会出现 Messages 窗口,对问题进行具体描述。Gradle
会建议一些命令行选项来帮助您解决问题,例如 –stacktrace 或
–debug。要在构建流程中使用命令行选项,请执行以下操作:

  • 打开 Settings 或 Preferences 对话框:
    • 在 Windows 或 Linux 上,从主菜单中选择 File > Settings。
    • 在 Mac OSX 上,从主菜单中选择 Android Studio > Preferences。
  • 导航至 Build, Execution, Deployment > Compiler。
  • 在 Command-line Options 旁的文本字段中,输入您的命令行选项。
  • 点击 OK 保存,然后退出。
    Gradle 会在下次您尝试构建应用时应用这些命令行选项。

澳门新葡萄京所有网站 10

该版本有一个新的下拉菜单,可以快速选择要将应用程序部署到哪个设备。此菜单还包括一个新选项,允许一次在多个设备上运行应用程序。

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

五、生成 APK

点击 Run 时,Android Studio 会生成调试 APK
并将其部署至您的目标设备。在您生成用于公开分发的应用发布版本前,必须首先学习如何签署应用、签名应用。然后,您可以生成多个调试或发布构建变体的签署
APK。要定位生成的 APK 文件,请点击弹出对话框中的链接,如图 2 所示。

  • 澳门新葡萄京所有网站 11

    图 2.点击链接定位已生成的 APK 文件。

澳门新葡萄京所有网站 12

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

六、关于 Instant Run

Android Studio 2.0 中引入的 Instant Run 是 RunDebug
命令的行为,可以大幅缩短应用更新的时间。尽管首次构建可能需要花费较长的时间,Instant
Run 在向应用推送后续更新时则无需构建新的
APK,因此,这样可以更快地看到更改。

仅在您部署调试构建变体、使用 Android Plugin for Gradle 版本 2.0.0
或更高版本,以及在应用的模块级别 build.gradle 文件中将 minSdkVersion
设置为 15 或以上时,Instant Run 才受支持。为获得最佳性能,可以将
minSdkVersion 设置为 21 或更高。

部署应用后,Run 按钮(或 Debug中会出现黄色的小闪电图标,表明
Instant Run 已经准备好在您下次点击按钮时推送更新。无需构建新的 APK
即可推送新的更改,一些情况下,应用甚至无需重启就可以立即显示代码更改的效果。

Instant Run
通过执行热交换、温和交换或冷交换向连接的设备或模拟器推送更新的代码和资源。它会根据所做更改的类型自动确定要执行的交换类型。上面的视频提供了有关所有这些如何在后台运行的十分有趣的详细信息。要获得您将特定代码更改推送至目标设备时
Instant Run 如何工作的快速摘要,请参见下表。

  • 澳门新葡萄京所有网站 13

    image.png

Auto-recommend Memory Settings

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

6.1、使用重新运行

推送影响特定初始值设定项的代码更改(例如对应用的
onCreate())
方法的更改)时,您需要重新启动应用,以便使更改生效。要执行增量构建并重新启动应用,请点击
Rerun
如果您需要部署整洁的构建,请从主菜单中选择 Run > Clean and
Rerun
,也可以在点击 Rerun 时按住 Shift
键。此操作会停止运行的应用,执行完整、整洁的构建,然后将新的 APK
部署至您的目标设备。

IDE
将识别应用程序项目何时需要更多内存,并通知你增加内存堆大小,或者你可以在
Appearance & Behavior → Memory Settings 下自己调整设置

构建速度

6.2、停用行为自动重新启动

执行热交换时,您的应用会保持运行,但 Android Studio
会自动重新启动当前的行为。要停用此默认设置,请执行以下操作:

  • 打开 Settings 或 Preferences 对话框:
    • 在 Windows 或 Linux 上,从主菜单中选择 File > Settings。
    • 在 Mac OSX 上,从主菜单中选择 Android Studio > Preferences。
  • 导航至 Build, Execution, Deployment > Instant Run。
  • 取消选中 Restart activity on code changes 旁边的方框。

如果停用活动自动重新启动,您可以选择 Run > Restart
Activity,从菜单栏中手动重新启动当前的活动。

澳门新葡萄京所有网站 14

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

七、针对 Instant Run 配置和优化您的项目

默认情况下,Android Studio 会为使用 Android Plugin for Gradle 2.0.0
及更高版本构建的项目启用 Instant Run。

要使用最新版本的插件更新现有项目,请执行以下操作:

  • 1、打开 Settings 或者 Preferences 对话框。

  • 2、导航至 Build, Execution, Deployment > Instant Run,然后点击
    Update Project,如图 3 所示。
    如果用于更新项目的选项未显示,则说明项目已经带有最新版本的 Android
    Plugin for Gradle,处于最新状态。

  • 澳门新葡萄京所有网站 15

    图 3.更新现有项目的 Android Plugin for Gradle。

综上所述,Android Studio 3.5 有数以百计的 bug 修复和显著的更改:

顶级注释处理器:

7.1、停用 Instant Run

要停用 Instant Run,请执行以下操作:

  • 1、打开 Settings 或者 Preferences 对话框。
  • 2、导航至 Build, Execution, Deployment > Instant Run。
  • 3、取消选中 Enable Instant Run 旁边的方框。

System Health

磁盘I/O文件访问速度

  • Memory Settings

  • Memory Usage Report

  • Reduce Exceptions

  • User Interface Freezes

  • Build Speed

  • IDE Speed

  • Lint Code Analysis

  • I/O File Access

  • Emulator CPU Usage

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

Feature Polish

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

  • Apply Changes

  • Gradle Sync

  • Project Upgrades

  • Layout Editor

  • Data Binding

  • App Deployment

  • C++ Improvements

  • Intellij 2019.1 Platform Update

  • Conditional Delivery for Dynamic Feature Support

  • Emulator Foldables & Google Pixel Device Support

  • Chrome OS Support

特性优化

有关更多细节,请访问 Android 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按钮

(文/开源中国)    

Apply
Changes

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

系统健康

特性优化

Apply Changes

Intellij 2019平台升级

动态特性支持之条件交付

模拟器对可折叠设备及Google Pixel设备的支持

Chrome OS支持