我已经更新到android studio的最新版本(2.1)。文档中提到,android studio最新版本将在android studio的即时运行功能中支持热、温、冷切换。
谁能告诉我热交换、热交换和冷交换有什么区别吗?
发布于 2016-05-05 18:01:09
当现有方法实现中的代码发生更改时,就会发生热交换。新的方法实现将在下次被应用程序调用时使用。热插拔会立即发生,如果进行了配置,还会在设备屏幕上显示一条toast消息,上面写着:“Applied changes without activity restart”.
当对项目的资源文件进行更改时(例如,布局更改或字符串或颜色资源设置的修改),将执行即时运行热交换。热交换涉及重新启动当前正在运行的活动。通常,当活动重新启动时,屏幕将闪烁。设备屏幕上显示一条toast消息报告热交换,消息内容为“Applied,restarted activity”.
结构代码更改,例如添加新方法、更改现有方法的签名或更改项目的类层次结构,都会触发冷交换,其中整个应用程序都会重新启动。请注意,冷插拔不会导致应用程序重新安装到设备上。

发布于 2016-05-05 17:47:52
请阅读Official Documentation for Instant Run以获取完整的详细信息。主要内容如下:
什么是热交换、热交换和冷交换?
热插拔
这是最快的交换类型,使更改几乎立即可见。您的应用程序将继续运行,并在下次调用带有新实现的存根方法时使用该方法。
热插拔
此交换仍然非常快,但当即时运行将更改的资源推送到目标设备时,需要自动重新启动活动。你的应用程序一直在运行,但当活动重新启动时,屏幕上可能会出现一个小的闪烁-这是正常的。
冷插拔
( 21级或更高):即时运行将结构代码更改推送到目标设备,并重启整个应用程序。
对于运行API level 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发布于 2016-05-05 17:40:37
此功能称为Insant Run。
documentation中的表格中列出了其工作原理和工作时间的详细说明。
https://stackoverflow.com/questions/37046936
复制相似问题