Odpowiedzi:
adb shell
am start -n com.package.name/com.package.name.ActivityName
Lub możesz użyć tego bezpośrednio:
adb shell am start -n com.package.name/com.package.name.ActivityName
Możesz również określić akcje, które mają być filtrowane według filtrów zamiarów:
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 }
i jej użycieandroidrun com.example.test
adb shell am
poda ci listę innych opcji do przekazania do am
polecenia. Możesz dowiedzieć się więcej na stronie developer.android.com/tools/help/adb.html#am
adb logcat | grep --line-buffered ActivityManager | grep --line-buffered
do wyświetlenia wszystkich wyświetlanych aplikacji.
Możliwe jest uruchomienie aplikacji określającej nazwę pakietu tylko za pomocą narzędzia małpującego , postępując według następującego wzoru:
adb shell monkey -p your.app.package.name -c android.intent.category.LAUNCHER 1
Polecenie służy do uruchamiania aplikacji za pomocą małpiego narzędzia, które generuje losowe dane wejściowe dla aplikacji. Ostatnią częścią polecenia jest liczba całkowita, która określa liczbę generowanych losowych danych wejściowych dla aplikacji. W tym przypadku liczba to 1, która w rzeczywistości służy do uruchomienia aplikacji (kliknięcie ikony).
adb shell monkey -p your.app.package.name 1
adb shell am startservice com.some.package.name/.YourServiceSubClassName
patrz tutaj: stackoverflow.com/a/18703083/211292
Lub możesz użyć tego:
adb shell am start -n com.package.name/.ActivityName
monkey -p com.package.name 1
viaadb shell
Użytkownicy Linuksa / Mac mogą również utworzyć skrypt do uruchamiania apk z następującymi elementami:
utwórz plik o nazwie „adb-run.sh” z tymi 3 liniami:
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
następnie „chmod + x adb-run.sh”, aby uczynić go wykonywalnym.
teraz możesz po prostu:
adb-run.sh myapp.apk
Zaletą jest to, że nie musisz znać nazwy pakietu ani nazwy czynności uruchamialnej. Podobnie możesz utworzyć „adb-uninstall.sh myapp.apk”
Uwaga: Wymaga to posiadania aapt na swojej drodze. Można go znaleźć w nowym folderze narzędzi do kompilacji w zestawie SDK.
Chcę też wspomnieć o jeszcze jednej rzeczy.
Po uruchomieniu aplikacji z adb shell am
, to automatycznie dodaje FLAG_ACTIVITY_NEW_TASK flagę , która sprawia, że zmiany zachowań. Zobacz kod .
Na przykład, jeśli uruchomisz aktywność w Sklepie Play adb shell am
, naciśnięcie przycisku „ Wstecz ” (sprzętowy przycisk Wstecz) nie spowoduje przeniesienia Twojej aplikacji, zamiast tego zajęłoby Ci poprzednią aktywność w Sklepie Play, jeśli taka była (Jeśli nie było zadania Sklep Play , to zajmie Ci aplikację). Dokumentacja FLAG_ACTIVITY_NEW_TASK mówi:
jeśli zadanie jest już uruchomione dla działania, które właśnie zaczynasz, nowe działanie nie zostanie uruchomione; zamiast tego bieżące zadanie zostanie po prostu przeniesione na przód ekranu w stanie, w jakim było ostatnio
To spowodowało, że spędziłem kilka godzin, aby dowiedzieć się, co poszło nie tak.
Pamiętaj więc, że adb shell am
dodaj flagę FLAG_ACTIVITY_NEW_TASK .
Równie dobrze możemy uruchomić aplikację, znając jej typ i zasilając ją danymi:
adb shell am start -d "file:///sdcard/sample.3gp" -t "video/3gp" -a android.intent.action.VIEW
To polecenie wyświetla dostępne odtwarzacze wideo do odtwarzania pliku sample.3gp
Krok 1: Najpierw uzyskaj wszystkie nazwy pakietów aplikacji zainstalowanych na Twoim urządzeniu, używając:
adb shell pm list packages
Krok 2: Otrzymasz wszystkie nazwy pakietów, skopiuj ten, który chcesz zacząć używać adb.
Krok 3: Dodaj żądaną nazwę pakietu w poniższym poleceniu.
adb shell monkey -p 'your package name' -v 500
Na przykład:
adb shell monkey -p com.estrongs.android.pop -v 500
aby uruchomić Eksploratora Es.
otwórz ~ / .bash_profile i dodaj te funkcje bash na końcu pliku
function androidinstall(){
adb install -r ./bin/$1.apk
}
function androidrun(){
ant clean debug
adb shell am start -n $1/$1.$2
}
następnie otwórz folder projektu Androida
androidinstall app-debug && androidrun com.example.app MainActivity
app-debug
robi?
monkey --pct-syskeys 0
dla płyt rozwojowych
Bez tego argumentu aplikacja nie otworzy się na płycie programistycznej bez klawiszy / wyświetlacza:
adb shell monkey --pct-syskeys 0 -p com.cirosantilli.android_cheat.textviewbold 1
i kończy się błędem:
SYS_KEYS has no physical keys but with factor 2.0%
Testowane na HiKey960, Android O AOSP.
Dowiedz się od: https://github.com/ARM-software/lisa/pull/408
Pytanie również: test małpy: jeśli system Android nie ma fizycznych kluczy, jakie parametry należy uwzględnić w poleceniu
Wypróbuj to, aby otworzyć aplikację do zdjęć na Androida i z określonym plikiem obrazu, który ma zostać otwarty jako parametr.
adb shell am start -n com.google.android.apps.photos/.home.HomeActivity -d file:///mnt/user/0/primary/Pictures/Screenshots/Screenshot.png
Będzie działał na najnowszym Androidzie, nie pojawi się wyskakujące okienko, aby wybrać aplikację do otwarcia, gdy podajesz konkretną aplikację, w której chcesz otworzyć obraz