Android Studio 3.4 es una versión importante con varias características nuevas y mejoras.
IntelliJ IDEA 2018.3.4
- Android Studio core actualizado con mejoras de IntelliJ IDEA desde la versión 2018.3.4
Complemento Android Gradle 3.4.0
Nuevo diálogo de estructura de proyecto
- El nuevo cuadro de diálogo Estructura del proyecto (PSD) facilita la actualización de dependencias y la configuración de varios aspectos de su proyecto, como módulos, opciones de compilación, configuraciones de firma y variables de compilación
- Puede abrir el PSD seleccionando "Archivo> Estructura del proyecto" en el menú. También puede abrir el PSD mediante Ctrl + Shift + Alt + S en Windows y Linux, o Command +; (punto y coma) en macOS. La siguiente es una descripción de las innovaciones y actualizaciones de PSD.
Variables
Módulos
- configure las propiedades que se aplican a todas las opciones de compilación existentes en los módulos o agregue nuevos módulos a su proyecto utilizando la sección Módulos. Por ejemplo, aquí puede configurar la propiedad defaultConfig o administrar las configuraciones de firma
Dependencias
inspeccione y vea cada gráfico de dependencia del gráfico de dependencia de su proyecto creado por Gradle durante la sincronización del proyecto siguiendo estos pasos:
- en el panel izquierdo de la PSD, seleccione "Dependencias"
- en el panel "Módulos", seleccione el módulo para el que desea ver las dependencias
- en el lado derecho de la PSD, abra el panel "Dependencias resueltas" como se muestra a continuación

También puede encontrar y agregar dependencias rápidamente a su proyecto seleccionando el módulo y haciendo clic en el botón "+" en la sección "Dependencias declaradas", y luego seleccionando el tipo de dependencia que desea agregar
dependiendo del tipo de dependencia que elija, debería ver un cuadro de diálogo similar al que se muestra a continuación que lo ayuda a agregar la dependencia al módulo

Opciones de montaje
- En esta sección del PSD, se crean y configuran opciones y variaciones de compilación ('sabores del producto') para cada módulo de su proyecto. Puede agregar plantillas de manifiesto ('marcadores de posición'), archivos ProGuard y asignar claves de firma, etc.

Consejos
- Puede ver las actualizaciones de dependencias propuestas para su proyecto y las opciones de compilación en la sección "Sugerencias", como se muestra a continuación

Nuevo 'administrador de recursos'
'Resource Manager' es una nueva herramienta para importar, crear, administrar y usar los recursos de su aplicación. Puede abrir esta herramienta a través del menú "Ver> Herramientas de Windows> Administrador de recursos". El Administrador de recursos le permite hacer lo siguiente:

- Visualice recursos: puede previsualizar dibujos, colores y diseños para encontrar rápidamente el recurso correcto
- Importación masiva: puede importar varios activos extraíbles a la vez simplemente arrastrándolos al 'administrador de recursos' o a través del asistente 'Importar elementos dibujables'. Para acceder al asistente, haga clic en el botón "+" en la esquina superior izquierda de la ventana y luego seleccione "Importar Drawables" de la lista desplegable
- Convierta archivos SVG a VectorDrawables: puede usar el asistente Importar Drawables para convertir sus imágenes SVG a VerctorDrawables
- Arrastrar y soltar activos: desde la ventana 'administrador de recursos' puede arrastrar elementos dibujables a su diseño y widgets XML del editor de diseño ('Editor de diseño')
- Versiones alternativas de widgets: ahora puede tener versiones alternativas de sus recursos haciendo doble clic en el recurso en la ventana "Herramienta". Verá las diferentes versiones que creó y qué calificadores contienen.
- Visualización de mosaico o lista: puede cambiar la visualización en la ventana de visualización de sus recursos utilizando su diseño diferente
Consulte el manual Administrar recursos de la aplicación para obtener más información.
Verificación de ID de compilación al perfilar y depurar APK
- cuando proporciona los "archivos de símbolos de depuración" de las bibliotecas .so compartidas dentro de su APK, Android Studio verifica que la ID de compilación de los "archivos de símbolos de depuración" coincida con la ID de compilación de las bibliotecas .so dentro de la APK
- si recopila bibliotecas nativas en su APK con ID de compilación, Android Studio verifica si la ID de compilación de sus "archivos de símbolos" y la ID de compilación de sus bibliotecas nativas coinciden y restablece los "archivos de símbolos" si no hay coincidencias. Si no compila con ID de compilación, proporcionar "archivos de símbolos" incorrectos puede generar problemas al depurar
R8 está habilitado por defecto
R8 combina desugaring, compresión, ofuscación, optimización y desintoxicación en un solo paso, lo que proporciona una mejora notable en el rendimiento. R8 se introdujo en el complemento Android Gradle 3.3.0 y ahora está habilitado de forma predeterminada tanto para aplicaciones como para proyectos de bibliotecas de Android que utilizan la versión del complemento 3.4.0 o superior
La imagen a continuación describe el proceso de compilación antes de R8

ahora, con R8, se realiza la eliminación de azúcares, la compresión, la ofuscación, la optimización y la depuración (D8) en un solo paso, como se muestra a continuación

R8 está diseñado para funcionar con sus reglas actuales de ProGuard, por lo que no necesita tomar ninguna medida para aprovechar R8. Mientras tanto, dado que esta tecnología es diferente de ProGuard, que está diseñada específicamente para proyectos de Android, la compresión y la optimización pueden consistir en eliminar el código que ProGuard no elimina. Por lo tanto, en esta situación poco probable, es posible que deba agregar reglas adicionales para guardar este código en el ensamblaje final
Si tiene problemas para usar R8, lea las Preguntas frecuentes sobre compatibilidad de R8 para verificar si hay una solución preparada. Si la solución aún no se ha documentado, informe un error . Puede deshabilitar R8 agregando una de las siguientes instrucciones al archivo gradle.properties de su proyecto:
<i> # deshabilitar R8 solo para módulos de la Biblioteca Android </i>
android.enableR8.libraries = false </p>
<p> <i> # deshabilitar R8 para todos los módulos </i>
android.enableR8 = false
NOTA: para el tipo de ensamblaje especificado, si configura false para useProguard en el archivo build.gradle de su módulo de aplicación, el complemento Android Gradle usará R8 para comprimir el código de la aplicación para este tipo de ensamblaje, independientemente de si R8 está desactivado en el archivo gradle.properties de su proyecto
El Editor de navegación ahora admite todo tipo de argumentos
- Todos los tipos compatibles con el componente de navegación ahora son compatibles con el Editor de navegación. Para obtener más información sobre los tipos admitidos, consulte Pasar datos entre destinos
Mejoras en el editor de diseño
Nuevos consejos de acción para importar rápidamente dependencias
- si comienza a usar clases específicas de Jetpack y Firebase en su código, los nuevos consejos de acción sugieren agregar las dependencias necesarias de la biblioteca Gradle a su proyecto, si aún no se han agregado. Por ejemplo, si se refiere a la clase WorkManager por primera vez, necesita la dependencia android.arch.work:work-runtime, y la sugerencia de acción le permite agregarla con un solo clic, como se muestra a continuación

- en particular, ya que Jetpack se presenta en paquetes separados (lo que facilita su administración y actualización), el acceso directo de acción lo ayuda a agregar rápidamente solo las dependencias necesarias para los componentes de Jetpack que usa
3.4.0 problemas conocidos
- la creación de perfiles se deshabilita cuando implementa su aplicación en dispositivos que ejecutan Android Q Beta
- cuando se utiliza una biblioteca de enlace de datos, LiveDataListener.onChanged () puede caer con una excepción NullPointerException. Se incluirá una solución para este problema en Android Studio 3.4.1 y ya está disponible en la última versión de Vista previa de Android Studio 3.5 (consulte el error 122066788 )