2012-05-03 11 views
18

1) Gibt es eine spezielle Einstellung/Konfiguration erforderlich, um Hot-Swap-Debugging auf Android zu aktivieren?Hot-Swap-Debugging mit Android

Fallbeispiel:

  • Add Breakpoint nur nach Aktivität der onCreate Methode eingeben.
  • Neue Linie on the fly nach dem Haltepunkt (Dummy "wenn (1 == 1) return;" code)
  • Schritt zur nächsten Anweisung -> Problem: mein Debugger an dieser Linie nicht bricht, statt zum nächsten zu springen, führte mich zu der Annahme, dass die neue Leitung nicht in die VM ausgetauscht wurde.

2) Unterstützt nur der Emulator Hot Swap? Gibt es Handys, die es auch unterstützen?

Antwort

6

Der Emulator selbst keinen Code hotswap, aber mit zusätzlichen Tools unterstützt wie InstaReloader Aktion gewünscht erreicht werden kann. Sie können diese Android hotswapping tool kostenlos verwenden

+3

Was zu diesem Projekt ist passiert? –

+0

Link scheint tot - Site ist abgelaufen. – Pang

21

Jedes Mal, wenn das Android-Projekt erstellt wird, wird es dexiert und in eine Debug-signierte APK gestellt, die an Ihr Telefon/Emulator gesendet wird. Daher ist Hotswapping nicht einfach.

Hotswap ist ein Produkt einer gut gestalteten JVM, und es ermöglicht den Austausch von Klassen. Auf Android-Geräten ist Dalvik VM vorhanden, das derzeit kein Hot-Swapping unterstützt.

Ich vermute, das ADT-Team hat diese High-Ish auf ihrer Liste, obwohl.

EDIT: Obwohl es 2,5 Jahre seit dieser Antwort ist, hat sich nicht viel geändert. ZeroTurnaround hat jedoch einiges zu bieten, und JRebel für Android sollte uns eine dringend benötigte Methode für Hot Swapping geben. http://zeroturnaround.com/software/jrebel-for-android/

EDIT2: Mit der Veröffentlichung von Android Studio 2.0 Instant-Run Sie Hot-Swap ermöglicht. Hot Swap wird eine Klasse ändern, während Ihre App läuft.

Sie unterstützen auch einen Warm-Swap, der viel mehr als Hot-Swap-Probleme mit Ihrer App macht. Warmer Austausch bewirkt weiterhin, dass Ihre App ausgeführt wird. Ressourcenänderungen lösen einen warmen Austausch aus.

Dit Vortrag von Android Dev Summit 2015 für weitere Informationen: https://www.youtube.com/watch?v=fs0eira2pRY

8

Android Studio 2.0-Vorschau führte eine Hot-Swap-Funktion ein.Sie erhalten sie durch ein Upgrade:

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

und dann aus dem Menü Einstellung:

enter image description here