web-dev-qa-db-fra.com

Comment exécuter une application spécifique Android utilisant Terminal?

J'ai déjà installé Eclipse et Android SDK déjà. Tout fonctionne correctement.

Je souhaite installer un fichier .apk, donc je suis déjà les instructions. Mais le problème est que, lorsque je démarre l'émulateur, mon application ne s'exécute pas automatiquement.

Y a-t-il une commande dans le terminal qui me permet d'exécuter l'application spécifique à laquelle je la demande?

41
Lam Tran

Utilisez le cmd activity start-activity _ (ou l'alternative am start) commande, qui est une interface de ligne de commande pour ActivityManager . Utilisez am pour démarrer les activités comme indiqué dans cette aide:

$ 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>]
       ...

Par exemple, pour démarrer l’application Contacts et en supposant que vous ne connaissiez que le nom du package, mais pas le Activity, vous pouvez utiliser

$ pkg=com.google.Android.contacts
$ comp=$(adb Shell cmd package resolve-activity --brief -c Android.intent.category.LAUNCHER $pkg | tail -1)
$ adb Shell cmd activity start-activity $comp

ou l'alternative

$ adb Shell am start -n $comp

Voir aussi http://www.kandroid.org/online-pdk/guide/instrumentation_testing.html (peut être une copie d'URL obsolète: http://source.Android.com /porting/instrumentation_testing.html ) pour plus de détails.

Pour terminer l'application, vous pouvez utiliser

$ adb Shell am kill com.google.Android.contacts

ou le plus drastique

$ adb Shell am force-stop com.google.Android.contacts
71

Vous pouvez démarrer le service Android avec cette commande).

shell adb am startservice -n nomPacket/.ServiceClass

6
user3085499

Je garde ce script de build-and-run pratique, chaque fois que je travaille en ligne de commande:

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
4
Shubham Chaudhary

J'ai utilisé toutes les réponses ci-dessus et cela me donnait des erreurs alors j'ai essayé

adb Shell monkey -p com.yourpackage.name -c Android.intent.category.LAUNCHER 1

et cela a fonctionné. Un avantage est que vous n'avez pas à spécifier votre activité de lanceur si vous utilisez cette commande.

3
Ezio