Respuestas:
adb shell
am start -n com.package.name/com.package.name.ActivityName
O puede usar esto directamente:
adb shell am start -n com.package.name/com.package.name.ActivityName
También puede especificar acciones para que sean filtradas por sus filtros de intención:
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 }
y su usoandroidrun com.example.test
adb shell am
le dará una lista de otras opciones para pasar al am
comando. Puede encontrar más información en developer.android.com/tools/help/adb.html#am
adb logcat | grep --line-buffered ActivityManager | grep --line-buffered
para enumerar todas las aplicaciones que se mostraron.
Es posible ejecutar la aplicación que especifica el nombre del paquete solo con la herramienta monkey siguiendo este patrón:
adb shell monkey -p your.app.package.name -c android.intent.category.LAUNCHER 1
El comando se usa para ejecutar la aplicación usando la herramienta monkey que genera una entrada aleatoria para la aplicación. La última parte del comando es un entero que especifica el número de entradas aleatorias generadas para la aplicación. En este caso, el número es 1, que de hecho se utiliza para iniciar la aplicación (clic en el icono).
adb shell monkey -p your.app.package.name 1
adb shell am startservice com.some.package.name/.YourServiceSubClassName
vea aquí: stackoverflow.com/a/18703083/211292
O podrías usar esto:
adb shell am start -n com.package.name/.ActivityName
monkey -p com.package.name 1
víaadb shell
Los usuarios de Linux / Mac también pueden crear un script para ejecutar un apk con algo como lo siguiente:
cree un archivo llamado "adb-run.sh" con estas 3 líneas:
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
luego "chmod + x adb-run.sh" para hacerlo ejecutable.
ahora puedes simplemente:
adb-run.sh myapp.apk
El beneficio aquí es que no necesita saber el nombre del paquete o el nombre de la actividad iniciable. Del mismo modo, puede crear "adb-uninstall.sh myapp.apk"
Nota: Esto requiere que tenga un camino en su camino. Puede encontrarlo en la nueva carpeta de herramientas de compilación en el SDK.
Además, quiero mencionar una cosa más.
Cuando inicia una aplicación desde adb shell am
, agrega automáticamente el indicador FLAG_ACTIVITY_NEW_TASK que hace que el comportamiento cambie. Mira el código .
Por ejemplo, si inicia la actividad de Play Store adb shell am
, presionar el botón ' Atrás ' (botón de retroceso del hardware) no le llevaría a su aplicación, sino que le llevaría a la actividad anterior de Play Store si hubiera alguna (si no hubiera una tarea de Play store) , entonces te llevaría tu aplicación). La documentación de FLAG_ACTIVITY_NEW_TASK dice:
si ya se está ejecutando una tarea para la actividad que está comenzando, entonces no se iniciará una nueva actividad; en cambio, la tarea actual simplemente será llevada al frente de la pantalla con el estado en el que estuvo por última vez
Esto me llevó a pasar unas horas para descubrir qué salió mal.
Por lo tanto, tenga en cuenta que adb shell am
agregue la bandera FLAG_ACTIVITY_NEW_TASK .
También podemos iniciar una aplicación conociendo el tipo de aplicación y alimentándola con datos:
adb shell am start -d "file:///sdcard/sample.3gp" -t "video/3gp" -a android.intent.action.VIEW
Este comando muestra los reproductores de video disponibles para reproducir el archivo sample.3gp
Paso 1: Primero obtenga todo el nombre del paquete de las aplicaciones instaladas en su Dispositivo, usando:
adb shell pm list packages
Paso 2: Obtendrá todos los nombres de paquete, copie el que desea comenzar a usar adb.
Paso 3: Agregue el nombre del paquete deseado en el siguiente comando.
adb shell monkey -p 'your package name' -v 500
Por ejemplo:
adb shell monkey -p com.estrongs.android.pop -v 500
para iniciar el explorador Es.
abra ~ / .bash_profile y agregue estas funciones bash al final del archivo
function androidinstall(){
adb install -r ./bin/$1.apk
}
function androidrun(){
ant clean debug
adb shell am start -n $1/$1.$2
}
luego abra la carpeta del proyecto de Android
androidinstall app-debug && androidrun com.example.app MainActivity
app-debug
hace?
monkey --pct-syskeys 0
para tableros de desarrollo
Sin este argumento, la aplicación no se abrirá en una placa de desarrollo sin teclas / pantalla:
adb shell monkey --pct-syskeys 0 -p com.cirosantilli.android_cheat.textviewbold 1
y falla con error:
SYS_KEYS has no physical keys but with factor 2.0%
Probado en HiKey960, Android O AOSP.
Aprendí de: https://github.com/ARM-software/lisa/pull/408
También preguntado en: prueba de mono: si el sistema Android no tiene claves físicas, ¿cuáles son los parámetros que deben incluirse en el comando?
Pruebe esto, para abrir una aplicación de fotos de Android y con un archivo de imagen específico para abrir como parámetro.
adb shell am start -n com.google.android.apps.photos/.home.HomeActivity -d file:///mnt/user/0/primary/Pictures/Screenshots/Screenshot.png
Funcionará en el último Android, no aparecerá ninguna ventana emergente para seleccionar una aplicación para abrir, ya que está dando una aplicación específica a la que desea abrir su imagen con