the studio script plug make for first configurar available added actualizar android gradle android-studio gradlew

script - gradle version android studio



¿Se puede implementar en un dispositivo a través de Gradle desde la línea de comando? (9)

Lo que dice realmente la pregunta: ¿puedes emitir comandos directamente a gradlew a través de la línea de comandos para compilar, empaquetar e implementar en un dispositivo?


Build -> uninstall old verion -> instalar nueva versión -> ejecutar la aplicación.

echo "Build application" && ./gradlew clean build && echo "Uninstall application" && adb uninstall [application package] && echo "Install application" && adb -d install app/build/outputs/apk/<build type>/[apk name].apk echo "Run application" && adb shell am start -n [application package]/.[application name]

O si desea instalar y ejecutar la aplicación en el tipo de depuración.

./gradlew installDebug && adb shell am start -n [application package]/.[application name]


Escribí esta tarea para poder instalar y también abrir la aplicación en el dispositivo. Como tenía varios buildTypes y flavors con diferentes buildTypes aplicaciones, no fue posible codificar el nombre del paquete. Así que lo escribí así en su lugar:

android.applicationVariants.all { variant -> task "open${variant.name.capitalize()}" { dependsOn "install${variant.name.capitalize()}" doLast { exec { commandLine "adb shell monkey -p ${variant.applicationId} -c android.intent.category.LAUNCHER 1".split(" ") } } } }

Esto le daría open{variant} para cada tarea de install{variant} que ya tenga.


Hay tres comandos para lograr esto:

  1. ./gradlew assembleDebug #To build the project

  2. adb install -r ./app/build/outputs/apk/app-debug.apk #To install it to the device

  3. adb shell am start -n $PACKAGE/$PACKAGE.$ACTIVITY #To launch the application in the device , donde $ PAQUETE es el paquete de desarrollo y $ ACTIVIDAD es la actividad que se lanzará (la actividad del iniciador).

He estado escribiendo un script bash para hacer esto , con otras pocas características.


Una forma más flexible de hacerlo es mediante el uso de mono:

task runDebug (type: Exec, dependsOn: ''installDebug'') { commandLine android.getAdbExe().toString(), "shell", "monkey", "-p", "your.package.name.debugsuffix", "-c", "android.intent.category.LAUNCHER", "1" }

Algunas ventajas de este método:

  • getAdbExe no requiere que adb esté en la ruta y usa la versión de adb del sdk apuntado en local.properties .
  • La herramienta monkey permite enviar un intento de iniciador, por lo que no es necesario que conozca el nombre de su actividad.

Una frase de línea:

Desarrollar proyecto e instalar apk generado y abrir aplicación en el dispositivo

$ ./gradlew installDebug && adb shell am start -n com.example/.activities.MainActivity


Ya que está usando Gradle, podría simplemente agregar su propia tarea en build.gradle

task appStart(type: Exec, dependsOn: ''installDebug'') { // linux commandLine ''adb'', ''shell'', ''am'', ''start'', ''-n'', ''com.example/.MyActivity'' // windows // commandLine ''cmd'', ''/c'', ''adb'', ''shell'', ''am'', ''start'', ''-n'', ''com.example/.MyActivity'' }

luego llámalo en la raíz de tu proyecto

$ gradle appStart

Actualizar:

Si está utilizando applicationIdSuffix ".debug" , agregue .debug a la aplicación, pero deje la actividad intacta:

''com.example.debug/com.example.MyActivity''


1. Desarrollar proyecto, instalar apk generado en el dispositivo

# at the root dir of project $ gradle installDebug

2. Abra la aplicación en el dispositivo

$ adb shell am start -n yourpackagename/.activityname


$ gradle installDebug

Esto impulsará la aplicación de compilación de depuración al dispositivo, pero debe iniciarla manualmente.


task appStart(type: Exec, dependsOn: ''installDebug'') { commandLine android.adbExe, ''shell'', ''am'', ''start'', ''-n'', ''com.example/.MyActivity'' }