即时运行 - 热,冷和冷交换之间的区别

时间:2016-05-05 09:24:52

标签: android android-studio android-instant-run

我已更新最新版本的android studio(2.1)。在文档中提到android studio最新版本将支持android studio的即时运行功能中的热暖和冷交换。

任何人都可以告诉我热交换和冷交换有什么区别

3 个答案:

答案 0 :(得分:6)

  • 热插拔: -

    现有代码内发生热插拔 方法实现已更改。新的方法实现是 下次应用程序调用它时使用。发生热插拔 瞬间,如果配置,则伴随着祝酒消息 在设备屏幕上显示“应用的代码更改没有 活动重启“。

  • 热交换: -

    当对资源文件进行更改时 项目(例如布局更改或字符串的修改 或颜色资源设置)执行Instant Run热交换。一个 热交换涉及重新启动当前正在运行的活动。 通常,当活动重新开始时,屏幕将闪烁。温暖 通过读取的Toast消息在设备屏幕上报告交换 “应用更改,重新启动活动”。

  • 冷交换: -

    结构代码更改,例如添加新内容 方法,更改现有方法的签名或更改 到项目的类层次结构触发冷交换 整个应用程序重新启动。请注意,冷交换不会导致 应用程序正在重新安装在设备上。 enter image description here

答案 1 :(得分:3)

阅读Official Documentation for Instant Run以获取详细信息。主要细节如下:

  

什么是热插拔,热插拔和冷插拔?

热插拔

  

这是最快的交换类型,几乎可以看到更改   即刻。您的应用程序继续运行,并使用存根方法   下次调用该方法时会使用新的实现。

热交换

  

此交换仍然非常快,但需要自动活动   当Instant Run将更改的资源推送到目标时重新启动   设备。您的应用程序一直在运行,但可能会出现一个小闪烁   屏幕显示活动重启 - 这是正常的。

冷交换

  

(API级别21或更高级别):Instant Run会推送结构代码   更改目标设备并重新启动整个应用程序。

     

对于运行API级别20或更低级别的目标设备,Android Studio   部署APK的完整版本。

  

触发每个交换的代码类型更改

什么触发热插拔?

Change implementation code of an existing instance method or static method

什么触发热交换?

Change or remove an existing resource

什么触发冷交换?

Structural code changes, such as:

 - Add, remove, or change:
 - an annotation
 - an instance field
 - a static field
 - a static method signature
 - an instance method signature

Change which parent class the current class inherits from

Change the list of implemented interfaces

Change a class static initializer

Reorder layout elements that utilize dynamic resource IDs

答案 2 :(得分:0)

此功能称为Insant Run。

详细说明如何以及何时起作用列于documentation

中的表格中
相关问题