安卓工作室即时运行是什么?

32

今天我更新了我的Android Studio,并运行了之前版本的应用程序。当我使用旧版本运行应用程序时,启动非常快,但是当我更新Android Studio并使用更新后的版本运行同一应用程序时,应用程序需要太长时间才能启动。我搜索了这个问题,发现如果启用Instant Run,则需要禁用它,因此我做了相同的操作,应用程序的启动速度与以前一样快。

现在我的问题是-

  1. 什么是Instant Run?使用它的利弊是什么?
  2. 为什么当Instant Run被启用时,应用程序需要花费很长时间才能启动,而当我禁用它时,应用程序的启动速度却像以前一样快?

阅读此官方文档 - Shashanth
@Shashanth,是的,我已经阅读了这篇文章,但没有得到我想知道的信息。 - DkThakur
4个回答

33

即时运行是Android Studio的最新版本之一。但在某些情况下使用它会有些问题。

什么是即时运行?

在普通的构建和运行中,整个APK文件都会被更新并推送到设备上。而在使用即时运行时,只有更新的部分会被替换成设备上的内容。即时运行通过执行热交换温暖交换冷交换,向已连接的设备或模拟器推送更新的代码和资源。根据所做的更改类型,它会自动确定要执行的交换类型。

优点

相比于普通构建,它可能更快。但在API 21以下的构建时间,应用程序需要在运行时才能实现。

缺点

我严重感觉到未更改安装的问题。有时使用即时运行时,应用程序似乎没有更新。它停留在以前的构建中。有时我觉得它比普通构建慢。

热交换:

这是最快的交换类型,并使更改更快地可见。您的应用程序将继续运行,并在下次调用该方法时使用具有新实现的存根方法。

温暖交换:

这种交换仍然非常快,但是当它将更改的资源推送到您的应用程序时,即时运行必须重新启动当前活动。

冷交换(API级别21或更高):

这种交换速度略慢,因为尽管不需要新的APK文件,但即时运行必须在推送结构代码更改时重新启动整个应用程序。

禁用即时运行:文件=>设置=>构建、执行和部署=>即时运行=>取消选中热交换的即时运行

输入图像描述

请查看文档,了解更多关于即时运行的信息。


@DkThakur 这可能是由于冷插拔造成的。 - Kiran Benny Joseph
它解决了我的第一个问题,但是我的第二个问题仍未解决,我现在接受这个答案,但请记住,这不是我第二个问题的答案。如果有人有我第二个问题的答案,请留言。 - DkThakur

11

1

即时运行:

这是Android Studio中的一个功能,利用魔法显著减少您在编码/测试/调试生命周期中进行增量代码更改的构建和部署时间。

这是正常现象,并且是即时运行功能的一部分。理论上,后续加载应该会更快。

您应该尝试重新启用它并观察后续运行情况,您将看到结果。


0

即时运行允许您在不构建新的 APK 的情况下推送代码更改。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接