Comment démarrer une application avec les outils android ADB?

Comment envoyer une intention en utilisant les outils ADB D'Android?

371
demandé sur trgraglia 2010-12-31 06:33:06

10 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 des actions à filtrer par vos intentions-filtres:

am start -a com.example.ACTION_NAME -n com.package.name/com.package.name.ActivityName 
515
répondu Cristian 2010-12-31 03:40:29

il est possible d'exécuter l'application en spécifiant le nom du paquet en utilisant seulement monkey outil 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 app en utilisant l'outil monkey qui génère des entrées aléatoires 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 app. Dans ce cas, le numéro est 1, qui est en fait utilisé pour lancer l'application (clic d'icône).

213
répondu Michal 2014-08-20 07:18:19

Ou, vous pouvez utiliser ceci:

adb shell am start -n com.package.name/.ActivityName
114
répondu Joilnen 2013-03-15 20:38:25

les utilisateurs linux/mac peuvent aussi créer un script pour exécuter un apk avec quelque chose comme:

créer un fichier nommé "adb-run.sh" avec ces 3 lignes:

pkg=$(aapt dump badging |awk -F" " '/package/ {print }'|awk -F"'" '/name=/ {print }')
act=$(aapt dump badging |awk -F" " '/launchable-activity/ {print }'|awk -F"'" '/name=/ {print }')
adb shell am start -n $pkg/$act

puis "chmod +x adb-run.sh" pour le rendre exécutable.

maintenant vous pouvez simplement:

adb-run.sh myapp.apk

L'avantage ici est que vous n'avez pas besoin de connaître le nom du paquet ou projetables nom de l'activité. De même, vous pouvez créer "adb-uninstall.sh myapp.apk "

Note: cela nécessite que vous ayez aapt dans votre chemin. Vous pouvez le trouver sous le dossier New build tools dans le SDK.

55
répondu dljava 2013-06-25 05:47:30

encore une chose.

lorsque vous démarrez une application à partir de adb shell am , il ajoute automatiquement FLAG_ACTIVITY_NEW_TASK flag qui modifie le comportement. Voir le code .

par exemple, si vous lancez L'activité Play Store de adb shell am , en appuyant sur" retour " bouton (hardware back button) ne vous prendrait pas votre application, au lieu de cela, il vous faudrait L'activité Play Store précédente s'il y avait certains(S'il n'y avait pas de tâche Play store, alors il vous prendrait votre application). FLAG_ACTIVITY_NEW_TASK documentation says:

si une tâche est déjà en cours d'exécution pour l'activité que vous commencez maintenant, alors une nouvelle activité ne sera pas lancée; au lieu de cela, la tâche actuelle sera simplement portée à l'avant de l'écran avec l'état où elle était la dernière en

cela m'a fait passer quelques heures à découvrir ce qui s'était mal passé.

alors, gardez à l'esprit que adb shell am ajouter FLAG_ACTIVITY_NEW_TASK flag .

18
répondu 김준호 2014-05-26 06:35:04

nous pouvons aussi bien démarrer une application en connaissant le type d'application et en l'alimentant avec des 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 échantillon.3gp fichier

13
répondu Anvesh Yalamarthy 2014-01-04 12:42:58

ouvrir ~/.bash_profile et ajouter ces fonctions bash à la fin du fichier

function androidinstall(){
   adb install -r ./bin/.apk
}
function androidrun(){
   ant clean debug
   adb shell am start -n /.
}

puis ouvrir le dossier projet Android

androidinstall app-debug && androidrun com.example.app MainActivity
12
répondu AbdullahDiaa 2013-02-16 12:51:16

monkey --pct-syskeys 0 pour les cartes de développement

sans cet argument, l'application ne s'ouvrira pas sur une carte de développement sans touches / affichage:

adb shell monkey --pct-syskeys 0 -p com.cirosantilli.android_cheat.textviewbold 1

et échoue par erreur:

SYS_KEYS has no physical keys but with factor 2.0%

testé sur HiKey960, Android O AOSP.

appris de: https://github.com/ARM-software/lisa/pull/408

également demandé à: test singe : si le système Android n'a pas de clés physiques ,quels sont les paramètres doivent être inclus dans la commande

4

essayez ceci, pour ouvrir une application photo android et avec un fichier image spécifique à ouvrir comme paramètre.

adb shell am start -n com.google.android.apps.photos/.home.HomeActivity -d file:///mnt/user/0/primary/Pictures/Screenshots/Screenshot.png

il fonctionnera sur android dernier, aucun pop up viendra à sélectionner une application à ouvrir que vous donnez application spécifique à laquelle vous voulez ouvrir votre image avec

0
répondu Varun 2018-02-21 07:32:41
adb shell am start -n '<appPackageName>/.<appActitivityName>

Ex:

adb shell am start -n 'com.android.settings/.wifi.WifiStatusTest'

vous pouvez utiliser L'application APK-INFO pour connaître la liste des activités de L'application par rapport à chaque paquet de L'application

0
répondu ImSaleem 2018-05-08 04:34:59