Android Studio中Instant Run

Instant Run

翻译成中文叫即时运行或直接运行模板。不过我一般习惯了叫做闪电运行,为什么这么叫?请看图:


小闪电

有个小闪电(2.3.x版本独立有个小闪电,2.0-2.2是和左边运行图标在一块),因为是个小闪电,所以我习惯了叫做闪电运行。

在Android Studio 2.0中引入的Instant Run是运行和调试命令的一种行为,可以显着减少应用更新的时间。虽然您的第一次构建可能需要更长的时间才能完成,但Instant Run会将随后的更新推送到您的应用程序,而不需要构建新的APK,因此可以更快速地看到更改(当然有些坑,慎用(比如用到地图时,请关闭Instant Run))。

Instant Run仅在部署调试版本变量时使用,使用Android Plugin for Gradle 2.0.0或更高版本,并在应用程序的Module级build.gradle文件中将MinSdkVersion设置为15或更高版本。为了获得最佳性能,将minSdkVersion设置为21或更高。

部署应用程序后,“运行”按钮(或“调试”按钮)(2.0-2.2)中将显示一个小型的黄色雷电图标(2.3以后有独立图标),表示“下次运行”准备好在下次单击按钮时进行更新。而不是建立一个新的APK,它只会加入这些新的更改,在某些情况下,该应用甚至不需要重新启动,立即显示这些代码更改的效果。

Instant Run通过执行热交换,温交换或冷交换,将更新的代码和资源推送到连接的设备或模拟器。它会根据您所做的更改类型自动确定要执行的交换类型。

在每次Studio更新中,我们都会看到官方会对Instant Run进行优化。

关于Instant Run

启用和禁用Instant Run

1.打开设置或首选项对话框:在Windows或Linux上,从主菜单中选择File> Settings。在Mac OSX上,我也不知道( ⊙ o ⊙ )!。

2.导航到Build, Execution, Deployment > Instant Run。

顶部选项是Instant Run。勾选/取消选中该框。

使用Instant Run时不支持的代码更改

有一些变化,即时使用Instant Run,也会完全构建和重新安装应用程序。
比如:
1.更改应用程序清单
2.更改应用程序清单引用的资源
3.更改Android小部件UI元素(需要清除和重新运行)

即时运行中的代码类型交换

有三种类型的代码交换可以支持代码更快的调试和运行应用程序。
1.热交换(HOT SWAP)
2.温暖互换(WARM SWAP)
3.冷交换(COLD SWAP)

什么时候触发这些互换?

当更改现有方法的实现时触发HOT SWAP。
当更改或删除现有资源时,会触发WARM SWAP(res文件夹中的任何内容)
只要您的应用程式代码中存在结构性代码变更,即可使用COLD SWAP

例如:
1.添加,删除或更改:

  • 一个实例字段
  • 一个静态字段
  • 静态方法签名
  • 一个实例方法签名

2.更改当前类继承的父类
3.更改实现的接口列表
4.更改类的静态初始化程序
5.重新排序使用动态资源ID的布局元素

当代码交换发生时会发生什么?
HOT SWAP更改可以立即显示 - 只要下一次调用实现方法的更改时。
WARM SWAP重新启动当前活动
COLD SWAP重新启动整个应用程序(不重新安装)

注: 代码更改可以通过热交换快速部署,但是热交换会影响应用的初始化,所以我们不得不通过重启应用来响应这些修改。所以有时候也是个坑。

可以进官网了解更多关于Instant Run的内容
Instant Run

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值