【问题标题】:what is Android Studio Instant Run?什么是 Android Studio 即时运行?
【发布时间】:2017-07-20 06:59:17
【问题描述】:

今天我更新了我的 Android Studio 并运行了以前版本中存在的应用程序。当我运行以前版本的应用程序时,应用程序启动速度非常快,但是当我更新 android studio 并运行具有更新版本的相同应用程序时,应用程序是启动时间太长。我用谷歌搜索了这个问题,发现如果启用即时运行,然后禁用它,所以我做了同样的事情,应用程序启动的速度也很快。

现在我的问题是-

  1. 什么是即时运行?使用它有什么优缺点?
  2. 为什么应用程序在启用即时运行时启动时间过长,而当我禁用它时,为什么它启动应用程序的速度如此之快。

【问题讨论】:

  • @Shashanth 是的,我已经阅读了这篇文章,但没有得到我想知道的所需信息。

标签: android android-studio


【解决方案1】:

即时运行附带最新版本的 Android Studio。但在某些情况下,它在使用时是有线的。

什么是即时运行?

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

优点

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

缺点

说真的,我觉得安装不变的问题。那是在某些时候使用即时运行时,应用程序似乎没有更新。它保持在以前的构建状态。有时我觉得它比普通构建要慢。

热插拔:

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

热交换:

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

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

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

禁用即时运行:文件=>设置=>构建、执行和 deployment=>Instant Run=>取消选中为热插拔启用即时运行

请参阅this 文档。

【讨论】:

  • @DkThakur 可能是因为冷交换
  • 它清除了我的第一点,但不是我的第二点,我仍在寻找我的第二点,现在我接受这个作为答案,但请记住,这不是我第二点的答案。如果有人有我的第二点的答案请发表评论。
【解决方案2】:

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

没有即时运行:

即时运行:

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

【讨论】:

    【解决方案3】:

    即时运行:

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

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

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

    【讨论】:

      【解决方案4】:

      Instant Run 允许您在不构建新 APK 的情况下推送代码更改。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-12-19
        • 2017-11-11
        • 1970-01-01
        • 2017-07-23
        • 2016-02-26
        • 2016-12-24
        • 1970-01-01
        相关资源
        最近更新 更多