2011-04-27 36 views
5

Quiero encontrar una manera de crear comandos que pueda enviar a mi aplicación utilizando el shell adb o similar. De esta manera puedo hacer algunos pequeños cambios en mi programa sin tener que volver a cargar mi aplicación cada vez que cambio algo.puedo usar adb shell para enviar comandos a mi aplicación

¿Hay alguna manera de abrir el shell adb y enviar un comando a una aplicación en ejecución?

Si eso no es posible, entonces ¿cuál es una forma posible de enviar comandos a mi aplicación para que pueda hacer cosas como (Mover elementos de la interfaz de usuario) o (Crear un archivo desde una URL) o una serie de otras cosas. ... Básicamente quiero poder enviar comandos de cadena a mi aplicación .....

Si puedo hacer eso con las herramientas de línea de comandos que serían dulces. de lo contrario, ¿cuál sería una buena forma de hacerlo?

Respuesta

5

Desde una shell adb, tipo am. Puede iniciar actividades y servicios, así como enviar intenciones de transmisión. Ningún argumento imprimirá información de uso.

Desde el equipo host puede hacer adb shell am <command> si desea invocar esto desde los scripts.

+0

¿Esto significa que tengo que hacer que un proveedor maneje las solicitudes de URI? o puedo enviar comandos arbitrarios? –

+0

si es así. ¿Conoces un buen punto de partida para esta solución? –

+0

Puede enviar cualquier comando que pueda codificar como Intención. :) http://developer.android.com/reference/android/content/BroadcastReceiver.html explica cómo manejar las intenciones de transmisión. – adamp

3

La opción adb shell am es probablemente la opción más limpia/mejor/más impresionante, pero podría tener un hilo en su aplicación para verificar la presencia de un archivo específico en la tarjeta SD. Algo así como (NO USE ESTE CÓDIGO SIN MODIFICACIONES GRAVES):

public void run() 
{ 
    File f = new File("/sdcard/appcommands"); 
    while(!stop){ 
     if(f.exists()){ 
     // read file 
     // obey commands 
     // remove file or use some other timing monitor 
     } 
    } 
} 

a continuación, puedes utilizar adb push para escribir archivos de comandos. Verdaderamente ineficiente, pero se puede hacer que funcione en un apuro. También puede hacer cosas más complejas, como crear servidores TCP/HTTP locales y usar el reenvío de puertos de adb, pero eso puede ser un exceso.

+0

votaron por una solución creativa rápida. Pero probablemente acepte el adb shell am como mi solución. Solo necesito obtener más información al respecto. –

+0

Alternativamente, puede escuchar transmisiones en lugar de 'while (! Stop)' y seguir presionando comandos a través de 'adb push'. Esto permitiría enviar datos más complejos a la aplicación. –

Cuestiones relacionadas