android - descargar - comandos adb shell
Inicie la aplicación a través de adb sin conocer el nombre de la actividad (3)
Sí, es posible iniciar una aplicación a través de adb shell haciendo uso de la herramienta mono.
Usando el comando de esta respuesta :
adb shell monkey -p app.package.name -c android.intent.category.LAUNCHER 1
Este comando simula el clic en el icono de la aplicación, por lo que el intento LATIZADOR de intención implícita se entrega al receptor específico declarado en el manifiesto de la aplicación (PRINCIPAL)
Esta pregunta ya tiene una respuesta aquí:
Nota: esta NO es una pregunta general acerca de cómo iniciar una aplicación de Android con la herramienta adb de Android, que según algunos miembros de la comunidad es un duplicado. Como se establece claramente a continuación, ya sé que es posible hacerlo a través de adb pero con la limitación de que necesitamos saber el nombre de la actividad.
Entonces esta pregunta es sobre cómo lanzar una aplicación con adb SIN saber el nombre de la actividad.
Desde la publicación ¿Es posible iniciar actividad a través de adb shell? , podemos iniciar una aplicación de Android a través de adb por
adb shell am start -n yourpackagename/.activityname
Pero, ¿es posible iniciar una aplicación de Android a través de adb sin conocer el nombre de la actividad? Por ejemplo, al enviar el intento android.intent.action.MAIN a un paquete? Tal vez algunos comandos como este:
adb shell am start -a android.intent.action.MAIN -n packageName
Si tiene el archivo apk, puede instalar e iniciar la aplicación usando droidbot .
> droidbot -d emulator-5554 -a <xxx.apk> -install_app -policy none -count 0
DroidBot se basa en adb, pero utiliza el análisis estático para extraer el nombre de la Actividad automáticamente.
Usando las últimas versiones (al menos API 25) puede iniciar la Actividad predeterminada, sin saber su nombre, y sin usar monkey
:
PKG=com.android.calculator2
adb shell am start $PKG/$(adb shell cmd package resolve-activity -c android.intent.category.LAUNCHER $PKG | sed -n ''/name=/s/^.*name=//p'')