24

1)Androidでホットスワップデバッグを有効にするために必要な特別な設定/構成はありますか?

例:

  • アクティビティのonCreateメソッドを入力した直後にブレークポイントを追加します。
  • ブレークポイントの後に改行をオンザフライで追加します(ダミーの「if(1 == 1)return;」コード)
  • 次の手順に進む->問題:デバッガーがこの行で中断せず、代わりに次の行にスキップして、新しい行がVMにホットスワップされていないと信じるようになりました。

2)エミュレータのみがホットスワップをサポートしていますか?それをサポートする携帯電話はありますか?

4

4 に答える 4

22

Android プロジェクトがビルドされるたびに、dexed され、電話/エミュレーターに送信されるデバッグ署名付きの apk に入れられます。したがって、ホットスワップを行うのは簡単ではありません。

Hotswap は適切に設計された JVM の製品であり、クラスの交換を可能にします。Android には、現在ホット スワップをサポートしていない Dalvik VM があります。

ただし、ADT チームのリストにはこれほど高いものがあると思います。

編集:この回答から2.5年経ちましたが、あまり変わっていません。ただし、ZeroTurnaround は準備を整えており、Android 用の JRebel はホット スワップに必要な方法を提供してくれるはずです。 http://zeroturnaround.com/software/jrebel-for-android/

EDIT2: Android Studio 2.0 Instant Run のリリースにより、ホットスワップが可能になりました。ホット スワップは、アプリの実行中にクラスを変更します。

また、アプリをいじるという点で、ホット スワップよりも多くのことを行うウォーム スワップもサポートしています。ウォーム スワップでは、アプリは実行されたままになります。リソースの変更により、ウォーム スワップがトリガーされます。

詳細については、Android Dev Summit 2015 のこの講演をご覧ください: https://www.youtube.com/watch?v=fs0eira2pRY

于 2012-07-31T14:48:32.527 に答える
8

Android Studio 2.0 プレビューでは、ホット スワップ機能が導入されました。以下にアップグレードすることで入手できます。

        classpath group: 'com.android.tools.build', name: 'gradle', version: '2.0.0-alpha1'

そして、メニューから設定します:

ここに画像の説明を入力

于 2015-11-25T01:07:05.270 に答える
4

エミュレーター自体はコードのホットスワップをサポートしていませんが、InstaReloader などの追加のツールを使用すると、目的のアクションを実現できます。このAndroid ホットスワップ ツールは無料で使用できます

于 2013-11-21T23:34:06.367 に答える
2

真のホット スワップではありませんが、それをエミュレートするライブラリが Github にあります。ここで見つけることができます: https://github.com/mmin18/LayoutCast

いくつかの問題がありますが、この回答の執筆時点ではアクティブです。

また、ZeroTurnaround は JRebel for Android の問題に取り組んでいるようです。ここでベータ版アクセスをリクエストできます: http://zeroturnaround.com/software/jrebel-for-android/

于 2015-08-18T17:14:06.287 に答える