Instant Run

Android Studio 2.0 中引入的可以“大幅减少应用更新时间”的功能。
更改代码再次更新应用,Instant Run 无需再次构建新的 APK,而是直接向应用推送更新。


与重新构建部署的区别

  • 重新构建部署


    Instant Run_第1张图片
    重新构建部署
  • Instant Run


    Instant Run_第2张图片
    Instant Run

使用条件

  • Android Plugin for Gradle 版本在 2.0.0 或更高
  • module 级别的 build.gradle 文件中 minSdkVersion 设置为 15(Android 4.0.3) 或以上
  • 为获取最佳性能,minSdkVersion 设置为 21(Android 5.0) 或以上

执行方式

Android Studio 根据代码修改类型自动选择执行方式

Instant Run 行为 适用范围
heat exchange(热交换) 更改现有方法的实现代码
moderate exchange(温和交换) 更改或移除现有资源文件
cold exchange(冷交换) 结构性的代码更改
deploy the new build(重新构建) manifest 更改
  • heat exchange :速度最快,应用不需要重新安装,也不需要重启。但是此种方式不会初始化正在运行的应用中的对象,所以此时如果要看到更新就需要重新动当前行为或者重启应用
  • moderate exchange:速度也非常快,应用会继续保持运行,但是当前 Activity 会被重启,重启的时候屏幕会发生小闪烁
  • cold exchange:速度相对前两种较慢,应用不需要重新安装,但是需要重启。Android Studio 会将我们每一次修改打成一个 dex 文件发到手机上,应用重启才会加载这个新的 dex 文件。(cold exchange 基于只有 5.0 及以上的设备才支持的 multidex 机制,以下则执行完整的 APK 安装过程)
  • deploy the new build:对 AndroidManifest.xml 以及其引用的资源进行更改时,应用会被重新构建,因为应用的相关信息(名字、版本等)需要在安装 APK 的时候通过 AndroidManifest.xml 确定
  • 结构性的代码更改
    • 添加、移除、更改注解、字段、方法
    • 更改继承类
    • 更改实现接口
    • 更改一个类的 static 修饰符
    • 使用动态资源 id 重新布局
  • manifest更改
    • 更改 AndroidManifest.xml
    • 更改 AndroidManifest.xml 所引用的资源,比如 string.xml、style.xml 等文件
    • 更改 UI 组件(需要清除并重新运行)

使用 Instant Run

  • 打开 Preferences 对话框
  • 导航至 Build, Execution, Deployment > Instant Run
  • 通过勾选框控制 Instant Run 的使用
Instant Run_第3张图片
使用 Instant Run

你可能感兴趣的:(Instant Run)