Réponses:
adb shell
am start -n com.package.name/com.package.name.ActivityName
Ou vous pouvez l'utiliser directement:
adb shell am start -n com.package.name/com.package.name.ActivityName
Vous pouvez également spécifier les actions à filtrer par vos filtres d'intention:
am start -a com.example.ACTION_NAME -n com.package.name/com.package.name.ActivityName
function androidrun(){ ant clean debug adb shell am start -n $1/$1.MainActivity }
et son utilisationandroidrun com.example.test
adb shell am
vous donnera une liste d'autres options à passer à la am
commande. Vous pouvez en savoir plus sur developer.android.com/tools/help/adb.html#am
adb logcat | grep --line-buffered ActivityManager | grep --line-buffered
pour répertorier toutes les applications qui ont été affichées.
Il est possible d'exécuter une application en spécifiant le nom du package uniquement à l'aide de l' outil singe en suivant ce modèle:
adb shell monkey -p your.app.package.name -c android.intent.category.LAUNCHER 1
La commande est utilisée pour exécuter l'application à l'aide de l'outil singe qui génère une entrée aléatoire pour l'application. La dernière partie de la commande est un entier qui spécifie le nombre d'entrées aléatoires générées pour l'application. Dans ce cas, le nombre est 1, qui est en fait utilisé pour lancer l'application (cliquez sur l'icône).
adb shell monkey -p your.app.package.name 1
adb shell am startservice com.some.package.name/.YourServiceSubClassName
voir ici: stackoverflow.com/a/18703083/211292
Ou, vous pouvez utiliser ceci:
adb shell am start -n com.package.name/.ActivityName
monkey -p com.package.name 1
viaadb shell
Les utilisateurs linux / mac peuvent également créer un script pour exécuter une apk avec quelque chose comme ceci:
créez un fichier nommé "adb-run.sh" avec ces 3 lignes:
pkg=$(aapt dump badging $1|awk -F" " '/package/ {print $2}'|awk -F"'" '/name=/ {print $2}')
act=$(aapt dump badging $1|awk -F" " '/launchable-activity/ {print $2}'|awk -F"'" '/name=/ {print $2}')
adb shell am start -n $pkg/$act
puis "chmod + x adb-run.sh" pour le rendre exécutable.
vous pouvez maintenant simplement:
adb-run.sh myapp.apk
L'avantage ici est que vous n'avez pas besoin de connaître le nom du package ou le nom de l'activité lancable. De même, vous pouvez créer "adb-uninstall.sh myapp.apk"
Remarque: Cela nécessite que vous ayez un aapt sur votre chemin. Vous pouvez le trouver dans le nouveau dossier des outils de génération du SDK.
Je voudrais également mentionner une dernière chose.
Lorsque vous démarrez une application à partir de adb shell am
, elle ajoute automatiquement l'indicateur FLAG_ACTIVITY_NEW_TASK, ce qui modifie le comportement. Voir le code .
Par exemple, si vous lancez l'activité Play Store à partir de adb shell am
, appuyer sur le bouton ` ` Retour '' (bouton de retour matériel) ne vous amènerait pas votre application, mais plutôt votre activité Play Store précédente s'il y en avait (s'il n'y avait pas de tâche Play Store) , il vous faudrait alors votre application). La documentation de FLAG_ACTIVITY_NEW_TASK indique:
si une tâche est déjà en cours d'exécution pour l'activité que vous démarrez maintenant, une nouvelle activité ne sera pas démarrée; au lieu de cela, la tâche en cours sera simplement amenée à l'avant de l'écran avec l'état dans lequel elle était en dernier
Cela m'a fait passer quelques heures pour découvrir ce qui n'allait pas.
Gardez donc à l'esprit que vous adb shell am
ajoutez l'indicateur FLAG_ACTIVITY_NEW_TASK .
Nous pouvons également démarrer une application en connaissant le type d'application et en l'alimentant en données:
adb shell am start -d "file:///sdcard/sample.3gp" -t "video/3gp" -a android.intent.action.VIEW
Cette commande affiche les lecteurs vidéo disponibles pour lire le fichier sample.3gp
Étape 1: Obtenez d'abord tous les noms de packages des applications installées sur votre appareil, en utilisant:
adb shell pm list packages
Étape 2: Vous obtiendrez tous les noms de packages, copiez celui que vous souhaitez commencer à utiliser adb.
Étape 3: Ajoutez le nom de votre package souhaité dans la commande ci-dessous.
adb shell monkey -p 'your package name' -v 500
Par exemple:
adb shell monkey -p com.estrongs.android.pop -v 500
pour démarrer l'explorateur Es.
ouvrez ~ / .bash_profile et ajoutez ces fonctions bash à la fin du fichier
function androidinstall(){
adb install -r ./bin/$1.apk
}
function androidrun(){
ant clean debug
adb shell am start -n $1/$1.$2
}
puis ouvrez le dossier du projet Android
androidinstall app-debug && androidrun com.example.app MainActivity
app-debug
fait?
monkey --pct-syskeys 0
pour les conseils de développement
Sans cet argument, l'application ne s'ouvrira pas sur une carte de développement sans clés / affichage:
adb shell monkey --pct-syskeys 0 -p com.cirosantilli.android_cheat.textviewbold 1
et échoue avec une erreur:
SYS_KEYS has no physical keys but with factor 2.0%
Testé sur HiKey960, Android O AOSP.
Tiré de: https://github.com/ARM-software/lisa/pull/408
Également demandé à: test de singe: si le système Android ne possède pas de clés physiques, quels sont les paramètres à inclure dans la commande
Essayez ceci, pour ouvrir une application photo Android et avec un fichier image spécifique à ouvrir en tant que paramètre.
adb shell am start -n com.google.android.apps.photos/.home.HomeActivity -d file:///mnt/user/0/primary/Pictures/Screenshots/Screenshot.png
Cela fonctionnera sur le dernier Android, aucun pop-up ne viendra pour sélectionner une application à ouvrir car vous donnez une application spécifique à laquelle vous souhaitez ouvrir votre image avec