Antworten:
adb shell
am start -n com.package.name/com.package.name.ActivityName
Oder Sie können dies direkt verwenden:
adb shell am start -n com.package.name/com.package.name.ActivityName
Sie können auch Aktionen angeben, die durch Ihre Absichtsfilter gefiltert werden sollen:
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 }
und seine Verwendungandroidrun com.example.test
adb shell am
gibt Ihnen eine Liste anderer Optionen, die Sie an den am
Befehl übergeben können. Weitere
adb logcat | grep --line-buffered ActivityManager | grep --line-buffered
um alle angezeigten Anwendungen aufzulisten.
Es ist möglich, eine Anwendung unter Angabe des Paketnamens nur mit dem Affen- Tool auszuführen, indem Sie diesem Muster folgen:
adb shell monkey -p your.app.package.name -c android.intent.category.LAUNCHER 1
Mit dem Befehl wird die App mit dem Affen-Tool ausgeführt, das zufällige Eingaben für die Anwendung generiert. Der letzte Teil des Befehls ist eine Ganzzahl, die die Anzahl der generierten Zufallseingaben für die App angibt. In diesem Fall ist die Nummer 1, die tatsächlich zum Starten der App verwendet wird (Symbolklick).
adb shell monkey -p your.app.package.name 1
adb shell am startservice com.some.package.name/.YourServiceSubClassName
siehe hier: stackoverflow.com/a/18703083/211292
Oder Sie könnten dies verwenden:
adb shell am start -n com.package.name/.ActivityName
monkey -p com.package.name 1
viaadb shell
Linux / Mac-Benutzer können auch ein Skript erstellen, um eine Apk mit den folgenden Funktionen auszuführen:
Erstellen Sie eine Datei mit dem Namen "adb-run.sh" mit diesen drei Zeilen:
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
dann "chmod + x adb-run.sh", um es ausführbar zu machen.
Jetzt können Sie einfach:
adb-run.sh myapp.apk
Der Vorteil hierbei ist, dass Sie den Paketnamen oder den Namen der startbaren Aktivität nicht kennen müssen. Ebenso können Sie "adb-uninstall.sh myapp.apk" erstellen.
Hinweis: Dies setzt voraus, dass Sie Aapt in Ihrem Pfad haben. Sie finden es im SDK unter dem Ordner "Neue Build-Tools".
Ich möchte noch eine Sache erwähnen.
Wenn Sie eine Anwendung starten adb shell am
, wird automatisch das Flag FLAG_ACTIVITY_NEW_TASK hinzugefügt, wodurch sich das Verhalten ändert. Siehe den Code .
Zum Beispiel, wenn Sie die Play Store-Aktivität von starten adb shell am
, wird durch Drücken der Schaltfläche " Zurück " (Hardware-Zurück-Schaltfläche) nicht Ihre App angezeigt, sondern die vorherige Play Store-Aktivität, wenn einige vorhanden waren (wenn keine Play Store-Aufgabe vorhanden war) , dann würde es dir deine App bringen). In der Dokumentation zu FLAG_ACTIVITY_NEW_TASK heißt es:
Wenn für die Aktivität, die Sie gerade starten, bereits eine Aufgabe ausgeführt wird, wird keine neue Aktivität gestartet. Stattdessen wird die aktuelle Aufgabe einfach mit dem Status, in dem sie zuletzt war, an die Vorderseite des Bildschirms gebracht
Dies veranlasste mich, einige Stunden damit zu verbringen, herauszufinden, was schief gelaufen ist.
Denken Sie also daran, dass adb shell am
Sie das Flag FLAG_ACTIVITY_NEW_TASK hinzufügen .
Wir können eine Anwendung auch starten, indem wir den Anwendungstyp kennen und ihn mit Daten versorgen:
adb shell am start -d "file:///sdcard/sample.3gp" -t "video/3gp" -a android.intent.action.VIEW
Dieser Befehl zeigt verfügbare Video-Player zum Abspielen der sample.3gp- Datei an
Schritt 1: Rufen Sie zuerst den gesamten Paketnamen der auf Ihrem Gerät installierten Apps ab, indem Sie Folgendes verwenden:
adb shell pm list packages
Schritt 2: Sie erhalten alle Paketnamen. Kopieren Sie den Namen, den Sie mit adb starten möchten.
Schritt 3: Fügen Sie im folgenden Befehl den gewünschten Paketnamen hinzu.
adb shell monkey -p 'your package name' -v 500
Zum Beispiel:
adb shell monkey -p com.estrongs.android.pop -v 500
um den Es Explorer zu starten.
Öffnen Sie ~ / .bash_profile und fügen Sie diese Bash-Funktionen am Ende der Datei hinzu
function androidinstall(){
adb install -r ./bin/$1.apk
}
function androidrun(){
ant clean debug
adb shell am start -n $1/$1.$2
}
Öffnen Sie dann den Android-Projektordner
androidinstall app-debug && androidrun com.example.app MainActivity
app-debug
tut?
monkey --pct-syskeys 0
für Entwicklungsboards
Ohne dieses Argument wird die App auf einem Entwicklungsboard ohne Schlüssel / Anzeige nicht geöffnet:
adb shell monkey --pct-syskeys 0 -p com.cirosantilli.android_cheat.textviewbold 1
und schlägt mit Fehler fehl:
SYS_KEYS has no physical keys but with factor 2.0%
Getestet auf HiKey960, Android O AOSP.
Gelernt von: https://github.com/ARM-software/lisa/pull/408
Ebenfalls gefragt unter: Affentest: Wenn das Android-System keine physischen Schlüssel hat, welche Parameter müssen in den Befehl aufgenommen werden
Versuchen Sie dies, um eine Android-Foto-App zu öffnen und eine bestimmte Bilddatei als Parameter zu öffnen.
adb shell am start -n com.google.android.apps.photos/.home.HomeActivity -d file:///mnt/user/0/primary/Pictures/Screenshots/Screenshot.png
Es funktioniert auf dem neuesten Android, es wird kein Popup angezeigt, um eine Anwendung zum Öffnen auszuwählen, da Sie eine bestimmte App angeben, mit der Sie Ihr Bild öffnen möchten