studio intellij idea how hot devices debug android debugging hotswap

intellij - Hot Swap depurando con Android



intellij idea hot swap (4)

1) ¿Se requiere algún ajuste / configuración especial para habilitar la depuración de intercambio en caliente en Android?

Ejemplo de caso:

  • Agregue el punto de interrupción justo después de ingresar el método onCreate de la actividad.
  • Agregue una nueva línea sobre la marcha después del punto de interrupción (dummy "if (1 == 1) return;" código)
  • Paso a la siguiente instrucción -> Problema: mi depurador no se rompe en esta línea, en lugar de pasar a la siguiente, me lleva a creer que la nueva línea no fue intercambiada en la VM.

2) ¿Solo el emulador admite el intercambio en caliente? ¿Hay algún auricular que también lo soporte?


Cada vez que se construye el proyecto de Android, se dexiza y se coloca en un apk con firma de depuración que se envía a su teléfono / emulador. Por lo tanto, hotswapping no es exactamente fácil de hacer.

Hotswap es un producto de una JVM bien diseñada y permite intercambiar clases. En Android, tiene Dalvik VM, que actualmente no admite el intercambio en caliente.

Sin embargo, supongo que el equipo de ADT tiene este alto nivel en su lista.

EDITAR: A pesar de que han pasado 2,5 años desde esta respuesta, no ha cambiado mucho. Sin embargo, ZeroTurnaround tiene las cosas en la manga y JRebel para Android debería proporcionarnos un método muy necesario para el intercambio en caliente. http://zeroturnaround.com/software/jrebel-for-android/

EDIT2: con el lanzamiento de Android Studio 2.0 Instant Run le permite realizar un intercambio en caliente. El intercambio en caliente cambiará una clase mientras se ejecuta su aplicación.

También son compatibles con el intercambio en caliente, que está haciendo mucho más que un intercambio en caliente en términos de alterar su aplicación. El intercambio cálido todavía deja tu aplicación en ejecución. Los cambios de recursos activarán un intercambio cálido.

Vea esta charla de Android Dev Summit 2015 para obtener más información: https://www.youtube.com/watch?v=fs0eira2pRY


El propio emulador no admite el intercambio de código, pero con herramientas adicionales como InstaReloader se puede lograr la acción deseada. Puede utilizar esta herramienta de Android hotswapping gratis



Vista previa de Android Studio 2.0 introdujo una característica de intercambio en caliente. Lo obtienes al actualizar a:

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

Y luego configurándolo desde el menú: