Android Studio Instant Run 官方介绍翻译

来源:互联网 发布:网络机柜规格 编辑:程序博客网 时间:2024/05/13 09:15

关于 Instant Run


Instant Run是在Android Studio 2.0版本引入的一种显著减少你的应用“更新编译”时间的功能,所谓的更新编译,在下的理解:已经在你的模拟器或真机上运行着的,在此基础上修改代码,然后编译运行。尽管Instant Run会在你首次编译的时候消耗更多的时间,但在接下来的更新编译中不会编译出来一个新的APK文件,这也就意味着速度上会快很多。

Instant Run只在你的buildType(build.gradle中的buildType选项)是debug的时候可用,Gradle插件2.0.0及以上,minSdkVersion为15及以上,如果想要最好的性能,可以把minSdkVersion设置为21及以上。

Instant Run可以在Settings - Build, Execution, Deployment - Instant Run设置

当你在模拟器或真机上运行完你的应用后,一个黄色的小闪电图标会出现在Run这里写图片描述按钮上(或者是Debug这里写图片描述按钮),表示Instant Run已经就绪。

Instant Run会有三种快速编译类型,这取决于你对项目代码的更改。三种类型为:

  1. hot swap
  2. warm swap
  3. code swap

我会对三种编译类型进行解释

代码改变 Instant Run 执行过程 修改了已经存在方法内的代码 Instant Run认为是hot swap,这是执行最快的一种类型,hot swap不会重新初始化你的变量,可能需要从其当前的Activity或者点击Rerun按钮,就可以直接把代码应用到App中 更改或删除一个已经存在的资源文件 Instant Run认为是warm swap,执行速度依然很快,但要执行该更改必须重启当前的Activity。你的应用会继续运行,但是在屏幕上会闪烁一下,这个是正常的 代码结构改变。比如:添加,删除或更改一个对象、一个注解、一个静态变量,一个静态方法的签名,一个实例的方法签名,改变当前类的父类、改变已实现接口的列表、改变一个类的静态初始化和layout文件的控件ID Instant Run认为是code swap(只在API为21及以上),这个类型会稍微慢一点,因为尽管不需要编译出一个新的APK文件,但当代码结构改变的时候,Instant Run必须重启整个应用。在API为20及以下,Instant Run会编译出来一个完整的APK文件 修改了manifest文件;修改了manifest文件引用的资源;修改了一个Android widget UI元素(需要Clean 和 Rerun); 当修改了应用的manifest或者manifest引用的资源,Android Studio会自动执行一个新的编译操作来应用这些修改。这是因为当一个应用装在一个设备上后,一些要确保无误的信息,比如应用的名称,图标资源等是取决于manifest文件的;当你在debug的编译类型启用了Instant Run,应该选择关闭自动更新manifest文件的选项,比如versionCode或者versionName;当更新一个Android UI组建的属性后,需要Clean和Rerun你的项目来应用这些更改,当更改UI组件的属性后,因为Clean会消耗更多的时间,你可以选择关闭Instant Run选项。

Note: 如果你需要在你的应用崩溃后重启,不要在你的当前设备上重新启动,重启你的应用不会应用从上次cold swap或增量编译的任何代码更改,你可以点击Run或者Debug按钮来启动你的应用

原文链接:About Instant Run

0 0
原创粉丝点击