什么是Android Studio Instant Run?

DkT*_*kur 24 android android-studio

今天我已经更新了我的android工作室并运行了以前版本的应用程序.当我运行应用程序与以前的版本应用程序启动非常快但当我更新Android工作室和运行相同的应用程序与更新版本然后应用程序占用太多是时候发布了.我搜索了这个问题,发现如果启用了即时运行,那么禁用它,这样我就完成了同样的操作,并且应用程序的启动速度与原来一样快.

现在我的问题是 -

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

Kir*_*eph 31

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

什么是Instant Run?

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

优点

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

缺点

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

热插拔:

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

温暖的交换:

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

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

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

禁用即时运行:File => Settings => Build,Execution and deployment => Instant Run =>取消选中启用即时运行热插拔

在此输入图像描述

请参阅文档.


Ani*_*kur 7

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

没有即时运行:

在此输入图像描述

即时运行:

在此输入图像描述

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