La compañía Google presentó la segunda versión de prueba de la plataforma móvil abierta Android 12. Se espera que el lanzamiento de Android 12 ocurra en el tercer trimestre de 2021. Para evaluar las nuevas funcionalidades de la plataforma, se ha propuesto un programa de pruebas preliminares. Las compilaciones del firmware están disponibles para dispositivos Pixel 3 / 3 XL, Pixel 3a / 3a XL, Pixel 4 / 4 XL, Pixel 4a / 4a 5G y Pixel 5. Para aquellos que hayan instalado la primera versión de prueba, se ofrece una actualización OTA.
Novedades clave de Android 12:
- Se ha añadido la posibilidad de adaptar los elementos de la interfaz a dispositivos con pantallas redondeadas. Los desarrolladores ahora pueden obtener información sobre los redondeos de pantalla y ajustar los elementos de la interfaz que entran en las áreas invisibles de las esquinas. A través de la nueva API RoundedCorner, se pueden conocer parámetros como el radio y el centro del redondeo, y con Display.getRoundedCorner() y WindowInsets.getRoundedCorner() se pueden determinar las coordenadas de cada esquina redondeada de la pantalla.

- Se ha mejorado el modo 'imagen en imagen' (PIP, Picture in Picture) y se ha aumentado la fluidez de los efectos de transición. En caso de activar la transición automática a PIP con el gesto up-to-home (deslizando la parte inferior de la pantalla hacia arriba), la aplicación ahora se trasladará inmediatamente al modo PIP sin esperar a que finalice la animación. Se ha mejorado el cambio de tamaño de las ventanas PIP con contenido que no es video. Se ha añadido la posibilidad de ocultar la ventana PIP arrastrándola hacia el borde izquierdo o derecho de la pantalla. Se ha cambiado el comportamiento al tocar la ventana PIP: un toque ahora mostrará los botones de control, mientras que un doble toque cambiará el tamaño de la ventana.
- Se ha añadido una nueva API CompanionDeviceService, que permite activar aplicaciones que gestionan dispositivos acompañantes, como relojes inteligentes y rastreadores de fitness. Esta API resuelve el problema de iniciar y conectar las aplicaciones necesarias cuando aparece un dispositivo acompañante cercano. El sistema activa el servicio cuando detecta que un dispositivo está cerca y envía una notificación al desconectarse, o cuando el dispositivo entra o sale del área de visibilidad. Las aplicaciones también pueden utilizar un nuevo perfil de dispositivos acompañantes para simplificar la configuración de permisos para unirse al dispositivo.
- Se ha mejorado el sistema de predicción del ancho de banda. Las aplicaciones ahora pueden solicitar información sobre el ancho de banda total previsto en relación con el operador, la red inalámbrica específica (SSID de Wi-Fi), el tipo de red y el nivel de señal.
- Se ha simplificado la aplicación de efectos visuales típicos, como el desenfoque y la distorsión de colores, que ahora se pueden aplicar mediante la API RenderEffect a cualquier objeto RenderNode o a toda el área visible, incluso en cadena con otros efectos. Esta capacidad, por ejemplo, permite desenfocar una imagen desplegada a través de ImageView sin necesidad de copiar, procesar y reemplazar explícitamente el bitmap, realizando estas acciones del lado de la plataforma. Además, se ha introducido la API Window.setBackgroundBlurRadius(), mediante la cual se puede desenfocar el fondo de la ventana con un efecto de vidrio esmerilado y resaltar la profundidad a través del desenfoque del espacio que rodea la ventana.

- Se han integrado herramientas para la transcodificación de flujos multimedia, que pueden utilizarse en entornos de aplicaciones con cámara que guardan video en formato HEVC, para garantizar la compatibilidad con aplicaciones que no soportan este formato. Para dichas aplicaciones, se ha añadido la función de transcodificación automática a un formato más común, AVC.
- Se ha añadido soporte para el formato de imagen AVIF (AV1 Image Format), que utiliza tecnologías de compresión intra-frame del formato de codificación de video AV1. El contenedor para la distribución de datos comprimidos en AVIF es completamente análogo al HEIF. AVIF es compatible tanto con imágenes en HDR (Alto Rango Dinámico) y espacio de color de amplio gamut, como con rango dinámico estándar (SDR).
- Para prevenir posibles problemas de rendimiento, se prohíbe a las aplicaciones iniciar servicios prioritarios (foreground service) mientras están en segundo plano, excepto en algunos casos especiales. Se recomienda usar WorkManager para iniciar trabajos en segundo plano. Para facilitar la transición, se ha propuesto un nuevo tipo de trabajo en JobScheduler, que se inicia inmediatamente, tiene prioridad elevada y acceso a la red.
- Se ha propuesto una API unificada OnReceiveContentListener para insertar y mover entre aplicaciones tipos avanzados de contenido (texto formateado, imágenes, videos, archivos de audio, etc.), utilizando diversas fuentes de datos, incluyendo el portapapeles, el teclado y la interfaz de arrastrar y soltar.
- Se ha añadido un efecto de retroalimentación táctil implementado con el vibrador integrado en los teléfonos, cuya frecuencia e intensidad de vibración dependen de los parámetros del sonido que se reproduce actualmente. Este nuevo efecto permite sentir físicamente el sonido y puede aplicarse para aumentar la realismo en juegos y aplicaciones de audio.
- En el modo inmersivo, donde la aplicación se muestra a pantalla completa ocultando las barras de herramientas, se ha simplificado la navegación mediante gestos de control. Por ejemplo, en aplicaciones de lectura de libros, visualización de videos y trabajo con fotografías, ahora se puede navegar utilizando un solo gesto de deslizar.
- Se ha actualizado el diseño de la interfaz de notificaciones, que ahora es más simple y funcional. También se han renovado y suavizado los efectos de animación y transición. Las notificaciones con contenido especificado por la aplicación han sido alineadas con el nuevo aspecto general.
- Se ha mejorado la reactividad y la velocidad de respuesta al trabajar con notificaciones. Por ejemplo, al tocar una notificación, se realiza una transición instantánea a la aplicación relacionada. En las aplicaciones, el uso de manejadores intermedios de notificaciones (notification trampoline) ha sido limitado.
- Se ha optimizado las llamadas IPC en Binder. Gracias a la nueva estrategia de almacenamiento en caché y a la eliminación de conflictos durante los bloqueos, se ha logrado reducir significativamente las latencias. En general, el rendimiento de las llamadas a Binder ha aumentado aproximadamente el doble, y en algunos casos se han logrado aceleraciones aún más significativas. Por ejemplo, la llamada a refContentProvider() se ha vuelto 47 veces más rápida, releaseWakeLock() 15 veces más rápida y JobScheduler.schedule() 7.9 veces más rápida.
- En el marco del proyecto Mainline, que permite actualizar componentes del sistema individualmente sin necesidad de actualizar toda la plataforma, se han preparado nuevos módulos del sistema actualizables además de los 22 módulos disponibles en Android 11. Las actualizaciones afectan a componentes no vinculados al hardware, que se descargan a través de Google Play de manera separada a las actualizaciones OTA del firmware del fabricante. Entre los nuevos módulos que podrán actualizarse a través de Google Play sin necesidad de actualizar el firmware se encuentran ART (Android Runtime) y un módulo para la recodificación de video.
- Seguridad y privacidad.
- Se ofrece a los desarrolladores de aplicaciones la opción de desactivar las ventanas emergentes de advertencia que cubren el contenido. Anteriormente, la posibilidad de mostrar ventanas cubiertas se regulaba a través de una solicitud de permisos, que se confirmaba durante la instalación de aplicaciones que mostraban ventanas cubiertas. No había herramientas que permitieran influir en el solapamiento del contenido de las aplicaciones que eran superpuestas. Con la llamada Window#setHideOverlayWindows(), todas las ventanas que cubrían el contenido ahora se esconderán automáticamente. Por ejemplo, el ocultamiento puede activarse al mostrar información especialmente importante, como la confirmación de una transacción.
- Se han proporcionado configuraciones adicionales a las aplicaciones para restringir operaciones con notificaciones durante el bloqueo de pantalla. Anteriormente, solo se ofrecía la posibilidad de gestionar la visibilidad de las notificaciones durante el bloqueo de pantalla, pero ahora se puede habilitar una autenticación obligatoria para realizar cualquier acción con las notificaciones durante el bloqueo. Por ejemplo, una aplicación de mensajería puede requerir autenticación antes de eliminar un mensaje o marcarlo como leído.
- Se ha añadido la API PackageManager.requestChecksums() para solicitar y verificar la suma de verificación de una aplicación instalada. Se admiten algoritmos como SHA256, SHA512 y Merkle Root.
- En el motor web WebView se ha implementado la posibilidad de utilizar el atributo SameSite para gestionar el manejo de Cookies. El valor 'SameSite=Lax' limita el envío de Cookies para subsolicitudes de otros sitios, como la solicitud de una imagen o la carga de contenido a través de un iframe de otro sitio. En el modo 'SameSite=Strict', las Cookies no se envían para ningún tipo de solicitudes intersitios, incluyendo todos los enlaces entrantes de sitios externos.
- Se ha continuado trabajando en la aleatorización de direcciones MAC para excluir la posibilidad de rastrear el dispositivo al conectarse a una red inalámbrica. Se ha limitado el acceso a la dirección MAC del dispositivo para aplicaciones no privilegiadas y al llamar a la función getHardwareAddress() ahora se devuelve un valor vacío.
Fuente: opennet.ru


