Androidスタジオ(2.1)の最新バージョンに更新しました。android studio の最新バージョンでは、android studio のインスタント ラン機能でホット ウォーム スワップとコールド スワップがサポートされることがドキュメントに記載されていました。
ホット ウォーム スワッピングとコールド スワッピングの違いを教えてください。
Androidスタジオ(2.1)の最新バージョンに更新しました。android studio の最新バージョンでは、android studio のインスタント ラン機能でホット ウォーム スワップとコールド スワップがサポートされることがドキュメントに記載されていました。
ホット ウォーム スワッピングとコールド スワッピングの違いを教えてください。
詳細については、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