什么是Android Studio Instant Run?

时间:2017-03-01 04:51:05

标签: android android-studio

今天我已经更新了我的android工作室并运行以前版本存在的应用程序。当我运行应用程序与以前的版本应用程序启动非常快但当我更新Android工作室并运行相同的应用程序与更新版本然后应用程序是花了太多时间发布。我搜索了该问题并发现如果启用即时运行然后禁用此功能,那么我已经完成了同样的操作并且应用程序的启动速度与原来一样快。

现在我的问题是 -

  1. 什么是即时运行?使用它有什么代价和缺点?
  2. 为什么应用程序在启用即时运行时会花费太多时间启动,当我禁用它时,为什么它会快速启动应用程序。

4 个答案:

答案 0 :(得分:27)

Instant Run附带最新版本的Android Studio。但在某些情况下,使用它时会连线。

什么是Instant Run?

在普通的构建和运行中,整个APK文件会更新并推送到设备。但是当使用即时运行时,只有更新的部件才会在设备中被替换。 Instant Run通过执行热插拔热插拔冷交换,将更新的代码和资源推送到您连接的设备或模拟器。它会根据您所做的更改类型自动确定要执行的交换类型。

赞成

它可能比普通版本更快。但它要求应用程序在构建时在API 21下运行。

缺点

说真的,我觉得安装不变的问题。那是在某些时候使用即时运行时,应用程序似乎没有更新。它保留在之前的版本中。有时我觉得它比普通版本慢。

热插拔:

这是最快的交换类型,可以更快地显示更改。您的应用程序一直在运行,下次调用该方法时会使用带有新实现的存根方法。

温暖交换:

此交换仍然非常快,但Instant Run必须在将更改后的资源推送到您的应用时重新启动当前活动。

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

此交换速度稍慢,因为虽然不需要新的APK文件,但Instant Run必须在推送结构代码更改时重新启动整个应用程序。

  

禁用即时运行:文件=>设置=>构建,执行和   部署=>即时运行=>取消选中启用热插拔即时运行

Enter image description here

请参阅this文档。

答案 1 :(得分:6)

  

即时运行=增量构建+热,热或冷交换

没有即时运行:

enter image description here

即时运行:

enter image description here

来源:https://medium.com/google-developers/instant-run-how-does-it-work-294a1633367f

答案 2 :(得分:1)

即时运行:

Android Studio中的一项功能是在编码/测试/调试生命周期中使用魔术来显着减少增量代码更改的构建和部署时间。

这是正常的,是Instant Run的一部分  特征。理论上,后续负载应该更快。

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

答案 3 :(得分:0)

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