Te damos la bienvenida a Now in Android, tu guía continua sobre las novedades y los aspectos destacados del mundo del desarrollo para Android.
Sigue leyendo para conocer las novedades de la versión beta 1 de Android 16 QPR2, la actualización de funciones de Android Studio Narwhal, Jetpack Compose 1.9, Media 3 1.8, la transformación de formas y la función Autocompletar en Compose, entre otras.
Puedes mirar un resumen en video:
También tenemos un podcast.
Sin embargo, esta publicación tiene la información más detallada, así que sigue leyendo.
Ya está disponible la versión beta 1 de Android 16 QPR2 ✨
Ya está disponible la primera versión beta de Android 16 QPR2, la versión inaugural de Android con una versión secundaria del SDK de Android. Las versiones secundarias del SDK pueden incluir APIs nuevas que extiendan las funciones de la plataforma, pero no pueden introducir cambios de comportamiento controlados por targetSdkVersion, lo que minimiza la cantidad de pruebas que debes realizar en tus apps.
Puedes llamar a las APIs nuevas verificando SDK_INT_FULL con la enumeración VERSION_CODES_FULL:
if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) { // Call new APIs from the Android 16 QPR2 release }
VERSION_CODES_FULL no se puede usar en los atributos del manifiesto uses-sdk.
Estas son algunas actualizaciones clave de la versión beta 1 de QPR2.
IU, experiencia del sistema y accesibilidad:
- Una opción de tema oscuro expandido invierte de forma inteligente las apps claras para los usuarios que prefieren una apariencia oscura.
- El sistema puede generar íconos de la app con temas automáticos si tu app no proporciona una capa monocromática.
- Las sesiones de selector interactivo mantienen activa la IU de tu app mientras la hoja de uso compartido está abierta, con
ChooserManageryChooserSession. - Una nueva API de transferencia de datos permite una migración de datos más confiable y segura entre Android y iOS, lo que requiere actualizaciones en el XML de las reglas de extracción de datos de tu app y en la implementación de
BackupAgent. - El paquete
android.graphics.pdfse expandió para admitir la anotación y edición de documentos PDF a través dePdfRenderer.Page. - Los valores de
ViewConfigurationahora se adaptan a dispositivos virtuales individuales. Migra aViewConfiguration.get(context)para situaciones de varias pantallas. - Puedes obtener un control más detallado de la respuesta táctil especificando
VibrationAttributesconView.performHapticFeedback(HapticFeedbackRequest). - Ahora, las tarjetas de Configuración rápida se pueden asignar a categorías predefinidas en el archivo
AndroidManifest.xml.
Contenido multimedia y audio:
- Decodificación de software para Immersive Audio Model and Formats (IAMF), un formato de audio espacial abierto
- El uso compartido de audio personal para dispositivos Bluetooth LE Audio se integra directamente en el selector de salida del sistema.
- Los usuarios pueden controlar el brillo del HDR con un control deslizante de brillo HDR/SDR
- Los extras del selector de fotos pueden destacar álbumes o búsquedas específicas.
Conectividad:
- Las mejoras en Companion Device Management (CDM) te permiten proporcionar íconos de dispositivos personalizados, escuchar la devolución de llamada de
EVENT_ASSOCIATION_REMOVEDy habilitar la verificación entre apps con DeviceId. - Las actualizaciones de Bluetooth incluyen compatibilidad con el análisis pasivo para
BluetoothLeScanner(ScanSettings.SCAN_TYPE_PASSIVE), motivos de pérdida de vinculación (BluetoothDevice.EXTRA_BOND_LOSS_REASON) y recuperación directa de UUID de servicio (BluetoothDevice.EXTRA_UUID_LE). - Las actualizaciones de medición de distancia de Wi-Fi RTT (
RttStationRangingParams) admiten la medición de distancia en relación con las estaciones. - Hay un nuevo
PhoneNumberManagerdisponible para analizar y validar números de teléfono de encabezados de URI asociados a P de IMS. - Las mejoras de privacidad de la red de MediaRouter permiten transmitir contenido a través de nuevos medios, como Bluetooth y UWB. Debes usar el selector de salida del sistema o solicitar permisos de
NEARBY_DEVICESpara los selectores personalizados en la app.
Privacidad y seguridad:
- Un nuevo estado de seguridad a nivel del sistema, Bloqueo seguro del dispositivo, bloquea los dispositivos y requiere autenticación principal para desbloquearlos.
- Se agregó un botón de activación para el usuario en la Protección ante robo del teléfono para habilitar o inhabilitar el “Bloqueo por autenticación fallida”.
Productividad de los desarrolladores:
- Las nuevas APIs de
AppWidgetManagerte permiten consultar las métricas de participación de los widgets. - Las apps depurables instaladas a través de ADB ahora recibirán advertencias tempranas sobre la compatibilidad con el tamaño de página de 16 KB.
ProfilingManageragrega compatibilidad con nuevos activadores de generación de perfiles iniciados por el sistema yrequestRunningSystemTracepara capturar seguimientos en segundo plano.- Un botón de activación de “Registro de impresión detallado” en las Opciones para desarrolladores proporciona información de depuración adicional para el framework de impresión de Android.
- Se habilitaron pruebas más sólidas para las experiencias de escritorio y de varias pantallas con las nuevas APIs de
UiAutomationpara capturas de pantalla en pantallas no predeterminadas yAccessibilityWindowInfo.refreshpúblicas. - Se agregó compatibilidad con la API para la nueva biblioteca
androidx.core:core-backported-fixes. - Ahora, las apps de GUI son compatibles con la terminal de Linux
WindowInspector.addGlobalWindowViewsListeneradmite notificaciones de cambio de vista raíz en tiempo real.
Puedes inscribir cualquier dispositivo Pixel compatible para recibir actualizaciones de la versión beta de forma inalámbrica o usar imágenes del sistema de 64 bits con Android Emulator en Android Studio. La estabilidad de la plataforma está prevista para octubre de 2025.
La actualización de funciones de Android Studio Narwhal ya es estable. Comienza a usar el modo de agente 🐳
La actualización de funciones de Android Studio Narwhal ya es estable. Entre las nuevas funciones y mejoras, se incluyen las siguientes:
- Gemini en Android Studio: El modo Agente está disponible para tareas de programación de varias etapas.
- Las reglas de la biblioteca de instrucciones personalizan el resultado de la IA de Gemini según las necesidades de tu proyecto.
- Transform UI with Gemini usa la IU de lenguaje natural para iterar en la IU de Compose.
- Asistencia para el desarrollo inmersivo con el Android Emulator para XR incorporado, una nueva plantilla de XR y un Inspector de diseño incorporado para XR
- Acceso ampliado a dispositivos a través de Android Partner Device Labs en la transmisión de dispositivos Android
- Mejores vistas previas de Compose con una navegación de código mejorada y el nuevo selector de vistas previas de Compose
- El compilador de Kotlin K2 está habilitado de forma predeterminada para un rendimiento de compilación más rápido.
- Herramientas para tamaños de página de 16 KB con advertencias de lint, análisis y un emulador para ayudarte a prepararte para los próximos dispositivos con tamaños de página de 16 KB.
Transmisión de dispositivos Android con tecnología de Firebase
Android Device Streaming, con tecnología de Firebase, introdujo compatibilidad estable con Android Partner Device Labs, lo que te permite conectarte de forma remota a dispositivos Android físicos alojados por socios OEM, incluidos Samsung, Xiaomi, OPPO, OnePlus y vivo.
Aceleramos el desarrollo con lanzamientos mensuales para Android Studio, con una frecuencia 2 veces mayor que antes
Android Studio está cambiando a un ritmo de lanzamiento estable mensual para que puedas obtener nuevas funciones y correcciones de errores críticos más rápido. Si bien el IDE de Android Studio se actualizará mensualmente, se introducirán nuevas versiones de la plataforma IntelliJ cada pocos meses, y las actualizaciones de funciones completarán las versiones estables intermedias. Android Emulator y el complemento de Android para Gradle seguirán actualizándose por separado cada dos meses. Este programa de lanzamientos acelerado se respalda con inversiones a largo plazo en infraestructura de pruebas.
Novedades de la versión de agosto de 2025 de Jetpack Compose 🚀
La versión de agosto de 2025 de Jetpack Compose (versión 1.9) ya es estable. En esta versión, se presentan Modifier.dropShadow y Modifier.innerShadow para renderizar efectos de sombra de cuadro. Los nuevos modificadores onVisibilityChanged y onFirstVisible te permiten hacer un seguimiento de la visibilidad de los elementos para las actualizaciones de la IU o el registro de impresiones. Puedes aplicar un estilo enriquecido dentro de OutputTransformation con TextFieldBuffer.addStyle para las transformaciones de texto.
Los componentes básicos de LazyLayout ahora son estables, y puedes definir un LazyLayoutCacheWindow para mejorar el rendimiento de Lazy List y Grid con una carga previa mejorada. Scrollable2D habilita el desplazamiento bidimensional, incluidos el desplazamiento rápido y el desplazamiento anidado, con varias mejoras para la interoperabilidad de desplazamiento y desplazamiento anidado con vistas. Una API de aceptación (Composer.setDiagnosticStackTraceEnabled) proporciona detalles más enriquecidos sobre la ubicación de las fallas en los seguimientos de pila, lo que se recomienda solo para las compilaciones de depuración. Las nuevas anotaciones @RememberInComposition y @FrequentlyChangingValue, junto con las verificaciones de Lint asociadas, están disponibles en una nueva biblioteca de anotaciones de tiempo de ejecución. Los menús contextuales se pueden personalizar con Modifier.appendTextContextMenuComponents y Modifier.filterTextContextMenuComponents. Ahora se requiere la versión 8.8.2 o posterior del complemento de Android para Gradle (AGP) o Lint.
Media3 1.8.0: Novedades 🚀
Ya está disponible Media3 1.8.0, que incluye varias funciones y mejoras nuevas. ExoPlayer obtiene un modo de arrastre para las búsquedas frecuentes que realizan los usuarios, que puedes habilitar a través de ExoPlayer.setScrubbingModeEnabled. HlsInterstitialsAdsLoader ahora admite transmisiones en vivo para la inserción de anuncios guiada por el servidor.
Se actualizó MetadataRetriever para que puedas recuperar las duraciones de los elementos multimedia sin reproducción. En el caso de Transformer, la versión presenta operaciones de recorte más rápidas con listas de edición de MP4 con experimentalSetMp4EditListTrimEnabled y optimizaciones de codificador específicas del chipset a través de CodecDbLite, que se habilitan llamando a setEnableCodecDbLite en DefaultEncoderFactory.Builder.
Entre las actualizaciones adicionales, se incluyen la compatibilidad con descargas parciales en Downloader con PreCacheHelper, el enrutamiento automático de audio de RE en ExoPlayer y las interacciones más eficientes de MediaCodec. El módulo MediaSession ahora mantiene las notificaciones visibles durante más tiempo de forma predeterminada, y la app de demostración de la sesión multimedia muestra la funcionalidad de reanudación de la reproducción. Una nueva app de demostración de Composition, compilada con Kotlin y Compose, muestra la edición avanzada de videos con varios recursos.
Artículos 📚
#WeArePlay: Conoce a las personas que programan un mundo más sustentable
La iniciativa #WeArePlay destaca las apps y los juegos para Android que abordan desafíos ambientales. El juego BoRa — Iguaçu National Park, desarrollado por Mayla, Flávia, Andréia y Ariane, ofrece experiencias interactivas accesibles y ludificadas para la educación sobre la naturaleza durante las visitas al parque. La app de Louis y Justin, CyberTracker, permite que los rastreadores indígenas analfabetos registren datos de biodiversidad a través de una interfaz basada en íconos, lo que respalda las iniciativas de conservación. Por último, Earth5R, cofundada por Bharati y Saurabh, ofrece educación ambiental y conecta a los usuarios con pasantías y proyectos para desarrollar habilidades para la economía ecológica.
¿Qué es HDR? 🌟
El alto rango dinámico (HDR) permite aumentar el brillo máximo más allá del rango dinámico estándar (SDR) para los desarrolladores de Android, lo que ofrece una fidelidad visual mejorada. Android admite HDR para videos e imágenes, incluidas tecnologías como UltraHDR para la retrocompatibilidad.
Comprender el color implica tres componentes:
- Profundidad de bits: Define la precisión de la representación del color, y una mayor profundidad ofrece transiciones más fluidas.
- Función de transferencia: Asigna valores numéricos de píxeles a la luminancia o el color que se muestran, lo que se ajusta a la respuesta visual humana no lineal. Algunos ejemplos son sRGB, HLG y PQ.
- Gama de colores: Representa el rango de colores que puede reproducir un dispositivo.
Conceptos erróneos comunes sobre el HDR:
- Colores vivos: Las gamas de colores más amplias, como Display P3 y Adobe RGB, estaban disponibles antes de HDR, y la mayoría de las pantallas aún se recortan a P3, incluso con contenido BT.2020.
- Más contraste y mejor detalle de los negros: El HDR no ofrece de forma inherente negros más oscuros que el SDR en la misma pantalla. Las pantallas OLED proporcionan un contraste infinito para ambos. Si bien PQ asigna más bits a las regiones oscuras, no es una función de HDR universal.
- Mayor profundidad de bits: Si bien algunos perfiles de video HDR (p. ej., HDR10) usan transmisiones de 10 o 12 bits, esto es específico de esos perfiles y no es inherente al HDR en sí. Las profundidades de bits más altas también son comunes en otros formatos de imagen.
El HDR significa principalmente un brillo máximo más alto. Este “margen de HDR” se define como una región flotante en relación con el SDR. Mientras que el video HDR tradicional suele codificar un margen fijo, las pantallas modernas usan un margen dinámico, lo que puede generar diferencias de calidad. Las tecnologías como Ultra HDR y los mapas de ganancia ofrecen alternativas con un uso eficiente de bits. El kit de herramientas de IU de Android utiliza la API de extendedRangeBrightness para ofrecer experiencias de HDR, incluso con RGBA_8888.
Videos 📹
Elementos compartidos avanzados con transformación de formas | Sugerencias de Jetpack Compose
Jetpack Compose ahora habilita transiciones avanzadas de elementos compartidos, transformaciones de formas sofisticadas y animaciones de revelación. Los desarrolladores pueden configurar SharedTransitionLayout en el nivel superior de la app y usar Modifier.sharedBounds para vincular elementos.
La transformación de formas es una nueva función clave que se logra aprovechando la biblioteca de formas de gráficos de AndroidX de Material 3. Esto implica crear un objeto Morph con formas de inicio y finalización definidas, controlar su progreso con animateFloat (de AnimatedVisibilityScope) y aplicarlo como un clip a través de un OverlayClip personalizado. Los efectos de revelación usan skipToLookaheadSize y skipToLookaheadPosition. Todas estas animaciones avanzadas también son compatibles con los gestos atrás predictivos.
Gemini multimodal en Android Studio: Desarrollo de IU potenciado por IA
La IA de Gemini en Android Studio ayuda en el desarrollo de la IU, ya que genera código a partir de diseños (incluida la conversión de imagen a código), crea vistas previas de Compose con datos sintéticos y define mejor la IU existente a través de comandos directos.
Consume un SDK habilitado para el entorno de ejecución
Android 14 presenta el entorno de ejecución de SDK, una nueva tecnología que aísla los SDKs de terceros en una zona de pruebas de procesos segura y separada para mejorar la privacidad y la seguridad.
Para desarrolladores:
- Los SDKs habilitados para el entorno de ejecución (RE) se ejecutan en este proceso independiente.
- Los SDKs adaptables al entorno de ejecución (RA) funcionan como intermediarios dentro de tu app.
- Carga los SDKs de RE con
SdkSandboxManagerCompaty observa las restricciones (p.ej., primer plano, carga única). - Las herramientas de shim simplifican la comunicación entre procesos de bajo nivel.
- Renderiza la IU de los SDKs de RE con
SandboxedSdkViewySandboxedUiAdapter. - Inicia actividades desde el entorno de ejecución de SDK con
SdkActivityLauncher.
Transformación de formas de Material 3 para Wear OS | Sugerencias de Jetpack Compose
Material 3 para Wear OS para Compose ahora simplifica la transformación de formas. Los desarrolladores pueden agregar fácilmente cambios de forma animados a los botones redondos con IconButtonDefaults.animatedShapes, crear grupos de botones que animen los cambios de ancho con el componente ButtonGroup y Modifier.animateWidth(), y compilar listas de desplazamiento vertical (TransformingLazyColumn) en las que los elementos se escalen y transformen con TransformationSpec a medida que se acercan a los bordes de la pantalla.
Versiones de AndroidX 🚀
Aquí tienes un resumen de los cambios de AndroidX, con prioridad en los más relevantes para los desarrolladores de apps para Android:
Cambio general que afecta a las bibliotecas de Compose:
- Se aumentó el valor predeterminado de
minSdka la API 23: Paraandroidx.composeanimation,foundation,material,runtimeyui, la versión mínima predeterminada del SDK se cambió de la API 21 a la API 23. Esto significa que, si usas las versiones alfa más recientes de estas bibliotecas de Compose, tu app requerirá de forma implícita Android 6.0 (Marshmallow) o una versión posterior.
Cambios clave para los desarrolladores de Compose:
- Nueva API de retención (entorno de ejecución de Compose): Se presenta una API de retención similar a
rememberSaveable, pero para valores que abandonan la jerarquía de composición sin serializarse. Tiene una vida útil más corta que los valores guardados y se comporta de manera similar a unViewModel, lo que proporciona una nueva forma de administrar el estado de los elementos componibles que podrían entrar y salir de la composición. - Transiciones de elementos compartidos mejoradas (Compose Animation y UI): Se agregaron nuevas APIs para habilitar o inhabilitar de forma dinámica los elementos compartidos, tener en cuenta las transiciones en curso y establecer límites de destino alternativos cuando se elimina un elemento compartido. También hay un nuevo
Modifier.skipToLookaheadPositiondisponible para fijar diseños. - Precarga mejorada de Pager (Compose Foundation): La estrategia de precarga de Pager ahora usa una “ventana de caché” (1 tamaño de viewport) en lugar de un solo elemento, y la precarga inicial está habilitada de forma predeterminada. Los elementos también se conservan durante más tiempo para que el desplazamiento sea más fluido.
- Mejoras en el manejo del enfoque para el mouse y el panel táctil (Compose Foundation y la IU):
ComposeViewsahora borrará automáticamente el enfoque cuando se produzca un evento de puntero hacia abajo (desde el mouse o el panel táctil) fuera del nodo enfocado. Puedes inhabilitar esta opción. - Rectángulos de enfoque personalizables (Compose Foundation):
FocusPropertiesahora te permite definir un área de enfoque personalizada en lugar de usar el cuadro delimitador de forma predeterminada, lo que mejora el recorrido del enfoque y la lógica de “mantener a la vista” en los contenedores desplazables. - LifecycleOwner Composable (Lifecycle): Un nuevo elemento componible permite crear instancias de
LifecycleOwnercon alcance directamente dentro del árbol de la IU. Esto es particularmente útil para administrar los ciclos de vida de los componentes de forma independiente y para bibliotecas como Navigation. - Compatibilidad con tipos que admiten valores nulos en
SavedStateHandle(LifecycleySavedState): Se simplificó el guardado y el restablecimiento de propiedades que admiten valores nulos con compatibilidad nativa enSavedStateHandleySavedStateRegistryOwner. - Nuevo
LineHeightStyle.Mode.Tight(Compose Foundation y UI): Un nuevo modo Tight ayuda a aplicar alturas de línea más pequeñas, incluso si eso significa cortar glifos más altos, lo que ofrece un control de diseño de texto más preciso. - Presionar dos veces para seleccionar una palabra (Compose Foundation): Se agregó compatibilidad para presionar dos veces y seleccionar palabras en
SelectionContaineryBasicTextField. - Cambios en el comportamiento de WindowInsets (IU y Foundation de Compose):
◦ Se agregó una nueva API deWindowInsets.cutoutPathpara obtener la ruta de acceso del corte de pantalla.
◦ Se quitó la marcaisWindowInsetsDefaultPassThroughEnabled, por lo queWindowInsetsse establece de forma predeterminada en no consumir, lo que permite que las vistas secundarias las reciban. AndroidViewrequestRectangleOnScreenCorrección (Compose Foundation): Las solicitudes que realizan las AndroidViews (p.ej.,EditTextque intenta permanecer en pantalla) ahora se propagan correctamente a Compose.- Mejoras en el desplazamiento con la rueda del mouse en 2D (Compose Foundation y IU): Se mejoró la compatibilidad con los eventos de desplazamiento con la rueda del mouse en 2D, con nuevas APIs de prueba y un parámetro para controlar el comportamiento.
Nuevas bibliotecas y utilidades:
androidx.core:core-backported-fixes(biblioteca nueva): Esta nueva biblioteca permite que los desarrolladores verifiquen si se aplicaron correcciones de errores críticos (p.ej., problemas a nivel de la plataforma, como errores específicos de la cámara) en un dispositivo. Esto permite ofrecer diferentes experiencias del usuario según si se resuelve o no un error conocido.
Otros cambios notables:
- Games Activity y Games Input: Se agregó compatibilidad predeterminada con tamaños de página de 16 KB y compatibilidad con mouse para
GameActivity. - Posicionamiento de información sobre la herramienta de Material 3: Se agregaron más proveedores de posición para la información sobre la herramienta, lo que permite colocarla arriba, abajo, a la izquierda o a la derecha del ancla.
- Material3
DatePickerCorrecciones: Se garantiza que DatePicker respete su propia configuración regional para el formato de números y se corrigen los problemas de visualización de derecha a izquierda. - Compatibilidad con display_override de TWA (navegador): Se agregó compatibilidad con la propiedad de manifiesto de TWA
display_override, lo que proporciona más control sobre la visualización de TWA. - Iniciar la URL inicial en una app externa (navegador): Se agregó un intent para permitir que se inicie la URL inicial de una TWA en un navegador externo.
Android Developers Backstage
Android Developers Backstage está de vuelta con otro episodio.
Autocompletar en Compose
Jetpack Compose 1.8 presenta capacidades de autocompletado significativamente mejoradas, que aprovechan el sistema de semántica de Compose. Ahora, los desarrolladores pueden integrar fácilmente la función Autocompletar a nivel del sistema con solo etiquetar los campos de texto con la semántica de tipo de contenido relevante (p.ej., nombre de usuario, contraseña), lo que elimina la necesidad de administrar manualmente el árbol de Autocompletar y mejora el rendimiento.
Ahora bien… 👋
Eso es todo por esta edición, con cobertura de la versión beta 1 de Android 16 QPR2, la actualización de funciones de Android Studio Narwhal, Jetpack Compose 1.9, Media 3 1.8, Shape Morphing y Autofill en Compose, y mucho más.
Vuelve pronto para ver la próxima actualización del universo de desarrolladores de Android.
-
ComunidadMás de 900 asistentes se unieron a nuestros espacios de eventos para una charla sobre nuestra perspectiva del futuro, sesiones de demostración, decenas de talleres, un hackatón y debates comunitarios centrados en ideas y comentarios sobre la plataforma de Android.
Florina Muntenescu • Lectura de 1 min -
ComunidadAndroid anunció recientemente la verificación de desarrolladores, una capa de seguridad adicional que disuade a los agentes maliciosos y les dificulta propagar daños.
Matthew Forsythe • Lectura de 2 min -
ComunidadLanzamos las habilidades oficiales de Android en abril. En esta entrada de blog, se abordan los comentarios que recibimos y se explican la filosofía y la metodología detrás del proyecto.
Jose Alcérreca • Lectura de 4 min
Recibe la información más reciente sobre el desarrollo de Android en tu bandeja de entrada todas las semanas.