Cómo depurar dos procesos en Android?
En mi aplicación una actividad inicia un servicio que se ejecuta como un proceso separado, quiero depurar la actividad, así como el servicio, pero depurador no se detiene en los puntos de interrupción en servicio?
Gracias por la ayuda.
- Obtención de I / art: Explicit concurrent mark sweep GC liberado
- ¿Cuándo se llama a ServiceConnection.onServiceDisconnected ()?
- Obtener contexto en un servicio
- El servicio de Android comienza de forma automática / automática
- Servicio de Android Creación de una nueva instancia de clase Singleton
- ¿Cómo cancelar la tarea de repetición en el Administrador de alarmas?
- Notificación de primer plano en Android inicia nueva Actividad (vía pendingIntent) en lugar de una existente
- Establecer un Listener en una clase basada en servicio
- ¿Cómo podemos evitar que un servicio muera por un sistema operativo?
- Si android reinicia un servicio es onCreate llamado de nuevo?
- No se puede iniciar el servicio Intención: no se encuentra
- Diseño de arquitectura Android - ¿Cómo hacerlo bien?
- Android - Notificación incorrecta publicada - No se pudo expandir RemoteViews para: StatusBarNotification
Haga que temporalmente no sea un proceso separado.
@CommonsWare
Debe habilitar la depuración en el proceso independiente.
Abra la perspectiva DDMS (como se opone a Debug o Java). En DDMS-> Dispositivos, seleccione el proceso de su servicio y luego haga clic en el botón de depuración (botón pequeño-verde-error). Un icono de depuración aparecerá cerca de su proceso, entonces usted debería ser capaz de utilizar puntos de interrupción en su Servicio.
Tenga en cuenta que debe esperar hasta que se inicie el proceso remoto antes de habilitar la depuración. Por lo tanto, es posible que desee asegurarse de que el proceso se inicie al iniciar, o establecer un punto de interrupción en el proceso principal inmediatamente después de la línea que inicia el servicio remoto.
Antes de habilitar la depuración:
Después de habilitar la depuración:
(Por supuesto temporalmente hacer el servicio no remoto funciona también, pero he tenido un caso en que no era práctico)
Sólo para elaborar sobre las otras respuestas aquí, puede poner temporalmente android.os.Debug.waitForDebugger();
En el código de su proceso secundario para hacer esto más fácil.
A continuación, sólo tiene que conectar su depurador al proceso a través de DDMS o IntelliJ (o lo que esté usando).
- Layout duplicando a sí mismo en la rotación de la pantalla
- Compras en la aplicación para desbloquear funciones pagadas