specific - logcat android studio
¿Cómo iniciar una aplicación utilizando herramientas de Android ADB? (10)
¿Cómo envío un intento usando las herramientas ADB de Android?
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. Ver el code
Por ejemplo, si adb shell am
actividad de Play Store desde adb shell am
, presionar el botón '' Atrás '' (botón de retroceso de hardware) no le tomaría su aplicación, en cambio, le tomaría la actividad previa de Play Store si hubiera algo (si no hubiera Tarea de Play Store, entonces te llevaría tu aplicación). FLAG_ACTIVITY_NEW_TASK documentación dice:
si ya se está ejecutando una tarea para la actividad que está comenzando, no se iniciará una nueva actividad; en su lugar, la tarea actual simplemente se llevará al frente de la pantalla con el estado en el que se encontraba por última vez
Esto me hizo pasar algunas horas para averiguar qué fue lo que salió mal.
Por lo tanto, tenga en cuenta que adb shell am
agrega el indicador FLAG_ACTIVITY_NEW_TASK .
Es posible ejecutar la aplicación especificando el nombre del paquete solo usando 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 número 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 (icono clic).
Intente 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 la última versión de Android, no aparecerá ninguna ventana emergente para seleccionar una aplicación para abrir, ya que le está dando una aplicación específica a la que desea abrir su imagen con
Los usuarios de linux / mac también pueden crear un script para ejecutar una 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 de inicio. Del mismo modo, puede crear "adb-uninstall.sh myapp.apk"
Nota: Esto requiere que tengas aapt en tu camino. Puede encontrarlo en la nueva carpeta de herramientas de compilación en el SDK.
O, podrías usar esto:
adb shell am start -n com.package.name/.ActivityName
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
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
}
a continuación, abra la carpeta del proyecto de Android
androidinstall app-debug && androidrun com.example.app MainActivity
monkey --pct-syskeys 0
para placas 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 se pregunta en: prueba de mono: si el sistema Android no tiene teclas físicas, ¿cuáles son los parámetros que deben incluirse en el comando?
adb shell
am start -n com.package.name/com.package.name.ActivityName
O puedes usar esto directamente:
adb shell am start -n com.package.name/com.package.name.ActivityName
También puedes especificar acciones para ser filtradas por tus filtros de intención:
am start -a com.example.ACTION_NAME -n com.package.name/com.package.name.ActivityName
adb shell am start -n ''<appPackageName>/.<appActitivityName>
Ex:
adb shell am start -n ''com.android.settings/.wifi.WifiStatusTest''
Puede utilizar la aplicación APK-INFO para conocer la lista de actividades de la aplicación con respecto a cada paquete de aplicaciones.