¿Cómo ejecutar (no sólo instalar) una aplicación de Android usando el archivo .apk?

¿Hay algún comando en cmd.exe que me permita iniciar la actividad principal de una aplicación android en particular utilizando el archivo .apk de esa aplicación. Tenga en cuenta que conozco este comando que sólo instala una aplicación de Android:

 adb install myapp.apk 

Este comando sólo instalará myapp en el emulador y tengo que ejecutar manualmente esta aplicación desde el emulador (realizando un solo clic en su icono).

Lo que quiero hacer es usar un comando que no sólo instala la aplicación, sino que también inicia su actividad principal (tenga en cuenta que sólo tengo su archivo .apk , así que no sé cuál es el nombre del paquete o cualquier nombre de actividad).

No se puede instalar y ejecutar de una vez – pero ciertamente puede utilizar adb para iniciar su aplicación ya instalada. Utilizar adb shell es comenzar a disparar una intención – tendrá que utilizar la intención correcta para su aplicación sin embargo. Un par de ejemplos:

 adb shell am start -a android.intent.action.MAIN -n com.android.settings/.Settings 

Se iniciará Configuración, y

 adb shell am start -a android.intent.action.MAIN -n com.android.browser/.BrowserActivity 

Lanzará el navegador. Si desea apuntar el navegador en una página en particular, haga esto

 adb shell am start -a android.intent.action.VIEW -n com.android.browser/.BrowserActivity http://www.google.co.uk 

Si no sabe el nombre de las actividades en el APK, haga esto

 aapt d xmltree <path to apk> AndroidManifest.xml 

El contenido de salida incluirá una sección como esta:

  E: activity (line=32) A: android:theme(0x01010000)=@0x7f080000 A: android:label(0x01010001)=@0x7f070000 A: android:name(0x01010003)="com.anonymous.MainWindow" A: android:launchMode(0x0101001d)=(type 0x10)0x3 A: android:screenOrientation(0x0101001e)=(type 0x10)0x1 A: android:configChanges(0x0101001f)=(type 0x11)0x80 E: intent-filter (line=33) E: action (line=34) A: android:name(0x01010003)="android.intent.action.MAIN" XE: (line=34) 

Que le dice el nombre de la actividad principal (MainWindow), y ahora se puede ejecutar

 adb shell am start -a android.intent.action.MAIN -n com.anonymous/.MainWindow 

Si estás buscando el equivalente de "adb ejecutar myapp.apk"

Puede usar el script mostrado en esta respuesta

(Linux y mac solamente – quizá con cygwin en ventanas)

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 usted puede simplemente:

Adb-run.sh miapp.apk

El beneficio aquí es que no es necesario conocer el nombre del paquete o el nombre de la actividad que se puede iniciar. Del mismo modo, puede crear "adb-uninstall.sh myapp.apk"

Nota: Esto requiere que usted tenga un aapt en su camino. Puede encontrarlo en la nueva carpeta de herramientas de construcción del SDK

Cuando inicie la aplicación desde la GUI, adb logcat podría mostrarle la acción / categoría / componente correspondiente:

$ Adb logcat
[…]
I / ActivityManager (1607): START {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] flg = 0x10200000 cmp = com.android.browser / .BrowserActivity} de pid 1792
[…]

Pongo esto en mi makefile, a la derecha la siguiente línea después de adb install ...

 adb shell monkey -p `cat .identifier` -c android.intent.category.LAUNCHER 1 

Para que esto funcione, debe haber un archivo .identifier con el identificador de paquete de la aplicación en él, como com.company.ourfirstapp

No es necesario buscar el nombre de la actividad.

  • Auto-actualización de la aplicación de Android
  • Crash while self update APK (la clase de componente no existe)
  • Instalación de Android en la falla del dispositivo
  • Cómo instalar la aplicación de Android en el directorio de sistema / app sin dispositivo enraizado para que el usuario no pueda desinstalar esa aplicación
  • Cambiar el nombre del paquete de una aplicación Android actualizada
  • Error al cargar apk en playstore
  • Android programaticamente actualización apk y ver el resultado de la instalación
  • Ejecute el código una sola vez después de una instalación nueva, la preferencia compartida no es una solución.
  • Android: cómo instalar apk en el dispositivo, sin utilizar las herramientas sdk de Android
  • Divida la aplicación de Android en dos partes
  • ¿Cómo hacemos APK firmado para Google Play Store?
  • Interesting Posts
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.