Android Studio 3.0 (octubre de 2017)

Android Studio 3.0.0 es una actualización importante que incluye una variedad de funciones y mejoras nuevas.

Usuarios de macOS: Si actualizan una versión anterior de Android Studio, es posible que aparezca un diálogo de error de actualización con el mensaje "Some conflicts were found in the installation area". Ignoren el error y hagan clic en Cancel para reanudar la instalación.

3.0.1 (noviembre de 2017)

Esta es una actualización menor de Android Studio 3.0 que incluye correcciones de errores generales y mejoras de rendimiento.

Complemento de Android para Gradle 3.0.0

El nuevo complemento Gradle para Android incluye una variedad de mejoras y funciones nuevas, pero su objetivo principal es optimizar el rendimiento de compilación de los proyectos que tienen muchos módulos. Cuando uses el complemento nuevo con este tipo de proyectos, notarás lo siguiente:

  • Menor tiempo de configuración de compilación debido a la resolución de dependencias retrasadas
  • Resolución de dependencias compatibles con variantes solo para los proyectos y las variantes que compilas
  • Menor tiempo de compilación incremental cuando se aplican cambios simples en el código o los recursos

Nota: Estas mejoras requieren cambios significativos que interrumpen algunos de los comportamientos del complemento, de DSL y de las APIs. La actualización a la versión 3.0.0 puede requerir cambios en los archivos de compilación y los complementos de Gradle.

Esta actualización también incluye lo siguiente:

  • Compatibilidad con Android 8.0.
  • Compatibilidad con la compilación de APK independientes basados en recursos de idioma.
  • Compatibilidad con bibliotecas Java 8 y funciones de lenguaje Java 8 (sin el compilador Jack)
  • Compatibilidad con Android Test Support Library 1.0 (Android Test Utility y Android Test Orchestrator)
  • Aumento de las velocidades de compilación de ndk-build y CMake
  • Mejoras en la velocidad de sincronización de Gradle.
  • AAPT2 ahora está habilitado de forma predeterminada.
  • El uso de ndkCompile ahora es más restringido. En su lugar, debes comenzar a utilizar CMake o ndk-build para compilar código nativo que quieras empaquetar en tu APK. Si deseas obtener más información, consulta Cómo migrar desde ndkcompile

Para obtener más información sobre los cambios, consulta las notas de la versión del complemento de Android para Gradle.

Si tienes todo listo para realizar la actualización al nuevo complemento, consulta Cómo realizar la migración al complemento de Android para Gradle 3.0.0.

Compatibilidad con Kotlin

Como se anunció en Google I/O 2017, el lenguaje de programación de Kotlin ahora es compatible oficialmente con Android. Entonces, con esta actualización, Android Studio incluye compatibilidad con el lenguaje Kotlin para el desarrollo de Android.

Puedes incorporar Kotlin en tu proyecto si conviertes un archivo Java a Kotlin (haz clic en Code > Convert Java File to Kotlin File) o si creas un proyecto nuevo compatible con Kotlin mediante el asistente de proyecto nuevo.

Para comenzar, aprende a agregar Kotlin a tu proyecto.

Compatibilidad con funciones del lenguaje Java 8

Ahora, puedes aprovechar ciertas funciones del lenguaje Java 8 y usar bibliotecas compiladas con Java 8. Ya no se requiere Jack y, primero, debes inhabilitarlo para poder usar la compatibilidad mejorada con Java 8 que está integrada en la cadena de herramientas predeterminada.

Para actualizar tu proyecto a fin de que admita el nuevo conjunto de herramientas del lenguaje Java 8, actualiza Source Compatibility y Target Compatibility a 1.8 en el diálogo Project Structure (haz clic en File > Project Structure). Para obtener más información, consulta cómo usar las funciones del lenguaje Java 8.

Android Profiler

El nuevo Android Profiler reemplaza la herramienta Android Monitor y proporciona un nuevo conjunto de herramientas para medir el uso de la CPU, la memoria y la red de tu app en tiempo real. Puedes llevar a cabo un seguimiento de métodos basado en muestras para cronometrar la ejecución de tu código, capturar volcados de montón, ver asignaciones de memoria e inspeccionar la información de archivos transmitidos por red.

Para abrir, haz clic en View > Tool Windows > Android Profiler (o haz clic en Android Profiler en la barra de herramientas).

El cronograma del evento en la parte superior de la ventana muestra eventos táctiles, pulsaciones de teclas y cambios de actividad de modo que tengas más contexto que te permita comprender otros eventos de rendimiento en el cronograma.

Nota: La vista Logcat también se movió a una ventana independiente (antes estaba en Android Monitor, que se quitó).

Desde el cronograma de resumen de Android Profiler, haz clic en los cronogramas CPU, MEMORY o NETWORK para acceder a las herramientas correspondientes del generador de perfiles.

Generador de perfiles de CPU

El Generador de perfiles de CPU permite analizar el uso de subprocesos de CPU de tu app activando un registro de CPU instrumentado o de muestra. Después, es posible solucionar problemas de rendimiento de la CPU mediante una variedad de filtros y vistas de datos.

Para obtener más información, consulta la guía del Generador de perfiles de CPU.

Generador de perfiles de memoria

El Generador de perfiles de memoria te permite identificar fugas y saturación de memoria que pueden provocar saltos, bloqueos e incluso fallas de apps. Muestra un gráfico en tiempo real del uso de memoria de la app y te permite capturar un volcado de montón, forzar la recolección de elementos no utilizados y realizar el seguimiento de asignaciones de memoria.

Para obtener más información, consulta la guía del Generador de perfiles de memoria.

Generador de perfiles de red

El Generador de perfiles de red te permite controlar la actividad de red de tu app, inspeccionar la carga útil de cada una de tus solicitudes de red y establecer vínculos de regreso a las líneas de código que generen dichas solicitudes.

Para obtener más información, consulta la guía del Generador de perfiles de red.

Generación de perfiles y depuración de APK

Android Studio ahora permite generar perfiles de cualquier APK y depurarlo sin tener que compilarlo desde un proyecto de Android Studio, siempre y cuando el APK esté compilado para habilitar la depuración y tengas acceso a los símbolos de depuración y los archivos de origen.

Para comenzar, haz clic en Profile or debug APK en la pantalla de bienvenida de Android Studio. O bien, si ya tienes un proyecto abierto, haz clic en File > Profile or debug APK en la barra de menú. Con esto, se desempacan los archivos del APK, pero no se descompila el código. Por lo tanto, para agregar correctamente interrupciones y ver seguimientos de pila, debes adjuntar archivos de origen de Java y símbolos de depuración nativos.

Para obtener más información, consulta Cómo generar perfiles y depurar APK previamente compilados.

Explorador de archivos de dispositivos

El nuevo explorador de archivos del dispositivo te permite inspeccionar el sistema de archivos del dispositivo conectado y transferir archivos entre dicho dispositivo y la computadora. Esto reemplaza la herramienta de sistema de archivos disponible en DDMS.

Para abrir, haz clic en View > Tool Windows > Device File Explorer.

Para obtener más información, consulte la guía del explorador de archivos del dispositivo.

Compatibilidad con apps instantáneas

La nueva compatibilidad con Apps instantáneas Android te permite crear apps instantáneas en tu proyecto mediante dos nuevos tipos de módulos: los módulos "Instant App" y "Features" (se requiere que instales el SDK de desarrollo de apps instantáneas).

Android Studio también incluye una nueva acción de refactorización modular para ayudarte a agregar compatibilidad con apps instantáneas en un proyecto existente. Por ejemplo, si deseas refactorizar tu proyecto para colocar algunas clases en un módulo de funciones de una app instantánea, selecciona las clases en la ventana Project y haz clic en Refactor > Modularize. En el cuadro de diálogo que aparece, selecciona el módulo donde deben ir las clases y haz clic en OK.

Cuando todo esté listo para probar tu app instantánea, podrás compilar y ejecutar tu módulo Instant App en un dispositivo conectado especificando la URL de la app instantánea dentro de las opciones de inicio de configuración de ejecución: selecciona Run > Edit Configurations, elige el módulo Instant App y luego configura la URL en Launch Options.

Para obtener más información, consulta Apps instantáneas Android.

Módulos de Android Things

Las nuevas plantillas de Android Things en los asistentes "New Project" y "New Module" te ayudan a empezar a desarrollar para dispositivos IOT con Android.

Para obtener más información, consulta cómo crear un proyecto de Android Things.

Asistente de íconos adaptables

Image Asset Studio ahora es compatible con elementos de diseño vectorial y permite crear íconos de selector adaptables para Android 8.0 e íconos tradicionales (íconos "heredados") en dispositivos más antiguos.

Para comenzar, haz clic con el botón derecho en la carpeta res de tu proyecto y selecciona New > Image Asset. En la ventana Asset Studio, selecciona el tipo de ícono Launcher Icons (Adaptive and Legacy).

Nota: Debes establecer compileSdkVersion en 26 o más a fin de usar íconos de selector adaptables.

Para obtener más información, consulta la sección sobre íconos adaptables.

Compatibilidad con recursos de fuentes

Para admitir los nuevos recursos de fuentes en Android 8.0, Android Studio incluye un selector de recursos de fuentes que ayuda a agrupar las fuentes en tu app o configurar tu proyecto para descargar las fuentes en el dispositivo (cuando estén disponibles). El editor de diseño también permite obtener una vista previa de las fuentes de tu diseño.

Para probar las fuentes descargables, asegúrate de que tu dispositivo o emulador cuenten con los servicios de Google Play 11.2.63 o versiones posteriores. Para obtener más información, consulta la sección sobre fuentes descargables.

Asistente de indexación de aplicaciones de Firebase

Firebase Assistant se actualizó con un nuevo tutorial para probar la indexación de aplicaciones. Para abrir el asistente, selecciona Tools > Firebase. Luego, selecciona App Indexing > Test App Indexing.

El tutorial incluye nuevos botones para probar la indexación de contenido público y personal:

  • En el paso 2, haz clic en Preview search results para verificar que tus URL aparezcan en los resultados de la Búsqueda de Google.
  • En el paso 3, haz clic en Check for errors para verificar que los objetos indexables de tu app se hayan agregado al índice de contenido personal.

El Asistente de Android App Links se actualizó con las siguientes capacidades nuevas:

  • Se agregaron pruebas de URL para cada asignación de URL a fin de asegurarte de que los filtros de intent manejen URL reales.

    También puedes definir estas pruebas de URL de forma manual mediante la etiqueta <tools:validation>, que se describe a continuación.

  • Se creó un archivo de Vínculos de recursos digitales con la entrada del objeto apropiada para admitir Google Smart Lock y agregar la etiqueta asset_statements <meta-data> correspondiente a tu archivo de manifiesto.

Validador de URL de filtros de intent

Android Studio ahora admite una etiqueta especial en el archivo de manifiesto que te permite probar URLs de filtro de intent. Son las mismas etiquetas que App Links Assistant puede crear por ti.

Para declarar una URL de prueba de un filtro de intent, agrega un elemento <tools:validation> junto con el elemento <intent-filter> correspondiente. Por ejemplo:

      <activity ...>
          <intent-filter>
              ...
          </intent-filter>
          <tools:validation testUrl="https://www.example.com/recipe/1138" />
      </activity>
    
    

Asegúrate de incluir también xmlns:tools="http://schemas.android.com/tools" en la etiqueta <manifest>.

Si alguna de las URL de prueba no supera la definición del filtro de intent, aparecerá un error de lint. Este error no evita que compiles variantes de depuración, pero sí interrumpe tus compilaciones de versiones.

Editor de diseño

El editor de diseño se actualizó con una serie de mejoras, incluidas las siguientes:

  • Nuevo diseño de barra de herramientas e íconos.
  • Diseño actualizado en el árbol de componentes.
  • Inserciones mejoradas en la vista de arrastrar y soltar
  • Nuevo panel de errores debajo del editor, que muestra todos los problemas y las sugerencias para solucionarlos (si las hay)
  • Diversas mejoras en la IU para compilar con ConstraintLayout, entre ellas:
    • Nueva compatibilidad con la creación de barreras
    • Nueva compatibilidad con la creación de grupos: en la barra de herramientas, selecciona Guidelines > Add Group (requiere ConstraintLayout 1.1.0 beta 2 o versiones posteriores)
    • Nueva IU para crear cadenas: Selecciona varias vistas; luego, haz clic con el botón derecho y elige Chain

Inspector de diseño

El Inspector de diseño incluye mejoras para facilitar la depuración de problemas con los diseños de tu app, como la agrupación de propiedades en categorías comunes y una nueva funcionalidad de búsqueda en los paneles View Tree y Properties.

Analizador de APK

Ahora, puedes usar el analizador de APK desde la línea de comandos con la herramienta apkanalyzer.

El analizador de APK también se actualizó con las siguientes mejoras:

  • Para los APK compilados con ProGuard, puedes cargar archivos de asignación de ProGuard que agreguen capacidades al visor de DEX, que incluyen las siguientes:
    • Nodos en negrita a fin de indicar que no se deben eliminar los nodos cuando se reduce el código
    • Un botón para mostrar los nodos que se eliminaron durante el proceso de reducción
    • Un botón que restablece los nombres originales de los nodos en la vista de árbol que ProGuard ofuscó
  • El visor de DEX ahora muestra el impacto de tamaño estimado de cada paquete, clase y método.
  • Nuevas opciones de filtrado en la parte superior para mostrar y ocultar campos y métodos.
  • En la vista de árbol, los nodos que son referencias no definidas en el archivo DEX aparecen en cursiva.

Para obtener más información, consulta Cómo analizar tu compilación con el Analizador de APK.

Vista previa de D8, el compilador de DEX

Android Studio 3.0 incluye un nuevo compilador de DEX opcional llamado D8. Con el tiempo, reemplazará al compilador DX, pero puedes elegir usar el nuevo compilador D8 hoy mismo.

La compilación a DEX afecta directamente el tiempo de compilación de tu app, el tamaño del archivo .dex y el rendimiento del tiempo de ejecución. Además, cuando se compara el nuevo compilador D8 con el compilador DX actual, D8 compila más rápido, genera archivos .dex más pequeños y ofrece un rendimiento igual o mejor del tiempo de ejecución de la app.

Para probarlo, establece lo siguiente en el archivo gradle.properties de tu proyecto:

android.enableD8=true
    

Para obtener más información, consulta la entrada del blog sobre el compilador D8.

El repositorio de Maven de Google

Android Studio ahora usa el repositorio Maven de Google de forma predeterminada en lugar de depender del administrador de SDK de Android para obtener actualizaciones de la Biblioteca de compatibilidad de Android, los Servicios de Google Play, Firebase y otras dependencias. Esto hace que sea más fácil mantener tus bibliotecas actualizadas, especialmente cuando se utiliza un sistema de integración continua.

Todos los proyectos nuevos ahora incluyen el repositorio de Maven para Google forma predeterminada. Para actualizar un proyecto existente, agrega google() al bloque repositories del archivo build.gradle de nivel superior:

      allprojects {
          repositories {
              google()
          }
      }
    
    

Obtén más información sobre el repositorio de Maven de Google aquí.

Otros cambios

  • La depuración nativa con Android Studio ya no es compatible con Windows de 32 bits. Elegimos centrarnos en otras plataformas porque muy pocos desarrolladores están utilizando esta. Si usas Windows de 32 bits y tienes previsto depurar código nativo, debes seguir usando Android Studio 2.3.
  • Se actualizó el IDE base a IntelliJ 2017.1.2, que agrega una serie de funciones nuevas de 2016.3 y 2017.1, como la refactorización del lenguaje Java 8, las sugerencias de parámetros, el resaltado semántico, los puntos de interrupción que se pueden arrastrar, los resultados instantáneos en la búsqueda y mucho más.
  • Se agregaron muchas comprobaciones de lint nuevas.
  • Consulta también las últimas actualizaciones de Android Emulator.