68 votes

Comment exécuter (pas seulement installer) une application Android utilisant un fichier .apk?

Est-il une commande sur cmd.exe qui me permettrait de démarrer l'activité principale d'une application android à l'aide de l' .apk le fichier de l'application. Veuillez noter que je connais cette commande qui ne fait qu'installer une application android:

adb install myapp.apk

Cette commande installera myapp sur l'émulateur et je dois manuellement l'exécution de cette application à partir de l'émulateur (en effectuant un simple clic sur son icône).

Ce que je veux faire est d'utiliser une commande qui non seulement l'installation de l'application, mais également démarre son activité principale (veuillez noter que je n'ai que son .apk le fichier donc je ne sais pas quel est le nom du paquet ou de toute activité nom est).

94voto

Airsource Ltd Points 14291

Vous ne pouvez pas installer et exécuter en une seule fois - mais vous pouvez certainement utiliser adb pour démarrer votre application déjà installée. Utilisez la commande adb shell suis démarrer à feu d'une intention, vous aurez besoin d'utiliser la bonne intention pour votre application si. Quelques exemples:

adb shell am start -a android.intent.action.MAIN -n com.android.settings/.Settings 

va Paramètres de lancement, et

adb shell am start -a android.intent.action.MAIN -n com.android.browser/.BrowserActivity 

va lancer le Navigateur. Si vous souhaitez faire pointer le Navigateur sur une page en particulier, faire ce

adb shell am start -a android.intent.action.VIEW -n com.android.browser/.BrowserActivity http://www.google.co.uk

Si vous ne connaissez pas le nom de la activités dans le APK, puis le faire

aapt d xmltree <path to apk> AndroidManifest.xml

le contenu de sortie comprend aussi une section comme celle-ci:

   E: activity (line=32)
    A: android:theme(0x01010000)=@0x7f080000
    A: android:label(0x01010001)=@0x7f070000
    A: android:name(0x01010003)="com.anonymous.MainWindow"
    A: android:launchMode(0x0101001d)=(type 0x10)0x3
    A: android:screenOrientation(0x0101001e)=(type 0x10)0x1
    A: android:configChanges(0x0101001f)=(type 0x11)0x80
    E: intent-filter (line=33)
      E: action (line=34)
        A: android:name(0x01010003)="android.intent.action.MAIN"
        XE: (line=34)

Que vous indique le nom de l'activité principale (MainWindow), et vous pouvez maintenant exécuter

adb shell am start -a android.intent.action.MAIN -n com.anonymous/.MainWindow

16voto

dljava Points 804

si vous recherchez l'équivalent de "adb run myapp.apk"

vous pouvez utiliser le script indiqué dans cette réponse

(linux et mac seulement - peut-être avec cygwin sous windows)

6voto

Imre Deák Points 41

Lorsque vous démarrez l'application depuis l'interface graphique, adb logcat peut vous montrer l'action / la catégorie / le composant correspondant:

$ adb logcat
[...]
I / ActivityManager (1607): START {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] flg = 0x10200000 cmp = com.android.browser / .BrowserActivity} du pid 1792
[...]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X