Risposte:
adb shell
am start -n com.package.name/com.package.name.ActivityName
Oppure puoi usarlo direttamente:
adb shell am start -n com.package.name/com.package.name.ActivityName
Puoi anche specificare le azioni da filtrare in base ai tuoi filtri di intento:
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 }
e il suo utilizzoandroidrun com.example.test
adb shell am
ti darà un elenco di altre opzioni da passare al am
comando. Puoi saperne di più su developer.android.com/tools/help/adb.html#am
adb logcat | grep --line-buffered ActivityManager | grep --line-buffered
per elencare tutte le applicazioni visualizzate.
È possibile eseguire l'applicazione specificando il nome del pacchetto utilizzando solo lo strumento scimmia seguendo questo modello:
adb shell monkey -p your.app.package.name -c android.intent.category.LAUNCHER 1
Il comando viene utilizzato per eseguire l'app utilizzando lo strumento scimmia che genera input casuali per l'applicazione. L'ultima parte del comando è un numero intero che specifica il numero di input casuali generati per l'app. In questo caso il numero è 1, che in realtà viene utilizzato per avviare l'app (icona clic).
adb shell monkey -p your.app.package.name 1
adb shell am startservice com.some.package.name/.YourServiceSubClassName
vedi qui: stackoverflow.com/a/18703083/211292
Oppure potresti usare questo:
adb shell am start -n com.package.name/.ActivityName
monkey -p com.package.name 1
viaadb shell
Gli utenti linux / mac possono anche creare uno script per eseguire un apk con qualcosa di simile al seguente:
crea un file chiamato "adb-run.sh" con queste 3 righe:
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
quindi "chmod + x adb-run.sh" per renderlo eseguibile.
ora puoi semplicemente:
adb-run.sh myapp.apk
Il vantaggio qui è che non è necessario conoscere il nome del pacchetto o il nome dell'attività avviabile. Allo stesso modo, puoi creare "adb-uninstall.sh myapp.apk"
Nota: questo richiede che tu abbia aapt nel tuo percorso. Puoi trovarlo nella nuova cartella degli strumenti di build nell'SDK.
Inoltre, voglio menzionare un'altra cosa.
Quando si avvia un'applicazione da adb shell am
, aggiunge automaticamente il flag FLAG_ACTIVITY_NEW_TASK che modifica il comportamento. Vedere il codice .
Ad esempio, se avvii l'attività del Play Store da adb shell am
, premendo il pulsante ' Indietro ' (pulsante hardware indietro) non ti porterebbe la tua app, invece ti porterebbe l'attività del Play Store precedente se ce n'era (Se non c'era attività Play Store , quindi ti prenderebbe la tua app). La documentazione di FLAG_ACTIVITY_NEW_TASK dice:
se un'attività è già in esecuzione per l'attività che si sta avviando, non verrà avviata una nuova attività; invece, l'attività corrente verrà semplicemente portata in primo piano sullo schermo con lo stato in cui era stata l'ultima volta
Questo mi ha fatto passare alcune ore a scoprire cosa è andato storto.
Quindi, tieni presente che adb shell am
aggiungi il flag FLAG_ACTIVITY_NEW_TASK .
Possiamo anche avviare un'applicazione conoscendo il tipo di applicazione e fornendo dati:
adb shell am start -d "file:///sdcard/sample.3gp" -t "video/3gp" -a android.intent.action.VIEW
Questo comando visualizza i lettori video disponibili per riprodurre il file sample.3gp
Passaggio 1: ottenere innanzitutto tutto il nome del pacchetto delle app installate sul dispositivo, utilizzando:
adb shell pm list packages
Passaggio 2: otterrete tutti i nomi dei pacchetti, copiando quello che si desidera iniziare a utilizzare adb.
Passaggio 3: aggiungere il nome del pacchetto desiderato nel comando seguente.
adb shell monkey -p 'your package name' -v 500
Ad esempio:
adb shell monkey -p com.estrongs.android.pop -v 500
per avviare Es explorer.
apri ~ / .bash_profile e aggiungi queste funzioni bash alla fine del file
function androidinstall(){
adb install -r ./bin/$1.apk
}
function androidrun(){
ant clean debug
adb shell am start -n $1/$1.$2
}
quindi apri la cartella del progetto Android
androidinstall app-debug && androidrun com.example.app MainActivity
app-debug
fa?
monkey --pct-syskeys 0
per schede di sviluppo
Senza questo argomento, l'app non si aprirà su una scheda di sviluppo senza chiavi / display:
adb shell monkey --pct-syskeys 0 -p com.cirosantilli.android_cheat.textviewbold 1
e non riesce con errore:
SYS_KEYS has no physical keys but with factor 2.0%
Testato su HiKey960, Android O AOSP.
Imparato da: https://github.com/ARM-software/lisa/pull/408
Anche chiesto a: test delle scimmie: se il sistema Android non ha chiavi fisiche, quali sono i parametri che devono essere inclusi nel comando
Prova questo, per aprire un'app per foto Android e con un file di immagine specifico da aprire come parametro.
adb shell am start -n com.google.android.apps.photos/.home.HomeActivity -d file:///mnt/user/0/primary/Pictures/Screenshots/Screenshot.png
Funzionerà con l'ultimo Android, non verrà visualizzato alcun pop-up per selezionare un'applicazione da aprire mentre stai dando un'app specifica con cui vuoi aprire l'immagine con