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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • 什么是Instant Run? 我们都知道,Android Studio功能非常强大,在各个功能性方面都要优于Ec...
    GB_speak阅读 794评论 0 3
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,599评论 18 399
  • 下图详细解释了 Android 的 Activity 和 Fragment 的生命周期的各个方法,图片来源于 ht...
    Android_小生阅读 604评论 0 0
  • 或许是因为白天听了老师好几堂的课,又或许是看到写作群里那么多学员都在分享自己的文章,于是在昨夜的梦境中老师给了我一...
    jasmine南京阅读 638评论 2 2