Ya está disponible la segunda Vista previa para desarrolladores de Android 11; pruébala y comparte tus comentarios.

Nuevas funciones de la versión preliminar de Android Studio

Se lanzó Android Studio 3.4 para el canal estable. Descárgalo aquí.

Android Studio 4.0 está actualmente en los canales para desarrolladores y Canary, y Android Studio 3.6 se encuentra en el canal beta.

Para consultar las novedades sobre las versiones, que incluyen la lista de las correcciones destacadas de cada una, también puedes consultar las Actualizaciones de versiones.

Si encuentras un problema mientras usas una versión preliminar de Android Studio, avísanos. Tus informes de errores nos ayudan a mejorar Android Studio.

Android Studio 4.0

En esta sección, se proporciona un resumen de las nuevas funciones y los cambios de Android Studio 4.0.

Actualizaciones de la IU del generador de perfiles de CPU

Actualizaciones de la IU del registro del sistema

En función de tus comentarios, se revisó la IU del generador de perfiles de CPU para ofrecer un flujo de trabajo más intuitivo. Entre los cambios destacados se incluyen los siguientes:

  • Los registros de CPU ahora están separados del cronograma principal del generador de perfiles para permitir un análisis más sencillo. Los datos registrados se organizan en grupos en el lado izquierdo de la ventana Profiler. Puedes mover grupos hacia arriba o abajo a fin de reorganizar la lista. Para ello, haz clic en el ícono de opciones ícono de opciones en el generador de perfiles en la esquina superior derecha de la ventana o arrastra y suelta elementos individuales dentro de un grupo.
  • Para facilitar el análisis en paralelo, puedes ver toda la actividad de subprocesos en el cronograma de la actividad de subprocesos (incluidos métodos, funciones y eventos).
  • Las pestañas de los análisis Flame Chart, Top Down y Bottom Up ahora se encuentran en la columna del lado derecho. En el grupo de subprocesos, los subprocesos se expanden automáticamente para los registros de seguimiento del sistema y se contraen de forma predeterminada para otros tipos de registro. Haz doble clic en los nombres de subprocesos para expandirlos o contraerlos.
  • También se mejoró la IU del registro del sistema, como se muestra en la captura de pantalla anterior. Ahora, por ejemplo, los eventos se colorean de forma única para facilitar la diferenciación.

Esta función aún está en desarrollo. Por lo tanto, sigue enviando comentarios.

Se quitó la función de procesamiento de anotaciones independiente

Se quitó la posibilidad de separar el procesamiento de anotaciones en una tarea exclusiva. Esta opción se usa para mantener la compilación incremental de Java cuando se usan procesadores de anotaciones no incrementales en proyectos solo de Java. Se habilitó mediante la configuración de android.enableSeparateAnnotationProcessing en true en el archivo gradle.properties, que ya no funciona.

En su lugar, debes migrar al uso de procesadores de anotaciones incrementales para mejorar el rendimiento de la compilación.

Ventana "Build Speed"

Cuando usas Android Studio 4.0 Canary 3 con el complemento de Gradle para Android 4.0.0-alpha03 y versiones posteriores, la ventana Build Speed te ayuda a comprender y diagnosticar problemas con el proceso de compilación, como optimizaciones inhabilitadas y tareas mal configuradas. Cuando usas Android Studio 4.0 Canary 3 y versiones posteriores, y el complemento de Gradle para Android 4.0.0-alpha03 o versiones posteriores, puedes abrir la ventana Build Speed de la siguiente manera:

  1. Si aún no lo hiciste, selecciona la opción Build > Make Project en la barra de menú.
  2. Selecciona View > Tool Windows > Build en la barra de menú.
  3. En la ventana Build, abre la ventana Build Speed de una de las siguientes maneras:
    • Una vez que Android Studio termine de crear el proyecto, haz clic en la pestaña Build Speed.
    • Después de que Android Studio termine de compilar el proyecto, haz clic en el vínculo que se encuentra en el lado derecho de la ventana Build Output.

En el lado izquierdo, la ventana Build Speed organiza posibles problemas de compilación en un árbol. Puedes explorar y hacer clic en cada problema para analizar los detalles en el panel de la derecha. Cuando Android Studio analiza tu compilación, procesa el conjunto de tareas que determinaron la duración de la compilación y proporciona una visualización para ayudarte a comprender el impacto de cada una de esas tareas. Para obtener más detalles sobre las advertencias, expande el nodo Warnings.

Gráfico de Build Speed

¿Qué tareas determinan la duración de la compilación?

Gradle determina la ejecución de tareas por las interdependencias entre tareas, la estructura del proyecto y la carga de la CPU, y ejecuta las tareas de forma secuencial o en paralelo. Para una compilación determinada, la ventana Build Speed destaca el conjunto de tareas ejecutadas de manera secuencial que determinaron la duración de la compilación actual. Resolver las ineficiencias en esas tareas destacadas es la mejor forma de reducir el tiempo de compilación general.

Ten en cuenta que es posible que veas un conjunto de tareas diferente que determine la duración de la compilación para cada compilación que ejecutes. Por ejemplo, si realizas cambios en la configuración de la compilación, ejecutas una compilación con un conjunto diferente de tareas (como una compilación incremental) o ejecutas una compilación con diferentes restricciones (por ejemplo, una carga de CPU más alta), es posible que, en la ventana "Build Speed", se destaque un conjunto diferente con las tareas que más afectaron la duración de la compilación. Debido a esta variabilidad, es posible que desees utilizar la ventana "Build Speed" en varias compilaciones para reducir la duración de la compilación de forma constante.

Multi Preview

Multi Preview es una herramienta visual que permite obtener una vista previa simultánea de los diseños en dispositivos y configuraciones diferentes, lo que puede ayudar a detectar posibles problemas.

Para acceder a esta función, haz clic en la pestaña Multi Preview ubicada en la esquina superior derecha de la ventana del IDE:

Botón Multi Preview

Puedes seleccionar entre dos conjuntos de configuración diferentes: dispositivos Pixel y configuraciones regionales del proyecto. Para alternar entre estos conjuntos de configuración, en el menú desplegable en la parte superior de la ventana "Multi Preview", selecciona lo siguiente:

Demostración de Multi Preview

Inspector de diseño en vivo

Depura el diseño con un Inspector de diseño en vivo actualizado que proporciona estadísticas completas y en tiempo real sobre la IU de la app mientras se implementa en un dispositivo.

Para abrir una ventana del Inspector de diseño, ve a View > Tools Windows > Layout Inspector. Además de muchas de las mismas funciones del Inspector de diseño existente, el Inspector de diseño en vivo también incluye lo siguiente:

  • Jerarquía de diseño dinámica Se actualiza a medida que cambian las vistas en el dispositivo.

Jerarquía de diseño dinámica

  • Pila de resolución de valores de propiedad: Investiga dónde se origina un valor de propiedad de recurso en el código fuente y navega a su ubicación siguiendo los hipervínculos en el panel de propiedades.

Pila de resolución de valores de propiedad

  • Vista 3D: Consulta la jerarquía de vistas de tu app en el tiempo de ejecución con una visualización 3D avanzada. Para usar esta función, en la ventana del Inspector de diseño en vivo, haz clic en el diseño y rótalo.

Inspector de diseño: vista 3D

Solo puedes usar el Inspector de diseño en vivo cuando implementas tu app en dispositivos con API nivel 29 o versiones posteriores. También debes habilitar la función. Para ello, navega a File > Settings > Experimental y marca la casilla junto a Enable Live Layout Inspector.

Compatibilidad con Jetpack Compose

Jetpack Compose Toolkit brinda un enfoque moderno para crear la IU de tu app. El kit de herramientas también incluye todos los beneficios de Kotlin, como ayudarte a escribir código idiomático y conciso que sea completamente interoperable con Java.

Para obtener la mejor experiencia de desarrollo con Jetpack Compose, debes usar la versión más reciente de Android Studio 4.0. Esto se debe a que, cuando utilizas Android Studio para desarrollar una app con Jetpack Compose, puedes beneficiarte de las funciones del editor inteligente, como las plantillas para proyectos nuevos y la capacidad de obtener de inmediato una versión de vista previa de la IU de Compose.

Para obtener más información y comenzar, consulta la descripción general de Jetpack Compose.

Desugaring de la biblioteca de Java 8 en D8 y R8

Ahora, Android Studio admite la utilización de varias API de Java 8 sin necesidad de un nivel de API mínimo para tu app.

Mediante un proceso llamado desugaring, el compilador DEX, D8, de Android Studio 3.0 y versiones posteriores ya proporcionaba compatibilidad sustancial con funciones del lenguaje Java 8 (como expresiones lambda, métodos de interfaz predeterminados, la prueba con recursos, etc.). En Android Studio 4.0, se amplió el motor de desugaring para poder usar desugar en las API del lenguaje Java. Esto significa que ahora puedes incluir API de lenguaje estándar que solo estaban disponibles en las versiones recientes de Android (como java.util.streams) en apps que admiten versiones anteriores de Android.

El siguiente conjunto de API es compatible con esta versión:

  • Flujos secuenciales (java.util.stream)
  • Un subconjunto de java.time
  • java.util.function
  • Adiciones recientes a java.util.{Map,Collection,Comparator}
  • Opcionales (java.util.Optional, java.util.OptionalInt y java.util.OptionalDouble) y algunas otras clases nuevas que son útiles para las API anteriores
  • Algunas adiciones a java.util.concurrent.atomic (métodos nuevos en AtomicInteger, AtomicLong y AtomicReference)
  • ConcurrentHashMap (con correcciones de errores para Android 5.0)

Para admitir estas API de lenguaje, D8 compila un archivo DEX de biblioteca independiente que contiene una implementación de las API faltantes y lo incluye en tu app. El proceso de desugaring reescribe el código de tu app para usar esa biblioteca en el tiempo de ejecución.

Para habilitar la compatibilidad con estas API de lenguaje, incluye lo siguiente en el archivo build.gradle del módulo:

android {
      defaultConfig {
        // Required when setting minSdkVersion to 20 or lower
        multiDexEnabled true
      }

      compileOptions {
        // Flag to enable support for the new language APIs
        coreLibraryDesugaringEnabled true
        // Sets Java compatibility to Java 8
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
      }
    }

    dependencies {
      coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.4'
    }
    

Avísanos si tienes problemas o si requieres compatibilidad con otras API. Para ello, registra errores en nuestro seguimiento de errores.

Compatibilidad con archivos de secuencias de comandos DSL de Kotlin

El complemento de Gradle para Android ahora es compatible con los archivos de la secuencia de comandos de compilación DSL de Kotlin (*.kts). Cuando se usan con Android Studio, algunas funciones del IDE, como el diálogo de estructura de proyecto y las correcciones rápidas de las secuencias de comandos de compilación, ahora también son compatibles con la lectura y la escritura en archivos de secuencias de comandos de compilación de Kotlin.

Funciones del editor inteligente para reglas de ProGuard

Android Studio ahora ofrece funciones de editor inteligente cuando abres archivos de reglas de ProGuard, como resaltado de sintaxis, compleción de código y comprobación de errores. El editor también se integra con tu proyecto de Android Studio para proporcionar la compleción total de símbolos para todos los métodos, clases y campos, además de navegación y refactorización rápidas.

Funciones del editor inteligente cuando se editan archivos de reglas de ProGuard

Motion Editor nuevo

Ahora, Android Studio incluye un editor de diseño visual para el tipo de diseño MotionLayout, lo que facilita la creación y la vista previa de animaciones.

Motion Editor proporciona una interfaz simple para usar elementos de la biblioteca de MotionLayout que funciona como base para la animación en las apps para Android. En las versiones anteriores, la creación y alteración de esos elementos requería la edición manual de restricciones en los archivos de recursos XML. Ahora, Motion Editor puede generar el XML por ti, con compatibilidad con estados de inicio y fin, fotogramas clave, transiciones y cronogramas.

Para comenzar a utilizar Motion Editor, haz lo siguiente:

  1. Crea un atributo ConstraintLayout.
  2. Haz clic con el botón derecho en la vista previa en el editor de diseño.
  3. Haz clic en Convert to MotionLayout, como se muestra a continuación.

Después de que Android Studio convierta el RestraintLayout a MotionLayout, también se agregará un archivo de Motion Scene al directorio que contiene el archivo XML.

El MotionLayout se convierte en el diseño raíz y aparece en la IU de Motion Editor. El diseño ya incluye un ConstraintSet inicial, un ConstraintSet final y una transición de principio a fin.

Puedes usar el gráfico de resumen para elegir un ConstraintSet o una Transition y seleccionar componentes en el panel de selección.

Luego, puedes editar las restricciones y los atributos del ConstraintSet inicial o final de la misma forma en que editarías un ConstraintLayout.

Si deseas compilar más elementos en tu gráfico, puedes usar los íconos de creación para agregar rápidamente un ConstraintSet, una Transition o gestos OnClick/OnSwipe.

Para agregar un fotograma clave, primero haz clic en la flecha de Transition:

Luego, en el panel de cronograma de Transition, haz clic en la esquina superior derecha y selecciona KeyPosition:

Con esta acción, se abre un cuadro de diálogo en el que puedes establecer atributos para el fotograma clave.

También puedes agregar controladores OnClick y OnSwipe a "Transition" en el panel de atributos.

Con esta acción, se abre un cuadro de diálogo en el que puedes establecer atributos del clic, como los componentes de destino y la dirección de arrastre.

Motion Editor admite la vista previa de animaciones en la superficie de diseño. Cuando se selecciona una animación, haz clic en Play  sobre el cronograma para obtener una vista previa de la animación.

Novedades del complemento de Gradle para Android 4.0.0

En esta sección, se describen las funciones nuevas y los cambios de comportamiento incluidos en el complemento de Gradle para Android 4.0.0.

Opciones nuevas para habilitar o inhabilitar las funciones de compilación

El complemento de Gradle para Android 4.0.0-alpha05 presenta una forma nueva de controlar las funciones de compilación que deseas habilitar o inhabilitar, como la vinculación de vista, la vinculación de datos y Jetpack Compose. De forma predeterminada, se inhabilitarán las funciones nuevas que se agreguen. Luego, puedes usar el bloque buildFeatures para habilitar solamente las funciones que desees, lo que ayuda a optimizar el rendimiento de la compilación del proyecto. Puedes configurar las opciones de cada módulo en el archivo build.gradle de nivel del módulo de la siguiente manera:

    android {
        // The default value for each feature is shown below. You can change the value to
        // override the default behavior.
        buildFeatures {
            // Determines whether to enable support for Jetpack Compose.
            compose = false
            // Determines whether to generate a BuildConfig class.
            buildConfig = true
            // Determines whether to support View Binding.
            // Note that the viewBinding.enabled property is now deprecated.
            viewBinding = false
            // Determines whether to support Data Binding.
            // Note that the dataBinding.enabled property is now deprecated.
            dataBinding = false
            // Determines whether to generate binder classes for your AIDL files.
            aidl = true
            // Determines whether to support RenderScript.
            renderScript = true
            // Determines whether to support injecting custom variables into the module’s R class.
            resValues = true
            // Determines whether to support shader AOT compilation.
            shaders = true
        }
    }
    

También puedes especificar la configuración predeterminada para estas funciones en todos los módulos de un proyecto. Para ello, incluye uno o más de los siguientes elementos en el archivo gradle.properties de tu proyecto, como se muestra a continuación. Ten en cuenta que puedes usar el bloque buildFeatures en el archivo build.gradle de nivel de módulo para anular la configuración predeterminada de todo el proyecto.

android.defaults.buildfeatures.buildconfig=true
    android.defaults.buildfeatures.aidl=true
    android.defaults.buildfeatures.renderscript=true
    android.defaults.buildfeatures.resvalues=true
    android.defaults.buildfeatures.shaders=true
    

Dependencias entre funciones

En las versiones anteriores del complemento de Gradle para Android, todos los módulos de funciones dinámicas podían depender únicamente del módulo base de la app. Cuando usas el complemento de Gradle para Android 4.0.0, puedes incluir un módulo de funciones que depende de otro módulo de funciones. Es decir, una función :video puede depender de la función :camera, que depende del módulo base, como se muestra en la siguiente figura.

Dependencias entre funciones

La función dinámica :video depende de la función :camera, que depende del módulo base :app.

Esto significa que, cuando la app solicita descargar un módulo de funciones dinámicas, también descarga otros módulos de funciones de los que depende. Después de crear módulos de funciones dinámicas para tu app, puedes declarar una dependencia entre funciones en el archivo build.gradle del módulo. Por ejemplo, el módulo :video declara que depende de :camera de la siguiente manera:

// In the build.gradle file of the ':video' module.
    dependencies {
        // All dynamic feature modules must declare a dependency
        // on the base module.
        implementation project(':app')
        // Declares that this module also depends on the 'camera'
        // dynamic feature module.
        implementation project(':camera')
        ...
    }
    

Además, debes habilitar la función de dependencia entre funciones en Android Studio (para admitir la función al editar la configuración de ejecución). Para ello, haz clic en Help > Edit Custom VM Options en la barra de menú y agrega lo siguiente:

-Drundebug.feature.on.feature=true
    

Se quitaron los complementos de Gradle para Android "instantapp" y "feature"

En el complemento de Gradle para Android 3.6.0, el complemento de funciones (com.android.feature) y el complemento de la app instantánea (com.android.instantapp) dejaron de estar disponibles y fueron reemplazados por el complemento de funciones dinámicas (com.android.dynamic-feature) para compilar y empaquetar las apps instantáneas mediante Android App Bundle.

En el complemento de Gradle para Android 4.0.0-alpha01 y versiones posteriores, estos complementos obsoletos se quitaron por completo. Por lo tanto, para usar el complemento de Gradle para Android más reciente, debes migrar tu app instantánea a fin de que sea compatible con Android App Bundle. Al migrar tus apps instantáneas, puedes aprovechar los beneficios de los paquetes de aplicaciones y simplificar el diseño modular de tu app.

Plantillas dinámicas de Kotlin para Android

Android Studio ahora incluye plantillas dinámicas para las clases de Kotlin. Por ejemplo, puedes escribir toast y presionar la tecla Tab para insertar un aviso rápidamente. Para obtener una lista completa de las plantillas dinámicas disponibles, haz clic en File > Settings en la barra de menú (o Android Studio > Preferences en macOS) y ve a Editor > Live Templates.

Nuevas plantillas de fragmentos y asistente de fragmentos

Hay un nuevo asistente de fragmento de Android y nuevas plantillas de fragmento disponibles cuando navegas a File > New > Fragment > Gallery o haces clic en Create new destination en el editor de navegación.

El asistente de galería de fragmentos.

El asistente de galería de fragmentos.

Problemas conocidos de Preview 4.0

En esta sección, se describen los problemas conocidos de Android Studio 4.0 Preview.

Botones faltantes de la barra de herramientas de ejecución, depuración y perfil

Si personalizaste el grupo de botones de acción Run/Debug (por ejemplo, al modificar las opciones de Appearance & Behavior > Menus and Toolbars en las ventanas Settings o Preferences), esos botones de acción quizá desaparezcan de la barra de herramientas después de reiniciar el IDE. Este es un problema conocido de la versión de IntelliJ en la que se basa Android Studio 4.0 (consulta el problema IDEA-228450).

Para resolverlo, revierte las personalizaciones que hayas realizado a esos botones de la siguiente manera:

  1. Selecciona File > Settings (o Android Studio > Preferences en macOS).
  2. A la izquierda de la ventana, navega a Appearance & Behavior > Menus and Toolbars.
  3. En la parte derecha de la ventana, navega a Main Toolbar > Toolbar Run Actions y selecciona Run/Debug.
  4. Cerca de la parte superior de la ventana, haz clic en Revert y selecciona Restore Run/Debug.
  5. Haz clic en OK. Ahora deberían aparecer los botones faltantes en la barra de herramientas.

Parches no disponibles para Canary 5

No hay parches disponibles de Android Studio 4.0 Canary 5 para versiones anteriores de Android Studio 4.0 Canary. Para instalar Android Studio 4.0 Canary 5, descárgalo desde la página de descargas de Android Studio.

Inspector de diseño en vivo y generador de perfiles en Canary 5

A partir de Android Studio 4.0 Canary 5, el Inspector de diseño en vivo y los generadores de perfiles no funcionan correctamente en Windows, lo cual provoca el siguiente mensaje de error:

    transfer error: couldn't create file: Read-only file system.
    

Para solucionar este problema, actualiza a Android Studio 4.0 Canary 7 o versiones posteriores.

Falta el repositorio Maven de Kotlin

Si usas Android Studio 4.0 Canary 4 o versiones anteriores, es posible que veas el siguiente mensaje de error:

Application build has failed with an error (Could not find org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25)
    

Para solucionar este problema, actualiza a Android Studio 4.0 Canary 5 o versiones posteriores.

Android Studio 3.6

En esta sección, se proporciona un resumen de las nuevas funciones y los cambios de Android Studio 3.6.

Nueva opción para optimizar el tiempo de sincronización de Gradle

En las versiones anteriores, Android Studio recuperaba la lista de todas las tareas de Gradle durante la sincronización de Gradle. Para proyectos grandes, la recuperación de la lista de tareas puede provocar tiempos de sincronización lentos.

Para mejorar el rendimiento de Gradle Sync, ve a File > Settings > Experimental y selecciona Do not build Gradle task list during Gradle sync.

Cuando habilitas esta opción, Android Studio omite compilar la lista de tareas durante la sincronización, lo cual permite que se complete más rápido la sincronización de Gradle y mejore la capacidad de respuesta de la IU. Ten en cuenta que, cuando el IDE omite compilar la lista de tareas, las listas de tareas en el panel de Gradle están vacías y el autocompletado del nombre de la tarea no funciona.

Adjunta fuentes de APK solo de Kotlin al generador de perfiles

Ahora es posible adjuntar fuentes de APK externas solo de Kotlin cuando generas perfiles y depuras los APK compilados previamente.

Sigue las instrucciones de la guía del usuario para adjuntar archivos Java (.java), pero selecciona archivos de origen de Kotlin (.kt).

Vista dividida en editores de diseño

Los editores de diseño, como Layout Editor y Navigation Editor, ahora proporcionan una vista Split que permite consultar las vistas Design y Code de una IU al mismo tiempo. Para habilitar la vista dividida, haz clic en el ícono Split ícono de vista dividida en la esquina superior derecha de la ventana del editor.

la vista dividida muestra las vistas de diseño y texto al mismo tiempo

Detección de pérdidas en Memory Profiler

Cuando se analiza un volcado de montón en Memory Profiler, ahora puedes filtrar los datos de perfiles que Android Studio cree que pueden indicar pérdidas de memoria para instancias Activity y Fragment en tu app.

Los tipos de datos que muestra el filtro incluyen los siguientes:

  • Instancias Activity que se destruyeron, pero a las que todavía se hace referencia.
  • Instancias Fragment que no tienen un FragmentManager válido, pero a las que aún se hace referencia.

En ciertas situaciones, como las que se incluyen a continuación, el filtro puede generar falsos positivos:

  • Se creó un Fragment, pero todavía no se usó.
  • Se almacena en caché un Fragment, pero no como parte de un FragmentTransaction.

Para usar esta función, primero debes capturar un volcado de montón o importar un archivo de volcado de montón en Android Studio. Para mostrar los fragmentos y las actividades que pueden tener pérdidas de memoria, selecciona la casilla de verificación Activity/Fragment Leaks en el panel de volcado de montón de Memory Profiler.

Generador de perfiles: detección de pérdidas de memoria

Filtrado de un volcado de montón para las pérdidas de memoria.

Apply Changes

Ahora puedes agregar una clase y luego implementar ese cambio de código a tu app en ejecución. Para ello, haz clic en Apply Code Changes Ícono de Apply Code Changes o en Apply Changes and Restart Activity Ícono de Apply Changes.

Para obtener más información sobre la diferencia entre estas dos acciones, consulta Apply Changes.

Importa un APK actualizado

Ya no es necesario crear un proyecto nuevo cuando el APK de tu proyecto se actualiza fuera del IDE. Android Studio detecta cambios en el APK y te brinda la opción de volver a importarlos.

Actualizaciones de NDK

Las siguientes actualizaciones admiten el desarrollo nativo (C/C++) en Android Studio.

Compatibilidad con Kotlin

Las siguientes funciones de NDK en Android Studio, anteriormente compatibles con Java, ahora también son compatibles con Kotlin:

  • Navega desde una declaración JNI hasta la función de implementación correspondiente en C/C++. Puedes ver esta asignación si te desplazas sobre el marcador del elemento C o C++ cerca del número de línea del archivo de código fuente administrado.
  • Crea automáticamente una función de implementación de stub para una declaración JNI. Primero define la declaración JNI y, luego, escribe "jni" o el nombre del método en el archivo C/C++ que quieres activar.

  • Las funciones de implementación nativas no utilizadas se destacan como advertencia en el código fuente. Las declaraciones JNI con implementaciones faltantes también se destacan como error.

  • Cuando renombras (refactorizas) una función de implementación nativa, se actualizan todas las declaraciones JNI correspondientes. Renombra una declaración JNI para actualizar la función de implementación nativa.

  • Se incluye comprobación de firma para implementaciones JNI vinculadas implícitamente.

Otras mejoras de JNI

  • Aspectos visuales

    • En las funciones de implementación de JNI, se muestran sugerencias de tipo para los parámetros y los valores resultantes.
    • Se pueden plegar los nombres de funciones alterados por JNI.

  • Ayuda de RegisterNatives

    • Autocompletado para el nombre de la declaración del método, los tipos de parámetros y el tipo de resultado

    • Posibilidad de renombrar la refactorización del nombre de declaración del método

    • Comprobación de firma para funciones JNI vinculadas

  • Más asistencia de la función JNI

    • Autocompletado, inspección, navegación y cambio de nombre de la refactorización para literales de strings en lo siguiente:
      • FindClass
      • GetMethodID y GetStaticMethodID
      • GetFieldID y GetStaticFieldID
    • Diferentes inspecciones para lo siguiente:
      • Call[Static]<type>Method
      • CallNonvirtual<type>Method
      • Get[Static]<type>Field
      • NewObject

Actualizaciones del complemento de Gradle para Android

Las siguientes actualizaciones estarán disponibles cuando uses la versión de vista previa más reciente del complemento de Gradle para Android.

Compatibilidad con el complemento de Maven Publish

El complemento de Gradle para Android 3.6-alpha07 y versiones posteriores incluye compatibilidad con el complemento de Gradle para Maven Publish, que te permite publicar artefactos de compilación en un repositorio de Maven de Apache. El complemento de Gradle para Android crea un componente para cada artefacto de variante de compilación en tu app o módulo de biblioteca que puedes usar para personalizar una publicación en un repositorio de Maven.

Los componentes que crea el complemento para Android dependen de si el módulo usa el complemento de la aplicación o la biblioteca, como se describe en la siguiente tabla.

Complemento de Gradle para Android Artefacto de publicación Nombre del componente
com.android.library AAR components.variant
com.android.application Un ZIP de APK y archivos de asignaciones ProGuard o R8 disponibles components.variant_apk
com.android.application Un Android App Bundle (AAB) components.variant_aab

En la siguiente muestra de código, se crea una publicación para las variantes de compilación de depuración y actualización de una biblioteca de AAR. Cada publicación aplica el componente de coincidencia y personaliza los atributos del POM generado, como las coordenadas de Maven.

// Because the components are created only during the afterEvaluate phase, you must
    // configure your publications using the afterEvaluate() lifecycle method.
    afterEvaluate {
        publishing {
            publications {
                // Creates a Maven publication called "release".
                release(MavenPublication) {
                    // Applies the component for the release build variant.
                    from components.release

                    // You can then customize attributes of the publication as shown below.
                    groupId = 'com.example.MyLibrary'
                    artifactId = 'final'
                    version = '1.0'
                }
                // Creates a Maven publication called “debug”.
                debug(MavenPublication) {
                    // Applies the component for the debug build variant.
                    from components.debug

                    groupId = 'com.example.MyLibrary'
                    artifactId = 'final-debug'
                    version = '1.0'
                }
            }
        }
    

Para crear una publicación que publique tu app como un archivo ZIP de APK o un Android App Bundle (AAB), usa el componente adecuado, como se muestra a continuación.

afterEvaluate {
        publishing {
            publications {
                paidRelease(MavenPublication) {
                  // The following applies a component to this publication
                  // which results in publishing an app bundle.
                  from components.paidRelease_aab

                  groupId = 'com.example.MyApp'
                  artifactId = 'paid-release-aab'
                  version = '1.0'
                }
                paidDebug(MavenPublication) {
                  // The following applies a component to this publication
                  // which results in publishing APKs in a ZIP file.
                  from components.paidDebug_apk

                  groupId = 'com.example.MyApp'
                  artifactId = 'paid-debug-apks'
                  version = '1.0'
                }
            }
        }
    

Después de crear publicaciones, el complemento de Maven Publish crea tareas de publicación que puedes usar para publicar tu artefacto en los repositorios que especifiques.

Nueva herramienta de empaquetado predeterminada

Cuando usas el complemento de Gradle para Android 3.6.0-alpha09 o versiones posteriores para compilar la versión de depuración de tu app, el complemento usa una herramienta de empaquetado nueva, llamada zipflinger, para compilar tu APK. Esta nueva herramienta debería proporcionar mejoras en la velocidad de compilación. Sin embargo, si tienes problemas, informa el error. También puedes volver a usar la herramienta de empaquetado anterior si incluyes lo siguiente en tu archivo gradle.properties:

android.useNewApkCreator=false
    

Opción de menú de refactorización para habilitar la compatibilidad con apps instantáneas

Ahora puedes habilitar instantáneamente tu módulo base en cualquier momento después de crear tu proyecto de app de la siguiente manera:

  1. Abre el panel Project seleccionando View > Tool Windows > Project en la barra de menú.
  2. Haz clic con el botón derecho en el módulo base, que suele llamarse "app", y selecciona Refactor > Enable Instant Apps Support.
  3. En el cuadro de diálogo que aparece, selecciona el módulo base del menú desplegable.
  4. Haz clic en OK.

Para obtener más información, lee la Descripción general de Google Play Instant.

Desofusca el código de bytes de clase y método en el Analizador de APK

Cuando se inspeccionan archivos DEX, el Analizador de APK ahora admite la desofuscación del código de bytes de clase y método. Para desofuscar el código de bytes, haz lo siguiente:

  1. Selecciona Build > Analyze APK en la barra de menú.
  2. En el cuadro de diálogo que aparece, navega hasta el APK que deseas inspeccionar y selecciónalo.
  3. Haz clic en Open.
  4. En el Analizador de APK, selecciona el archivo DEX que deseas inspeccionar.
  5. En el visor de archivos DEX, carga el archivo de asignaciones de ProGuard para el APK que estás analizando.
  6. Haz clic con el botón derecho en la clase o el método que deseas inspeccionar y selecciona Show bytecode.

Vinculación de vista

La vinculación de vista proporciona seguridad en el tiempo de compilación cuando se hace referencia a vistas en el código. Ahora puedes reemplazar findViewById() con la referencia de clase de vinculación generada automáticamente.

Para comenzar a usar la vinculación de vista, incluye lo siguiente en el archivo build.gradle de cada módulo:

android {
        viewBinding.enabled = true
    }
    

Para obtener más información, consulta la documentación sobre la vinculación de vista. Si tienes algún comentario o problema, informa el error.

Descargas del SDK reanudables

Cuando descargas herramientas y componentes de SDK con SDK Manager, Android Studio te permite reanudar las descargas interrumpidas (por ejemplo, debido a un problema de red) en lugar de reiniciar la descarga desde el principio. Esta mejora es especialmente útil para las descargas grandes, como Android Emulator o las imágenes del sistema, cuando la conexión a Internet no es confiable.

Además, si tienes una tarea de descarga de SDK ejecutándose en segundo plano, puedes pausar o reanudar la descarga mediante los controles de la barra de estado.

Una tarea de descarga en segundo plano en la barra de estado con controles nuevos que te permiten pausar o reanudar la descarga.

Una tarea de descarga en segundo plano en la barra de estado con controles nuevos que te permiten pausar o reanudar la descarga.

IntelliJ IDEA 2019.2

En la versión 2019.2, el IDE principal de Android Studio se actualizó con mejoras de IntelliJ IDEA, como la ventana de herramientas de servicios.

Para obtener más información sobre las mejoras de otras versiones de IntelliJ que se incluyen de forma acumulativa con la versión 2019.2, consulta las siguientes páginas:

Nueva ubicación para activar o desactivar el modo sin conexión de Gradle

Para habilitar o inhabilitar el modo sin conexión de Gradle, primero selecciona View > Tool Windows > Gradle en la barra de menú. Luego, en la parte superior de la ventana de Gradle, haz clic en Toggle Offline Mode Botón de Gradle sin conexión en el panel de Gradle..

Problemas conocidos de Preview 3.6

En esta sección, se describen los problemas conocidos en Android Studio 3.6 Preview.

Texto pequeño de la IU en el Sistema operativo Chrome

En el Sistema operativo Chrome, el texto puede parecer mucho más pequeño que en las versiones anteriores. Para solucionar este problema, haz lo siguiente:

  1. Haz clic en File > Settings (en macOS, Android Studio > Preferences) para abrir la ventana Settings.
  2. Ve a Appearance & Behavior > Appearance.
  3. Selecciona Use custom font.
  4. Aumenta el tamaño de la fuente.
  5. En la ventana Settings, navega a Editor > Font.
  6. Aumenta el tamaño de la fuente.
  7. Haz clic en OK.