2011-03-31 19 views
34

Ya instalé Eclipse y Android SDK. Todo está funcionando bien.¿Cómo ejecutar una aplicación específica de Android usando Terminal?

Quiero instalar un archivo .apk así que sigo las instrucciones ya. Pero el problema es que cuando inicio el emulador, no ejecuta mi aplicación automáticamente.

¿Hay algún comando en el terminal que me permita ejecutar la aplicación específica que solicito?

+0

¿tiene una buena espera para detener la actividad también? matar $ (pidof ...)? – RzR

Respuesta

67

Utilice el comando 'am start', que es una interfaz de línea de comandos para el ActivityManager. Utilice am para iniciar actividades como se muestra en esta ayuda:

$ adb shell am 
usage: am [start|instrument] 
     am start [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>] 
       [-c <CATEGORY> [-c <CATEGORY>] ...] 
       [-e <EXTRA_KEY> <EXTRA_VALUE> [-e <EXTRA_KEY> <EXTRA_VALUE> ...] 
       [-n <COMPONENT>] [-D] [<URI>] 
     ... 

Por ejemplo, para iniciar la aplicación Contactos puede utilizar

$ adb shell am start -n com.google.android.contacts/.ContactsActivity 

Véase también http://www.kandroid.org/online-pdk/guide/instrumentation_testing.html (puede ser una copia de URL obsoleta: http://source.android.com/porting/instrumentation_testing.html) para otros detalles.

para terminar la aplicación puede utilizar

$ adb shell am kill com.google.android.contacts 

o la más drástica

$ adb shell am force-stop com.google.android.contacts 
+0

Hola dtmilano. También estoy intentando el administrador de actividades, pero no conozco el componente de una aplicación. ¿Te importaría explicar más? –

+0

Por ejemplo: Tengo un archivo compilado en /opt/sdk/example.apk Después de instalarlo, ¿cómo puedo hacer que se ejecute en la línea de comandos? –

+0

nombre del paquete + nombre de la actividad –

6

puede iniciar el servicio Android de este comando.

adb shell am startservice -n packageName/.ServiceClass

+0

te agradezco tu respuesta, pero describe tu respuesta con algunos detalles, no solo en dos líneas para que los usuarios te ayuden. – Hamad

4

sigo this build-and-run script práctica, cada vez que estoy trabajando desde la línea de comandos:

PACKAGE=com.examply.demo 
ACTIVITY=.MainActivity 
APK_LOCATION=app/build/outputs/apk/app-debug.apk 
echo "Package: $PACKAGE" 

echo "Building the project with tasks: $TASKS" 
./gradlew $TASKS 

echo "Uninstalling $PACKAGE" 
adb uninstall $PACKAGE 

echo "Installing $APK_LOCATION" 
adb install $APK_LOCATION 

echo "Starting $ACTIVITY" 
adb shell am start -n $PACKAGE/$ACTIVITY 
+0

Cuando ejecuto este comando, aparece un error que dice ** Error: la clase de actividad {com.example.demo/com.example.demo.MainActivity} no existe. **. ¿Sabes cómo resolver esto?También dice Tipo de error 3 – Ezio

+0

@Ezio Por favor, cambie la línea 2 en la secuencia de comandos para apuntar a su actividad principal. En mi caso es: MainActivity.java en la raíz del paquete => com.example.demo.MainActivity. Esto será algo diferente para ti. También debe actualizar el nombre del paquete (com.example.demo) en la línea 1 al nombre del paquete de su aplicación. –

+0

Sé sobre eso Shubham, hice todos los cambios que dijiste pero sigo recibiendo el error. Pero ahora utilicé ** adb shell monkey -p com.mipackage.name -c android.intent.category.Launcher 1 ** y funcionó. Escribí una respuesta en caso de que alguien más esté enfrentando problemas similares – Ezio

1

utilicé todas las respuestas anteriores y que me estaba dando errores, así que traté

adb shell monkey -p com.yourpackage.name -c android.intent.category.LAUNCHER 1

y funcionó. Una ventaja es que no tienes que especificar tu actividad de iniciador si usas este comando.

+0

Solo pude obtenerlo con este comando mono gracias. Los otros me estaban dando errores de permiso. – giorgio79

Cuestiones relacionadas