En esta página, se enumeran las funciones y mejoras nuevas para cada versión importante de las versiones anteriores de Android Studio. Para ver las novedades de la versión más reciente, consulta las notas de la versión de Android Studio actuales.
Para conocer las novedades sobre las versiones, incluida una lista de las correcciones destacadas de cada versión preliminar, también puedes consultar las actualizaciones de las versiones. Si quieres obtener información sobre las novedades del complemento de Android para Gradle, consulta las notas de la versión.
Compatibilidad del complemento de Android para Gradle y Android Studio
El sistema de compilación de Android Studio se basa en Gradle, y el complemento de Android para Gradle incorpora varias funciones específicas para compilar apps para Android. En la siguiente tabla, se muestra qué versión del complemento de Android para Gradle se requiere en cada versión de Android Studio.
Versión de Android Studio | Versión de complemento requerida |
---|---|
Flamingo | 2022.2.1 | 3.2-8.0 |
Electric Eel | 2022.1.1 | 3.2-7.4 |
Dolphin | 2021.3.1 | 3.2-7.3 |
Chipmunk | 2021.2.1 | 3.2-7.2 |
Bumblebee | 2021.1.1 | 3.2-7.1 |
Arctic Fox | 2020.3.1 | 3.1-7.0 |
A fin de conocer las novedades del complemento de Android para Gradle, consulta las notas de la versión del complemento de Android para Gradle.
Android Studio Chipmunk | 2021.2.1
Compatibilidad para crear tu app con Jetpack Compose
Vista previa de animación que admite animatedVisibility
Android Studio Chipmunk admite la API de animatedVisibility
en la vista previa de Animación. Para usar esta vista previa con animatedVisibility
, usa Compose 1.1.0 o una versión posterior. Para obtener más información sobre la vista previa de Animación, consulta Animaciones.
Compatibilidad con la implementación de vistas previas desde los módulos de biblioteca
Las vistas previas te permiten ver tu IU en Android Studio sin tener que ejecutar la app en un dispositivo físico. En Android Studio Chipmunk, puedes implementar una @Preview
específica en un emulador o dispositivo físico desde los módulos de biblioteca. Si quieres obtener más información, consulta el artículo para implementar una vista previa.
Compatibilidad para la generación de perfiles de tu app
Cómo detectar bloqueos en Android 12 y versiones posteriores
En el caso de los dispositivos que ejecutan Android 12 o versiones posteriores, se muestra un seguimiento capturado en el segmento Janky frames, en el panel Display del Generador de perfiles de CPU.
Para detectar bloqueos, haz lo siguiente:
- Inicia la app desde el dispositivo o emulador de desarrollo.
En Android Studio, selecciona View > Tool Windows > Profiler o haz clic en el botón Profile
de la barra de herramientas.
Si aparece el diálogo Select Deployment Target, elige el dispositivo en el que quieres implementar tu app para la generación de perfiles. Si conectaste un dispositivo mediante USB, pero no lo ves en la lista, asegúrate de haber habilitado la depuración por USB.
Haz clic en cualquier parte del cronograma CPU para abrir el Generador de perfiles de CPU.
Deberías ver el segmento Janky frames en Display. De forma predeterminada, el generador de perfiles solo muestra fotogramas con bloqueos como candidatos para la investigación. En cada fotograma con bloqueos, la parte roja destaca la duración del fotograma después de su plazo de renderización.
Una vez que encuentres un fotograma con bloqueos, haz clic en él. También puedes presionar M para ajustar el zoom y enfocar el fotograma seleccionado. Los eventos relevantes se destacarán en los subprocesos principales: RenderThread y GPU completion.
De manera opcional, puedes ver todos los fotogramas o un desglose del tiempo de renderización si activas o desactivas las casillas de verificación All Frames y Lifecycle, respectivamente.
Para obtener más información, consulta Detección de bloqueo de IU.
Actualizaciones de parches
A continuación, se muestra una lista de las versiones de parches en Android Studio Chipmunk.
Android Studio Chipmunk | Parche 2 2021.2.1 (agosto de 2022)
Esta actualización menor incluye las siguientes actualizaciones y correcciones de errores:
Compatibilidad con la plataforma Android
Con el Parche Chipmunk 2 de Android Studio y Android Gradle 7.2.2, puedes compilar con las APIs de Android 13 configurando compileSdk=33
. La versión mínima del SDK compatible más alta es 32. minSdk = 33
no es compatible hasta el complemento de Android para Gradle 7.3.0-beta05.
Errores corregidos | ||||||||
---|---|---|---|---|---|---|---|---|
Depurador C++ |
|
|||||||
Herramientas de diseño |
|
|||||||
Dexer (D8) |
|
|||||||
Gradle |
|
|||||||
Importación/sincronización |
|
|||||||
Reductor (R8) |
|
Android Studio Chipmunk | Parche 1 2021.2.1 (mayo de 2022)
Esta actualización menor incluye las siguientes correcciones de errores:
Errores corregidos | |||
---|---|---|---|
Dexer (D8) |
|
||
IntelliJ |
|
||
Ejecutar |
|
||
Reductor (R8) |
|
Android Studio Bumblebee | 2021.1.1
Android Studio Bumblebee es una actualización importante que incluye las siguientes funciones y mejoras.
Vista previa interactiva de Compose habilitada de forma predeterminada
A partir de Android Studio Bumblebee, la función de vista previa interactiva está habilitada de forma predeterminada. Permite interactuar con una vista previa tal como funcionaría en un dispositivo. Además, está aislada de otra vista previa en un entorno de zona de pruebas, en el que puedes hacer clic en elementos y realizar entradas del usuario en la vista previa. Es una forma rápida de probar distintos estados y gestos de elementos componibles, como una casilla de verificación marcada o vacía.
El modo interactivo de la vista previa se ejecuta directamente en Android Studio sin la ejecución de un emulador, lo que genera algunas limitaciones:
- No hay acceso a la red.
- No hay acceso a archivos.
- Es posible que algunas API de Context no estén disponibles por completo.
Vista previa de elementos de diseño vectorial animado (AVD)
La herramienta de elementos de diseño vectorial animado ofrece la capacidad de obtener una vista previa de los recursos animados de elementos de diseño. Esta herramienta te permite obtener una vista previa de los recursos <animation-list>
, <animated-vector>
y <animated-selector>
en Android Studio, y te permite definir mejor tus animaciones personalizadas.
Actualización del selector de dispositivos para las herramientas de diseño
Con el objetivo de simplificar el diseño de apps para diferentes dispositivos Android, actualizamos el selector de dispositivos en diferentes ventanas de herramientas de diseño, como la del editor de diseño y la de validación de diseño, con dispositivos de referencia que reflejan tamaños populares de cada factor de forma de los dispositivos. Desde teléfonos hasta tablets, dispositivos para Wear y Android TV, ahora es más fácil obtener una vista previa del diseño, validarlo o editarlo en tamaños de pantalla que representan mejor los dispositivos más populares del mundo real.
Ejecución de pruebas de KMP
Puedes ejecutar pruebas para proyectos multiplataforma de Kotlin (KMP) desde Android Studio Bumblebee.
Para garantizar que tus pruebas se ejecuten correctamente desde Android Studio, debes cumplir con los siguientes requisitos:
- AGP 7.0.0-alpha08 o una versión posterior
- Gradle 6.8.2 o una versión posterior
- Complemento de Kotlin 1.4.30 o una versión posterior
Clases R no transitivas activadas de forma predeterminada
Las clases R no transitivas ahora están activadas de forma predeterminada. Puedes usar clases R no transitivas con el complemento de Android para Gradle a fin de realizar compilaciones más rápidas para apps con varios módulos. Esto ayuda a evitar la duplicación de recursos, ya que garantiza que la clase R de cada módulo solo contenga referencias a sus propios recursos, sin extraer referencias de sus dependencias. Esto genera compilaciones más actualizadas y los beneficios correspondientes de evitar compilaciones.
Si deseas obtener ayuda para usar esta función, ve a Refactor > Migrate to Non-Transitive R Classes...
Actualización de compatibilidad con Apple Silicon
Para aquellos que usan macOS en el hardware de Apple Silicon (arm64), Android Studio Arctic Fox y Android Emulator son compatibles con esta nueva arquitectura desde el año pasado. Sin embargo, en esta versión, actualizamos las herramientas de la plataforma del SDK de Android v32.0.0 (que incluye adb y fastboot) y v32.1.0 (que incluye aapt) de modo que resulten objetos binarios universales y que tus herramientas para desarrolladores de Android ya no necesiten el traductor binario de Rosetta para ejecutarse. Consulta las notas de la versión de las herramientas de la plataforma del SDK.
Novedades del Inspector de diseño
Cómo capturar instantáneas de jerarquía de diseño
El Inspector de diseño ahora te permite guardar instantáneas de la jerarquía de diseño de tu app en ejecución de modo que puedas compartirlas fácilmente con otras personas o consultarlas más adelante.
Las instantáneas capturan los datos que en general verías cuando usas el Inspector de diseño, lo que incluye una renderización 3D detallada del diseño; el árbol de componentes de la vista, de Compose o de un diseño híbrido; y atributos detallados de cada componente de la IU. Para guardar una instantánea, haz lo siguiente:
- Implementa tu app en un dispositivo que ejecute el nivel de API 23 o uno posterior.
- Abre el Inspector de diseño seleccionando View > Tool Windows > Layout Inspector.
- El Inspector de diseño debería conectarse automáticamente al proceso de tu app. De lo contrario, selecciona el proceso de la app en el menú desplegable.
- Cuando quieras capturar una instantánea, haz clic en Export snapshot
en la barra de herramientas del Inspector de diseño.
- En el cuadro de diálogo del sistema que aparece, especifica el nombre con el que quieres guardar la instantánea y su ubicación. Asegúrate de guardar el archivo con una extensión
*.li
.
Luego, para cargar una instantánea del Inspector de diseño, selecciona File > Open en la barra de menú principal y abre un archivo *.li
.
Compatibilidad con la inspección de semántica de Compose
En Compose, Semantics describe la IU de una manera alternativa que pueden comprender los servicios de accesibilidad y el framework de prueba. En Android Studio Bumblebee, ahora puedes usar el Inspector de diseño a fin de inspeccionar información semántica en tus diseños de Compose.
Cuando selecciones un nodo de Compose, usa la ventana Attributes para verificar si declara información semántica directamente, si combina semántica de sus elementos secundarios, o si realiza ambas. Para identificar en menos tiempo qué nodos incluyen semántica, ya sea declarada o combinada, selecciona el menú desplegable View options en la ventana Component Tree y selecciona Highlight Semantics Layers. Esto destaca solo los nodos del árbol que incluyen semántica, y puedes usar el teclado para navegar entre ellos con rapidez.
Cómo evitar que se reinicie la actividad
Si conectas el Inspector de diseño a una app en ejecución en versiones anteriores de Android Studio, la actividad de tu app podría reiniciarse. Esto se requiere a fin de establecer una marca de dispositivo que permita inspeccionar los diseños de tu app.
En Android Studio Bumblebee, puedes evitar que se reinicie la actividad cuando conectas el Inspector de diseño configurando esta marca con anticipación mediante uno de los siguientes pasos:
Habilita una opción de configuración de ejecución
- Selecciona Run > Edit Configurations en la barra de menú principal. Aparecerá el cuadro de diálogo Run/Debug Configurations.
- Navega hasta la configuración de ejecución que deseas usar.
- En la sección Layout Inspector options, marca la casilla junto a Connect to Layout Inspector without restarting activity.
- Usa la configuración de ejecución la próxima vez que quieras inspeccionar tu app mediante el Inspector de diseño.
Establece la marca desde la línea de comandos:
- Abre una ventana de terminal en la máquina que está conectada al dispositivo.
- Para configurar la marca del dispositivo de tu app, usa el siguiente comando:
adb shell settings put global debug_view_attributes_application_package <my_package_name>
- Implementa tu app en el dispositivo y conecta el Inspector de diseño. Android Studio comprobará si la marca está configurada y evitará reiniciar la actividad si es posible.
Cómo documentar las instantáneas del Inspector de diseño
Ahora puedes capturar instantáneas de la jerarquía de diseño de tu app a fin de guardarlas, compartirlas o inspeccionarlas más tarde. Las instantáneas capturan los datos que en general verías cuando usas el Inspector de diseño, lo que incluye una renderización 3D detallada del diseño; el árbol de componentes de la vista, de Compose o de un diseño híbrido; y atributos detallados de cada componente de la IU. Cuando inspecciones el diseño de una app en ejecución, haz clic en Export snapshot desde la barra de herramientas del Inspector de diseño y guarda la instantánea con una extensión
*.li
. Luego, para cargar una instantánea del Inspector de diseño, selecciona File > Open en la barra de menú principal y abre un archivo *.li
. La instantánea aparecerá en una pestaña en la ventana del editor de modo que puedas compararla con facilidad con la app en ejecución.
Novedades de la inspección de apps
En Android Studio Bumblebee, hay nuevas herramientas y funcionalidades en la ventana App Inspection. Para abrir App Inspector, selecciona View > Tool Windows > App Inspection en la barra de menú principal.
Inspector de red
El Generador de perfiles de red en la ventana de herramientas Profilers ahora se movió a la ventana de herramientas App Inspection. Si ya usaste el Generador de perfiles de red, seguirán disponibles las mismas funciones y los mismos datos enriquecidos de tráfico de red. Solo debes implementar tu app en un dispositivo que ejecute el nivel de API 26 o uno posterior y abrir la pestaña App Inspector > Network Inspector.
Cómo inspeccionar trabajos, alarmas y bloqueos de activación
El Inspector de tareas en segundo plano ahora te permite inspeccionar los trabajos, las alarmas y los bloqueos de activación de tu app, además de la compatibilidad existente con la inspección de trabajadores. Cada tipo de tarea asíncrona ahora aparece debajo del encabezado adecuado en la pestaña del inspector, lo que te permite supervisar con facilidad su estado y progreso. Al igual que con los trabajadores, puedes seleccionar un trabajo, una alarma o un bloqueo de activación a fin de inspeccionar su información detallada en el panel Task Details.
Debido a que los trabajadores usan trabajos y bloqueos de activación de forma interna, las tareas que programan los trabajadores aparecen como elementos secundarios de cada trabajador. Ten en cuenta que solo puedes ver los trabajadores en Graph mode.
Depuración inalámbrica
Android Studio Bumblebee admite la función de depuración inalámbrica en dispositivos con Android 11 y versiones posteriores. Vincula e implementa tu app desde Android Studio a través de la conexión Wi-Fi sin usar un cable USB ni administrar conexiones de Android Debug Bridge (adb) mediante la línea de comandos. Para ello, navega hasta la opción Pair devices using Wi-Fi en el menú de selección de dispositivos y, luego, elige un código QR o un código PIN de vinculación. Luego, en tu dispositivo Android 11 y versiones posteriores, en Opciones para desarrolladores, busca la pantalla Depuración inalámbrica e inicializa y conecta una sesión de adb de forma inalámbrica con Android Studio. Obtén más información sobre la configuración de la depuración inalámbrica en Cómo conectarse a un dispositivo mediante Wi-Fi (Android 11 y versiones posteriores).
Ejecutor de pruebas de Gradle unificado
El complemento de Android para Gradle 7.1.0 y Android Studio Bumblebee y versiones posteriores usan la propia implementación de Gradle del ejecutor de pruebas instrumentado de Android para ejecutar pruebas instrumentadas. Si usas el mismo ejecutor de pruebas, es probable que los resultados sean coherentes, ya sea que lo ejecutes con AGP desde la línea de comandos, como en un servidor de integración continua, o desde Android Studio.
En las versiones anteriores de Android Studio, se usa el ejecutor de pruebas instrumentadas de Android para IntelliJ en lugar del ejecutor de pruebas instrumentadas de Android para Gradle. Por lo tanto, si no usas la versión más reciente de Android Studio, dependiendo de si ejecutas tus pruebas desde Android Studio o desde la línea de comandos con el complemento de Gradle, es posible que veas resultados de pruebas diferentes, como pruebas que tienen resultados satisfactorios con un ejecutor y negativos con otro.
Si ya guardaste configuraciones de pruebas de instrumentación en tu proyecto, usarán Gradle para ejecutar pruebas en tu dispositivo conectado. Puedes crear una nueva configuración de prueba de instrumentación mediante la acción de margen junto a la clase o el método de prueba, como se muestra a continuación.
Cuando ejecutas tus pruebas de instrumentación, puedes confirmar si Android Studio usa el ejecutor de pruebas de Gradle inspeccionando el resultado de la prueba en el resultado de la tarea de matriz de pruebas de Gradle. Si bien estamos mejorando esta función con cada versión de Android Studio, hay algunos problemas conocidos. Si tienes problemas, reporta un error. También puedes inhabilitar la canalización de pruebas nuevas para volver al comportamiento anterior.
Android Emulator ahora se ejecuta directamente en Android Studio de forma predeterminada
Android Emulator se ejecuta directamente en Android Studio de forma predeterminada. De esta manera, podrás conservar el espacio de la pantalla, navegar rápidamente entre el emulador y la ventana del editor con teclas de acceso rápido, y organizar el flujo de trabajo del IDE y del emulador en una sola ventana de aplicación.
Cuando se esté ejecutando el emulador, tendrás acceso a acciones comunes del emulador, como la rotación, y opciones de control extendidas, como la reproducción de navegación. Para ejecutar el emulador en una ventana separada, ve a File > Settings > Tools > Emulator (Android Studio > Preferences > Tools > Emulator en macOS) y anula la selección de Launch in a tool window.
Inhabilita la nueva canalización de prueba
De forma predeterminada, Android Studio Bumblebee usa Gradle para ejecutar sus pruebas de instrumentación. Si tienes problemas, puedes inhabilitar este comportamiento de la siguiente manera:
- Selecciona File > Settings > Build, Execution, Deployment > Testing (o Android Studio > Preferences > Build, Execution, Deployment > Testing en macOS).
- Desmarca la casilla junto a Run Android instrumented tests using Gradle y haz clic en OK.
También puedes volver a comportamientos anteriores mediante una de las siguientes opciones:
- Cuando ejecutes tareas de Gradle desde la línea de comandos, usa el siguiente parámetro de línea de comandos:
-Pandroid.experimental.androidTest.useUnifiedTestPlatform=false
- Agrega el siguiente parámetro al archivo
gradle.properties
de tu proyecto:android.experimental.androidTest.useUnifiedTestPlatform=false
Para ayudar a resolver problemas que puedas tener, informa un error.
Nuevo Administrador de dispositivos
El Administrador de dispositivos es un reemplazo del Administrador de AVD, ya sea desde la pantalla de bienvenida de Android Studio o después de abrir un proyecto. El Administrador de dispositivos presenta algunas funciones nuevas que hacen que sea más fácil crear y administrar todos tus dispositivos de prueba locales. Algunas de estas funciones son las siguientes:
- Una IU más flexible que admite mostrarlo conectado al IDE, flotando o en una ventana independiente, como sucede con otras ventanas de herramientas de Android Studio (de esta manera, podrás acceder con mayor facilidad a tus dispositivos sin obstruir otras ventanas del IDE)
- La pestaña Virtual, que te permite crear, administrar e implementar dispositivos virtuales, ver información detallada de cada dispositivo de un vistazo e inspeccionar rápidamente el dispositivo en el explorador de archivos de dispositivos con solo un clic
- La pestaña Physical, que te permite vincular con rapidez un dispositivo nuevo mediante la conexión Wi-Fi de ADB y ver información detallada de cada dispositivo físico de un vistazo (también puedes inspeccionar en menos tiempo el sistema de archivos de cada dispositivo usando el explorador de archivos de dispositivos con solo un clic)
Para abrir el Administrador de dispositivos nuevo, realiza una de las siguientes acciones:
- En la pantalla de bienvenida de Android Studio, selecciona More Actions > Virtual Device Manager.
- Después de abrir un proyecto, selecciona View > Tool Windows > Device Manager en la barra de menú principal.
Detección de bloqueos de IU
Cuando generas perfiles de tu app con dispositivos que ejecutan Android 11 (nivel de API 30) o versiones posteriores, el Generador de perfiles de CPU ahora muestra un nuevo grupo de segmentos que ilustran las etapas de cada fotograma en Frame Lifecycle: Application, Wait for GPU, Composition y Frames on display. Cada segmento etiqueta los fotogramas con un número de fotograma y codifica con color el rectángulo de modo que puedas visualizar fácilmente la posición de un fotograma particular en su ciclo de vida, junto con guías que puedes activar o desactivar para comparar eventos de Vsync. Puedes usar estos datos a fin de comprender dónde podría ocurrir el bloqueo en tu app, así como investigar las causas raíz. En el panel Analysis, ahora hay una pestaña Frames, que convenientemente resume la información de procesamiento de todos los fotogramas. Para obtener más información, consulta Detección de bloqueo de IU.
Compatibilidad con la generación de perfiles de apps que admiten perfiles
A la hora de generar perfiles de tu app, es importante generar datos precisos con la versión de la app que se parezca más a la que instalarán los usuarios. Para hacerlo, ahora puedes incluir la propiedad <profileable>
en el manifiesto de tu app a fin de generar perfiles de apps que no sean depurables, como se muestra en el siguiente código.
<profileable android:shell="true"/>
Profileable es una configuración de manifiesto que se introdujo en Android 10 y está disponible para las tareas de generación de perfiles de CPU y memoria. Usar la marca de generación de perfiles en lugar de la marca depurable tiene la ventaja clave de generar una sobrecarga menor para la medición de rendimiento. Sin embargo, algunas funciones de generación de perfiles no están disponibles para las compilaciones con perfiles, como el cronograma de eventos, la creación de perfiles de CPU iniciada por API, los volcados de montón o los registros de ubicaciones en vivo. Para obtener más información, consulta Aplicaciones perfilables.
Contrae fotogramas de pila de llamadas
Ahora puedes contraer fotogramas que son irrelevantes para tu investigación cuando inspeccionas un registro de muestra de pila de llamadas en la ventana de herramientas Profilers. Las pilas de llamadas son útiles para comprender qué parte del código se ejecutó y el motivo de la invocación. Sin embargo, la pila de llamadas para un programa Java/Kotlin suele incluir no solo código Java/Kotlin, sino también fotogramas de código nativo que pueden ser molestos. Si deseas obtener más información para definir mejor la vista de pila de llamadas, consulta Cómo inspeccionar fotogramas de pila de llamadas.
Actualizaciones de parches
A continuación, se incluye una lista de las versiones de parche en Android Studio Bumblebee.
Android Studio Bumblebee | Parche 3 2021.1.1 (abril de 2022)
Esta actualización menor incluye las siguientes correcciones de errores:
- Complemento de Android para Gradle
- Problemas de clases duplicados informados por R8
- Variantes de compilación
versionNameSuffix
ya no funciona si el nombre de la versión de la variante se configura mediante la nueva API de onVariants.
- Vista previa de Compose
- Se realizaron correcciones de errores relacionadas con el rendimiento y la estabilidad.
- Se resolvieron bloqueos que se producían ocasionalmente cuando se usaba la función de edición en vivo de Literals.
- Inspector de red
- El nuevo inspector de red falla después de la actualización de Bumblebee.
- Recibo este error constantemente cuando el depurador está conectado en la versión más reciente de Android Studio.
TrackedHttpURLConnection.getHeaderField
falla conNullPointerException
Android Studio Bumblebee | Parche 2 2021.1.1 (febrero de 2022)
Esta actualización menor incluye las siguientes correcciones de errores:
- Compilación de C++
- ModelCache.safeGet(androidProjectResult.androidProject::getNdkVersion, "") no debe ser nulo
- Editor de código
- Error en las plantillas dinámicas de Android Studio: la expresión className() no resuelve el nombre de clase.
- D8/R8
- java.lang.NoSuchMethodError: Sin método estático $jacocoInit.
- Se interrumpió la cobertura de la prueba de Android debido a un error de Mockito.
- Se necesita una solución alternativa para la implementación de CAS dañada en la API nivel 31.
- No se admiten las clases selladas.
- NullPointerException al habilitar la combinación de clases horizontales en Chrome.
- AbstractMethodError después de combinar métodos virtuales.
- No se pudieron verificar los marcos de pila debido a que el tipo de init de la clase es incorrecto
- La entrada de archivo dex usa un registro que no está definido.
- StringBuilderOptimizerAnalysisTest falla en las ramas de la versión.
- No determinismo en R8.
- Implementación
- La ejecución del proyecto de una aplicación del propietario de dispositivo falla, y se muestra el mensaje de error "No se pudo finalizar el proceso existente para".
- Herramientas de diseño
- Las vistas previas de Compose no encuentran recursos de otros módulos cuando están habilitadas las clases R no transitivas.
- Studio falla en la compilación.
- Emulador incorporado
- Se realizaron varias mejoras en el rendimiento y la estabilidad.
- Importación/sincronización
- Se produjo un error de IDE al iniciar Bumblebee: El archivo de compilación de la ficha de salida no está disponible para el tipo de salida APK en IdeBuildTasksAndOutputInformationImp.
- IntelliJ
- Las variables de entorno no se obtienen cuando se lanzan desde el dock de Mac OS X Monterey.
- Jetpack (androidx) > Navigation
- Se actualizó SafeArgs para que se compile en el AGP estable más reciente.
- Ventanas de herramientas
- No se puede ejecutar el Administrador de dispositivo Android.
- El Inspector de red de BumbleBee no muestra la respuesta de la API en un formato legible.
Android Studio Bumblebee | Parche 1 2021.1.1 (febrero de 2022)
Esta actualización menor incluye las siguientes correcciones de errores:
- Emulador
- No se puede establecer una conexión con el emulador incorporado después de actualizar a Bumblebee (Mac M1).
- IntelliJ
- Las variables de entorno no se obtienen cuando se lanzan desde el dock de Mac OS X Monterey.
Para obtener más información, consulta la entrada de blog del Parche 1 de Android Studio Bumblebee.
Android Studio Arctic Fox | 2020.3.1
Android Studio Arctic Fox es una actualización importante que incluye las siguientes funciones y mejoras.
Android Studio Arctic Fox | Parche 4 2020.3.1 (diciembre de 2021)
Esta actualización menor incluye las siguientes correcciones de errores:
- Complemento de Android para Gradle
- La configuración de un
Provider
paraVariantOutput.verison
puede fallar con la caché de configuración. - No se actualizó
gradeResValues.xml
cuando se firmó la versión.
- La configuración de un
- D8/R8
- Se arroja
java.lang.ClassCastException
en el constructor de la clase, en la compilación reducida por R8. - No se puede acceder al ajuste de tipo durante la fusión de DEX.
java.lang.VerifyError
: No se pudo verificar el verificador porque no se puede acceder al campo de la instancia desde el objeto de tipoReference.java.lang.Object
.
- Se arroja
- Lint
- Se inhabilitó la comprobación de lint
MediaCapabilities
. - Lint informa un error falso positivo (que admite creación de instancia) cuando
shrinkResources
está habilitado.
- Se inhabilitó la comprobación de lint
- Plantillas
- La opción
Importar Módulo está inhabilitada.
- La opción
Para obtener más información, consulta la entrada de blog del Parche 4 2020.3.1.
Android Studio Arctic Fox | Parche 3 2020.3.1 (octubre de 2021)
Esta actualización menor incluye las siguientes correcciones de errores:
- Complemento de Android para Gradle
- El complemento independiente de lint no controla la dependencia
gradleApi()
de forma correcta. - La compilación de JPS se activaba mientras la compilación de Gradle se ejecutaba fuera de Studio.
- Habilitar tanto KSP como Kapt en un proyecto con ambos procesadores que generaban fuentes rompía BundleLibraryClassesInputs.
BundleLibraryClassesInputs
- El complemento independiente de lint no controla la dependencia
- Editor de C++
- La IU se bloquea debido a un largo cálculo de
JniReferencesSearch
en segundo plano.
- La IU se bloquea debido a un largo cálculo de
- Inspector de bases de datos
- No se podían guardar bases de datos.
- No se podían exportar datos usando la Inspección de apps o el Inspector de bases de datos con espacio en blanco en la ruta.
- Dexer (D8)
- Las lambdas de Java causaban un comportamiento inesperado cuando se creaban subclases de subclases.
- Reductor (R8)
- Se producía un error de
Cannot constrain type
durante la reducción de r8. - Se generaba un problema al ejecutar R8 3.0.69 (de AGP 7.0.2) y 3.0.72.
- Se producía un error de
Para obtener más información, consulta la entrada de blog del parche 3 2020.3.1.
Android Studio Arctic Fox | Parche 2 2020.3.1 (septiembre de 2021)
Esta actualización menor incluye las siguientes correcciones de errores:
- Complemento de Android para Gradle
- La sincronización de Gradle se lanzó 10 veces en la actualización de AS Arctic Fox Canary 7 a Canary 8
- Expansión de sintaxis y compilaciones reproducibles
- Compilación de C++
- El complemento de Android para Gradle 7.0.0 no incluye jniLibs en el APK si se usa el cierre de tasks.whenTaskAdded
- Edición
- MergedManifestRefreshListener se bloquea en un bucle infinito en Arctic Fox
- Lint
- La "comprobación de lint para comprobaciones de lint" no se ejecuta
- Reductor (R8)
- ClassNotFoundException cuando se ejecutó la compilación con R8 en AGP7
Para obtener más información, consulta la entrada de blog del parche 2 de 2020.3.1.
Android Studio Arctic Fox | Parche 1 2020.3.1 (agosto de 2021)
Esta actualización incluye soluciones para los siguientes problemas:
- Complemento de Android para Gradle
- TypedefRemover usa ASM5 y no es compatible con fuentes de JDK 11 que requieren ASM7
- No se pueden usar algunos bloques de DSL nuevos de Groovy DSL en AGP 7.0.0
- La versión estable de AGP 7.0.0 genera una ExternalApiUsageException en libraryVariants.all{applicationId}
- Depurador C++
- Error de AS Arctic Fox durante el inicio de la sesión de depuración nativa en Mac M1, "Se encontró una configuración de LLDB dañada"
- Resource Manager
- (Windows) Nuevo -> Elemento vectorial -> picture.svg: Carácter "menos" no válido en el xml generado
- Reductor (R8)
- NPE en BridgeHoisting
- Después de la actualización a 7.0.0, R8 falla y se muestra el error "Uso inesperado en el método después de la intercalación".
Para obtener más información, consulta la entrada de blog del parche 1 2020.3.1.
Numeración actualizada de la versión
Numeración actualizada de las versiones de Android Studio
Cambiamos el sistema de numeración de las versiones de Android Studio a fin de que se alinee más con IntelliJ IDEA, el IDE en el que se basa Android Studio.
En el sistema de numeración anterior, esta versión se habría numerado como Android Studio 4.3 o versión 4.3.0.1. Con el nuevo sistema de numeración, ahora es Android Studio - Arctic Fox | 2020.3.1 o versión 2020.3.1.
Versión de IntelliJ | Nombre anterior | Anterior: Sistema de números | Nuevo: Sistema de años | Nombre nuevo de la versión |
---|---|---|---|---|
2020.3 | 4.3 | 4.3.0 | 2020.3.1 | Arctic Fox | 2020.3.1 |
En el futuro, el número de versión de Android Studio se determinará de la siguiente manera:
<Year of IntelliJ Version>.<IntelliJ major version>.<Studio major version>.<Studio minor/patch version>
- Los primeros dos grupos de números representan la versión de la plataforma IntelliJ en la que se basa la versión de Android Studio en cuestión. En este caso, se trata de la versión 2020.3.
- El tercer grupo de números representa la versión principal de Studio, que comienza en 1 y se incrementa en una unidad con cada versión principal que se anuncia.
- El cuarto grupo de números representa la versión de Studio secundaria o de parche, que comienza en 1 y se incrementa en una unidad con cada versión secundaria que se anuncia.
- También se le dará un nombre de versión a cada versión principal, el que corresponderá al nombre de un animal, cuya primera letra irá desde la A hasta la Z conforme se anuncien versiones nuevas. Esta versión se llama Arctic Fox.
Numeración actualizada de las versiones del complemento de Android para Gradle
Cambiamos la numeración de las versiones del complemento de Android para Gradle (AGP) a fin de que coincida mejor con la herramienta de compilación subyacente de Gradle. Por lo tanto, la versión posterior a AGP 4.2 será AGP 7.0.
Para obtener más información, consulta Cambios en el control de versiones en las notas de la versión de AGP.
Complemento de Android para Gradle 7.0.0
La versión más reciente del complemento de Android para Gradle incluye muchas actualizaciones. Para obtener más información, consulta las notas de la versión del complemento de Android para Gradle.
Las pruebas de unidades ahora usan el ejecutor de prueba de Gradle
A fin de mejorar la coherencia general de las ejecuciones de prueba, Android Studio ahora usa Gradle para ejecutar todas las pruebas de unidades de forma predeterminada. En muchos casos, este cambio no afectará tu flujo de trabajo de pruebas en el IDE.
Por ejemplo, si haces clic en el comando Run del menú contextual (visible si haces clic con el botón derecho en una clase de prueba) o en la acción del margen correspondiente , Android Studio usará la configuración de ejecución de Gradle de forma predeterminada para ejecutar pruebas de unidades.
Sin embargo, Android Studio ya no reconoce las configuraciones de ejecución existentes de Android JUnit, por lo que deberás migrar a las de Gradle aquellas que quieras guardar como archivos de proyecto.
Para crear una configuración de prueba de Gradle, selecciona la plantilla de Gradle cuando sigas las instrucciones de Cómo crear una configuración de ejecución y depuración nueva. Una vez que hayas creado una configuración nueva, aparecerá en el diálogo Edit Configurations dentro de la sección de Gradle:
Si quieres inspeccionar las configuraciones de Android JUnit que ya no se reconocen, puedes realizar una de estas dos acciones:
- Abre en un editor de texto las configuraciones guardadas manualmente. El usuario especificará la ubicación de estos archivos, pero estos suelen aparecer en
<my-app>/.idea/runConfigurations/
. Busca las configuraciones temporales en
<my-app>/.idea/workspace.xml
y observa el nodo<component name="RunManager" ...>
. Por ejemplo:<component name="RunManager" selected="Gradle.PlantTest"> … <configuration name="PlantTest" type="AndroidJUnit" factoryName="Android JUnit" nameIsGenerated="true"> <module name="Sunflower.app" /> <useClassPathOnly /> <extension name="coverage"> <pattern> <option name="PATTERN" value="com.google.samples.apps.sunflower.data.*" /> <option name="ENABLED" value="true" /> </pattern> </extension> <option name="PACKAGE_NAME" value="com.google.samples.apps.sunflower.data" /> <option name="MAIN_CLASS_NAME" value="com.google.samples.apps.sunflower.data.PlantTest" /> <option name="METHOD_NAME" value="" /> <option name="TEST_OBJECT" value="class" /> <option name="PARAMETERS" value="" /> <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" /> <method v="2"> <option name="Android.Gradle.BeforeRunTask" enabled="true" /> </method> </configuration>
Nuevo Inspector de tareas en segundo plano
Puedes visualizar, supervisar y depurar los trabajadores en segundo plano de tu app con el nuevo Inspector de tareas en segundo plano. Para comenzar, implementa tu app en un dispositivo con la biblioteca de WorkManager 2.5.0 o superior, y selecciona View >Tool Windows >App Inspection en la barra de menú.
Para ver información más detallada, haz clic en un trabajador. Por ejemplo, puedes ver la descripción del trabajador, la manera en que se ejecutó, los detalles de su cadena y el resultado de su ejecución.
Si deseas ver una representación visual de una cadena de trabajadores, selecciona un trabajador de la tabla y haz clic en Show Graph View en la barra de herramientas. Luego, puedes seleccionar cualquier trabajador de la cadena a fin de ver su información, o bien detenerlo si está en cola o en ejecución. Para volver a la tabla, haz clic en Show List View
.
Para investigar los problemas de los trabajadores con errores de ejecución, puedes detener un trabajador que esté en ejecución o en cola seleccionándolo en la tabla y haciendo clic en Cancel Selected Worker en la barra de herramientas. También puedes filtrar los trabajadores de la tabla según las etiquetas que les hayas asignado por medio del menú desplegable All tags.
Actualizaciones del Inspector de bases de datos
El Inspector de bases de datos ahora se incluye en la nueva ventana de herramientas App Inspection, donde también puedes encontrar el nuevo Inspector de tareas en segundo plano. Abre la ventana de herramientas App Inspection desde la barra de la ventana de herramientas o selecciona View > Tool Windows > App Inspection de la barra de menú.
Cómo exportar datos desde el Inspector de bases de datos
En Artic Fox, puedes exportar fácilmente bases de datos, tablas y resultados de consultas desde el Inspector de bases de datos para guardar, compartir o volver a crear de manera local. Cuando abres un proyecto de app en Android Studio e inspeccionas la app para ese proyecto en el Inspector de bases de datos, puedes comenzar a exportar datos de una de las siguientes maneras:
- Selecciona una base de datos o una tabla en el panel Databases y haz clic en Export to file cerca de la parte superior del panel.
- Haz clic con el botón derecho en una base de datos o una tabla en el panel Databases y selecciona Export to file en el menú contextual.
- Cuando inspecciones una tabla o resultados de consultas en una pestaña, haz clic en Export to file sobre la tabla o los resultados de una consulta.
Después de seleccionar una acción de exportación, usa el diálogo Export para obtener ayuda con los pasos finales, como se muestra a continuación. En función de si intentas exportar una base de datos, una tabla o los resultados de una consulta, tienes la opción de exportar los datos en uno o más de los siguientes formatos: DB, SQL o CSV.
IU actualizada para la grabación en el Generador de perfiles de memoria
Consolidamos la interfaz de usuario (IU) del Generador de perfiles de memoria para diferentes actividades de grabación, como la captura de un volcado de montón y la grabación de asignaciones de memoria nativas, de Java y de Kotlin.
El Generador de perfiles de memoria proporciona las siguientes opciones:
- Capturar el volcado del montón: Visualiza los objetos de la app que usan memoria en un momento específico.
- Grabar asignaciones nativas: Muestra cómo se asignó cada objeto de C/C++ durante un período.
- Grabar asignaciones de Java/Kotlin: Consulta cómo se asignó cada objeto Java/Kotlin durante un período.
A continuación, te indicamos cómo utilizar estas tres opciones:
Para capturar un volcado de montón, selecciona Capture heap dump y, luego, Record. Una vez que el generador de perfiles termina de capturar el volcado de montón, la IU del Generador de perfiles de memoria realiza la transición a otra pantalla en la que se muestra el volcado de montón.
Para registrar asignaciones nativas en dispositivos con Android 10 y versiones posteriores, selecciona Record native allocations y, luego, Record. La grabación continúa hasta que haces clic en Stop
, después de lo cual la IU del Generador de perfiles de memoria realiza la transición a otra pantalla, en la cual se muestra la grabación nativa.
En Android 9 y versiones anteriores, no está disponible la opción Record native allocations.
Para grabar asignaciones de Java y Kotlin, selecciona Record Java / Kotlin allocations y, luego, Record. Si el dispositivo tiene instalado Android 8 o una versión posterior, la IU de Generador de perfiles de memoria realizará la transición a otra pantalla, en la cual se mostrará la grabación en curso. Puedes interactuar con el cronograma en miniatura sobre la grabación (por ejemplo, para cambiar el rango de selección). Para terminar la grabación, selecciona Stop
.
En Android 7.1 y versiones anteriores, el Generador de perfiles de memoria usa el registro de asignación heredado, que muestra el registro en el cronograma hasta que haces clic en Stop.
Actualizaciones del proyecto de C++ vinculado
Trasladamos los archivos no relacionados con la configuración de la carpeta .cxx/
a la carpeta build/
. Las compilaciones de CMake C++ requieren una fase de configuración que genera el proyecto de Ninja que se usa para ejecutar los pasos de compilación y vinculación. Los proyectos generados por CMake son costosos y se espera que se conserven en limpio en Gradle. Por este motivo, se almacenan en una carpeta llamada .cxx/
, junto a la carpeta build/
. Por lo general, el complemento de Android para Gradle detectará cambios de configuración y volverá a generar automáticamente el proyecto de Ninja. Sin embargo, no todos los casos se pueden detectar. Cuando esto sucede, la opción "Refresh Linked C++ Project" se puede usar para regenerar manualmente el proyecto de Ninja.
Nueva matriz para pruebas multidispositivo
Las pruebas de instrumentación ahora se pueden ejecutar en varios dispositivos en paralelo y se pueden investigar mediante un panel especializado de resultados de prueba de instrumentación. Con este panel, puedes determinar si las pruebas fallan debido al nivel de API o debido a las propiedades de hardware.
Probar tu app en una amplia variedad de niveles de API y factores de forma es una de las mejores maneras de garantizar que todos los usuarios tengan una excelente experiencia cuando usen tu app.
Para aprovechar esta función, realiza lo siguiente:
Elige Select Multiple Devices en el menú desplegable de dispositivos de destino (desde la parte superior central del IDE).
Selecciona los dispositivos de destino y haz clic en OK.
Ejecuta las pruebas.
Para ver los resultados de la prueba en el panel Run, ve a View > Tool Windows > Run.
El nuevo panel de resultados de la prueba te permite filtrar los resultados por estado, dispositivo y nivel de API. Además, puedes ordenar cada columna haciendo clic en el encabezado. Si haces clic en una prueba individual, podrás ver los registros y la información del dispositivo de forma individual para cada dispositivo.
Compatibilidad de StateFlow
en la vinculación de datos
En el caso de las apps de Kotlin que usan corrutinas, ahora puedes usar objetos StateFlow
como fuente de vinculación de datos para notificar automáticamente a la IU sobre cambios en los datos. Tus vinculaciones de datos serán compatibles con el ciclo de vida y solo se activarán cuando la IU sea visible en la pantalla.
Para usar un objeto StateFlow
con tu clase de vinculación, debes especificar un propietario del ciclo de vida a fin de definir el alcance del objeto StateFlow
y, en tu diseño, asignar las propiedades y los métodos de tu componente de ViewModel
a las vistas correspondientes mediante expresiones de vinculación, como se muestra en el siguiente ejemplo:
class ViewModel() {
val username: StateFlow<String>
}
<TextView
android:id="@+id/name"
android:text="@{viewmodel.username}" />
Si la app de Kotlin usa AndroidX, la compatibilidad con StateFlow
se incluye automáticamente en las funciones de vinculación de datos, incluidas las dependencias de corrutinas.
Para obtener más información, consulta Cómo trabajar con objetos de datos observables.
Sugerencia de importación mejorada
Mejoramos la cantidad de bibliotecas que admite la función de sugerencia de importación y actualizamos el índice con mayor frecuencia. La sugerencia de importación te ayuda a importar de manera rápida y sencilla ciertos artefactos de Maven de Google a la clase y el proyecto de Gradle. Cuando Android Studio detecta símbolos sin resolver de ciertas bibliotecas de Google, el IDE sugiere importar la biblioteca a la clase y al proyecto.
Compatibilidad con la caché de configuración en Build Analyzer
Ahora Build Analyzer identifica cuándo un proyecto no tiene habilitada la caché de configuración y la ofrece como optimización. Build Analyzer ejecuta una evaluación de compatibilidad para informarte si hay algún problema con la caché de configuración en tu proyecto antes de que se habilite.
Asistente de actualización mejorado del AGP
El Asistente de actualización del complemento de Android para Gradle ahora tiene una ventana de herramientas persistente con la lista de pasos que se completarán. En el lado derecho de la ventana de herramientas, también se incluye información adicional. Si es necesario, también puedes elegir una versión diferente de AGP para actualizar. Si haces clic en el botón Refresh, se actualizan los pasos de la actualización correspondiente.
Refactorización de clases R no transitivas
Puedes usar clases R no transitivas con el complemento de Android para Gradle a fin de compilar compilaciones más rápidas para apps con varios módulos. Esto ayuda a evitar la duplicación de recursos, ya que garantiza que la clase R de cada módulo solo contenga referencias a sus propios recursos, sin extraer referencias de sus dependencias. Esto genera compilaciones más actualizadas y los beneficios correspondientes de evitar la compilación.
Puedes acceder a esta función desde Refactor > Migrate to Non-transitive R Classes.
Compatibilidad con las herramientas de Jetpack Compose
Ahora ofrecemos asistencia adicional para la vista previa y la prueba de apps que usan Jetpack Compose. A fin de obtener la mejor experiencia de desarrollo con Jetpack Compose, debes usar la versión más reciente de Android Studio Arctic Fox para que puedas aprovechar las funciones de editor inteligente, como las plantillas de proyecto nuevo y la capacidad de obtener de inmediato una vista previa de la IU de Compose.
Vista previa de Compose
Los siguientes parámetros de los métodos @Preview ahora están disponibles:
- showBackground: Activa y desactiva un fondo para tu vista previa.
- backgroundColor: Establece un color que solo se use en la superficie de vista previa.
- uiMode: Este nuevo parámetro puede tomar cualquiera de las constantes Configuration.UI_*, y te permite cambiar el comportamiento de la vista previa, por ejemplo, para configurarlo en Modo nocturno a fin de ver cómo reacciona el tema.
Vista previa interactiva
Puedes usar esta función para interactuar con los componentes de la IU, hacer clic en ellos y ver cómo cambia el estado. Es una forma rápida de obtener comentarios sobre cómo reacciona tu IU y obtener una vista previa de las animaciones. Para habilitarla, haz clic en el ícono interactivo y la vista previa cambiará de modo.
Para detenerla, haz clic en Stop Interactive Preview en la barra de herramientas superior.
Cómo implementar en el dispositivo
Puedes usar esta función para implementar un fragmento de tu IU en un dispositivo. Esto ayuda a probar pequeñas partes de tu código en el dispositivo sin tener que iniciar la app completa.
Haz clic en el ícono Deploy to Device junto a la anotación
@Preview
o en la parte superior de la vista previa. Android Studio implementará @Preview en tu dispositivo o emulador conectado.
Edición de literales en tiempo real
Agregamos la Edición de literales en tiempo real para ayudar a los desarrolladores que usan Compose a editar literales (strings, números, booleanos) rápidamente en el código y ver los resultados de inmediato, sin tener que esperar la compilación. El objetivo de esta función es ayudar a aumentar tu productividad, ya que los cambios de código aparecen casi instantáneamente en las vistas previas, el emulador o el dispositivo físico.
Compatibilidad con Compose en el Inspector de diseño
El Inspector de diseño te permite ver información detallada sobre el diseño de tu app que se ejecuta en tu dispositivo conectado. Puedes interactuar con la app y ver actualizaciones en tiempo real en la herramienta para depurar rápidamente los problemas que puedan surgir.
Puedes inspeccionar diseños escritos con el nuevo framework de IU declarativo de Android, Jetpack Compose. Ya sea que tu app use diseños completamente escritos en Compose o diseños híbridos escritos en Compose y View, el Inspector de diseño te ayudará a comprender cómo se procesan los diseños en tu dispositivo en ejecución.
Comenzar
Para comenzar, implementa tu app en un dispositivo conectado y, luego, abre la ventana del Inspector de diseño. Para ello, selecciona View > Tool Windows > Layout Inspector. Si el Inspector de diseño no se conecta automáticamente al proceso de tu app, selecciona el proceso deseado en el menú desplegable del proceso. Pronto deberías ver el diseño de tu app en la ventana de herramientas. Para comenzar a inspeccionar tu diseño de Compose, selecciona el componente de diseño visible en el procesamiento o selecciónalo en Component Tree.
En la ventana Attributes, se muestra información detallada sobre la función Compose que está seleccionada actualmente. En esta ventana, puedes inspeccionar los parámetros de la función y sus valores, incluidos los modificadores y las expresiones lambda. En el caso de las expresiones lambda, el inspector proporciona un acceso directo para ayudarte a navegar hasta la expresión en tu código fuente.
El Inspector de diseño muestra todas las funciones de Compose en la pila de llamadas que emiten componentes al diseño de tu app. En muchos casos, esto incluye las funciones de Compose a las que la biblioteca de Compose llama de forma interna. Si solo quieres ver las funciones de Compose en el Component Tree a las que llama tu app directamente, haz clic en la acción del filtro, lo que podría ayudarte a reducir la cantidad de nodos que se muestran en el árbol para ver solamente los que quizá desees inspeccionar.
Menú desplegable de implementación mejorado
El menú desplegable del dispositivo ahora distingue entre diferentes tipos de errores incluidos en la configuración que elegiste para el dispositivo. La iconografía y los cambios estilísticos ahora diferencian entre errores (selecciones de dispositivos que den como resultado una configuración dañada) y advertencias (selecciones del dispositivo que pueden dar como resultado un comportamiento inesperado, pero aún se pueden ejecutar).
Además, Android Studio te advertirá si intentas iniciar el proyecto en un dispositivo que tenga un error o una advertencia asociados.
Nuevo asistente de vinculación de Wear OS
El nuevo asistente de vinculación de Wear OS guía paso a paso a los desarrolladores en la vinculación de emuladores de Wear OS con teléfonos físicos o virtuales, directamente en Android Studio. El asistente puede ayudarte a instalar la app complementaria de Wear OS en el teléfono y a establecer una conexión entre ambos dispositivos. Para comenzar, ve al menú desplegable del dispositivo > Wear OS Emulator Pairing Assistant.
Plantilla de diseño responsivo
Android Studio Arctic Fox ahora incluye una nueva plantilla de diseño que se adapta a varias dimensiones de pantalla y cambios de tamaño de la app, como teléfonos, dispositivos plegables, tablets y modos de pantalla dividida. Cuando crees un proyecto o módulo nuevo, selecciona la plantilla "Response Activity" para crear un diseño con componentes que cambien de tamaño de forma dinámica.
Para comenzar, navega a File > New; selecciona New Project o New Module; y, luego, la plantilla Responsive Activity.
Problemas conocidos de Arctic Fox
En esta sección, se describen los problemas conocidos de Android Studio Arctic Fox.
Los parches no funcionan en Windows para v3.6-v4.1
Es posible que no funcionen los parches en la plataforma Windows de la versión 3.6 a la versión 4.1 para Android Studio Arctic Fox estable.
4.2 (abril de 2021)
Android Studio 4.2 es una actualización importante que incluye una variedad de funciones y mejoras nuevas.
4.2.2 (junio de 2021)
Esta actualización menor incluye diversas correcciones de errores. Para ver una lista de las correcciones de errores más importantes, consulta la publicación relacionada en el blog de actualizaciones de versiones.
4.2.1 (mayo de 2021)
Esta actualización menor incluye el complemento de Kotlin 1.5.0 y varias correcciones de errores. Para ver una lista de las correcciones de errores más importantes, consulta la publicación relacionada en el blog de actualizaciones de versiones.
Complemento de Android para Gradle 4.2.0
La versión más reciente del complemento de Android para Gradle incluye muchas actualizaciones. Para obtener más información, consulta las notas de la versión del complemento de Android para Gradle.
Cambios en la compatibilidad y la configuración de Gradle
Cuando se ejecuta en Android Studio, la herramienta de compilación de Gradle usa el JDK incluído en el paquete de Studio. En las versiones anteriores, se empaquetaba el JDK 8 con Studio. Sin embargo, en 4.2, ahora se incluye el JDK 11. Cuando se ejecuta el nuevo JDK empaquetado con Gradle, es posible que se generen algunas incompatibilidades o se vea afectado el rendimiento de JVM debido a los cambios en el recolector de elementos no utilizados. Estos errores se describen en las notas de la versión de AGP.
Opción para optimizar el tiempo de sincronización de Gradle
Con el objetivo de mejorar el rendimiento de la sincronización de Gradle, Android Studio omite la compilación de la lista de tareas durante la sincronización. De esta manera, la sincronización de Gradle se completa más rápido y mejora la respuesta de la IU en proyectos muy grandes. Esta opción está activada de forma predeterminada en Android Studio 4.2. Para desactivarla, ve a File > Settings > Experimental (Preferences > Experimental en Mac) y desmarca la opción Do not build Gradle task list during Gradle sync.
Inspector de bases de datos
Mejoras en el editor de consultas
El Inspector de bases de datos incluye algunas mejoras que te ayudarán a escribir y ejecutar tus instrucciones de SQL personalizadas. Cuando abras el inspector y, luego, una pestaña New query, deberías ver una versión redimensionable y más grande del editor, donde puedes crear y dar formato a tus consultas, como se muestra a continuación.
Además, ahora proporcionamos un historial de las consultas anteriores. Cuando haces clic en el botón Show query history , deberías ver una lista de las búsquedas que ejecutaste antes en la base de datos seleccionada. Haz clic en una búsqueda de la lista a fin de obtener una vista previa completa de ella en el editor y presiona Intro para copiarla en el editor. Luego, haz clic en Run para ejecutar la instrucción.
Modo sin conexión
En las versiones anteriores de Android Studio, si se desconectaba un proceso de la app mientras usabas el Inspector de bases de datos, se cerraban el inspector y sus datos. En Android Studio 4.2, agregamos la capacidad de seguir inspeccionando las bases de datos de tu app después de desconectarse un proceso, lo que facilita la depuración de la app tras producirse una falla.
Cuando se produce una desconexión, el Inspector de bases de datos descarga tus bases de datos y las pone a tu disposición en el modo sin conexión. Cuando no tengas conexión, podrás acceder a las tablas y ejecutar consultas.
Ten en cuenta que, cuando te vuelvas a conectar a un proceso de la app activa, el Inspector de bases de datos regresará al modo en vivo y solo te mostrará los datos que estén en el dispositivo. Es decir, los datos que se muestran en el modo sin conexión no se conservan cuando vuelves a conectarte a un proceso de la app. Por este motivo, el Inspector de bases de datos no te permite editar ni ejecutar declaraciones de modificación en el modo sin conexión.
Asistente de actualización del AGP
Puedes usar el nuevo Asistente de actualización del complemento de Gradle para Android para actualizar la versión del AGP de tu proyecto.
Esta herramienta, que se creó a partir de la funcionalidad de actualización de AGP previa, te ayudará a actualizar y refactorizar todo un proyecto y, además, incluye una vista previa de las actualizaciones para evitar posibles cambios rotundos antes de ejecutar la actualización del AGP.
Registro del sistema: métricas de memoria y gráficos mejoradas
En el Generador de perfiles de CPU, la función de registro del sistema ahora incluye métricas nuevas para analizar el rendimiento de la app y, además, incluye lo siguiente:
Tabla de eventos: Enumera todos los eventos de seguimiento del subproceso que se encuentra seleccionado.
Cola de búfer: En la sección Display, este seguimiento nuevo muestra el recuento de búferes de la superficie de la app BufferQueue (0, 1 o 2), que te permite comprender el estado de los búferes de imagen mientras se mueven entre los componentes gráficos de Android.
Frecuencia de CPU: En la sección CPU cores, este seguimiento nuevo muestra la frecuencia de CPU de cada núcleo, lo que indica el grado de funcionamiento de cada núcleo.
Memoria de proceso (RSS): Esta ventana nueva muestra la cantidad de memoria física que la app usa en ese momento.
Para obtener más información, consulta Cómo inspeccionar la actividad de la CPU con el Generador de perfiles de CPU.
Nueva acción para actualizar el Inspector de diseño
El Inspector de diseño, presentado en Android Studio 4.0, se creó con el objetivo de inspeccionar en tiempo real la pila de IU de tu app en ejecución. Sin embargo, es posible que no siempre quieras que el Inspector de diseño refleje de inmediato lo que sucede, ya que tal vez quieras inspeccionar una instantánea del diseño de tu app en un determinado momento o minimizar el impacto que tienen las actualizaciones en tiempo real en el rendimiento de la app.
Pausa las actualizaciones en tiempo real y actualiza la captura de pantalla en el Inspector de diseño.
Para cargar manualmente una instantánea de los datos de la IU desde tu app, primero inhabilita la opción Live updates. Luego, haz clic en el botón Refresh a fin de tomar una nueva instantánea de la pila de IU que se inspeccionará. El Inspector de diseño ahora recordará si deseas mantener las actualizaciones en tiempo real habilitadas o inhabilitadas entre las sesiones.
Compatibilidad con Safe Args
Safe Args es un complemento de Gradle que genera clases simples de objetos y compiladores que permiten una navegación de tipo seguro y acceso a cualquier argumento asociado. Android Studio ahora ofrece una compatibilidad especial con Safe Args, como se describe a continuación:
- Autocompletados para Directions, Args y las diferentes clases de compiladores
- Compatibilidad con los complementos Safe Args de Java y Kotlin
- Navegación de origen a XML
Retrace de R8 ahora está disponible en las herramientas de línea de comandos
Retrace de R8, que se encuentra disponible en la versión 4.0 de las herramientas de línea de comandos, es una herramienta independiente que te permite obtener el seguimiento de pila original a partir de uno ofuscado.
Puedes descargar este paquete con SDK Manager, el cual instala Retrace de R8 en android_sdk/cmdline-tools
.
También puedes descargar el paquete independiente de las herramientas de línea de comandos.
Para obtener información de uso, consulta la sección de Retrace r8 de la guía del usuario.
Implementación en varios dispositivos
A fin de ayudar a agilizar las pruebas de la app en distintos dispositivos y niveles de API, ahora puedes implementar tu app en varios dispositivos o emuladores de forma simultánea. Para ello, sigue estos pasos:
Elige Select Multiple Devices en el menú desplegable de dispositivos de destino (desde la parte superior central del IDE).
Selecciona los dispositivos de destino y haz clic en OK.
Ejecuta tu app.
Nueva configuración de removable
para los módulos de funciones
El complemento Gradle para Android 4.2 utiliza bundletool
1.0.0, el cual incluye el siguiente cambio de comportamiento para las apps que usan módulos de funciones: todos los módulos de funciones que se especifiquen como dist:install-time
y que no estén marcados explícitamente como dist:removable
pasarán a ser no removibles de forma predeterminada. Esta nueva configuración optimiza la fusión de los módulos de tiempo de instalación con el módulo base, lo que podría mejorar el rendimiento de algunas apps.
Si quieres mantener los módulos de funciones como removibles, configura dist:removable="true"
en cualquier módulo que quieras desinstalar.
Para obtener más información sobre esta nueva configuración, consulta la sección sobre la etiqueta dist:removable
dentro de la documentación del manifiesto del módulo de funciones.
Apply Changes
Para ayudarte a aumentar la productividad a medida que iteras en tu app, realizamos las siguientes mejoras en Apply Changes en dispositivos que ejecutan Android 11 o versiones posteriores:
Compatibilidad con cambios adicionales del código
En el caso de los dispositivos que ejecutan Android 11 o versiones posteriores, ahora puedes agregar métodos y campos primitivos finales estáticos y, luego, implementar esos cambios en tu app en ejecución haciendo clic en Apply Code Changes o Apply Changes and Restart Activity
.
Ahora también puedes agregar recursos y, luego, implementarlos en tu app en ejecución en dispositivos con Android 11. Para ello, haz clic en Apply Changes and Restart Activity .
Actualización de los asistentes para crear nuevos módulos o proyectos
Se actualizaron los asistentes de New Project y New Module para que sea más fácil explorar, seleccionar una plantilla o ingresar información sobre el proyecto o módulo nuevo.
También se quitó la opción Import .JAR/.AAR Package del asistente de New Module. Para importar un archivo JAR o AAR a tu proyecto, ahora usa el diálogo Project Structure.
Kotlin 1.4.31
Android Studio 4.2 incluye Kotlin 1.4.31. Para revisar los cambios importantes, consulta el registro de cambios de Kotlin 1.4.0.
La variable de entorno ANDROID_SDK_HOME
dejó de estar disponible
La variable de entorno ANDROID_SDK_HOME
dejó de estar disponible y se reemplazó por ANDROID_PREFS_ROOT
. Para obtener más información, consulta Variables de entorno del emulador.
Problemas conocidos con Android Studio 4.2
En esta sección, se describen los problemas conocidos relacionados con Android Studio 4.2. Para obtener la lista completa, ve a la página sobre problemas conocidos.
Android Studio 4.2.0 genera proyectos con una versión de Kotlin incorrecta: "1.5.0-release-764".
Si usas Android Studio 4.2.0 y actualizaste al complemento de Kotlin 1.5.0, los proyectos nuevos de Kotlin creados por Studio no se podrán compilar debido al siguiente error de sincronización de Gradle:Could not find org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.0-release-764.
Como solución alternativa, reemplaza "1.5.0-release-764" por "1.5.0" en los archivos build.gradle
del proyecto.
Se produce un error cuando las contraseñas de la clave y del almacén de claves son diferentes
A partir de la versión 4.2, Android Studio ejecuta JDK 11. Esta actualización provoca un cambio de comportamiento subyacente relacionado con las claves de firma.
Cuando navegas a Build > Generate Signed Bundle / APK a fin de configurar la firma de apps para un paquete de aplicación o un APK y, luego, ingresas distintas contraseñas para la clave y el almacén de claves, se genera el siguiente error:
Key was created with errors:
Warning: Different store and Key passwords not supported for PKCS12 Key stores
Para evitar ese problema, usa la misma contraseña para la clave y el almacén de claves.
Android Studio no se inicia luego de instalar la versión 4.2
Studio intenta importar .vmoptions anteriores y limpiarlas de manera que funcionen con el recolector de elementos no utilizados del JDK 11. Si ese proceso falla, es posible que, en algunos casos, el IDE no se inicie si el usuario estableció opciones de VM personalizadas en el archivo .vmoptions.
A fin de solucionar este problema, te recomendamos que comentes las opciones personalizadas en .vmoptions (con el carácter "#"). Puedes encontrar el archivo .vmoptions en las siguientes ubicaciones:
Windows
C:\Users\YourUserName\AppData\[Local|Roaming]\Google\AndroidStudio4.2\studio64.exe.vmoptions
macOS
~/Library/Application Support/Google/AndroidStudio4.2/studio.vmoptions
Linux
~/.config/Google/AndroidStudio4.2/studio64.vmoptions
Si Studio no se inicia después de probar esta solución alternativa, consulta Studio no se inicia después de la actualización que se incluye a continuación.
4.1 (agosto de 2020)
Android Studio 4.1 es una actualización importante que incluye una variedad de funciones y mejoras nuevas.
4.1.3 (marzo de 2021)
Esta actualización menor incluye diversas correcciones de errores. Para ver una lista de las correcciones de errores más importantes, consulta la publicación relacionada en el blog de actualizaciones de versiones.
4.1.2 (enero de 2021)
Esta actualización menor incluye diversas correcciones de errores. Para ver una lista de las correcciones de errores más importantes, consulta la publicación relacionada en el blog de actualizaciones de versiones.
4.1.1 (noviembre de 2020)
Esta actualización menor incluye diversas correcciones de errores. Para ver una lista de las correcciones de errores más importantes, consulta la publicación relacionada en el blog de actualizaciones de versiones.
Complemento de Gradle para Android 4.1.0
La versión más reciente del complemento de Android para Gradle incluye muchas actualizaciones. Para obtener más información, consulta las notas de la versión del complemento de Android para Gradle.
Nuevo Inspector de bases de datos
Inspecciona, consulta y modifica tus bases de datos en tu app en ejecución con el nuevo Inspector de bases de datos. Para comenzar, implementa tu app en un dispositivo con nivel de API 26 o posterior, y selecciona View > Tool Windows > Database Inspector en la barra de menú.
Si deseas obtener más información, consulta Cómo depurar tu base de datos con el Inspector de bases de datos.
Cómo ejecutar Android Emulator directamente en Android Studio
Ahora puedes ejecutar Android Emulator directamente en Android Studio. Usa esta función para conservar el espacio de la pantalla, navegar rápidamente entre el emulador y la ventana del editor con las teclas de acceso rápido y para organizar tu flujo de trabajo del IDE y emulador en una sola ventana de aplicación.
Para obtener más información, consulta la documentación de Android Emulator.
Cómo usar modelos de TensorFlow Lite
Vincular modelos de AA facilita la importación directa de archivos de modelo .tflite
y su uso en tus proyectos. Android Studio genera clases fáciles de usar para que puedas ejecutar tu modelo con menos código y mayor seguridad de tipos.
Modelos compatibles
La implementación actual de la vinculación de modelos de AA admite modelos de clasificación de imágenes y transferencia de estilo, siempre que estén mejorados con metadatos. Con el paso del tiempo, se agregará compatibilidad con otros dominios de problemas, como la detección de objetos, la segmentación de imágenes y la clasificación de texto.
TensorFlow Hub ofrece una amplia variedad de modelos previamente entrenados con metadatos. También puedes agregar metadatos tú mismo, como se describe en Cómo agregar metadatos a un modelo de TensorFlow Lite.
Cómo importar un archivo de modelo
Para importar un archivo de modelo compatible, sigue estos pasos:
- Abre el cuadro de diálogo de importación del modelo de TensorFlow Lite del menú de Archivo en File > New > Other > TensorFlow Lite Model.
- Selecciona el archivo de modelo
.tflite
que descargaste o creaste anteriormente. - Haz clic en Finish.
Esta acción importará el archivo del modelo a tu proyecto y lo colocará en la carpeta ml/
. Si no existe el directorio, Android Studio lo creará.
Cómo ver los metadatos y el uso del modelo
Para ver los detalles de un modelo importado y obtener instrucciones sobre cómo usarlo en tu app, haz doble clic en el archivo del modelo de tu proyecto para abrir la página del visor del modelo, que muestra lo siguiente:
- Model: Descripción de alto nivel del modelo
- Tensors: Descripción de los tensores de entrada y salida
- Sample code: Ejemplo de cómo interactuar con el modelo en tu app
A continuación, se muestra un ejemplo que usa mobilenet_v1_0.25_160_quantized.tflite:
Como se muestra en el ejemplo, Android Studio crea una clase llamada MobilenetV1025160Quantized
para interactuar con el modelo.
Si el modelo no tiene metadatos, esta pantalla solo proporcionará información mínima.
Problemas conocidos y soluciones
- Actualmente, la compatibilidad con los modelos de TensorFlow Lite para los dominios de problemas que no sean la clasificación de imágenes y la transferencia de estilo es limitada. Si bien la importación debería funcionar correctamente, algunas entradas o salidas de modelos están representadas por TensorBuffers en lugar de tipos compatibles. Para los modelos sin metadatos, todas las entradas y salidas del modelo serán TensorBuffers.
- Los modelos que tienen tipos de datos de entrada y salida diferentes de
DataType.UINT8
oDataType.FLOAT32
no son compatibles.
Esta función aún está en desarrollo, por lo que te pedimos que envíes comentarios o informes errores.
Generador de perfiles de memoria nativos
El Generador de perfiles de memoria de Android Studio ahora incluye la herramienta Generador de perfiles de memoria nativos para apps implementadas en dispositivos físicos que ejecutan Android 10 o versiones posteriores. Con el Generador de perfiles de memoria nativos, puedes registrar asignaciones de memoria y desasignaciones de código nativo, además de inspeccionar estadísticas acumulativas sobre objetos nativos.
Para obtener más información sobre el Generador de perfiles de memoria nativos, consulta Cómo inspeccionar el uso de memoria de tu app con el Generador de perfiles de memoria.
Problemas conocidos y soluciones
El Generador de perfiles de memoria nativos de Android Studio 4.1 no funciona en dispositivos con Android 11. La compatibilidad con la generación de perfiles de dispositivos con Android 11 actualmente está disponible en la versión preliminar 4.2.
En la versión inicial 4.1, se inhabilitó el perfil de inicio de la app. Esta opción se habilitará en una versión futura.
Como solución alternativa, puedes usar el generador de perfiles de línea de comandos de Perfetto para capturar perfiles de inicio.
IU de Registro del sistema: selección más simple, nueva pestaña de análisis y más datos de procesamiento de marcos
La IU de Registro del sistema en el generador de perfiles de Android Studio incluye las siguientes mejoras:
Selección de casillas: En la sección Threads, ahora puedes arrastrar el mouse para realizar una selección de casillas de un área que puedes acercar haciendo clic en el botón Zoom to Selection
en la parte superior derecha (o usando la tecla M). Cuando arrastras y sueltas los subprocesos similares, puedes seleccionar varios subprocesos para inspeccionarlos todos a la vez. Por ejemplo, tal vez quieras realizar un análisis en varios subprocesos de trabajador.
Pestaña Summary: La nueva pestaña Summary del panel Analysis muestra lo siguiente:
- Estadísticas agregadas de todos los casos de un evento específico, como un recuento de casos y la duración mínima o máxima
- Estadísticas de eventos de seguimiento para el caso seleccionado.
- Datos sobre la distribución del estado de los subprocesos
- Los casos de mayor duración del evento de seguimiento seleccionado
Para navegar a otro caso, selecciona otra fila de la tabla.
Datos de Display: En la sección Display, los nuevos cronogramas de SurfaceFlinger y VSYNC te ayudan a investigar los problemas de procesamiento de la IU de tu app.
Para obtener instrucciones de uso básicas sobre cómo documentar un registro del sistema, consulta la sección Cómo registrar seguimientos de Cómo inspeccionar la actividad de la CPU con el Generador de perfiles de CPU.
Los generadores de perfiles independientes ahora están disponibles
Con los nuevos generadores de perfiles independientes, ahora es posible generar perfiles de tu app sin ejecutar la totalidad del IDE de Android Studio.
Para obtener instrucciones sobre cómo usar los generadores de perfiles independientes, consulta Cómo ejecutar generadores de perfiles independientes.
Compatibilidad con navegación de Dagger
Android Studio facilita la navegación entre tu código relacionado con Dagger, ya que proporciona nuevas acciones del margen y extiende la compatibilidad en la ventana Find Usages.
Nuevas acciones del margen: Para los proyectos que usan Dagger, el IDE proporciona acciones del margen que te ayudan a navegar entre tu código anotado en Dagger. Por ejemplo, si haces clic en la acción del margen
junto a un método que consume un tipo determinado, navegas al proveedor de ese tipo. Por el contrario, si haces clic en la acción del margen
, puedes navegar al lugar donde se usa un tipo como dependencia.
Nodo de Find Usages: Cuando invocas Find Usages en un proveedor de un tipo determinado, la ventana Find ahora incluye un nodo Dependency consumer(s) que muestra los consumidores de ese tipo. Por el contrario, al invocar esta acción en un consumidor de una dependencia con Dagger insertado, la ventana Find muestra el proveedor de esa dependencia.
Componentes de Material Design: temas y estilos actualizados en nuevas plantillas de proyecto
Las plantillas de Android Studio en el diálogo Create New Project usan Componentes de Material Design (MDC) y cumplen con la guía actualizada para temas y estilos de forma predeterminada. Las actualizaciones te permiten hacer lo siguiente:
- MDC: Los proyectos dependen de
com.google.android.material:material
enbuild.gradle.
. Los temas de la app de base usan elementos superiores deTheme.MaterialComponents.*
y anulan los colores actualizados de MDC y los atributos "on". - Recursos de color: Los recursos de color en
colors.xml
usan nombres literales (por ejemplo,purple_500
en lugar decolorPrimary
). - Recursos de temas: Los recursos de temas se encuentran en
themes.xml
(en lugar destyles.xml
) y usan nombresTheme.<ApplicationName>
. - Tema oscuro: Los temas base de la aplicación usan elementos superiores de
DayNight
y se dividen entreres/values
yres/values-night
. - Atributos de tema: se hace referencia a los recursos de color como atributos de tema (por ejemplo,
?attr/colorPrimary
) en diseños y estilos para evitar colores hard-coded.
IntelliJ IDEA 2020.1
En la versión 2020.1, se actualizó el IDE principal de Android Studio con mejoras de IntelliJ IDEA, incluida una nueva ventana Commit que permite operaciones de control de versión y un nuevo modo zen que se puede activar o desactivar seleccionando View > Appearance > Enter Distraction Free Mode.
Para obtener más información sobre las mejoras de la versión 2020.1, consulta la siguiente página:
Cambios en el directorio de configuración del IDE
Las ubicaciones de los directorios de configuración del usuario se cambiaron por lo siguiente:
Windows
Sintaxis: %APPDATA%\Google\<product><version>
Ejemplo: C:\Users\YourUserName\AppData\Roaming\Google\AndroidStudio4.1
macOS
Sintaxis: ~/Library/Application Support/Google/<product><version>
Ejemplo: ~/Library/Application Support/Google/AndroidStudio4.1
Linux
Sintaxis: ~/.config/Google/<product><version>
Ejemplo: ~/.config/Google/AndroidStudio4.1
Estas nuevas ubicaciones de directorio son consistentes con las actualizaciones recientes de IntelliJ IDEA, el IDE en el que se basa Android Studio.
Kotlin 1.3.72
Android Studio 4.1 agrupa Kotlin 1.3.72, que incluye varias correcciones para mejorar el resaltado de Kotlin, las inspecciones y la finalización de código. Consulta el registro de cambios de Kotlin 1.3.72 para obtener más detalles.
Vista previa de vista personalizada
Cuando crees una vista personalizada (por ejemplo, extendiendo la clase View
oButton
), Android Studio ahora te mostrará una vista previa de tu vista personalizada. Usa el menú desplegable de la barra de herramientas para alternar entre varias vistas personalizadas o haz clic en los botones para unir el contenido en forma horizontal o vertical.
Simbolización para informes de fallas por errores en código nativo
Cuando ocurre una falla o ANR en el código nativo, el sistema produce un seguimiento de pila, que es una instantánea de la secuencia de funciones anidadas que se llamaron en el programa hasta el momento en que se produjo la falla. Estas instantáneas pueden ayudar a identificar y solucionar cualquier problema en la fuente, pero primero deben simbolizarse para traducir las direcciones de la máquina en nombres de funciones legibles.
Si tu app o juego se desarrolla con código nativo, como C++, ahora puedes subir archivos de símbolos de depuración a Play Console para cada versión de tu app. Play Console usa estos archivos de símbolos de depuración para simbolizar los seguimientos de pila de tu app, lo que facilita el análisis de fallas y ANR. Para obtener información sobre cómo subir archivos de símbolos de depuración, consulta Asistencia para fallas por error en código nativo.
Apply Changes
Para ayudarte a aumentar la productividad a medida que iteras en tu app, realizamos las siguientes mejoras en Apply Changes en dispositivos con la Vista previa para desarrolladores 3 o versiones posteriores de Android 11:
Velocidades de implementación más rápidas
Invertimos mucho en optimizar la velocidad de iteración durante el desarrollo de un método para implementar y conservar cambios en un dispositivo sin instalar la aplicación.
Después de una implementación inicial, las implementaciones posteriores en dispositivos Android 11 que usan Apply Code Changes o Apply Changes and Restart Activity
ahora son mucho más rápidas.
Para obtener más información sobre la diferencia entre estas dos acciones, consulta Apply Changes.
Compatibilidad con cambios adicionales del código
Para dispositivos que ejecutan la Vista previa para desarrolladores 3 o versiones posteriores de Android 11, ahora puedes agregar métodos y campos primitivos finales estáticos y, luego, implementar esos cambios en tu app en ejecución haciendo clic en Apply Code Changes
o en Apply Changes and Restart Activity
.
4.0 (mayo de 2020)
Android Studio 4.0 es una actualización importante que incluye una variedad de nuevas características y mejoras.
Esta actualización menor incluye diversas correcciones de errores, además de compatibilidad con la nueva configuración predeterminada para la visibilidad del paquete en Android 11. Para obtener más información, consulta las notas de la versión del complemento de Android para Gradle 4.0.1.
Para ver una lista de las correcciones de errores más destacadas de esta versión, lee la publicación relacionada en el blog de actualizaciones de versiones.
4.0 (mayo de 2020)
Importante: Después de la actualización, tendrás que reiniciar Android Studio para aplicar la configuración de memoria migrada desde una versión anterior del IDE. Para obtener más información, consulta la página de Problemas conocidos.
Complemento de Android para Gradle 4.0.0
La versión más reciente del complemento de Android para Gradle incluye muchas actualizaciones, como la expansión de sintaxis de Java 8 para versiones anteriores de Android y dependencias entre funciones. Para obtener más información, consulta las notas completas de la versión del complemento de Gradle para Android.
Además, Android Studio ahora incluye funciones nuevas para ayudarte a mejorar el rendimiento de la compilación.
Build Analyzer
Cuando usas Android Studio 4.0 con el complemento de Gradle para Android 4.0.0 y versiones posteriores, la ventana Build Analyzer te ayuda a comprender y diagnosticar problemas con el proceso de compilación, como optimizaciones inhabilitadas y tareas mal configuradas. Puedes abrir la ventana Build Analyzer de la siguiente manera:
- Si aún no lo hiciste, selecciona la opción Build > Make Project de la barra de menú.
- En la barra de menú, selecciona View > Tool Windows > Build.
- En la ventana Build, abre la ventana Build Analyzer de una de las siguientes maneras:
- Cuando Android Studio termine de compilar el proyecto, haz clic en la pestaña Build Analyzer.
- 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 Analyzer organiza los posibles problemas de compilación en un árbol. Puedes explorar cada problema y hacer clic en ellos 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.
Inspección de las tareas que determinaron la duración de la compilación.
Expansión de sintaxis 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 expansión de sintaxis, 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 correspondiente para poder expandir la sintaxis de las API del lenguaje Java. Eso 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
yjava.util.OptionalDouble
) y algunas otras clases nuevas que son útiles para las API anteriores - Algunas adiciones a
java.util.concurrent.atomic
(métodos nuevos enAtomicInteger
,AtomicLong
yAtomicReference
) ConcurrentHashMap
(con correcciones de errores para Android 5.0)
Para admitir esas 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 expansión de sintaxis reescribe el código de tu app para que se pueda usar esa biblioteca durante el tiempo de ejecución.
Para agregar compatibilidad con esas API de lenguaje, incluye lo siguiente en el archivo build.gradle
del módulo de la app:
Groovy
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' }
Kotlin
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") }
Ten en cuenta que también es posible que debas incluir el fragmento de código anterior en un archivo build.gradle
del módulo de biblioteca en los siguientes casos:
Las pruebas de instrumentación del módulo de biblioteca usan estas API de lenguaje (ya sea directamente o a través del módulo de biblioteca o sus dependencias). Por lo tanto, las API faltantes se proporcionan para el APK de la prueba de instrumentación.
Deseas ejecutar lint en el módulo de biblioteca de forma aislada. Esto permite que lint reconozca los usos válidos de las API de lenguaje y evite denunciar advertencias falsas.
Dependencias entre funciones
En versiones anteriores del complemento de Gradle para Android, todos los módulos de funciones podían depender únicamente del módulo base de la app. Cuando usas el complemento de Gradle para Android 4.0.0 y versiones posteriores, ahora 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.
El módulo de funciones :video
depende de la función :camera
, que depende del módulo base :app
.
Eso significa que, cuando la app solicita descargar un módulo de funciones, también descarga otros módulos de los que depende. Después de crear módulos de funciones para tu app, puedes declarar una dependencia entre funciones del archivo build.gradle
del módulo.
Por ejemplo, el módulo :video
declara que depende de :camera
de la siguiente manera:
Groovy
// In the build.gradle file of the ':video' module. dependencies { // All feature modules must declare a dependency // on the base module. implementation project(':app') // Declares that this module also depends on the 'camera' feature module. implementation project(':camera') ... }
Kotlin
// In the build.gradle file of the ':video' module. dependencies { // All feature modules must declare a dependency // on the base module. implementation(project(":app")) // Declares that this module also depends on the 'camera' feature module. implementation(project(":camera")) ... }
Además, debes habilitar la función de dependencia entre funciones en Android Studio (para admitir la función a la hora de 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
Metadatos de dependencias
Cuando compilas tu app con el complemento de Android para Gradle 4.0.0 y versiones posteriores, el complemento incluye metadatos que describen las dependencias que se compilan en la app. Cuando subes tu app, Play Console inspecciona esos metadatos para brindarte los siguientes beneficios:
- Recibir alertas de problemas conocidos con SDK y dependencias
- Recibir comentarios prácticos para resolver esos problemas
Los datos se comprimen, se encriptan con una clave de firma de Google Play y se almacenan en el bloque de firma de tu app de lanzamiento. Sin embargo, puedes inspeccionar los metadatos por tu cuenta desde los archivos de compilación intermedios locales que se encuentran en el directorio <project>/<module>/build/outputs/sdk-dependencies/release/sdkDependency.txt
.
Si prefieres no compartir esa información, puedes incluir lo siguiente en el archivo build.gradle
de tu módulo:
Groovy
android { dependenciesInfo { // Disables dependency metadata when building APKs. includeInApk = false // Disables dependency metadata when building Android App Bundles. includeInBundle = false } }
Kotlin
android { dependenciesInfo { // Disables dependency metadata when building APKs. includeInApk = false // Disables dependency metadata when building Android App Bundles. includeInBundle = false } }
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.
Actualizaciones del Generador de perfiles de CPU
En función de tus comentarios, nos enfocamos en mejorar la experiencia del usuario en el Generador de perfiles de CPU de dos maneras importantes.
En primer lugar, en comparación con las versiones anteriores de Android Studio, las tasas de error de las grabaciones de CPU en el Generador de perfiles de CPU se redujeron significativamente.
En segundo lugar, se revisó la IU del Generador de perfiles de CPU para ofrecer un flujo de trabajo más intuitivo. Entre algunos cambios notables de la IU 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
ubicado 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 los métodos, las funciones y los eventos).
Existen varias formas de navegar por el cronograma:
- Para enfocarte en un punto específico en el tiempo, arrastra un rango en el gráfico de uso de CPU en la parte superior izquierda.
- Para acercar o alejar la imagen, usa la rueda del mouse mientras mantienes presionada la tecla Control (o Comando en MacOS). Para desplazarte hacia la izquierda o la derecha, arrastra mientras mantienes presionada la barra espaciadora.
- De manera alternativa, puedes usar las teclas W y A para acercarte o alejarte, y las teclas S y D para desplazarte hacia la izquierda o la derecha detalladamente.
- 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 (o presiona Intro) en los nombres de los subprocesos para expandirlos o contraerlos.
- La IU de Registro del sistema, como se muestra en la captura de pantalla, también incluye mejoras:
- Ahora, los eventos se colorean de forma única para facilitar la diferenciación.
- Los subprocesos se ordenan según la cantidad de eventos de registro dentro de ellos a fin de que los subprocesos "busier" se clasifiquen en una posición superior en la lista.
- Puedes seleccionar uno o más subprocesos a fin de ver el análisis en la columna de la derecha solo para los subprocesos seleccionados.
- De manera similar, puedes seleccionar un evento de registro en cualquier subproceso para ver sus datos de análisis.
Herramientas de diseño
Esta versión de Android Studio incluye actualizaciones para las herramientas de diseño, como el Inspector de diseño y un Editor de animaciones completamente nuevo.
Editor de animaciones 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.
El Editor de animaciones 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, el Editor de animaciones puede generar el XML por ti, con compatibilidad con estados de inicio y fin, fotogramas clave, transiciones y cronogramas.
Si quieres obtener más información sobre el uso del Editor de animaciones, consulta la guía del usuario.
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 tu 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.
- 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 del panel de propiedades.
- 3D view: consulta la jerarquía de vistas de tu app durante 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.
Solo puedes usar el Inspector de diseño en vivo cuando implementas tu app en un dispositivo o emulador con nivel de API 29 o un nivel superior. Para habilitar el Inspector de diseño en vivo, ve a File > Settings > Experimental y marca la casilla junto a Enable Live Layout Inspector. Luego, haz clic en la casilla de verificación junto a Live updates sobre la pantalla de diseño.
Validación de diseño
Validación de diseño es una herramienta visual que permite obtener una vista previa simultánea de los diseños en diferentes dispositivos y configuraciones, lo que te ayuda a detectar errores de diseño y crear apps más accesibles.
Para acceder a esta función, haz clic en la pestaña Layout Validation en la esquina superior derecha de la ventana del IDE:
En la ventana Layout Validation, puedes seleccionar cuatro conjuntos de configuración diferentes, que incluyen lo siguiente:
- Pixel Devices: obtén una vista previa de tu app en una selección de dispositivos Pixel.
- Custom: obtén una vista previa de tu app mediante opciones de pantallas personalizadas, como el idioma o la orientación de la pantalla.
- Color Blind: obtén una vista previa de tu app con simulaciones de tipos comunes de daltonismo.
- Font Sizes: Obtén una vista previa de la app con una variedad de tamaños de fuente.
Para obtener más información sobre el uso de la validación de diseño, consulta Cómo depurar tu diseño con el Inspector de diseño.
Funciones del editor inteligente para reglas de reductor de código
Ahora, Android Studio ofrece funciones del editor inteligente cuando abres archivos de reglas de reductor de código para R8, 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.
Plantillas dinámicas de Kotlin para Android
Ahora, Android Studio 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.
Compatibilidad ampliada con la cámara en Android Emulator
Cuando usas la imagen de Android 11, la cámara de Android Emulator incluye las siguientes funciones nuevas:
- Captura de RAW
- Reprocesamiento de YUV
- Dispositivos de nivel 3
- Compatibilidad con cámara lógica
Para obtener más información sobre el desarrollo para Android 11, consulta la documentación de Android 11.
clangd ahora está disponible para el editor de código C++
Jetbrains CLion, la tecnología que respalda la compatibilidad con lenguajes C++ de Android Studio, ahora usa un motor de inspección basado en clangd y clang-tidy de LLVM, lo que acelera el proceso de compleción de código de C/C++ y proporciona una integración continua con clang-tidy.
clangd y clang-tidy, que ahora están disponibles en el editor de código C++ de Android Studio, son parte de las herramientas adicionales de LLVM de código abierto:
- clangd incluye la finalización de código, la compilación mensajes de error en el editor y la posibilidad de navegar a definiciones.
- clang-tidy es una herramienta linter de C++ con un marco de trabajo extensible para diagnosticar y solucionar errores de programación típicos.
En versiones anteriores, los usuarios de Android Studio podían usar clang-tidy a través del NDK; con este cambio, Android Studio ya no depende del NDK para la funcionalidad clang-tidy.
La configuración ndk.dir en el archivo local.properties dejó de estar disponible.
El valor de ndk.dir
ya no debe establecerse en el archivo local.properties
de tu app, y se quitará la compatibilidad con esta configuración de ndk.dir
en una versión futura. El complemento de Android para Gradle configura la versión del NDK de forma predeterminada; pero, si necesitas una versión específica del NDK, puedes configurar android.ndkVersion
en build.gradle
.
Para obtener más información sobre la configuración del NDK, consulta Cómo instalar y configurar el NDK y CMake.
IntelliJ IDEA 2019.3.3
Se actualizó el IDE principal de Android Studio con mejoras de IntelliJ IDEA mediante la actualización 2019.3.3.
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.3.3, consulta las siguientes páginas:
3.6 (febrero de 2020)
Android Studio 3.6 es una actualización importante que incluye una variedad de funciones y mejoras nuevas.
También queremos agradecer a todos los colaboradores de la comunidad que nos ayudaron en este lanzamiento.
3.6.3 (abril de 2020)
Esta actualización menor incluye diversas correcciones de errores. Para ver una lista de las correcciones de errores más importantes, consulta la publicación relacionada en el blog de actualizaciones de versiones.
3.6.2 (marzo de 2020)
Esta actualización menor incluye diversas correcciones de errores. Para ver una lista de las correcciones de errores más importantes, consulta la publicación relacionada en el blog de actualizaciones de versiones.
3.6.1 (febrero de 2020)
Esta actualización menor incluye diversas correcciones de errores. Para ver una lista de las correcciones de errores más importantes, consulta la publicación relacionada en el blog de actualizaciones de versiones.
Herramientas de diseño
Esta versión de Android Studio incluye actualizaciones para diversas herramientas de diseño, como el editor de diseño y Resource Manager.
Editores de diseño para acercar y dividir la vista
En esta versión, se incluyen las siguientes actualizaciones de los editores de diseño visual:
Los editores de diseño, como el editor de diseño y el editor de navegación, ahora ofrecen una vista dividida que te permite ver las vistas de diseño y código de la IU al mismo tiempo. En la esquina superior derecha de la ventana del editor, ahora verás tres botones
para activar o desactivar las opciones de visualización:
- Para habilitar la vista dividida, haz clic en el ícono Dividir
.
- Para habilitar la vista de fuente XML, haz clic en el ícono Fuente
.
- Para habilitar la vista de diseño, haz clic en el ícono Diseño
.
- Para habilitar la vista dividida, haz clic en el ícono Dividir
Los controles para acercar o alejar y para desplazarse lateralmente en los editores de diseño se movieron a un panel flotante en la esquina inferior derecha de la ventana del editor.
Para obtener más información, consulta Cómo compilar una IU con un editor de diseño.
Pestaña de recursos del selector de color
Para ayudarte a actualizar rápidamente los valores de recursos de color en tu app cuando usas el selector de color en tu XML o en las herramientas de diseño, el IDE ahora propaga los valores de recursos de color por ti.
Resource Manager
Resource Manager contiene las siguientes actualizaciones:
- Ahora Resource Manager admite la mayoría de los tipos de recursos.
- Cuando se busca un recurso, ahora Resource Manager muestra resultados de todos los módulos del proyecto. Anteriormente, las búsquedas solo mostraban resultados del módulo seleccionado.
- El botón de filtro te permite ver recursos de módulos dependientes locales, bibliotecas externas y el marco de trabajo de Android. Además, puedes usar el filtro para mostrar los atributos de tema.
- Ahora, puedes cambiar el nombre de los recursos durante el proceso de importación. Para ello, haz clic en el cuadro de texto que se encuentra sobre el recurso.
Para obtener más información, consulta Cómo administrar los recursos de IU de tu app con Resource Manager.
Actualizaciones del complemento de Android para Gradle
La versión más reciente del complemento de Android para Gradle incluye muchas actualizaciones, como optimizaciones de la velocidad de compilación, compatibilidad con el complemento de publicación de Maven y compatibilidad con la vinculación de vista. Para obtener más información, consulta las notas de la versión completas.
Vinculación de vista
La vinculación de vista te permite escribir más fácilmente código que interactúe con las vistas mediante la generación de una clase de vinculación para cada archivo de diseño XML. Estas clases contienen referencias directas a todas las vistas que tienen un ID en el diseño correspondiente.
Debido a que reemplaza findViewById()
, la vinculación de vista elimina el riesgo de excepciones de puntero nulo que resultan de un ID de vista no válido.
Para habilitar la vinculación de vista, debes usar el complemento de Android para Gradle 3.6.0, o una versión posterior, e incluir lo siguiente en el archivo build.gradle
de cada módulo:
Groovy
android { buildFeatures.viewBinding = true }
Kotlin
android { buildFeatures.viewBinding = true }
Apply Changes
Ahora, puedes agregar una clase y, luego, implementar ese cambio de código en tu app en ejecución. Para ello, haz clic en Apply Code Changes o en Apply Changes and Restart Activity
.
Para obtener más información sobre la diferencia entre estas dos acciones, consulta Apply Changes.
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:
- Abre el panel Project seleccionando View > Tool Windows > Project en la barra de menú.
- Haz clic con el botón derecho en el módulo base, que suele llamarse "app", y selecciona Refactor > Enable Instant Apps Support.
- En el cuadro de diálogo que aparece, selecciona el módulo base del menú desplegable.
- 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 usas el Analizador de APK para inspeccionar archivos DEX, puedes desofuscar el código de bytes del método y la clase de la siguiente manera:
- Selecciona Build > Analyze APK en la barra de menú.
- En el cuadro de diálogo que aparece, navega hasta el APK que deseas inspeccionar y selecciónalo.
- Haz clic en Open.
- En el Analizador de APK, selecciona el archivo DEX que deseas inspeccionar.
- En el visor de archivos DEX, carga el archivo de asignaciones de ProGuard para el APK que estás analizando.
- Haz clic con el botón derecho en la clase o el método que deseas inspeccionar y selecciona Show bytecode.
Herramientas nativas
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; 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
El editor de código de Android Studio ahora admite un flujo de trabajo de desarrollo de JNI más integrado, que incluye sugerencias de tipo mejoradas, autocompletado, inspecciones y refactorización de código.
Volver a cargar APK para bibliotecas nativas
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.
Adjuntar fuentes de APK solo de Kotlin
Ahora, es posible adjuntar fuentes de APK externas solo de Kotlin cuando generas perfiles y depuras los APK compilados previamente. Para obtener más información, consulta Cómo adjuntar códigos fuente Kotlin/Java.
Detección de pérdidas en el Generador de perfiles de memoria
Cuando se analiza un volcado de montón en el Generador de perfiles de memoria, 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 unFragmentManager
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 unFragmentTransaction
.
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 del Generador de perfiles de memoria.
Filtrado de un volcado de montón para las fugas de memoria.
Emuladores
Android Studio 3.6 te ayuda a aprovechar varias actualizaciones incluidas en Android Emulator 29.2.7 y versiones posteriores, como se describe a continuación.
Compatibilidad mejorada con las ubicaciones
Android Emulator 29.2.7 y las versiones posteriores ofrecen compatibilidad adicional para emular las coordenadas GPS y la información de ruta. Cuando abres los controles extendidos de los emuladores, las opciones de la pestaña de ubicación ahora se organizan en dos pestañas: Single points y Routes.
Single points
En la pestaña Single points, puedes usar la vista web de Google Maps para buscar lugares de interés, del mismo modo que lo harías con Google Maps en un teléfono o navegador. Cuando buscas una ubicación en el mapa (o haces clic en ella), puedes seleccionar Save point cerca de la parte inferior del mapa para guardar la ubicación. Todas tus ubicaciones guardadas aparecen en el lado derecho de la ventana Extended controls.
Si deseas establecer la ubicación del emulador en la ubicación que seleccionaste en el mapa, haz clic en el botón Set location, cerca de la parte inferior derecha de la ventana Extended controls.
.
Rutas
Al igual que la pestaña Single points, la pestaña Routes proporciona una vista web de Google Maps que puedes usar para crear una ruta entre dos o más ubicaciones. Para crear y guardar una ruta, sigue estos pasos:
- En la vista de mapa, usa el campo de texto para buscar el primer destino de tu ruta.
- Selecciona la ubicación en los resultados de la búsqueda.
- Selecciona el botón Navigate
.
- Selecciona el punto de partida de tu ruta en el mapa.
- (Opcional) Haz clic en Add destination para agregar más paradas a tu ruta.
- Para guardar la ruta, haz clic en Save route en la vista de mapa.
- Especifica un nombre para la ruta y haz clic en Save.
Para simular el emulador siguiendo la ruta que guardaste, selecciona la ruta en la lista de Saved routes y haz clic en Play route, cerca de la parte inferior derecha de la ventana Extended controls. Para detener la simulación, haz clic en Stop route.
Si quieres simular de forma continua el emulador siguiendo la ruta especificada, habilita el botón que se encuentra junto a Repeat playback. Para cambiar la velocidad con la que el emulador sigue la ruta especificada, selecciona una opción del menú desplegable Playback speed.
Compatibilidad con pantallas múltiples
Android Emulator ahora te permite implementar tu app en varias pantallas, que admiten dimensiones personalizables y pueden ayudarte a probar apps compatibles con multiventana y multipantalla. Mientras se ejecuta un dispositivo virtual, puedes agregar hasta dos pantallas adicionales de la siguiente manera:
- Abre Extended controls y ve a la pestaña Displays.
- Para agregar otra pantalla, haz clic en Add secondary display.
En el menú desplegable Secondary displays, realiza una de las siguientes acciones:
- Selecciona una de las relaciones de aspecto predeterminadas.
- Selecciona custom y establece la altura (en height), el ancho (en width) y los dpi para tu pantalla personalizada.
(Opcional) Haz clic en Add secondary display para agregar una tercera pantalla.
Haz clic en Apply changes para agregar las pantallas especificadas al dispositivo virtual activo.
Plantillas de proyectos y dispositivos virtuales nuevos para el SO de Android Automotive
Cuando creas un proyecto nuevo con Android Studio, ahora puedes seleccionar entre tres plantillas de la pestaña Automotive en el asistente de Create New Project: No Activity, Media Service y Messaging Service. En el caso de los proyectos existentes, puedes agregar compatibilidad con los dispositivos Android Automotive. Para ello, selecciona File > New > New Module en la barra de menú y selecciona Automotive Module. Luego, el asistente de Create New Module te guía en la creación de un módulo nuevo con una de las plantillas de proyectos de Android Automotive.
.
Además, ahora puedes crear un dispositivo virtual de Android (AVD) para dispositivos con el SO de Android Automotive. Para ello, selecciona una de las siguientes opciones en la pestaña Automotive del asistente de Virtual Device Configuration.
- Polestar 2: crea un AVD que emula la unidad principal de Polestar 2.
- Automotive (1024p horizontal): crea un AVD para unidades principales de Android Automotive de 1024 x 768 px.
.
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.
Win32 dejó de estar disponible
La versión de 32 bits de Android Studio para Windows dejará de recibir actualizaciones después de diciembre de 2019 y dejará de ser compatible después de diciembre de 2020. Puedes seguir usando Android Studio. Sin embargo, para recibir actualizaciones adicionales, actualiza tu estación de trabajo a una versión de Windows de 64 bits.
Si quieres obtener más información, lee el blog sobre la baja de la versión de 32 bits para Windows.
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 que 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 en los archivos de compilación no funciona.
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 .
IntelliJ IDEA 2019.2
Se actualizó el IDE principal de Android Studio con mejoras de IntelliJ IDEA mediante la actualización 2019.2.
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:
Colaboradores de la comunidad
Gracias a todos los colaboradores de la comunidad que nos ayudaron a descubrir errores y otras formas de mejorar Android Studio 3.6. En particular, queremos agradecer a las siguientes personas que informaron errores:
|
|
|
3.5 (agosto de 2019)
Android Studio 3.5 es una actualización importante y el resultado de Project Marble. A partir del lanzamiento de Android Studio 3.3, la iniciativa Project Marble abarca varios lanzamientos que se centran en mejorar tres áreas principales del IDE: estado del sistema, pulido de funciones y corrección de errores.
Si deseas obtener más información sobre estas y otras actualizaciones de Project Marble, consulta la entrada del Blog para desarrolladores de Android o las secciones que se incluyen a continuación.
También queremos agradecerles a todos los colaboradores de la comunidad que nos ayudaron en este lanzamiento.
3.5.3 (diciembre de 2019)
Esta actualización menor incluye diversas correcciones de errores y mejoras de rendimiento.
3.5.2 (noviembre de 2019)
Esta actualización menor incluye diversas correcciones de errores y mejoras de rendimiento. Para ver una lista de las correcciones de errores más importantes, consulta la publicación relacionada en el blog de actualizaciones de versiones.
3.5.1 (octubre de 2019)
Esta actualización menor incluye diversas correcciones de errores y mejoras de rendimiento. Para ver una lista de las correcciones de errores más importantes, consulta la publicación relacionada en el blog de actualizaciones de versiones.
Project Marble: estado del sistema
En esta sección, se describen los cambios en Android Studio 3.5 que se centran en mejorar el estado del sistema.
Configuración de memoria recomendada
Android Studio ahora te notifica si detecta que puedes mejorar el rendimiento al aumentar la cantidad máxima de RAM que tu SO debe asignar a los procesos de Android Studio, como el IDE central, el daemon de Gradle y el daemon de Kotlin. Si quieres aceptar la configuración recomendada, haz clic en el vínculo de acción en la notificación o cambia los ajustes manualmente seleccionando File > Settings (o Android Studio > Preferences en macOS). Luego, busca la sección Memory Settings en Appearance & Behavior > System Settings. Para obtener más información, consulta Tamaño máximo de montón.
Una notificación sobre la configuración de memoria recomendada.
Informe de uso de memoria
Los problemas de memoria en Android Studio a veces son difíciles de informar y reproducir. Para resolver este problema, Android Studio te permite generar un informe de uso de memoria. Para ello, haz clic en Help > Analyze Memory Usage en la barra de menú. Cuando lo haces, el IDE corrige de forma local los datos de información personal antes de preguntar si deseas enviarlos al equipo de Android Studio para identificar los problemas de memoria. Si quieres obtener más información, consulta Ejecuta un informe de uso de memoria.
Un informe de uso de memoria.
Windows: optimización de E/S de archivos antivirus
Ahora, Android Studio verifica automáticamente si ciertos directorios de proyectos se excluyen del análisis antivirus en tiempo real. Cuando se pueden realizar modificaciones para mejorar el rendimiento de compilación, Android Studio te notifica y te proporciona instrucciones sobre cómo optimizar la configuración del antivirus. Para obtener más información, consulta Cómo minimizar el impacto del software antivirus en la velocidad de compilación.
Project Marble: pulido de funciones
En esta sección, se describen los cambios en Android Studio 3.5 que se centran en mejorar las funciones existentes.
Apply Changes
Apply Changes te permite insertar cambios de código y recursos en tu app en ejecución sin reiniciarla y, en algunos casos, sin reiniciar la actividad actual. Apply Changes implementa un enfoque completamente nuevo para preservar el estado de tu app. A diferencia de Instant Run, que reescribe el código de bytes de tu APK, Apply Changes redefine las clases en el momento mediante el aprovechamiento de la instrumentación de tiempo de ejecución compatible con Android 8.0 (nivel de API 26) o versiones posteriores.
Para obtener más información, consulta Apply Changes.
Los botones de la barra de herramientas de Apply Changes.
Flujo de implementación de apps
El IDE tiene un nuevo menú desplegable que te permite seleccionar rápidamente el dispositivo en el que deseas implementar la app. En este menú, también se incluye una opción nueva que te permite ejecutar la app en varios dispositivos a la vez.
Menú desplegable del dispositivo de destino.
Mejora de la detección de caché y la sincronización de Gradle
El IDE ahora detecta mejor si Gradle borra de manera periódica la caché de compilación para reducir el consumo de disco duro. En versiones anteriores, este estado hacía que el IDE informara dependencias faltantes y que fallara la sincronización de Gradle. Ahora, el IDE simplemente descarga dependencias según sea necesario para garantizar que se complete de manera correcta la sincronización de Gradle.
Mejora del resultado del error de compilación
La ventana Build ahora proporciona mejores informes de errores, además de un vínculo al archivo y la línea del error informado, para los siguientes procesos de compilación:
- Compilación y vinculación de AAPT
- R8 y ProGuard
- Dexing
- Combinación de recursos
- Análisis de archivos XML
- Compilación de Java, Kotlinc y CMake
Actualizaciones del proyecto
Experiencia de actualización mejorada para proporcionar más información y acciones que te ayudan a actualizar el IDE y el complemento de Gradle para Android. Por ejemplo, más errores de sincronización y compilación incluyen acciones que te ayudarán a mitigar errores durante la actualización.
Es importante tener en cuenta que puedes actualizar el IDE independientemente de otros componentes, como el complemento de Gradle para Android. Por lo tanto, puedes actualizar el IDE de forma segura tan pronto como esté disponible una versión más reciente y actualizar los otros componentes más adelante.
Editor de diseño
Android Studio 3.5 incluye varias mejoras en la visualización, administración e interacción del diseño.
Cuando usas ConstraintLayout
, una sección Constraints nueva en el panel Attributes enumera las relaciones de restricciones del componente de IU seleccionado. Puedes seleccionar una restricción desde la superficie de diseño o la lista de restricciones para destacar la restricción en ambas áreas.
Relaciones de restricción para un elemento de IU seleccionado.
Del mismo modo, ahora puedes quitar una restricción si la seleccionas y presionas la tecla Delete
. También puedes quitar una restricción si mantienes presionada la tecla Control
(Command
en macOS) y haces clic en el anclaje de restricciones. Ten en cuenta que, cuando mantienes presionada la tecla Control
o Command
y sitúas el cursor sobre un anclaje, las restricciones asociadas se tornan de color rojo a fin de indicar que puedes hacer clic para borrarlas.
Cuando se selecciona una vista, puedes crear una restricción. Para ello, haz clic en cualquiera de los íconos + en la sección Constraint Widget del panel Attributes, como se muestra en la imagen incluida a continuación. Cuando creas una restricción nueva, el editor de diseño ahora selecciona y destaca la restricción, lo que proporciona información visual inmediata sobre lo que acabas de agregar.
Uso del widget de restricción para crear restricciones
Cuando se crea una restricción, el editor de diseño ahora solo muestra los puntos de anclaje aptos que puedes restringir. Antes, el editor de diseño destacaba todos los puntos de anclaje en todas las vistas, independientemente de si podía restringirlas o no. Además, una superposición azul ahora destaca el objetivo de la restricción. Este resaltado es particularmente útil cuando se intenta crear una restricción para un componente que se superpone con otro.
Cómo crear una restricción para un componente superpuesto en Android Studio 3.4.
Cómo crear una restricción para un componente superpuesto en Android Studio 3.5.
Además de las actualizaciones detalladas arriba, Android Studio 3.5 también incluye las siguientes mejoras del editor de diseño:
- El menú desplegable Constraint Widget y de margen predeterminado ahora permite utilizar los recursos de dimensión para los márgenes.
- En la barra de herramientas del editor de diseño, se actualizó la lista de dispositivos que determinan el tamaño de la superficie de diseño. Además, se mejoró el comportamiento de ajuste y cambio de tamaño, y los controladores de cambio de tamaño en la superficie de diseño ahora son visibles. Cuando se cambia el tamaño, aparecen superposiciones nuevas que muestran tamaños de dispositivos comunes.
- El editor de diseño tiene un nuevo esquema de colores, que mejora la coherencia y reduce el contraste entre los componentes, el texto y las restricciones.
- El modo de plano técnico ahora incluye compatibilidad de texto para algunos componentes en los que no se mostraba el texto.
Para obtener más información sobre estos cambios, consulta Project Marble de Android Studio: editor de diseño.
Vinculación de datos
Además de agregar compatibilidad de procesamiento de anotaciones incremental para la vinculación de datos, el IDE mejora las funciones y el rendimiento del editor inteligente al crear expresiones de vinculación de datos en XML.
Rendimiento del editor de código en Android Studio 3.4.

Se mejoró el rendimiento de edición de código en Android Studio 3.5.
Compatibilidad mejorada en proyectos con C/C++
Android Studio 3.5 incluye varios cambios que mejoran la compatibilidad con proyectos de C/C++.
Mejoras en el panel Build Variants para la sincronización de variantes únicas
Ahora, puedes especificar tanto la variante de compilación activa como la ABI activa en el panel Build Variants. Esta función simplifica la configuración de la compilación por módulo y también puede mejorar el rendimiento de la sincronización de Gradle.
Para obtener más información, consulta Cómo cambiar la variante de compilación.
Panel Build Variants con selección de variante única por ABI.
Versiones en paralelo del NDK
Ahora, puedes usar varias versiones del NDK en paralelo. Esta función te brinda más flexibilidad cuando configuras tus proyectos, por ejemplo, si tienes proyectos que usan versiones diferentes del NDK en la misma máquina.
Si tu proyecto usa el complemento de Gradle para Android 3.5.0 o versiones posteriores, también puedes especificar la versión del NDK que debe usar cada módulo de tu proyecto. Puedes usar esta función para crear compilaciones reproducibles y mitigar las incompatibilidades entre las versiones de NDK y el complemento de Android para Gradle.
Si quieres obtener más información, consulta Cómo instalar y configurar el NDK, CMake y LLDB.
Compatibilidad con el Sistema operativo Chrome
Android Studio ahora es compatible con los dispositivos con Chrome OS, como la HP Chromebook x360 14, la Acer Chromebook 13/Spin 13 y otros equipos que puedes consultar en los requisitos del sistema. Para comenzar, descarga Android Studio en tu dispositivo compatible con Chrome OS y sigue las instrucciones de instalación.
Entrega condicional para módulos de funciones
La entrega condicional te permite establecer ciertos requisitos de configuración del dispositivo para que los módulos de funciones se descarguen automáticamente durante la instalación de la app. Por ejemplo, puedes configurar un módulo de funciones que incluya la funcionalidad de realidad aumentada (RA) para que esté disponible desde la instalación de la app solo en los dispositivos compatibles con RA.
Este mecanismo de publicación actualmente admite controlar la descarga de un módulo en el momento de instalación de la app en función de las siguientes configuraciones del dispositivo:
- Funciones de hardware y software del dispositivo, incluida la versión de OpenGL ES
- País del usuario
- Nivel de API
Si un dispositivo no cumple con todos los requisitos que especificaste, no se descargará el módulo durante la instalación de la app. Sin embargo, tu app puede solicitar más tarde que se descargue el módulo a pedido con la biblioteca de Play Core. Para obtener más información, consulta Cómo configurar la entrega condicional.
IntelliJ IDEA 2019.1
En la versión 2019.1, el IDE principal de Android Studio se actualizó con mejoras de IntelliJ IDEA, como la personalización del tema.
La última versión de IntelliJ que se incluyó con Android Studio fue 2018.3.4. Para obtener más información sobre las mejoras de otras versiones de IntelliJ que se incluyen de manera acumulativa con esta versión de Android Studio, consulta las siguientes actualizaciones de corrección de errores:
Actualizaciones del complemento de Android para Gradle 3.5.0
Para obtener información sobre las novedades del complemento de Android para Gradle 3.5.0, como la compatibilidad mejorada del procesamiento de anotaciones incrementales y las pruebas de unidades que se pueden almacenar en la memoria caché, consulta las notas de la versión.
Colaboradores de la comunidad
Gracias a todos los colaboradores de la comunidad que nos ayudaron a descubrir errores y otras formas de mejorar Android Studio 3.5. En particular, queremos agradecerles a las siguientes personas que informaron errores P0 y P1:
|
|
|
3.4 (abril de 2019)
Android Studio 3.4 es una actualización importante que incluye una variedad de nuevas características y mejoras.
3.4.2 (julio de 2019)
Esta actualización menor incluye diversas correcciones de errores y mejoras de rendimiento. Para ver una lista de las correcciones de errores más importantes, consulta la publicación relacionada en el blog de actualizaciones de versiones.
3.4.1 (mayo de 2019)
Esta actualización menor incluye diversas correcciones de errores y mejoras de rendimiento. Para ver una lista de las correcciones de errores más importantes, consulta la publicación relacionada en el blog de actualizaciones de versiones.
3.4.0: problemas conocidos
Se inhabilita la creación de perfiles cuando se implementa la app en un dispositivo con Android Q Beta.
- Cuando se usa la biblioteca de vinculación de datos,
LiveDataListener.onChanged()
puede fallar con una NPE. Se incluirá una corrección para este problema en Android Studio 3.4.1 y ya está disponible en la versión preliminar más reciente de Android Studio 3.5 (consulta el error 122066788).
IntelliJ IDEA 2018.3.4
Se actualizó el IDE principal de Android Studio con mejoras de IntelliJ IDEA mediante la actualización 2018.3.4.
Actualizaciones del complemento de Android para Gradle 3.4.0
Si quieres obtener información sobre las novedades del complemento de Android para Gradle 3.4.0, consulta las notas de la versión.
Nuevo diálogo de estructura del proyecto
El nuevo diálogo Estructura del proyecto (PSD) facilita la actualización de dependencias y la configuración de diferentes aspectos del proyecto, como los módulos, las variantes de compilación, las configuraciones de firma y las variables de compilación.
Puedes abrir el PSD seleccionando File > Project Structure en la barra de menú. También puedes abrir el PSD presionando Ctrl+Shift+Alt+S
en Windows y Linux, o Command+;
(punto y coma) en macOS. A continuación, encontrarás descripciones de algunas de las secciones nuevas y actualizadas del PSD.
Variables
La nueva sección de variables del PSD permite crear y administrar variables de compilación, como aquellas que posibilitan mantener la uniformidad de los números de versión de las dependencias en todo el proyecto.
- Consulta y edita de manera rápida las variables de compilación que ya existen en las secuencias de comandos de compilación de Gradle de tu proyecto.
- Agrega nuevas variables de compilación en el nivel del proyecto o módulo directamente desde el PSD.
Módulos
Configura las propiedades que se aplican a todas las variantes de compilación en un módulo existente o agrega nuevos módulos al proyecto desde la sección Modules. Por ejemplo, aquí puedes configurar las propiedades de defaultConfig
o administrar las configuraciones de firma.
Dependencias
Sigue estos pasos para inspeccionar y visualizar cada dependencia en el gráfico de dependencias del proyecto, tal como lo resolvió Gradle durante la sincronización del proyecto:
- En el panel izquierdo del PSD, selecciona Dependencies.
- En el panel Modules, selecciona el módulo que contenga las dependencias resueltas que quieras inspeccionar.
A la derecha del PSD, abre el panel Resolved Dependencies (que se muestra a continuación).
También puedes buscar y agregar rápidamente dependencias a un proyecto. Para hacerlo, selecciona primero un módulo en la sección Dependencies del PSD, haz clic en el botón (+) en la sección Declared Dependencies y selecciona el tipo de dependencia que quieras agregar.
Según el tipo de dependencia que selecciones, debería aparecer un cuadro de diálogo similar al siguiente para que puedas agregar la dependencia al módulo.
Variantes de compilación
En esta sección del PSD, puedes crear y configurar variantes de compilación y clases de productos para cada módulo del proyecto. Puedes agregar marcadores de posición de manifiesto y archivos ProGuard, asignar claves de firma y mucho más.
Sugerencias
En la sección Suggestions, que se muestra a continuación, puedes consultar actualizaciones recomendadas para las dependencias del proyecto y las variables de compilación.
Nuevo administrador de recursos
El administrador de recursos es una nueva ventana de herramientas para importar, crear, administrar y usar recursos en tu app. Para abrir la ventana de la herramienta, selecciona View > Tool Windows > Resource Manager en la barra de menú. El administrador de recursos permite hacer lo siguiente:
- Visualizar recursos: puedes obtener una vista previa de elementos de diseño, colores y diseños para encontrar rápidamente los recursos que necesitas.
- Importar de forma masiva: puedes importar varios activos de elementos de diseño a la vez arrastrándolos y soltándolos en la ventana de herramientas del administrador de recursos o utilizando el asistente Import Drawables. Para acceder al asistente, selecciona el botón (+) en la esquina superior izquierda de la ventana de herramientas y elige Import Drawables en el menú desplegable.
- Convertir SVG en objetos
VectorDrawable
: puedes usar el asistente Import Drawables para convertir las imágenes SVG en objetosVectorDrawable
. - Arrastrar y soltar activos: desde la ventana de herramientas del administrador de recursos, puedes arrastrar y soltar elementos de diseño en las vistas de diseño y XML del editor de diseño.
- Ver versiones alternativas: ahora, puedes ver versiones alternativas de los recursos haciendo doble clic en un recurso dentro de la ventana Tool. Esta vista permite ver las diferentes versiones que creaste y los calificadores que se incluyeron.
- Vistas de mosaico y de lista: puedes cambiar la vista dentro de la ventana de herramientas para visualizar los recursos de manera distinta.
Para obtener más información, consulta la guía sobre cómo administrar los recursos de la app.
Cómo comprobar los ID de compilación cuando creas perfiles y depuras APK
Cuando incluyes en tu APK archivos de símbolos de depuración para las bibliotecas compartidas .so
, Android Studio comprueba que el ID de compilación de dichos archivos coincida con el ID de compilación de las bibliotecas .so
dentro del APK.
Si compilas las bibliotecas nativas de tu APK con un ID de compilación, Android Studio comprueba que dicho ID en los archivos de símbolos coincida con el ID de compilación de las bibliotecas nativas y rechaza los archivos de símbolos que no coincidan. Si no usas un ID de compilación en el proceso, es posible que ocurran problemas de depuración si proporcionas archivos de símbolos incorrectos.
R8 habilitada de forma predeterminada
R8 integra en un solo paso los procesos de expansión de sintaxis, reducción, ofuscación, optimización y conversión a DEX, lo que mejora notablemente el desarrollo de compilaciones. R8 se presentó en el complemento de Gradle para Android 3.3.0 y ahora está habilitada de forma predeterminada para proyectos de bibliotecas de apps y Android que utilicen el complemento 3.4.0 y versiones posteriores.
En la siguiente imagen, se proporciona una descripción general del proceso de compilación antes de la incorporación de R8.
Con R8, ahora los procesos de expansión de sintaxis, reducción, ofuscación, optimización y conversión a DEX (D8) se completan en un único paso, como se muestra a continuación.
Ten en cuenta que R8 está diseñado para trabajar con las reglas de ProGuard existentes, de modo que es probable que R8 funcione correctamente sin necesidad de que realices ninguna acción. Sin embargo, dado que se trata de una tecnología diferente a la de ProGuard, diseñada específicamente para proyectos de Android, es posible que durante la reducción y la optimización se quite código que ProGuard no quitaría. Por lo tanto, en esta situación poco probable, es posible que sea necesario agregar reglas adicionales para mantener ese código en la compilación de salida.
Si tienes inconvenientes con el uso de R8, consulta las Preguntas frecuentes sobre compatibilidad de R8 para comprobar si hay una solución a tu problema. Si no la hay, informa el error.
Para inhabilitar R8, agrega una de las siguientes líneas al archivo gradle.properties
de tu proyecto:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
El editor de navegación ahora admite todos los tipos de argumentos
Todos los tipos de argumentos que admite el componente de navegación ahora se admiten en el editor de navegación. Para obtener más información sobre qué tipos se admiten, consulta Pasar datos entre destinos.
Mejoras en el editor de diseño
El panel Attributes en el editor de diseño se simplificó en una sola página con secciones que se expanden para ver los atributos que puedes configurar. El panel Attributes también incluye las siguientes actualizaciones:
- Una nueva sección, llamada Declared Attributes, que incluye los atributos que especifica el archivo de diseño y permite agregar rápidamente otros nuevos.
- El panel Attributes ahora también presenta indicadores junto a cada atributo, los cuales están rellenos
cuando el valor del atributo es una referencia de recursos y vacíos
en los demás casos.
- Los atributos con errores o advertencias ahora están resaltados en rojo si tienen errores (por ejemplo, cuando usas valores de diseño no válidos) y en naranja si hay advertencias (por ejemplo, cuando usas valores codificados).
Nueva acción de intención para importar dependencias rápidamente
Si comienzas a usar ciertas clases de Jetpack y Firebase en tu código, una nueva acción de intención sugiere agregar la dependencia de la biblioteca Gradle requerida a tu proyecto si todavía no lo hiciste. Por ejemplo, si incluyes una referencia a la clase WorkManager
sin importar antes la dependencia android.arch.work:work-runtime
requerida, una acción de intención te permite hacerlo fácilmente con un solo clic, tal como se muestra a continuación.
Más específicamente, debido a que Jetpack volvió a empaquetar la biblioteca de compatibilidad en paquetes discretos que son más fáciles de administrar y actualizar, esta acción de intent te ayuda a agregar de manera rápida solo las dependencias que necesitas para los componentes de Jetpack que quieres usar.
3.3 (enero de 2019)
Android Studio 3.3 es una actualización importante que incluye una variedad de funciones y mejoras nuevas.
3.3.2 (marzo de 2019)
Esta actualización menor incluye diversas correcciones de errores y mejoras de rendimiento. Para ver una lista de las correcciones de errores más importantes, consulta la publicación relacionada en el blog de actualizaciones de versiones.
3.3.1 (febrero de 2019)
Esta actualización menor incluye diversas correcciones de errores y mejoras de rendimiento.
IntelliJ IDEA 2018.2.2
Se actualizó el IDE principal de Android Studio con mejoras de IntelliJ IDEA mediante la actualización 2018.2.2.
Actualizaciones del complemento de Android para Gradle
Si quieres obtener información sobre las novedades del complemento de Android para Gradle, consulta las notas de la versión.
Editor de navegación
El editor de navegación permite visualizar y crear navegación rápidamente en tu app mediante el componente de arquitectura de navegación.
Para obtener más información, consulta Cómo implementar la navegación con el componente de arquitectura de navegación.
Cómo borrar directorios de Android Studio sin usar
Cuando ejecutas una versión principal de Android Studio por primera vez, busca directorios que contengan cachés, configuraciones, índices y registros de versiones de Android Studio de las que no se pueda encontrar la instalación correspondiente. En el cuadro de diálogo Delete Unused Android Studio Directories, se muestran ubicaciones, tamaños y horas de última modificación de estos directorios sin usar, y, además, se ofrece la opción de borrarlos.
Los directorios que Android Studio tiene en cuenta para su eliminación son los siguientes:
- Linux:
~/.AndroidStudio[Preview]_X.Y_
- Mac:
~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]_X.Y_
- Windows:
%USER%\.AndroidStudio[Preview]_X.Y_
Mejoras de lint
Cuando se invoca lint desde Gradle, funciona mucho más rápido. Se prevé un rendimiento cuatro veces superior de lint en los proyectos más grandes.
Asistente para crear nuevo proyecto
El asistente Create New Project tiene un nuevo aspecto, además de actualizaciones que ayudan a simplificar la creación de proyectos de Android Studio nuevos.
Para obtener más información, consulta Cómo crear un proyecto.
Actualizaciones del generador de perfiles
Android Studio 3.3 incluye actualizaciones para varios de los generadores de perfiles individuales.
Mejor rendimiento
Sobre la base de los comentarios de los usuarios, se mejoró ampliamente el rendimiento de procesamiento cuando se usan los generadores de perfiles. Sigue enviando comentarios, en especial, si observas problemas de rendimiento.
Opciones de seguimiento de la asignación de memoria del generador de perfiles
Para mejorar el rendimiento de la app durante la generación de perfiles, la herramienta Generador de perfiles de memoria permite ver las asignaciones de memoria de forma predeterminada y periódicamente. Si lo deseas, puedes cambiar este comportamiento en el menú desplegable Allocation Tracking cuando realices pruebas en dispositivos con Android 8.0 (nivel de API 26) o versiones posteriores.
En el menú desplegable Allocation Tracking, puedes elegir uno de los siguientes modos:
- Full: captura todas las asignaciones de memoria de objetos. Ten en cuenta que, si tu app asigna una gran cantidad de objetos, es posible que se produzcan importantes problemas de rendimiento durante la generación de perfiles.
- Sampled: captura una muestra periódica de las asignaciones de memoria de objetos. Este es el comportamiento predeterminado y tiene menos impacto en el rendimiento de la app durante la generación de perfiles. Quizá observes algunos problemas de rendimiento con apps que asignen muchos objetos en poco tiempo.
Off: desactiva la asignación de memoria. Si aún no está seleccionado, este modo se habilita automáticamente mientras se registra la actividad de una CPU y vuelve a la configuración anterior cuando finaliza el registro. Puedes cambiar este comportamiento en el diálogo de configuración de registro de la CPU.
El seguimiento afecta a los objetos Java y a las referencias JNI.
Cómo inspeccionar datos de procesamiento de marcos
En el Generador de perfiles de CPU, puedes inspeccionar cuánto tiempo le toma a tu app de Java procesar cada marco del subproceso de IU y de RenderThread. Estos datos pueden resultar útiles para investigar los cuellos de botella que causan el bloqueo de la IU y una baja velocidad de marcos. Por ejemplo, cada marco que tarda más de los 16 ms necesarios para mantener una velocidad de fotogramas fluida se muestra en rojo.
Para ver los datos de procesamiento de marcos, registra un seguimiento con la configuración Trace System Calls. Después de registrar el seguimiento, busca información sobre cada marco debajo de la sección FRAMES, como se muestra a continuación.
Si quieres obtener más información para investigar y solucionar problemas de velocidad de fotogramas, consulta Procesamiento lento.
Fragmentos en el cronograma del evento
El cronograma del evento ahora muestra cuándo se adjuntan y separan fragmentos. Además, cuando te desplazas sobre un fragmento, un cuadro con información sobre la herramienta permite ver el estado del fragmento.
Cómo visualizar texto con formato en las cargas útiles de conexión del Generador de perfiles de red
Anteriormente, en el Generador de perfiles de red, solo era posible ver texto sin formato de las cargas útiles de conexión. Ahora, Android Studio 3.3 formatea ciertos tipos de texto de forma predeterminada, como JSON, XML y HTML. En las pestañas Response y Request, haz clic en el vínculo View Parsed para mostrar el texto con formato y haz clic en View Source para mostrar el que no lo tiene.
Para obtener más información, consulta Cómo inspeccionar el tráfico de red con el Generador de perfiles de red.
Descarga automática de componentes del SDK
Cuando necesites un componente del SDK de las plataformas SDK, NDK o CMake para tu proyecto, Gradle ahora intenta descargar de forma automática los paquetes necesarios, siempre y cuando hayas aceptado previamente los contratos de licencia relacionados mediante SDK Manager.
Para obtener más información, consulta Cómo descargar automáticamente los paquetes que faltan con Gradle.
Compatibilidad con Clang-Tidy
Android Studio ahora es compatible con análisis de código estático mediante Clang-Tidy para proyectos que incluyen código nativo. Para habilitar la compatibilidad con Clang-Tidy, actualiza tu NDK a la versión r18 o una versión posterior.
Luego, puedes habilitar o volver a habilitar las inspecciones abriendo el diálogo Settings o Preferences y navegando a Editor > Inspections > C/C++ > General > Clang-Tidy. Cuando se selecciona esta inspección en el cuadro de diálogo Settings o Preferences, también puedes ver la lista de verificaciones de Clang-Tidy que están habilitadas e inhabilitadas en la sección Option del panel de la derecha. Para habilitar verificaciones adicionales, agrégalas a la lista y haz clic en Apply.
Para configurar Clang-Tidy con opciones adicionales, haz clic en Configure Clang-Tidy Checks Options y agrégalas al diálogo que aparezca.
Cómo quitar opciones para la personalización de C++
Se quitaron las siguientes opciones del diálogo de compatibilidad con la personalización de C++:
- Compatibilidad con excepciones (-fexceptions)
- Compatibilidad con información del tipo de tiempo de ejecución (-ftti)
Los comportamientos correspondientes están habilitados para todos los proyectos que se crean con Android Studio.
CMake versión 3.10.2
La versión 3.10.2 de CMake ahora se incluye con el SDK Manager. Ten en cuenta que Gradle todavía usa la versión 3.6.0 de forma predeterminada.
Si quieres especificar una versión de CMake para que use Gradle, agrega lo siguiente al archivo build.gradle
de tu módulo:
android {
...
externalNativeBuild {
cmake {
...
version "3.10.2"
}
}
}
Para obtener más información sobre la configuración de CMake en build.gradle
, consulta Cómo configurar Gradle manualmente.
Nueva sintaxis "+" para especificar versiones mínimas de CMake
Cuando se especifica una versión de CMake en el archivo build.gradle
de tu módulo principal, ahora puedes agregar un "+" para que coincida con el comportamiento del comando cmake_minimum_required()
de CMake.
Los paquetes Android App Bundle ahora son compatibles con apps instantáneas
Ahora, Android Studio permite crear paquetes Android App Bundle totalmente compatibles con Google Play Instant. En otras palabras, ahora puedes compilar e implementar apps instaladas y experiencias instantáneas desde un solo proyecto de Android Studio e incluirlas en un solo paquete Android App Bundle.
Si estás creando un nuevo proyecto de Android Studio mediante el diálogo Create New Project, asegúrate de marcar la casilla junto a Configure your project > This project will support instant apps. Luego, Android Studio crea un nuevo proyecto de app como lo haría normalmente, pero incluye las siguientes propiedades en el manifiesto para agregar compatibilidad con apps instantáneas al módulo base de la app:
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module dist:instant="true" />
...
</manifest>
Después, puedes crear un módulo de funciones habilitadas instantáneamente. Para ello, selecciona File > New > New Module en la barra de menú y elige Instant Dynamic Feature Module del diálogo Create New Module. Ten en cuenta que crear este módulo también habilita la compatibilidad con apps instantáneas del módulo base de la app.
Para implementar tu app en un dispositivo local como experiencia instantánea, edita la configuración de ejecución y marca la casilla junto a General > Deploy as instant app.
Sincronización de proyectos con una sola variante
Sincronizar tu proyecto con la configuración de compilación es un paso importante para que Android Studio pueda comprender la manera en que está estructurado tu proyecto. Sin embargo, en el caso de proyectos grandes, el proceso puede demorar mucho. Si tu proyecto usa múltiples variantes de compilación, ahora puedes optimizar las sincronizaciones del proyecto limitándolas solo a la variante que hayas seleccionado.
Para habilitar esta optimización, debes usar Android Studio 3.3 o una versión posterior con el complemento de Gradle para Android 3.3.0 o una versión posterior. Cuando cumples con esos requisitos, el IDE te solicita que habilites la optimización al momento de sincronizar el proyecto. La optimización también está habilitada de forma predeterminada en proyectos nuevos.
Para habilitarla manualmente, haz clic en File > Settings > Experimental > Gradle (Android Studio > Preferences > Experimental > Gradle en Mac) y selecciona la casilla de verificación Only sync the active variant.
Para obtener más información, consulta Cómo habilitar la sincronización de proyectos con una sola variante.
Cómo enviar comentarios rápidos
Si te suscribiste para compartir estadísticas de uso a fin de ayudar a mejorar Android Studio, verás estos dos íconos nuevos en la barra de estado, en la parte inferior de la ventana del IDE:
Haz clic en el ícono que mejor represente tu experiencia actual con el IDE. Cuando lo hagas, el IDE enviará estadísticas de uso que permitan al equipo de Android Studio comprender mejor lo que piensas. En algunos casos, por ejemplo, cuando indiques que tuviste una experiencia negativa con el IDE, podrás proporcionar más comentarios.
Si aún no lo hiciste, habilita las estadísticas de uso. Para ello, abre el diálogo Settings (Preferences en Mac), navega hasta la opción Appearance & Behavior > System Settings > Data Sharing y marca Send usage statistics to Google.
3.2 (septiembre de 2018)
Android Studio 3.2 es una actualización importante que incluye varias funciones y mejoras nuevas.
3.2.1 (octubre de 2018)
Esta actualización de Android Studio 3.2 incluye los cambios y las correcciones que figuran a continuación:
- La versión de Kotlin del paquete ahora es 1.2.71.
- La versión predeterminada de las herramientas de compilación ahora es 28.0.3.
- En la biblioteca de navegación, se cambiaron los nombres de los tipos de argumentos de
type
aargType
. - Se corrigieron los siguientes errores:
- Cuando se usaba la biblioteca de vinculación de datos, los nombres de variables con guiones bajos causaban errores de compilación.
- CMake causaba errores en IntelliSense y otras funciones de CLion.
- Agregar un
SliceProvider
causaba errores de compilación en proyectos que no usaban bibliotecasandroidx.*
. - Algunas pruebas de unidades Kotlin no se ejecutaban.
- Un error con la vinculación de datos causaba una
PsiInvalidElementAccessException
. - Los elementos
<merge>
causaban fallas ocasionales en el editor de diseño.
Problemas conocidos de la versión 3.2.0
Nota: Estos problemas se resolvieron en Android Studio 3.2.1.
Recomendamos encarecidamente no usar la versión 1.2.70 de Kotlin.
La versión 1.2.61 corrige un error que puede hacer que Android Studio se bloquee, pero Kotlin 1.2.70 no incluye esta solución.
Sin embargo, las versiones de Kotlin 1.2.71 y posteriores incluyen esta solución.
-
Aunque normalmente no necesitas especificar la versión de las herramientas de compilación, cuando usas el complemento de Gradle para Android 3.2.0 con
renderscriptSupportModeEnabled
establecido entrue
, debes incluir lo siguiente en el archivobuild.gradle
de cada módulo:android.buildToolsVersion "28.0.3"
Novedades del Asistente
Un nuevo asistente te informa los cambios más recientes en Android Studio.
El asistente se abre cuando inicias Android Studio o después de una instalación o actualización reciente si detecta que hay información nueva para mostrar. También puedes abrir el asistente en Help > What's new in Android Studio.
Android Jetpack
Android Jetpack ayuda a acelerar el desarrollo en Android con componentes, herramientas y pautas que eliminan las tareas repetitivas y permiten compilar de manera más rápida y simple apps de alta calidad que pueden probarse. Android Studio incluye las siguientes actualizaciones para admitir Jetpack. Si deseas obtener más información, consulta la documentación de Jetpack.
Editor de navegación
El nuevo editor de navegación se integra con los componentes de navegación de Android Jetpack para proporcionar una vista gráfica que permita crear la estructura de navegación de tu app. El editor de navegación simplifica el diseño y la implementación de la navegación entre destinos dentro de la app.
En Android Studio 3.2, el editor de navegación es una función experimental. Para habilitarlo, haz clic en File > Settings (Android Studio > Preferences en Mac), selecciona la categoría Experimental en el panel de la izquierda, marca el cuadro junto a la opción Enable Navigation Editor y reinicia Android Studio.
Para obtener más información, lee la documentación del editor de navegación.
Migración de AndroidX
Como parte de Jetpack, estamos migrando las bibliotecas de compatibilidad de Android a una nueva biblioteca de extensiones con el espacio de nombres androidx
. Para obtener más información, consulta la descripción general de AndroidX.
Android Studio 3.2 te ayuda en este proceso con una nueva función de migración.
Para migrar un proyecto existente a AndroidX, elige la opción Refactor > Migrate to AndroidX. Si tienes dependencias Maven que no se migraron al espacio de nombres de AndroidX, el sistema de compilación de Android Studio también convierte automáticamente esas dependencias de proyecto.
El complemento de Gradle para Android proporciona las siguientes marcas globales que puedes configurar en el archivo gradle.properties
:
android.useAndroidX
: cuando se establece entrue
, esta marca indica que deseas comenzar a usar AndroidX a partir de este momento. Si no hay ninguna marca, Android Studio se comporta como si se hubiera establecido enfalse
.android.enableJetifier
: cuando se establece entrue
, esta marca indica que deseas tener compatibilidad con herramientas (desde el complemento de Gradle para Android) para convertir automáticamente las bibliotecas de terceros existentes como si estuvieran escritas para AndroidX. Si no hay ninguna marca, Android Studio se comporta como si se hubiera establecido enfalse
.
Las dos marcas están configuradas en true
cuando se usa el comando Migrate to AndroidX.
Si quieres comenzar a usar las bibliotecas de AndroidX inmediatamente y no necesitas convertir bibliotecas de terceros existentes, puedes establecer la marca android.useAndroidX
en true
y la marca android.enableJetifier
en false
.
Android App Bundle
Android App Bundle es un nuevo formato de carga que incluye todos los recursos y el código compilado de tu app, pero delega la generación del APK y la firma a Google Play Store.
El nuevo modelo de entrega de apps de Google Play usa tu paquete de aplicación a fin de generar y entregar APK optimizados para la configuración del dispositivo de cada usuario. Por lo tanto, los usuarios solo descargan el código y los recursos necesarios para ejecutar tu app. Ya no es necesario compilar, firmar y administrar múltiples APK, y los usuarios obtienen descargas más pequeñas y optimizadas.
Además, puedes agregar módulos de funciones dinámicas a tu proyecto de apps e incluirlos en el paquete de aplicación. Luego, los usuarios pueden descargar e instalar las funciones de tu app a pedido.
Para crear un paquete, selecciona Build > Build Bundle(s) / APK(s) > Build Bundle(s).
Para obtener más información, incluidas las instrucciones para compilar y analizar un Android App Bundle, consulta Android App Bundle.
Datos de muestra en el editor de diseño
Muchos diseños de Android incluyen datos de tiempo de ejecución que pueden dificultar la visualización de la apariencia del diseño durante el desarrollo de apps. Ahora, puedes obtener fácilmente una vista previa en el editor de diseño junto con datos simples. Cuando agregas una vista, aparece el botón debajo de ella en la ventana de diseño. Haz clic en este botón para configurar los atributos de vista de diseño. Puedes elegir entre una variedad de plantillas de datos de muestra y especificar la cantidad de elementos de muestra a fin de completar la vista.
Para intentar usar datos de muestra, agrega un elemento RecyclerView
a un nuevo diseño, haz clic en el botón de los atributos de diseño debajo de la vista y elige una selección en el carrusel de plantillas de datos de muestra.
Slices
Las Slices proporcionan una nueva manera de incorporar porciones de la funcionalidad de tu app a otras superficies de interfaz de usuario en Android. Por ejemplo, las Slices pueden hacer que sea posible mostrar la funcionalidad y el contenido de la app en sugerencias de la Búsqueda de Google.
Android Studio 3.2 tiene una plantilla integrada que te ayudará a extender tu app con las nuevas API de Proveedor de secciones, además de la posibilidad de realizar comprobaciones de lint a fin de asegurarte de estar siguiendo las prácticas recomendadas para construir secciones.
Haz clic con el botón derecho en la carpeta de un proyecto y selecciona New > Other > Slice Provider para comenzar.
Si quieres obtener más información, incluida la forma de probar las interacciones de Slices, consulta la Guía de introducción a Slices.
Kotlin 1.2.61
Android Studio 3.2 incluye Kotlin 1.2.61, y el nuevo SDK de Android se integra mejor con Kotlin. Para obtener más información, consulta el Blog para desarrolladores de Android.
IntelliJ IDEA 2018.1.6
Se actualizó el IDE principal de Android Studio con mejoras de IntelliJ IDEA mediante la actualización 2018.1.6.
Generadores de perfiles de Android
Prueba las siguientes funciones nuevas de Android Profiler en Android Studio 3.2.
Sesiones
Ahora, puedes guardar los datos de Profiler como sesiones para volver a visitarlas y revisarlas en otro momento. Recuerda que el generador de perfiles conserva los datos de sesión hasta que reinicias el IDE.
Cuando registras el seguimiento de un método o capturas un volcado de montón, el IDE agrega datos (junto con la actividad de red de la app) como una entrada independiente de la sesión actual, y puedes ir y volver fácilmente entre registros para comparar datos.
Registro del sistema
En el Generador de perfiles de CPU, selecciona la nueva configuración de registro del sistema para inspeccionar la CPU del sistema del dispositivo y la actividad de subprocesos. Esta actividad de registro se crea en systrace
y sirve para investigar los problemas del sistema, como los bloqueos de IU.
Cuando usas esta configuración de registro, puedes marcar visualmente rutinas de código importantes en el cronograma del generador de perfiles mediante la instrumentación del código C/C++ con la API nativa de seguimiento o del código Java con la clase Trace
.
Inspecciona referencias de JNI en el Generador de perfiles de memoria
Si implementas tu app en un dispositivo que ejecuta Android 8.0 (nivel de API 26) o una versión posterior, ahora puedes inspeccionar asignaciones de memoria del código JNI de la app mediante el Generador de perfiles de memoria.
Mientras se esté ejecutando la app, selecciona una parte del cronograma que quieras inspeccionar y elige JNI heap en el menú desplegable de la parte superior de la lista, como se muestra más abajo. Podrás inspeccionar los objetos de la pila como lo harías normalmente y hacer doble clic en ellos en la pestaña Allocation Call Stack para ver dónde se asignan y publican las referencias de JNI en tu código.
Cómo importar, exportar e inspeccionar archivos de volcado de montón de la memoria
Ahora, puedes importar, inspeccionar y exportar archivos .hprof
de volcado de montón de la memoria creados con el Generador de perfiles de memoria.
Para importar el archivo .hprof
, haz clic en Start new profiler session en el panel Sessions y selecciona Load from file. Luego, podrás inspeccionar sus datos en el Generador de perfiles de memoria como lo harías con cualquier otro volcado de pila.
Si quieres guardar los datos de volcado de montón para revisarlos posteriormente, usa el botón Export Heap Dump, que está a la derecha de la entrada Heap Dump en el panel Sessions. En el cuadro de diálogo Export As, guarda el archivo con la extensión de nombre de archivo .hprof
.
Registra la actividad de la CPU durante el inicio de una app
Ahora, puedes registrar la actividad de la CPU durante el inicio de tu app de la siguiente manera:
- Selecciona Run > Edit Configurations en el menú principal.
- En la pestaña Perfilado de la configuración de ejecución deseada, marca el cuadro junto a la opción Comenzar a registrar un seguimiento de métodos en el inicio.
- Selecciona una configuración de registro de CPU para usarla en el menú desplegable.
- Implementa tu app en un dispositivo que ejecute Android 8.0 (API nivel 26) o una versión posterior seleccionando Ejecutar > Perfil.
Cómo exportar registros de CPU
Después de registrar la actividad de la CPU con el Generador de perfiles de CPU, puedes exportar los datos como un archivo .trace
para compartirlos con otras personas o inspeccionarlos más tarde.
Para exportar un seguimiento después de haber registrado la actividad de la CPU, sigue estos pasos:
- Haz clic con el botón derecho en el registro que quieras exportar del cronograma de la CPU.
- Selecciona la opción Exportar seguimiento del menú desplegable.
- Navega hasta donde quieras guardar el archivo y haz clic en Guardar.
Cómo importar e inspeccionar archivos de seguimiento de la CPU
Ahora, puedes importar e inspeccionar archivos .trace
creados con la API de depuración o el Generador de perfiles de CPU. Por el momento, no es posible importar registros del sistema.
Para importar el seguimiento, haz clic en Start new profiler session en el panel Sessions y selecciona Load from file. Luego, podrás inspeccionar los datos en el Generador de perfiles de CPU como lo harías normalmente, con las siguientes excepciones:
- La actividad de la CPU no está representada en el cronograma de la CPU.
- El cronograma de actividades de subprocesos indica solo cuando hay datos de seguimiento disponibles para cada subproceso y no los estados reales de los subprocesos (como en ejecución, en espera o suspendido).
Cómo registrar la actividad de la CPU con la API de depuración
Ahora, puedes iniciar y detener la grabación de la actividad de la CPU en el Generador de perfiles de CPU mediante la instrumentación de tu app con la API de depuración. Después de implementar tu app en un dispositivo, el generador de perfiles comienza a registrar automáticamente la actividad de la CPU startMethodTracing(String tracePath)
y el generador de perfiles deja de grabar cuando la app realiza llamadas stopMethodTracing()
. Mientras se registra la actividad de la CPU que se activa con esta API, el Generador de perfiles de CPU muestra la API de depuración como la configuración de registro de CPU seleccionada.
Generador de perfiles de energía
En el Generador de perfiles de energía, se visualiza el uso de energía estimado de tu app y los eventos del sistema que afectan dicho uso, como los bloqueos de activación, las alarmas y los trabajos.
Esta herramienta aparece como una nueva fila en la parte inferior de la ventana Profiler cuando ejecutas tu app en un dispositivo conectado o un Android Emulator que ejecuta Android 8.0 (nivel de API 26) o una versión posterior.
Haz clic en la fila Energy para maximizar la vista del generador de perfiles de energía. Coloca el cursor del mouse sobre una barra del cronograma para ver un desglose del uso de energía de la CPU, la red y los recursos de ubicación (GPS), además de eventos del sistema relevantes.
Los eventos del sistema que afectan el uso de energía se indican en el cronograma System debajo del cronograma Energy. Los detalles de los eventos del sistema dentro del intervalo de tiempo especificado aparecen en el panel de eventos cuando seleccionas un intervalo de tiempo en el cronograma Energy.
Selecciona un evento del sistema (por ejemplo, un bloqueo de activación) en el panel de eventos para ver la pila de llamadas y otros detalles. A fin de dirigirte al código responsable de un evento del sistema, haz doble clic en la entrada correspondiente de la pila de llamadas.
Comprobación de lint
Android Studio 3.2 incluye muchas funciones nuevas y mejoradas para la comprobación de lint.
Las nuevas comprobaciones de lint te ayudan a encontrar e identificar problemas comunes de código, que van desde advertencias sobre posibles problemas de usabilidad hasta errores de prioridad alta relativos a vulnerabilidades de seguridad potenciales.
Lint revisa la interoperabilidad de Java/Kotlin
Para asegurarte de que tu código Java interopere de manera correcta con el código Kotlin, las nuevas comprobaciones de lint aplican las prácticas recomendadas que se describen en la Guía de interoperabilidad de Kotlin. Ejemplos de estas comprobaciones incluyen la búsqueda de la presencia de anotaciones de anulación, el uso de palabras clave fijas de Kotlin y la colocación de parámetros lambda.
Para habilitar estas comprobaciones, haz clic en File > Settings (Android Studio > Preferences en Mac) a fin de abrir el diálogo Settings, ve a la sección Editor > Inspections > Android > Lint > Interoperability > Kotlin Interoperability y selecciona las reglas que quieras habilitar.
Para habilitar estas verificaciones desde las compilaciones de líneas de comandos, agrega lo siguiente en tu archivo build.gradle
:
android {
lintOptions {
check 'Interoperability'
}
}
Comprobaciones de lint para Slices
Con las nuevas comprobaciones de lint para Slices, podrás asegurarte de crear Slices correctamente. Por ejemplo, entre otros aspectos, te advierten si no asignaste una acción primaria a una Slice.
Nueva orientación de Gradle
Usa la nueva tarea lintFix
de Gradle para aplicar todas las correcciones seguras sugeridas mediante la comprobación de lint directamente en el código fuente. Un ejemplo de comprobación de lint que sugiere que se aplique una corrección segura es SyntheticAccessor
.
Actualizaciones de metadatos
Se actualizaron diversos metadatos para las comprobaciones de lint, como las comprobaciones de transmisión de servicio, a fin de que funcionen con Android 9 (nivel de API 28).
Advertencia si se ejecuta lint en una variante nueva
Lint ahora registra con qué variante y versión se registra un punto de referencia y te advierte si lo ejecutas en una variante diferente a la que se usó para crear el punto de referencia.
Mejoras en comprobaciones de lint existentes
Android Studio 3.2 incluye muchas mejoras a comprobaciones de lint existentes. Por ejemplo, las comprobaciones de ciclo de recursos ahora se aplican a tipos de recursos adicionales y el detector de traducción puede encontrar traducciones faltantes inmediatamente en el editor.
ID de problemas más detectables
Los ID de problemas ahora se muestran en más lugares, incluida la ventana Inspection Results. Esto te permite encontrar más fácilmente la información que necesitas para habilitar o inhabilitar comprobaciones específicas mediante lintOptions
en build.gradle
.
Para obtener más información, consulta Cómo configurar opciones de lint con Gradle.
Vinculación de datos V2
La Vinculación de datos V2 ahora está habilitada de forma predeterminada y es compatible con V1. Esto significa que si tienes dependencias de biblioteca que compilaste con V1, puedes usarlas con proyectos que usan la Vinculación de datos V2. Sin embargo, ten en cuenta que los proyectos que usan V1 no pueden consumir dependencias compiladas con V2.
Expansión de sintaxis en D8
En Android Studio 3.1, integramos el paso de expansión de sintaxis a la herramienta D8 como una función experimental, lo que reduce el tiempo de compilación general. En Android Studio 3.2, la función de expansión de sintaxis con D8 está activada de forma predeterminada.
Nuevo reductor de código
R8 es una nueva herramienta que reemplaza a ProGuard en la ofuscación y reducción de código. Puedes comenzar a usar la versión preliminar de R8 si incluyes lo siguiente en el archivo gradle.properties
del proyecto:
android.enableR8 = true
Cambio en los ABI predeterminados para varios APK
Cuando compilas varios APK orientados a una ABI diferente, el complemento ya no genera APK para las siguientes ABI de forma predeterminada: mips
, mips64
y armeabi
.
Para compilar un APK que se oriente a esas ABI, usa NDK r16b o una versión anterior, y especifica las ABI en el archivo build.gradle
, como se muestra a continuación:
Groovy
splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
Kotlin
splits { abi { include("armeabi", "mips", "mips64") ... } }
Funciones del editor mejoradas para archivos de compilación CMake
Si usas CMake para agregar código C y C++ a tu proyecto, Android Studio ahora incluye funciones del editor mejoradas que puedes usar para editar secuencias de comandos de compilación de CMake, entre las que se incluyen las siguientes:
- Resaltado de sintaxis y sugerencias para completar código: el IDE ahora resalta y muestra sugerencias para completar el código de comandos comunes de CMake. Además, puedes navegar hasta un archivo haciendo clic en él mientras presionas la tecla Control (o Comando en Mac).
- Reformateo de código: ahora, puedes usar la opción para volver a formatear código de IntelliJ a fin de aplicar estilos de código a tus secuencias de comando de compilación de CMake.
- Reestructuración segura: las herramientas de reestructuración integradas del IDE también comprueban si cambias el nombre de los archivos a los que haces referencia en las secuencias de comandos de compilación de CMake o borras esos archivos.
Navega por archivos de encabezados externos
Cuando usabas la ventana Proyecto en versiones anteriores de Android Studio, podías explorar e inspeccionar solo los archivos de encabezados que pertenecían a bibliotecas que creabas desde un proyecto local. Con esta versión, también puedes ver e inspeccionar archivos de encabezados que se incluyen con dependencias de bibliotecas de C/C++ externas que puedes importar al proyecto de tu app.
Si ya incluyes código y bibliotecas de C/C++ en tu proyecto, abre la ventana Proyecto a la izquierda del IDE. Para ello, selecciona View > Tool Windows > Project en el menú principal y elige Android en el menú desplegable. En el directorio cpp, todos los encabezados que están dentro del alcance del proyecto de tu app se organizan en el nodo include para cada una de las dependencias de bibliotecas de C/C++, como se muestra a continuación:
Multidex nativo habilitado de forma predeterminada
Las versiones anteriores de Android Studio habilitaban multidex nativo cuando se implementaba la versión de depuración de una app en un dispositivo con la API de Android nivel 21 o posterior. Ahora, si ejecutas una implementación en un dispositivo o creas un APK para publicar, el complemento de Gradle para Android habilita el multidex nativo correspondiente a todos los módulos configurados en minSdkVersion=21
o versiones posteriores.
Se transfirió AAPT2 al repositorio Maven de Google
A partir de Android Studio 3.2, el origen de AAPT2 (Android Asset Packaging Tool 2) es el repositorio Maven de Google.
Para usar AAPT2, asegúrate de tener una dependencia de google()
en tu archivo build.gradle
, como se muestra a continuación:
Groovy
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() } }
Kotlin
buildscript { repositories { google() // here jcenter() } dependencies { classpath("com.android.tools.build:gradle:3.2.0") } } allprojects { repositories { google() // and here jcenter() } }
La nueva versión de AAPT2 corrige muchos problemas, entre los que se incluye la administración mejorada de caracteres no ASCII en Windows.
Eliminación de la configuración on-demand
Se quitó la preferencia Configuración on demand de Android Studio.
Android Studio ya no transmite el argumento --configure-on-demand
a Gradle.
Asistente de conexión de ADB
El nuevo asistente de conexión de ADB proporciona instrucciones detalladas para ayudarte a configurar y usar un dispositivo en la conexión Android Debug Bridge (ADB).
Para iniciar el asistente, selecciona Tools > Connection Assistant.
El asistente de conexión de ADB proporciona instrucciones, controles en contexto y una lista de dispositivos conectados en una serie de páginas del panel Asistente.
Mejoras del emulador
Ahora puedes guardar y cargar instantáneas de un AVD (dispositivo virtual Android) cuando quieras en el Emulador de Android, lo que permite mostrar de forma rápida y sencilla un dispositivo emulado en un estado conocido para pruebas. Cuando editas un AVD con el Administrador de AVD, puedes especificar qué instantánea quieres cargar cuando se inicia el dispositivo correspondiente.
Los controles para guardar, cargar y administrar instantáneas de AVD ahora se encuentran en la pestaña Snapshots de la ventana Extended controls del emulador.
Para obtener más información, consulta Instantáneas.
Para obtener información adicional sobre las novedades y los cambios del emulador, consulta las notas de la versión del emulador.
3.1 (marzo de 2018)
Android Studio 3.1.0 es una actualización importante que incluye una variedad de funciones y mejoras nuevas.
3.1.4 (agosto de 2018)
Esta actualización de Android Studio 3.1 incluye los cambios y las correcciones que figuran a continuación:
- La versión de Kotlin del paquete ahora es 1.2.50.
- Los proyectos nuevos se crean con los
kotlin-stdlib-jdk* artifacts
, en lugar de los artefactoskotlin-stdlib-jre*
, que ya no están disponibles. - Se mejoró el análisis de R8 de las reglas de ProGuard.
- Se corrigieron los siguientes errores:
- Cuando se intentaba ejecutar la clase principal de Kotlin, el proceso se interrumpía con el error
"Error: Could not find or load main class..."
- R8 ingresaba en un bucle infinito cuando se realizaban determinadas optimizaciones.
- El uso del comando Rerun failed tests en la ventana Run mostraba de forma incorrecta el mensaje "No tests were found" en algunas ocasiones.
- D8 no administraba correctamente instancias
invoke-virtual
, lo que provocaba una falla con el errorVerifyError
:invoke-super/virtual can't be used on private method
-
El compilador de vinculación de datos dependía de una versión anterior de
com.android.tools:annotations
. Ahora, usa anotaciones de herramientas del proyecto base cuando están disponibles. - Android Studio fallaba durante las transiciones de fragmentos cuando usaba generadores de perfiles.
- El depurador fallaba cuando se depuraba un diseño con un cuadro de texto.
- D8 no leía algunos archivos ZIP con caracteres especiales.
3.1.3 (junio de 2018)
Esta actualización de Android Studio 3.1 incluye correcciones para los siguientes errores:
- Las fugas de memoria que hacían que Android Studio se volviera lento y no respondiera después de haber utilizado el editor de diseño. Esta actualización incluye soluciones para la mayoría de estos problemas. Tenemos previsto publicar otra actualización pronto para abordar las demás fugas de memoria.
- Algunas apps creadas con D8 fallaban en algunas tablets Verizon Ellipsis.
- La instalación de apps creadas con D8 fallaba con el error
INSTALL_FAILED_DEXOPT
en dispositivos con Android 5.0 o 5.1 (nivel de API 21 o 22). - Algunas apps que utilizaban la biblioteca OkHttp y se habían creado con D8 se bloqueaban en dispositivos con Android 4.4 (nivel de API 19).
- A veces, Android Studio no se iniciaba y ocurría una
ProcessCanceledException
durante la inicialización de la clase decom.intellij.psi.jsp.JspElementType
.
3.1.2 (abril de 2018)
Esta actualización de Android Studio 3.1 incluye correcciones para los siguientes errores:
- En algunos casos, Android Studio se bloqueaba indefinidamente al salir.
-
Las compilaciones configuradas con conjuntos de fuentes fallaban y aparecía el siguiente mensaje cuando estaba habilitado Instant Run:
"The SourceSet name is not recognized by the Android Gradle Plugin."
- Cuando Instant Run estaba habilitado, las compilaciones de nuevos proyectos de Kotlin fallaban cuando se activaban con el comando Run.
- Durante la edición del archivo
build.gradle
, a veces ocurría un retraso notable entre el momento de escribir un carácter y el momento en que aparecía en la pantalla. -
Ocurrían fallas de compilación durante la conversión a DEX en algunos proyectos con un gran número de módulos o dependencias externas, y aparecía el siguiente mensaje de error:
"RejectedExecutionException: Thread limit exceeded replacing blocked worker"
- El cálculo de la lista de DEX principal de D8 no tenía en cuenta algunas invocaciones reflexivas.
Esta actualización también incluye cambios que aceleran notablemente la ejecución de comprobaciones de lint desde Gradle en determinadas situaciones.
3.1.1 (abril de 2018)
Esta actualización de Android Studio 3.1 incluye correcciones para los siguientes errores:
-
En algunos casos, cuando un proyecto creado en Android Studio 3.0 se abría por primera vez en Android Studio 3.1, la tarea de creación compatible con Gradle se eliminaba del área Before launch en Run/Debug Configurations. Como resultado, los proyectos no se compilaban cuando se hacía clic en los botones Run o Debug, lo cual, a su vez, provocaba fallas como la implementación de APK incorrectos y la aparición de errores cuando se usaba Instant Run.
Para resolver este problema, Android Studio 3.1.1 agrega la tarea de creación compatible con Gradle a la configuración de ejecución de proyectos a los que les falta esta entrada. Esta modificación se produce después de la primera sincronización de Gradle cuando se carga el proyecto.
- El depurador fallaba cuando se depuraba un diseño con un cuadro de texto si estaba habilitada la generación de perfiles avanzada.
- Android Studio dejaba de funcionar después de hacer clic en Build Variants.
- Los archivos AAR (archivo de Android) se extraían dos veces, una durante el proceso de sincronización de Gradle y otra durante el proceso de compilación de Gradle.
- Faltaban partes de algunas interfaces dibujables en vector importadas de archivos SVG.
-
Se actualizó la advertencia que indica que dejará de estar disponible la configuración de dependencia
compile
para incluir pautas más específicas sobre las configuraciones deimplementation
yapi
. Para obtener información sobre cómo migrar sin usar la configuracióncompile
, consulta la documentación de las nuevas configuraciones de dependencias.
Codificación/IDE
IntelliJ 2017.3.3
Se actualizó el IDE principal de Android Studio con mejoras de IntelliJ IDEA mediante la actualización 2017.3.3. Las mejoras incluyen un análisis optimizado del proceso de control para colecciones y cadenas, mejor inferencia de nulidad, nuevas soluciones rápidas y mucho más.
Para obtener más información, consulta las notas de la versión de JetBrains correspondientes a las versiones 2017.2 y 2017.3 de IntelliJ IDEA, así como las notas de la versión de JetBrains relativas a las actualizaciones sobre corrección de errores.
Mejoras de edición de SQL con Room
Cuando usas la biblioteca de base de datos de Room, puedes aprovechar varias mejoras para la edición de SQL:
- La finalización del código dentro de una
Query
entiende las tablas (entidades), las columnas, los parámetros de búsqueda, los alias, las uniones y las subconsultas de SQL, y las cláusulas WITH. - El resaltado de sintaxis SQL ahora funciona.
- Puedes hacer clic con el botón derecho en el nombre de una tabla en SQL y cambiarle el nombre, con lo cual también se vuelve a escribir el código Java o Kotlin correspondiente (incluido, por ejemplo, el tipo de retorno de la consulta). El cambio de nombre también funciona en la dirección opuesta, por lo que, cuando se cambia el nombre de una clase o un campo Java, se vuelve a escribir el código SQL correspondiente.
- Los usos de SQL se muestran cuando se utiliza Find usages (haz clic con el botón derecho y elige Find usages en el menú contextual).
- Para ir a la declaración de una entidad SQL en el código Java o Kotlin, puedes mantener presionada la tecla Control (Comando en Mac) mientras haces clic en la entidad.
Para obtener información sobre el uso de SQL con Room, consulta Cómo guardar contenido en una base de datos local con Room.
Actualizaciones de la vinculación de datos
Esta actualización incluye varias mejoras relativas a la vinculación de datos:
Ahora, puedes usar un objeto
LiveData
como un campo observable en expresiones de vinculación de datos. La claseViewDataBinding
ahora incluye un métodosetLifecycle()
nuevo que se usa para observar objetosLiveData
.La clase
ObservableField
ahora puede aceptar otros objetosObservable
en su constructor.Puedes obtener una vista previa de un nuevo compilador incremental para las clases de vinculación de datos. Para obtener información sobre este nuevo compilador e instrucciones para habilitarlo, consulta Compilador de vinculación de datos V2.
Los beneficios del nuevo compilador incluyen lo siguiente:
Las clases
ViewBinding
se generan mediante el complemento de Gradle para Android antes del compilador de Java.Las bibliotecas mantienen las clases de vinculación que se generan cuando se compila la app, en lugar de regenerarlas cada vez. Esto puede mejorar mucho el rendimiento de proyectos con varios módulos.
Compilador y Gradle
D8 es el compilador de DEX predeterminado
El compilador D8 ahora se usa de forma predeterminada para generar código de bytes DEX.
Este nuevo compilador de DEX incluye varios beneficios, incluidos los siguientes:
- Compilación a DEX más veloz
- Menos uso de memoria
- Generación de código mejorada (mejor asignación de registros y tablas de cadenas más inteligentes)
- Mejor experiencia de depuración al recorrer el código
No es necesario realizar ningún cambio en el código o el flujo de trabajo de desarrollo para obtener estos beneficios, a menos que hayas inhabilitado previamente el compilador D8 de forma manual.
Si configuras android.enableD8
en false
en gradle.properties
, borra esa marca o configúrala en true
:
android.enableD8=true
Para obtener más información, consulta Nuevo compilador de DEX.
Expansión de sintaxis incremental
Para proyectos que usan características de lenguaje Java 8, la función de expansión de sintaxis incremental está habilitada de forma predeterminada, lo que puede mejorar los tiempos de compilación.
Esta función convierte la sintaxis en una forma que el compilador puede procesar de manera más eficiente.
Puedes inhabilitar la función de expansión de sintaxis incremental mediante la especificación de lo siguiente en el archivo gradle.properties
de tu proyecto:
android.enableIncrementalDesugaring=false
Ventana de resultados simplificada
Se reemplazó la consola Gradle con la ventana Build, que tiene las pestañas Sync y Build.
Para obtener información sobre cómo usar la nueva ventana Build simplificada, consulta Cómo controlar el proceso de compilación.
Actualizaciones por lotes y simultaneidad de indexación
Los procesos de indexación de IDE y de sincronización de Gradle ahora son mucho más eficientes y reducen el tiempo perdido en numerosas operaciones de indexación redundantes.
C++ y LLDB
Realizamos muchas mejoras de calidad y rendimiento en las fases de codificación, sincronización, compilación y depuración del desarrollo de C++. Por ejemplo:
Si trabajas con proyectos de C++ grandes, deberías notar una mejora significativa en la reducción del tiempo dedicado a compilar símbolos. El tiempo de sincronización también se reduce enormemente en proyectos grandes.
Se mejoró el rendimiento de compilación y sincronización con CMake mediante una reutilización más intensa de los resultados almacenados en caché.
La incorporación de formateadores ("pretty printers") a más estructuras de datos C++ facilita la lectura de los resultados de LLDB.
LLDB ahora funciona solamente con Android 4.1 (nivel de API 16) y versiones posteriores.
Kotlin
Se actualizó Kotlin a la versión 1.2.30
Android Studio 3.1 incluye la versión 1.2.30 de Kotlin.
El código de Kotlin ahora se analiza con la comprobación de lint de la línea de comandos
Ahora, cuando se ejecuta lint desde la línea de comandos, se analizan las clases de Kotlin.
En cada proyecto en el que quieras ejecutar lint, el repositorio Maven de Google deberá incluirse en el archivo build.gradle
del nivel principal. El repositorio Maven ya se incluye en proyectos creados en Android Studio 3.0 y versiones posteriores.
Herramientas de rendimiento
Cómo realizar muestras de procesos nativos de C++ con el generador de perfiles de CPU
El Generador de perfiles de CPU ahora incluye una configuración predeterminada para registrar seguimientos de muestra de los subprocesos nativos de tu app. Puedes usar esta configuración si implementas la app en un dispositivo con Android 8.0 (nivel de API 26) o una versión posterior, y seleccionas Sampled (Native) en el menú desplegable de configuraciones de registro del Generador de perfiles de CPU. Después de eso, inspecciona y registra el seguimiento como lo harías normalmente.
Puedes cambiar la configuración predeterminada (por ejemplo, el intervalo de muestreo) si creas una configuración de registro.
Para volver a hacer el seguimiento de los subprocesos de Java, selecciona una configuración Sampled (Java) o una Instrumented (Java).
Cómo filtrar registros de CPU, resultados de asignación de memoria y volcados de montón
El Generador de perfiles de CPU y el Generador de perfiles de la memoria incluyen una función de búsqueda que permite filtrar los resultados del registro de un seguimiento de método, las asignaciones de memoria o el volcado de montón.
Para buscar, haz clic en Filter en la esquina superior derecha del panel, escribe la consulta y presiona Intro.
Sugerencia: También puedes abrir el campo de búsqueda presionando Control + F (Comando + F en Mac).
En la pestaña Flame Chart del Generador de perfiles de CPU, las pilas de llamadas que incluyen métodos relacionados con la consulta de búsqueda se resaltan y se mueven a la izquierda del gráfico.
Si quieres obtener más información para filtrar por método, clase o nombre de paquete, consulta Cómo registrar e inspeccionar seguimientos de métodos.
Pestaña "Request" en el Generador de perfiles de red
El Generador de perfiles de red ahora incluye una pestaña Request que proporciona detalles sobre las solicitudes de red durante el cronograma seleccionado. En versiones anteriores, el Generador de perfiles de red solamente proporcionaba información sobre las respuestas de la red.
Vista de subprocesos en el Generador de perfiles de red
Después de seleccionar una parte del cronograma en el Generador de perfiles de red, puedes elegir una de las siguientes pestañas para ver más detalles sobre la actividad de la red durante ese período:
- Connection View: proporciona la misma información que las versiones anteriores de Android Studio, es decir, enumera los archivos que se enviaron o recibieron durante la parte seleccionada del cronograma en todos los subprocesos de la CPU de la app. En cada solicitud, puedes inspeccionar el tamaño, el tipo, el estado y la duración de la transmisión.
- Thread View: muestra la actividad de red de cada uno de los subprocesos de CPU de la app. Esta vista te permite inspeccionar qué subprocesos de la app son responsables de cada solicitud de red.
Inspector de diseño
El Inspector de diseño adquirió nuevas funciones, incluidas algunas que antes proporcionaban las herramientas Hierarchy Viewer y Pixel Perfect, que dejaron de estar disponibles:
- Botones de zoom y combinaciones de teclas para navegar por los diseños e inspeccionarlos
- Superposición de la cuadrícula de referencia
- Capacidad para cargar una imagen de referencia y usarla como una superposición (útil para comparar tu diseño con un modelo de IU)
- La opción Render subtree preview para aislar una vista en un diseño complejo

Editor de diseño
Se implementaron muchas mejoras en la opción Palette del editor de diseño:
- Reorganización de categorías de vistas y diseños.
- Nueva categoría Common de vistas y diseños que puedes agregar mediante un comando Favorite.
- Mejoras en la búsqueda de vistas y diseños.
- Nuevos comandos para abrir documentación de un elemento específico de una vista o un diseño.
Puedes usar el nuevo comando Convert view en Component tree o en el editor de diseño para convertir una vista o un diseño en otro tipo de vista o diseño.
Ahora, puedes crear fácilmente restricciones para los elementos cerca de la vista seleccionada usando el nuevo botón Create a connection en el inspector de vistas, situado en la parte superior de la ventana Attributes.
Instant Run y Run
Se logró un comportamiento más uniforme de la opción Use same selection for future launches en el diálogo Select deployment target. Si se habilita la opción Use same selection, el diálogo Select deployment target se abrirá solamente la primera vez que uses el comando Run hasta que el dispositivo seleccionado ya no esté conectado.
Cuando se dirige a un dispositivo con Android 8.0 (nivel de API 26) o una versión posterior, Instant Run puede implementar cambios en los recursos sin reiniciar la aplicación. Esto es posible porque un APK dividido contiene los recursos.
Emulador
Para obtener información sobre las novedades y los cambios en el emulador desde Android Studio 3.0, consulta las notas de la versión de Android Emulator desde la versión 27.0.2 hasta la versión 27.1.12.
Estas son algunas de las mejoras más importantes:
- Instantáneas de Quick Boot para guardar el estado del emulador y lograr inicios más rápidos, con la capacidad de usar el comando Save now para guardar un estado de inicio personalizado.
- Pantalla del emulador sin ventanas.
- Imágenes del sistema para Android 8.0 (nivel de API 26), Android 8.1 (nivel de API 27) y la vista previa de Android P para desarrolladores.
Mejoras en la interfaz y la experiencia del usuario
Información sobre herramientas, combinaciones de teclas y mensajes útiles adicionales
Agregamos información sobre herramientas y mensajes superpuestos útiles en muchos lugares de Android Studio.
Para ver combinaciones de teclas de muchos de los comandos, mantén el puntero del mouse sobre un botón hasta que aparezca la información sobre la herramienta.
Se eliminó el menú Tools > Android
Se eliminó el menú Tools > Android. Los comandos que estaban en este menú se movieron.
- Muchos comandos ahora están en el menú Tools.
- El comando Sync project with gradle files se movió al menú File.
- Se eliminó el comando Device Monitor, tal como se describe a continuación.
El monitor de dispositivos está disponible en la línea de comandos
En Android Studio 3.1, el monitor de dispositivos cumple una función menor de la que tenía anteriormente. En muchos casos, la funcionalidad disponible a través del monitor de dispositivos ahora se proporciona con herramientas nuevas y mejoradas.
Consulta la documentación del monitor de dispositivos para obtener instrucciones sobre cómo invocar dicho monitor desde la línea de comandos y conocer detalles sobre las herramientas disponibles mediante el monitor de dispositivos.
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 de Android para Gradle 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 debido a la resolución de dependencias retardadas.
- Resolución de dependencias con detección de 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.
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 migrar a CMake o ndk-build para compilar código nativo que quieras empaquetar en tu APK. Para 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 predeterminadas.
Para actualizar tu proyecto a fin de que admita la nueva cadena 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 para que tengas más contexto que te permita comprender otros eventos de rendimiento en el cronograma.
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 vistas y filtros 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 pérdidas de memoria que pueden provocar inestabilidades, fallas e incluso bloqueos de apps. Muestra un gráfico en tiempo real del uso de memoria de tu 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 de origen 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 de dispositivos 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, consulta la guía del explorador de archivos de dispositivos.
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 los módulos "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 de Apps instantáneas 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 de Apps instantáneas 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 interfaces dibujables en vector 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).
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 cuente 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 Firebase App Indexing
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.
Asistente de Android App Links
El Asistente de Android App Links se actualizó con las siguientes capacidades nuevas:
Agregar 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.Crear un archivo de Digital Asset Links 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 intents
Android Studio ahora admite una etiqueta especial en el archivo de manifiesto que te permite probar tus URL de filtro de intents. Estas 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 intents, aparecerá un error de lint. Este error no evita que compiles variantes de depuración, pero sí interrumpe tus compilaciones de lanzamiento.
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 interfaz de usuario 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:
- Nodos en negrita para 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 restaura 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 Maven de Google
Android Studio ahora usa el repositorio Maven de Google de forma predeterminada en lugar de depender de SDK Manager 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 Maven para Google de 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 para 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, las interrupciones 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 del emulador de Android.
2.3 (marzo de 2017)
Android Studio 2.3.0 es, principalmente, una corrección de errores y una actualización para ofrecer estabilidad, pero también incluye una serie de funciones nuevas.
2.3.3 (junio de 2017)
Esta es una actualización menor para agregar compatibilidad con Android O (nivel de API 26).
2.3.2 (abril de 2017)
Esta es una actualización menor de Android Studio 2.3 para implementar los siguientes cambios:
- AVD Manager se actualizó para ser compatible con Google Play en las imágenes del sistema.
- Se corrigieron errores de las compilaciones de NDK cuando se usa R14+ del NDK.
Consulta también las actualizaciones correspondientes del emulador de Android 26.0.3.
2.3.1 (abril de 2017)
Esta es una actualización menor de Android Studio 2.3 que soluciona un problema en el que algunos dispositivos Android físicos no funcionaban correctamente con Instant Run (consulta el error 235879).
Nuevo
- Ahora, Android Studio puede convertir archivos GIF estáticos, PNG, BMP y JPG al formato WebP. WebP es un formato de archivo de imagen que proporciona compresión con pérdida de información (como JPEG) y transparencia (como PNG), pero puede ofrecer mejor compresión que estos otros dos formatos. Para obtener más información, consulta Convierte imágenes a WebP en Android Studio.
- El nuevo App Links Assistant ofrece un asistente paso a paso que simplifica el proceso de agregar vínculos de apps para Android a tu app. Los Android App Links son URL de HTTP que acercan a los usuarios al contenido específico de tu app para Android.
- El editor de diseño ahora incluye compatibilidad con dos nuevas funciones de ConstraintLayout:
- Definir un tamaño de vista según una relación de aspecto
- Crear grupos lineales empaquetados, extendidos y ponderados con cadenas de restricción
- El editor de diseño ahora también permite crear una lista de atributos favoritos para que no tengas que hacer clic en View all attributes si quieres acceder a los atributos que más usas.
- Cuando se agrega un ícono de material con el diálogo de importación de vectores (File > New > Vector Asset), ahora puedes filtrar la lista de íconos disponibles por categoría o por nombre de ícono. Para obtener más información, consulta Agrega un ícono de material.
-
Anotaciones nuevas y actualizadas. La nueva anotación
@RestrictTo
para métodos, clases y paquetes te permite restringir una API. La anotación@VisibleForTesting
actualizada ahora tiene un argumentootherwise
opcional que permite designar cuál debería ser la visibilidad de un método si no fuera necesario hacerlo visible para la prueba. Lint usa la opciónotherwise
para imponer la visibilidad prevista del método. - La nueva compatibilidad con el modelo de referencia de lint permite usar una instantánea del conjunto actual de advertencias de tu proyecto como modelo de referencia para futuras ejecuciones de inspección, de modo que solo se informen problemas nuevos. La instantánea de referencia te permite comenzar a usar lint para detener la compilación de nuevos problemas sin tener que regresar y abordar primero todos los problemas existentes.
- Nuevas comprobaciones de lint, incluidas las siguientes:
- Comprobaciones obsoletas de
SDK_INT
: Android Studio quita el código obsoleto que comprueba las versiones de SDK. - Validación de Object Animator: Lint analiza el código para asegurarse de que tus llamadas a
ObjectAnimator
hagan referencia a métodos válidos con las firmas correctas y comprueba que esos métodos se anoten con@Keep
para evitar que ProGuard les cambie el nombre o los borre durante la compilación de lanzamiento. - Copia innecesaria del decorador de elementos: las versiones anteriores de la biblioteca
RecyclerView
no incluían una clase de decorador divisor, pero se proporcionaba una como muestra en las demostraciones de compatibilidad. Las versiones recientes de la biblioteca sí tienen una clase de decorador divisor. Lint busca la muestra anterior y sugiere reemplazarla por la nueva. - Fuga de WifiManager: en versiones anteriores a Android 7.0 (nivel de API 24), inicializar
WifiManager
conContext.getSystemService()
puede causar una fuga de memoria si el contexto no es el de la aplicación. Lint busca estas inicializaciones y, si no puede determinar que el contexto es el de la aplicación, sugiere usarContext.getApplicationContext()
para obtener el contexto adecuado de la inicialización. - Prefijo de recursos mejorado: la comprobación de lint
resourcePrefix
existente tenía muchas limitaciones. Ahora, es posible configurar un proyecto con un prefijo (comoandroid { resourcePrefix 'my_lib' }
) y lint se asegura de que todos los recursos lo usen. Puedes usar variaciones del nombre para diferentes estilos y temas. Por ejemplo, para el prefijo my_lib, puedes tener temas llamadosMyLibTheme
,myLibAttr
,my_lib_layout
, etc. - Cambiar a WebP: esta comprobación identifica imágenes de tu proyecto que se puedan convertir al formato WebP en función de la configuración
minSdkVersion
del proyecto. Una corrección rápida asociada puede convertir automáticamente las imágenes o puedes convertir imágenes a WebP de forma manual. - WebP inseguro: si tu proyecto ya incluye imágenes WebP, esta comprobación analiza el proyecto para asegurarse de que la configuración
minSdkVersion
sea lo suficientemente alta como para admitir las imágenes incluidas. Para obtener más información sobre la compatibilidad con WebP en Android y Android Studio, consulta ¿Qué navegadores tienen compatibilidad nativa con WebP? y Crea imágenes WebP con Android Studio.
- Comprobaciones obsoletas de
Cambios
- Botón independiente para aplicar los cambios realizados con Instant Run: después de implementar tu app, ahora puedes hacer clic en Apply Changes
para aplicar rápidamente cambios incrementales en tu app en ejecución mediante Instant Run. Los botones Run
y Debug
siempre están disponibles para cuando quieras aplicar los cambios de manera confiable y forzar el reinicio de la app.
- Instant Run solo es compatible cuando se implementa la app en un dispositivo de destino con Android 5.0 (nivel de API 21) o versiones posteriores.
- Instant Run ya no está inhabilitado para proyectos que se vinculen a proyectos nativos externos mediante CMake o ndk-build. Sin embargo, solo puedes usar Instant Run para aplicar cambios incrementales en tu código Java, no en el código nativo.
- Los intercambios indirectos (que puedes forzar en una app en ejecución si haces clic en Run
) ahora son más confiables. Forzar un intercambio indirecto también corrige el problema que no permitía la actualización de los cambios en las IU de las notificaciones y del widget en el dispositivo de destino.
- Incluye optimizaciones que aceleran mucho el inicio de la app. Estas optimizaciones pueden afectar la generación de perfiles, por lo que es necesario inhabilitar Instant Run temporalmente cada vez que generas un perfil de tu app.
-
Los botones AVD Manager
y SDK Manager
ahora se incluyen en la barra de navegación ajustada y en la barra de herramientas completa. Para usar la barra de navegación ajustada, haz clic en View a fin de abrir el menú de vista y asegúrate de que esté seleccionada la opción Navigation Bar y de que la opción Toolbar no esté seleccionada.
- El depurador "Hybrid" cambió su nombre a depurador "Dual".
- En el diálogo Run/Debug Configurations, en la opción Defaults del panel izquierdo, se cambiaron los siguientes nombres de configuración de ejecución sin afectar el comportamiento:
- El nombre JUnit se cambió por Android JUnit. Si tienes un proyecto que usa configuraciones de ejecución JUnit, esas configuraciones se transforman en configuraciones de ejecución Android JUnit la primera vez que abres el proyecto con Android Studio. Aparecerá un diálogo para informarte sobre este cambio.
- El nombre Android Tests se cambió por Android Instrumented Tests.
- El depurador de GPU se eliminó de Android Studio a partir de la versión 2.3. Ahora, está disponible una versión independiente de código abierto de la herramienta en GitHub.
- La opción "Run/Debug" ya no está disponible cuando haces clic con el botón derecho en una secuencia de comandos
*.gradle build
. - Todas las plantillas ahora usan
ConstraintLayout
como diseño predeterminado. - Se cambió el diseño de la paleta de widgets en el editor de diseño.
Esta actualización también incluye una serie de correcciones de errores. Consulta todas las correcciones de errores de la versión 2.3.0.
Problema conocido: Algunos fabricantes de dispositivos impiden que las apps se inicien automáticamente después de instalarlas en el dispositivo. Cuando implementas tu app en un dispositivo físico con Android Studio 2.3, esta restricción interrumpe el comportamiento previsto de Instant Run y provoca el siguiente error: Error: Not found; no service started
. Para evitar este problema, usa el emulador o habilita el inicio automático de tu app en la configuración del dispositivo. El procedimiento para hacerlo es diferente en cada dispositivo, así que debes consultar las instrucciones del fabricante. Para obtener más información sobre este problema, consulta el error 235879.
2.2 (septiembre de 2016)
2.2.3 (diciembre de 2016)
Esta es una actualización menor de Android Studio 2.2. Incluye correcciones de errores centradas en Gradle, el IDE principal y lint.
Cambios de compilación destacados:
- Reversión de ProGuard. Debido a un problema de corrección descubierto en ProGuard 5.3.1, regresamos a ProGuard 5.2.1. Trabajamos con el equipo de ProGuard para obtener una solución rápidamente y esperamos avanzar a ProGuard 5.3.2 en Android Studio 2.3 y Canary 3.
- La corrección de errores de
aaptOptions
IgnoreAssetsPattern
no funciona correctamente (problema 224167). - Corrección de errores en la descarga automática de Gradle relativa a la biblioteca de diseño de restricciones (problema 212128).
- Corrección de errores de un problema del compilador JDK8/Kotlin y de dx (problema 227729).
Consulta todas las correcciones de errores de la versión 2.2.3.
2.2.2 (octubre de 2016)
Esta es una actualización menor de Android Studio 2.2. Incluye una serie de pequeños cambios y correcciones de errores, entre ellos:
- Cuando se informan problemas de Instant Run mediante el IDE, el informe ahora incluye también el resultado de logcat de eventos
InstantRun
. Para ayudarnos a mejorar Instant Run, habilita el registro adicional e informa cualquier problema. - Una serie de pequeñas correcciones de errores de Gradle.
- Una solución para problemas con la generación de varios APK.
2.2.1 (octubre de 2016)
Esta es una actualización menor de Android Studio 2.2. Incluye varias correcciones de errores y una nueva función para habilitar el registro adicional a fin de ayudarnos a solucionar problemas de Instant Run. Para ayudarnos a mejorar Instant Run, habilita el registro adicional e informa cualquier problema.
Nuevo
- Nuevo editor de diseño con herramientas personalizadas para admitir ConstraintLayout.
- Nuevo Inspector de diseño que permite examinar instantáneas de la jerarquía de tu diseño mientras la app se ejecuta en el emulador o en un dispositivo.
- Nueva ventana Assistant para ayudarte a integrar los servicios de Firebase en tu app.
- Nueva herramienta Analizador de APK para que puedas inspeccionar el contenido de tu app empaquetada.
- Nueva herramienta grabadora de pruebas Espresso (actualmente en versión beta) para ayudarte a crear pruebas de IU registrando tus propias interacciones.
- Nueva caché de compilación (actualmente en versión experimental) para acelerar el rendimiento de la compilación.
- Nueva integración de compilación de C/C++ con CMake y ndk-build. Compila y crea código nativo nuevo o existente en bibliotecas empaquetadas en tu APK y depúralo usando lldb. En el caso de proyectos nuevos, Android Studio usa CMake de manera predeterminada, pero también admite ndk-build en proyectos existentes. Si quieres aprender a incluir código nativo en tu aplicación para Android, consulta Cómo agregar código C y C++ a tu proyecto. Si quieres aprender a depurar código nativo con lldb, consulta Cómo depurar código nativo.
- Nuevo navegador de muestras que permite buscar fácilmente el código de muestra de Google Android desde Android Studio para iniciar el desarrollo de la app.
- Nuevo visor de manifiestos combinados que ayuda a diagnosticar cómo se fusiona un archivo de manifiesto con las dependencias de la app en las variantes de compilación del proyecto.
- La ventana Run ahora incluye mensajes de registro para la app que se ejecuta actualmente. Ten en cuenta que puedes configurar la visualización del monitor de logcat, pero no la ventana Run.
- Nuevas funciones de Android Emulator:
- Se agregaron nuevos sensores virtuales y controles Cellular > Signal Strength.
- Se agregó una opción LTE al control Cellular > Network type.
- Se agregaron deslizadores verticales simulados para desplazarse por los menús verticales con la rueda del mouse.
- Nuevas funciones de configuración de ejecución y depuración:
- La pestaña Debugger de las plantillas de aplicaciones para Android y pruebas de Android ahora contienen varias opciones nuevas para la depuración con LLDB.
- La pestaña Profiling de las plantillas de apps para Android y pruebas de Android ahora contienen una opción Capture GPU Commands para habilitar el seguimiento de GPU. Puedes mostrar registros de GPU en el depurador de GPU (función actualmente en versión beta).
- La plantilla de pruebas de Android ahora tiene una opción Firebase Test Lab Device Matrix para el destino de implementación.
- La plantilla de la app nativa ya no está disponible. Si usas esta plantilla en un proyecto, Android Studio la convierte automáticamente en la plantilla de la app para Android.
- La plantilla Android Application cambió su nombre a "Android App".
- Funciones mejoradas de instalación, configuración y rendimiento de la IU en el depurador de GPU (actualmente en versión beta).
- Android Studio ahora viene incluido con OpenJDK 8. Los proyectos existentes todavía usan el JDK especificado en File > Project Structure > SDK Location. Puedes optar por usar el nuevo JDK incluido haciendo clic en File > Project Structure > SDK Location y marcando la casilla de verificación Use embedded JDK.
- Se agregaron nuevos menús y botones de ayuda en la IU para que puedas encontrar más fácilmente la documentación en línea.
Cambios
- Se actualizó la base de código del IDE de IntelliJ 15 a IntelliJ 2016.1.
- Instant Run ahora requiere que se instale el SDK de la plataforma correspondiente al nivel de API del dispositivo de destino.
- Instant Run se inhabilitará automáticamente si el usuario está ejecutando la app con un perfil de trabajo o como un usuario secundario.
- Se corrigieron muchos problemas de confiabilidad de Instant Run que provocaban que los cambios no se implementaran o la app fallara:
- Algunos elementos de la app no se implementaron en la app en ejecución. (Error 213454)
- La app falla cuando el usuario realiza la transición entre las sesiones de Instant Run y las que no son de Instant Run en las que una clase serializable no tiene definido el valor serialVersionUID. (Error 209006)
- Los cambios de estilo no se reflejan con Instant Run. (Error 210851)
- La sesión de Instant Run no es confiable y causa FileNotFoundException. (Error 213083)
- Los cambios en los elementos de diseño no se reflejan hasta que se realiza una nueva compilación completa de KitKat. (Error 21530)
- Los cambios de recursos no se reflejan con Instant Run cuando los conjuntos de orígenes personalizados contienen rutas anidadas. (Error 219145)
- El intercambio directo y el intercambio con reinicio no funcionan si la clase modificada contiene una anotación con un valor enum. (Error 209047)
- Cambios en los datos de anotación que no se reflejan con Instant Run. (Error 210089)
- Instant Run no registra los cambios de código si se realizan fuera del IDE. (Error 213205)
- La sesión de Instant Run no es confiable debido a un token de seguridad que no coincide. (Error 211989)
- El intercambio indirecto falla en dispositivos que no admiten correctamente "ejecutar como". (Error 210875)
- La app falla después de reiniciar Instant Run. (Error 219744)
- Se observó ClassNotFoundException cuando se cambiaba de Instant Run a Instant Debug. (Error 215805)
- Se mejoró el rendimiento de Gradle sync dentro del IDE, especialmente para proyectos grandes.
- Se mejoraron los tiempos de compilación para compilaciones completas e incrementales con el nuevo código de empaquetado de apps.
- Se mejoraron el rendimiento y las funciones del compilador Jack, como la compatibilidad con procesadores de anotaciones y la conversión a DEX en el proceso. Para obtener más información, consulta las notas de la versión del complemento de Gradle para Android 2.2.0.
- Se quitó la propiedad Scale de AVD del administrador de AVD.
- Las opciones de línea de comandos -port y -ports de Android Emulator ahora informan qué puertos y qué número de serie usa la instancia del emulador y advierten si hay algún problema con los valores que proporcionaste.
- Se mejoraron el diálogo Create New Class y las plantillas de archivo correspondientes. Nota: Si personalizaste previamente las plantillas de archivo AnnotationType, Class, Enum, Interface o Singleton, debes modificarlas para que se ajusten a las plantillas nuevas. De lo contrario, no podrás usar los campos nuevos del diálogo Create New Class.
- Se mejoró la interfaz de usuario de Vector Asset Studio y se agregó compatibilidad con archivos de Adobe Photoshop (PSD).
- Se mejoró la interfaz de usuario de Image Asset Studio.
- Se mejoró el selector de recursos de Theme Editor.
- Se corrigieron fugas de memoria y se redujo el uso general de la memoria en Android Studio.
- Se agregó un botón Background en SDK Manager para que puedas seguir trabajando mientras se instalan los paquetes en segundo plano.
- Se mejoraron las funciones de accesibilidad, como la compatibilidad con los lectores de pantalla y la navegación con el teclado.
- Se mejoró el análisis de código, que ahora incluye controles de calidad de código para el uso del lenguaje Java 8 y más análisis entre archivos.
- Se cambiaron varios íconos de la barra de herramientas.
2.1 (abril de 2016)
Los cambios principales en esta actualización ofrecen compatibilidad para el desarrollo con la vista previa de Android N.
2.1.3 (agosto de 2016)
Esta actualización agrega compatibilidad con Gradle 2.14.1, que incluye mejoras de rendimiento, funciones nuevas y una importante corrección de seguridad. Para obtener más información, consulta las notas de la versión de Gradle.
De forma predeterminada, los proyectos nuevos en Android Studio 2.1.3 usan Gradle 2.14.1. En el caso de proyectos existentes, el IDE te pide que realices una actualización a Gradle 2.14.1 y al complemento de Gradle para Android 2.1.3, que se requieren cuando se utilizan Gradle 2.14.1 y las versiones posteriores.
2.1.2 (junio de 2016)
Esta actualización incluye una serie de pequeños cambios y correcciones de errores:
- Actualizaciones y correcciones de errores de Instant Run.
- Mejoras en el rendimiento y las notificaciones de fallas de LLDB.
- Se corrigió una regresión en la actualización de seguridad de Android Studio 2.1.1 que causaba que
git rebase
fallara.
2.1.1 (mayo de 2016)
Actualización de seguridad.
La plataforma de Android N agrega compatibilidad para funciones del lenguaje Java 8, que requieren un nuevo compilador experimental llamado Jack. Por el momento, la última versión de Jack solo es compatible con Android Studio 2.1. Por lo tanto, si quieres usar funciones del lenguaje Java 8, debes usar Android Studio 2.1 para compilar tu app.
Nota: Instant Run se inhabilita cuando habilitas el compilador Jack, dado que no son compatibles por el momento.
Aunque Android Studio 2.1 ahora es estable, el compilador Jack todavía está en fase experimental y debes habilitarlo con la propiedad jackOptions
en tu archivo build.gradle
.
Además de los cambios para admitir la vista previa de N, Android Studio 2.1 incluye correcciones de errores menores y las siguientes mejoras:
- El depurador C++ compatible con Java ahora está habilitado de forma predeterminada cuando usas un emulador o dispositivo N y seleccionas el modo de depuración Native (en la pestaña Debugger para la configuración de ejecución y depuración).
Para acceder a otras mejoras de compilación, como la compilación incremental de Java y la actualización del dex en el proceso, actualiza tu complemento de Android para Gradle a la versión 2.1.0.
2.0 (abril de 2016)
Nota: Si lo que desarrollas está destinado a la vista previa de N para desarrolladores, debes usar Android Studio 2.1. Android Studio 2.0 no es compatible con todas las funciones necesarias para utilizar la vista previa de N.
Instant Run:
- Android Studio ahora implementa compilaciones limpias más rápido que nunca. Además, aplicar cambios de código incrementales en el emulador o en un dispositivo físico ahora es un proceso casi inmediato. Revisa las actualizaciones sin volver a implementar una compilación de depuración nueva o, en muchos casos, sin reiniciar la app.
- Instant Run permite aplicar los siguientes cambios en una app en ejecución:
- Cambios en la implementación de un método de instancia o estático existente
- Cambios en un recurso existente de la app
- Cambios en el código estructural, como una firma de método o un campo estático (requiere un dispositivo de destino que ejecute el nivel de API 21 o versiones posteriores)
- Consulta la documentación para obtener más información sobre Instant Run.
Nota: Instant Run solamente es compatible cuando implementas la variante de compilación de depuración, usas el complemento de Android para Gradle 2.0.0 o una versión posterior, y configuras el archivo
build.gradle
en el nivel de módulo de tu app para que funcione conminSdkVersion 15
o versiones posteriores. Para obtener el mejor rendimiento, configura tu app paraminSdkVersion 21
o una versión posterior.
Nuevas incorporaciones a lint:
- Inspección de las declaraciones
switch
mediante valores enteros@IntDef
anotados para garantizar que se manejen todas las constantes (a fin de agregar rápidamente cualquier declaración faltante, usa el menú desplegable de acción de intent y selecciona Add Missing @IntDef Constants) - Marcas para indicar intentos incorrectos de usar la interpolación de cadenas para insertar números de versión en el archivo
build.gradle
- Marcas para indicar clases anónimas que extienden la clase
Fragment
- Marcas para indicar código nativo en ubicaciones inseguras, como las carpetas
res/
yasset/
(esta marca estimula el almacenamiento de código nativo en la carpetalibs/
, que se empaqueta posteriormente y de forma segura en la carpetadata/app-lib/
de la app en el momento de la instalación). AOSP: 169950 - Marcas que indican llamadas inseguras a
Runtime.load()
ySystem.load()
. AOSP: 179980 - Es posible buscar y quitar recursos no utilizados seleccionando Refactor > Remove Unused Resources en la barra de menú. Ahora, la detección de recursos no utilizados admite recursos a los que solo hacen referencia recursos no utilizados, referencias en archivos sin procesar (como referencias de imagen
.html
) y atributostools:keep
ytools:discard
que utiliza el reductor de recursos de Gradle. Al mismo tiempo, tiene en cuenta conjuntos de orígenes inactivos (como los recursos utilizados en otras variantes de compilación) y maneja adecuadamente las importaciones de campos estáticos - Comprobación de la compatibilidad de referencias implícitas de la API con todas las plataformas a las que se orienta
minSdkVersion
- Marca el uso inadecuado de
RecyclerView
yParcelable
- Las inspecciones
@IntDef
,@IntRange
y@Size
ahora también se comprueban para varargs y arreglosint
Otras mejoras:
- Optimización de Android Emulator 2.0, que es más rápido que nunca, admite una gama más amplia de dispositivos virtuales y presenta una IU ampliamente mejorada. Para obtener más información sobre el nuevo emulador, consulta las notas de la versión de las herramientas del SDK.
- Mejoras en el Administrador de dispositivo virtual de Android:
- Las imágenes del sistema ahora se clasifican en las siguientes pestañas: Recommended, x86 y Other.
- En la configuración avanzada, puedes habilitar la compatibilidad con varios núcleos y especificar la cantidad de núcleos que puede usar el emulador.
- En la configuración avanzada, puedes determinar cómo se procesan los gráficos en el emulador mediante una de las siguientes opciones:
- Hardware: usa la tarjeta gráfica de tu computadora para lograr un procesamiento más rápido.
- Software: usa procesamiento basado en software.
- Auto: deja que el emulador decida cuál es la mejor opción. Esta es la configuración predeterminada.
- Se redujeron los tiempos de empaquetado de AAPT mediante la especificación del destino de la implementación antes de compilar la app. Esto permite que Android Studio empaquete de manera eficiente solo los recursos que necesita el dispositivo especificado.
- Se agregó la integración de Cloud Test Lab para proporcionar pruebas de apps on demand con la practicidad y escalabilidad de un servicio en la nube. Obtén más información sobre cómo puedes usar Cloud Test Lab con Android Studio.
- Se agregó una vista previa del nuevo depurador de GPU. En apps con mucha demanda gráfica, ahora puedes recorrer visualmente tu código de OpenGL ES para optimizar tu app o juego.
- Se agregó la prueba de indexación de apps de Google. Agrega a tus apps compatibilidad con URL, indexación de apps y la funcionalidad de búsqueda para ayudar a aumentar el tráfico hacia tu app, descubrir qué contenido de la app se usa más y atraer usuarios nuevos. Prueba y valida las URL en tu app, todo en Android Studio. Consulta Compatibilidad con URL e indexación de apps en Android Studio.
- Actualizaciones de la última versión de IntelliJ 15, que incluyen mejoras en el análisis de código y el rendimiento. Consulta las novedades de IntelliJ para leer una descripción completa de las funciones y mejoras nuevas.
- El autocompletado del editor XML ahora agrega comillas cuando completa los atributos. Para comprobar si esta opción está habilitada, abre el diálogo Setting o Preferences, ve a Editor > General > Smart Keys y marca la casilla de verificación junto a Add quotes for attribute value on attribute completion. Problema 195113
- El editor XML ahora admite la función para completar el código en las expresiones de vinculación de datos.
Actualizaciones anteriores