¿Cómo iniciar una aplicación usando android ADB tools?


¿Cómo envío una intent usando las herramientas ADB de Android?

 371
Author: trgraglia, 2010-12-31

10 answers

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 puede especificar acciones para ser filtradas por sus filtros de intención:

am start -a com.example.ACTION_NAME -n com.package.name/com.package.name.ActivityName 
 515
Author: Cristian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-31 03:40:29

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 utiliza para ejecutar la aplicación utilizando la herramienta monkey que genera una entrada aleatoria para la aplicación. La última parte del comando es integer que especifica el número de entrada aleatoria generada para app. En este caso, el número es 1, que de hecho se utiliza para iniciar la aplicación (clic en el icono).

 213
Author: Michal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-20 07:18:19

O, podrías usar esto:

adb shell am start -n com.package.name/.ActivityName
 114
Author: Joilnen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-15 20:38:25

Los usuarios de Linux/mac también pueden crear un script para ejecutar un apk con algo como lo siguiente:

Crear 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

Entonces "chmod + x adb-run.sh" para que sea 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 ejecutable. Del mismo modo, puede crear "adb-uninstall.sh myapp.apk"

Nota: Esto requiere que usted tiene aapt en tu camino. Puede encontrarlo en la carpeta nuevas herramientas de compilación en el SDK.

 55
Author: dljava,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-25 05:47:30

Además, quiero mencionar una cosa más.

Cuando inicia una aplicación desde adb shell am, agrega automáticamente FLAG_ACTIVITY_NEW_TASK flag lo que hace que el comportamiento cambie. Véase el código .

Por ejemplo, si inicias la actividad de Play Store desde adb shell am, presionar el botón' Back ' (botón de hardware back) no te llevaría a tu aplicación, sino que te tomaría la actividad anterior de Play Store si hubiera alguna (Si no hubiera una tarea de Play store, entonces llévate tu app). FLAG_ACTIVITY_NEW_TASK documentación dice:

Si una tarea ya se está ejecutando para la actividad que está iniciando, entonces una nueva actividad no se iniciará; en su lugar, la tarea actual simplemente se llevará al frente de la pantalla con el estado en el que fue la última

Esto me hizo pasar unas horas para averiguar qué salió mal.

Por lo tanto, tenga en cuenta que adb shell am agregar FLAG_ACTIVITY_NEW_TASK flag.

 18
Author: 김준호,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-26 06:35:04

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 vídeo disponibles para reproducir la muestra .3gp file

 13
Author: Anvesh Yalamarthy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-04 12:42:58

Abrir ~/.bash_profile y añadir 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 Android

androidinstall app-debug && androidrun com.example.app MainActivity
 12
Author: AbdullahDiaa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-16 12:51:16

monkey --pct-syskeys 0 para juntas 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.

Aprendido de: https://github.com/ARM-software/lisa/pull/408

También se preguntó en: prueba de mono: Si el sistema Android no tiene claves físicas, cuáles son los parámetros deben incluirse en el comando

 4
Author: Ciro Santilli 新疆改造中心 六四事件 法轮功,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-25 14:30:03

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 aplicación específica a la que desea abrir su imagen con

 0
Author: Varun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-21 07:32:41
adb shell am start -n '<appPackageName>/.<appActitivityName>

Ex:

adb shell am start -n 'com.android.settings/.wifi.WifiStatusTest'

Puede usar la aplicación APK-INFO para conocer la lista de Actividades de la Aplicación con respecto a cada Paquete de aplicación

 0
Author: ImSaleem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-08 04:34:59