首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即时运行-热、热和冷交换之间的差异

即时运行-热、热和冷交换之间的差异
EN

Stack Overflow用户
提问于 2016-05-05 17:24:52
回答 4查看 3.9K关注 0票数 2

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

谁能告诉我热交换、热交换和冷交换有什么区别吗?

EN

回答 4

Stack Overflow用户

发布于 2016-05-05 18:01:09

  • Hot交换:-

当现有方法实现中的代码发生更改时,就会发生热交换。新的方法实现将在下次被应用程序调用时使用。热插拔会立即发生,如果进行了配置,还会在设备屏幕上显示一条toast消息,上面写着:“Applied changes without activity restart”.

  • Warm Swapping:-

当对项目的资源文件进行更改时(例如,布局更改或字符串或颜色资源设置的修改),将执行即时运行热交换。热交换涉及重新启动当前正在运行的活动。通常,当活动重新启动时,屏幕将闪烁。设备屏幕上显示一条toast消息报告热交换,消息内容为“Applied,restarted activity”.

  • Cold Swapping:-

结构代码更改,例如添加新方法、更改现有方法的签名或更改项目的类层次结构,都会触发冷交换,其中整个应用程序都会重新启动。请注意,冷插拔不会导致应用程序重新安装到设备上。

票数 7
EN

Stack Overflow用户

发布于 2016-05-05 17:47:52

请阅读Official Documentation for Instant Run以获取完整的详细信息。主要内容如下:

什么是热交换、热交换和冷交换?

热插拔

这是最快的交换类型,使更改几乎立即可见。您的应用程序将继续运行,并在下次调用带有新实现的存根方法时使用该方法。

热插拔

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

冷插拔

( 21级或更高):即时运行将结构代码更改推送到目标设备,并重启整个应用程序。

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

触发每个掉期的代码更改类型

什么触发器热插拔?

代码语言:javascript
复制
Change implementation code of an existing instance method or static method

是什么触发了热交换?

代码语言:javascript
复制
Change or remove an existing resource

是什么触发了冷交换?

代码语言:javascript
复制
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
票数 3
EN

Stack Overflow用户

发布于 2016-05-05 17:40:37

此功能称为Insant Run。

documentation中的表格中列出了其工作原理和工作时间的详细说明。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37046936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档