Cómo construir un APK en Android studio

Android Studio configura nuevos proyectos para desplegarlos en el emulador de Android o en un dispositivo conectado con sólo unos pocos clics. Una vez instalada tu app, puedes utilizar Aplicar cambios para desplegar ciertos cambios de código y recursos sin construir un nuevo APK.

Para construir y ejecutar tu app, sigue estos pasos:

  1. En la barra de herramientas, selecciona tu app en el menú desplegable de configuraciones de ejecución.
  2. Desde el menú desplegable del dispositivo de destino, selecciona el dispositivo en el que quieres ejecutar tu app.
  3. Si no tienes ningún dispositivo configurado, entonces necesitas conectar un dispositivo a través de USB o crear un AVD para utilizar el emulador de Android.
  4. Haz clic en Ejecutar.

Nota: También puedes desplegar tu app en modo depuración haciendo clic en Depuración . Ejecutar tu aplicación en modo de depuración te permite establecer puntos de interrupción en tu código, examinar variables y evaluar expresiones en tiempo de ejecución, y ejecutar herramientas de depuración. Para obtener más información, consulte Depurar su aplicación.

Cambiar la configuración de ejecución/depuración

Cuando ejecuta su aplicación por primera vez, Android Studio utiliza una configuración de ejecución predeterminada. La configuración de ejecución especifica si se va a desplegar tu app desde un APK o un Android App Bundle, el módulo a ejecutar, el paquete a desplegar, la actividad a iniciar, el dispositivo de destino, la configuración del emulador, las opciones de logcat, etc.

La configuración de ejecución/depuración por defecto construye un APK, lanza la actividad del proyecto por defecto y utiliza el diálogo Select Deployment Target para la selección del dispositivo de destino. Si la configuración por defecto no se adapta a tu proyecto o módulo, puedes personalizar la configuración de ejecución/depuración, o incluso crear una nueva, a nivel de proyecto, por defecto y de módulo. Para editar una configuración de ejecución/depuración, seleccione Ejecutar > Editar configuraciones. Para obtener más información, consulte Crear y editar configuraciones de ejecución/depuración.

Cambiar la variante de compilación

De forma predeterminada, Android Studio construye la versión de depuración de su aplicación, que está destinada a utilizarse únicamente durante el desarrollo, cuando hace clic en Ejecutar.

Para cambiar la variante de compilación que utiliza Android Studio, seleccione Compilación > Seleccionar variante de compilación en la barra de menús.

Para los proyectos sin código nativo/C++, el panel Variantes de compilación tiene dos columnas: Módulo y Variante de compilación activa. El valor de la Variante de compilación activa para el módulo determina qué variante de compilación despliega el IDE en su dispositivo conectado y es visible en el editor.

main-qimg-e2e2b4076168bd35ed022279e1bea042

Figura 1. El panel de Variantes de compilación tiene dos columnas para los proyectos que no tienen código nativo/C++

Para cambiar entre variantes, haga clic en la celda de Variante de compilación activa para un módulo y elija la variante deseada en el campo de la lista.

Para los proyectos con código nativo/C++, el panel de Variantes de compilación tiene tres columnas: Módulo, Variante de compilación activa y ABI activa. El valor de Active Build Variant para el módulo determina la variante de compilación que el IDE despliega en su dispositivo y es visible en el editor. Para los módulos nativos, el valor de la ABI activa determina la ABI que utiliza el editor, pero no afecta a lo que se despliega.

main-qimg-c0e0da0b39b50d0cb74a68c45274bf81

Figura 2. El panel de Variantes de compilación añade la columna ABI activa para proyectos con código nativo/C++

Para cambiar la variante de compilación o ABI, haga clic en la celda de la columna Variante de compilación activa o ABI activa y elija la variante o ABI deseada de la lista. Después de cambiar la selección, el IDE sincroniza su proyecto automáticamente. Al cambiar cualquiera de las columnas de una aplicación o módulo de biblioteca, el cambio se aplicará a todas las filas dependientes.

Por defecto, los nuevos proyectos se configuran con dos variantes de compilación: una variante de depuración y otra de lanzamiento. Necesitas construir la variante de lanzamiento para preparar tu app para el lanzamiento público.

Para construir otras variaciones de tu app, cada una con diferentes características o requerimientos de dispositivos, puedes definir variantes de construcción adicionales.

Construye tu proyecto

El botón Run

main-qimg-160241ac3437e00c9deee4091c4ac598

construye y despliega tu app en un dispositivo. Sin embargo, para construir tu app para compartirla o subirla a Google Play, necesitarás usar una de las opciones del menú Build para compilar partes o todo tu proyecto. Antes de seleccionar cualquiera de las opciones de compilación enumeradas en la tabla 1, asegúrese de seleccionar primero la variante de compilación que desea utilizar.

Nota: Android Studio requiere AAPT2 para construir paquetes de aplicaciones, que está habilitado para los nuevos proyectos por defecto. Sin embargo, para asegurarse de que está habilitado en los proyectos existentes, incluya android.enableAapt2=true en su archivo gradle.properties y reinicie el demonio Gradle ejecutando ./gradlew --stop desde la línea de comandos.

Tabla 1. Opciones de compilación en el menú Build.

Opción del menú

Descripción

Make Module

Compila todos los archivos fuente del módulo seleccionado que han sido modificados desde la última compilación, y todos los módulos de los que el módulo seleccionado depende recursivamente. La compilación incluye los archivos fuente dependientes y cualquier tarea de construcción asociada. Puedes seleccionar el módulo a compilar seleccionando el nombre del módulo o uno de sus archivos en la ventana del proyecto. Este comando no genera un APK.

Make Project

Hace todos los módulos.

Clean Project

Elimina todos los archivos de compilación intermedios/en caché.

Reconstruir Proyecto

Ejecuta Clean Project para la variante de construcción seleccionada y produce un APK.

Construir Bundle(s) / APK(s) > Construir APK(s)

Construye un APK de todos los módulos en el proyecto actual para su variante seleccionada. Cuando la construcción se completa, aparece una notificación de confirmación, proporcionando un enlace al archivo APK y un enlace para analizarlo en el Analizador de APK.

Si la variante de construcción que ha seleccionado es un tipo de construcción de depuración, entonces el APK está firmado con una clave de depuración y está listo para instalar. Si ha seleccionado una variante de lanzamiento, entonces, por defecto, el APK no está firmado y debe firmarlo manualmente. Alternativamente, puedes seleccionar Build > Generate Signed Bundle / APK en la barra de menús.

Android Studio guarda los APKs que construyes en

nombre del proyecto

nombre del módulo

construir/salidas/apk/.

Construir Bundle(s) / APK(s) > Construir Bundle(s)

Construye un Android App Bundle de todos los módulos en el proyecto actual para su variante seleccionada. Cuando la construcción se completa, aparece una notificación de confirmación, proporcionando un enlace al paquete de aplicaciones y un enlace para analizarlo en el Analizador de APK.

Si la variante de construcción que ha seleccionado es un tipo de construcción de depuración, entonces el paquete de aplicaciones se firma con una clave de depuración, y puede utilizar bundletool para desplegar su aplicación desde el paquete de aplicaciones a un dispositivo conectado. Si has seleccionado una variante de lanzamiento, el paquete de aplicaciones no está firmado por defecto y debes firmarlo manualmente con jarsigner. Alternativamente, puedes seleccionar Build > Generate Signed Bundle / APK en la barra de menú.

Android Studio guarda los APKs que construyes en

nombre-proyecto

nombre-módulo

construir/salidas/bundle/.

Generar Bundle / APK firmado

Lleva a cabo un diálogo con un asistente para establecer una nueva configuración de firma, y construir un paquete de aplicaciones firmado o APK. Tienes que firmar tu aplicación con una clave de lanzamiento antes de poder subirla a la Play Console. Para obtener más información sobre la firma de aplicaciones, consulte Firmar su aplicación.

Nota: El botón Ejecutar

main-qimg-160241ac3437e00c9deee4091c4ac598

construye un APK con testOnly="true", lo que significa que el APK sólo se puede instalar a través de adb (que utiliza Android Studio). Si quieres un APK depurable que la gente pueda instalar sin adb, selecciona tu variante de depuración y haz clic en Build Bundle(s) / APK(s) > Build APK(s).

Para obtener detalles sobre las tareas que Gradle ejecuta para cada comando, abre la ventana Build como se describe en la siguiente sección. Para obtener más información sobre Gradle y el proceso de compilación, consulte Configurar su compilación.

Supervise el proceso de compilación

Puede ver los detalles sobre el proceso de compilación haciendo clic en Ver > Ventanas de herramientas > Compilación (o haciendo clic en Compilación

main-qimg-d95e918381fcb191250ddacef4918cfc

en la barra de la ventana de herramientas). La ventana muestra las tareas que Gradle ejecuta para construir tu app, como se muestra en la figura 3.

main-qimg-f6d8db3dba952036e57a6b8efce2f160

Figura 3. La ventana de salida de Build en Android Studio

  1. Pestaña Build: Muestra las tareas que Gradle ejecuta como un árbol, donde cada nodo representa una fase de construcción o un grupo de dependencias de tareas. Si recibes errores de construcción o compilación, inspecciona el árbol y selecciona un elemento para leer la salida del error, como se muestra en la figura 4. Figura 4. Inspeccionar la ventana de salida de construcción para los mensajes de error
  2. Pestaña de sincronización: Muestra las tareas que Gradle ejecuta para sincronizar con los archivos de tu proyecto. De forma similar a la pestaña Construir, si encuentras un error de sincronización, selecciona los elementos en el árbol para encontrar más información sobre el error.
  3. Reiniciar: Realiza la misma acción que al seleccionar Construir > Hacer proyecto generando archivos de construcción intermedios para todos los módulos de su proyecto.
  4. Vista de alternancia: Alterna entre la visualización de la ejecución de la tarea como un árbol gráfico y la visualización de una salida de texto más detallada de Gradle; es la misma salida que se ve en la ventana de la consola de Gradle en Android Studio 3.0 y anteriores.

Si tus variantes de compilación utilizan sabores de productos, Gradle también invoca tareas para construir esos sabores de productos. Para ver la lista de todas las tareas de compilación disponibles, haz clic en View > Tool Windows > Gradle (o haz clic en Gradle

main-qimg-2dd7c549fba4fd2d29a2ebe022e0ce09

en la barra de la ventana de herramientas).

Si se produce un error durante el proceso de compilación, Gradle puede recomendar algunas opciones de línea de comandos para ayudarte a resolver el problema, como --stacktrace o --debug. Para utilizar las opciones de línea de comandos con su proceso de compilación:

  1. Abra el cuadro de diálogo Configuración o Preferencias:En Windows o Linux, seleccione Archivo > Configuración en la barra de menús.En Mac OSX, seleccione Android Studio > Preferencias en la barra de menús.
  2. Desplácese a Compilación, Ejecución, Implementación > Compilador.
  3. En el campo de texto junto a Opciones de línea de comandos, introduzca sus opciones de línea de comandos.
  4. Haga clic en Aceptar para guardar y salir.

Gradle aplica estas opciones de línea de comandos la próxima vez que intente construir su aplicación.

Aplicar cambios

En Android Studio 3.5 y superior, Aplicar cambios le permite empujar el código y los cambios de recursos a su aplicación en ejecución sin reiniciar su aplicación-y, en algunos casos, sin reiniciar la actividad actual. Esta flexibilidad te ayuda a controlar la cantidad de tu aplicación que se reinicia cuando quieres implementar y probar pequeños cambios incrementales mientras conservas el estado actual de tu dispositivo. Aplicar cambios utiliza las capacidades de la implementación de Android JVMTI que son compatibles con los dispositivos que ejecutan Android 8.0 (nivel de API 26) o superior. Para obtener más información sobre el funcionamiento de Aplicar cambios, consulta Android Studio Project Marble: Aplicar cambios.

Requisitos

Las acciones de Aplicar cambios solo están disponibles cuando se cumplen las siguientes condiciones:

  • Construyes el APK de tu aplicación utilizando una variante de compilación de depuración.
  • Implementas tu aplicación en un dispositivo de destino o emulador que ejecuta Android 8.0 (nivel de API 26) o superior.

Utiliza Aplicar cambios

Utiliza las siguientes opciones cuando quieras desplegar tus cambios en un dispositivo compatible:

Aplicar cambios y reiniciar la actividad

main-qimg-71a50dbba44c78128b221b7df7bb51f1.webp

Intenta aplicar tanto tus cambios de recursos como de código reiniciando tu actividad pero sin reiniciar tu app. Generalmente, puedes utilizar esta opción cuando has modificado código en el cuerpo de un método o has modificado un recurso existente.

También puedes realizar esta acción pulsando Ctrl+Alt+F10 (o Control+Mayúsculas+Comando+R en macOS).

Aplicar cambios de código

Intenta aplicar sólo tus cambios de código sin reiniciar nada. Generalmente, puedes usar esta opción cuando'has modificado código en el cuerpo de un método pero no has modificado ningún recurso. Si has modificado tanto el código como los recursos, utiliza Aplicar cambios y reiniciar la actividad en su lugar.

También puedes realizar esta acción pulsando Ctrl+F10 (o Control+Comando+R en macOS).

Ejecutar

Aplica todos los cambios y reinicia la app. Utiliza esta opción cuando los cambios que has realizado no puedan aplicarse mediante ninguna de las opciones de Aplicar cambios. Para obtener más información sobre los tipos de cambios que requieren un reinicio de la aplicación, consulte Limitaciones de Aplicar cambios.

Activar la ejecución de reserva para Aplicar cambios

Después de que haya hecho clic en Aplicar cambios y reiniciar la actividad o en Aplicar cambios de código, Android Studio crea un nuevo APK y determina si los cambios se pueden aplicar. Si los cambios no pueden ser aplicados y causan el fallo de Aplicar Cambios, Android Studio le pide que ejecute su aplicación de nuevo. Sin embargo, si no quiere que se le pregunte cada vez que esto ocurra, puede configurar Android Studio para que vuelva a ejecutar automáticamente su aplicación cuando los cambios no puedan aplicarse.

Para activar este comportamiento, siga estos pasos:

  1. Abra el cuadro de diálogo Configuración o Preferencias:En Windows o Linux, seleccione Archivo > Configuración en la barra de menús.En macOS, seleccione Android Studio > Preferencias en la barra de menús.
  2. Desplázate hasta Build, Execution, Deployment > Deployment.
  3. Selecciona las casillas de verificación para habilitar la devolución automática de Run para cualquiera de las acciones de Apply Changes.
  4. Haz clic en OK.

Nota: Algunos tipos de cambios no provocan el fallo de Apply Changes, pero siguen requiriendo que reinicies tu aplicación manualmente antes de poder ver esos cambios. Por ejemplo, si realizas cambios en el método onCreate() de una actividad, esos cambios solo surtirán efecto después de relanzar la actividad, por lo que deberás reiniciar tu aplicación para ver esos cambios.

Limitaciones de Aplicar cambios

Aplicar cambios está diseñado para acelerar el proceso de implementación de la aplicación. Sin embargo, hay algunas limitaciones para cuando se puede utilizar. Si encuentras algún problema al usar Apply Changes, presenta un error.

Cambios de código que requieren reiniciar la aplicación

Algunos cambios de código y recursos no pueden aplicarse hasta que se reinicie la aplicación, incluyendo los siguientes:

  • Añadir o eliminar un método o campo
  • Cambiar las firmas de los métodos
  • Cambiar los modificadores de los métodos o clases
  • Cambiar la herencia de las clases
  • Cambiar los valores de los enums
  • Añadir o eliminar un recurso
  • Cambiar el manifiesto de la aplicación
  • Cambiar las bibliotecas nativas (archivos SO)

Bibliotecas y plugins

Algunas bibliotecas y plugins realizan automáticamente cambios en los archivos de manifiesto de tu app's archivos de manifiesto o a los recursos a los que se hace referencia en el manifiesto. Estas actualizaciones automáticas pueden interferir con la aplicación de cambios de las siguientes maneras:

  • Si una biblioteca o un plugin realiza cambios en el manifiesto de tu aplicación, no puedes utilizar ni la aplicación de cambios de código ni la aplicación de cambios y el reinicio de la actividad y tienes que reiniciar tu aplicación antes de poder ver los cambios.
  • Si una biblioteca o un plugin realiza cambios en los archivos de recursos de tu aplicación, no puedes utilizar la aplicación de cambios de código y debes utilizar la aplicación de cambios y el reinicio de la actividad para ver los cambios.

Puedes evitar estas limitaciones deshabilitando todas las actualizaciones automáticas para tus variantes de compilación de depuración.

Por ejemplo, Crashlytics actualiza los recursos de la app con un ID de compilación único durante cada compilación, lo que te impide utilizar Aplicar cambios de código

y te obliga a reiniciar la actividad de tu app para ver tus cambios. Puedes deshabilitar este comportamiento para poder usar Aplicar cambios de código junto con Crashlytics con tus builds de depuración.

Código que hace referencia directa al contenido de un APK instalado

Si tu código hace referencia directa al contenido de tu app's APK que'está instalado en el dispositivo, ese código puede causar cuelgues o comportarse mal después de hacer clic en Aplicar cambios de código

. Este comportamiento se produce porque al hacer clic en Aplicar cambios de código, el APK subyacente en el dispositivo se sustituye durante la instalación. En estos casos, puede hacer clic en Aplicar cambios y reiniciar la actividad