Características y API

Android 16 incluye excelentes funciones y APIs para desarrolladores. En las siguientes secciones, se resumen estas funciones para ayudarte a comenzar a usar las APIs relacionadas.

Para obtener una lista detallada de las APIs nuevas, modificadas y quitadas, consulta el informe de diferencias de API. Para obtener detalles sobre las nuevas APIs, consulta la referencia de la API de Android. Las nuevas APIs están destacadas para que sea más fácil identificarlas.

También debes revisar las áreas en las que los cambios de la plataforma podrían afectar a tus apps. Para obtener más información, consulta las siguientes páginas:

Funcionalidad principal

Android incluye nuevas APIs que expanden las funciones principales del sistema Android.

Dos lanzamientos de la API de Android en 2025

  • Esta versión preliminar es para la próxima versión importante de Android, con un lanzamiento planificado para el segundo trimestre de 2025. Esta versión es similar a todas las versiones de API anteriores, en las que podemos tener cambios de comportamiento planificados que, a menudo, están vinculados a una targetSdkVersion.
  • Planeamos el lanzamiento principal un trimestre antes (segundo trimestre en lugar del tercer trimestre de años anteriores) para alinearnos mejor con el programa de lanzamientos de dispositivos en nuestro ecosistema, de modo que más dispositivos puedan obtener la versión principal de Android antes. Con el lanzamiento principal que se lanzará en el segundo trimestre, deberás realizar las pruebas de compatibilidad anuales unos meses antes que en años anteriores para asegurarte de que tus apps estén listas.
  • Planeamos tener otro lanzamiento en el cuarto trimestre de 2025, que también incluirá nuevas APIs para desarrolladores. La versión principal del segundo trimestre será la única de 2025 que incluirá cambios de comportamiento planificados que podrían afectar a las apps.

Además de las nuevas APIs para desarrolladores, la versión secundaria del cuarto trimestre incluirá actualizaciones de funciones, optimizaciones y correcciones de errores, pero no cambios de comportamiento que afecten a las apps.

Vista de cronograma de las versiones de Android en 2025, en la que se observa que la versión del 2º trimestre de 2025 es una versión principal y la del 4º trimestre de 2025 es una versión secundaria.

Seguiremos lanzando versiones trimestrales de Android. Las actualizaciones del 1ᵉʳ y 3ᵉʳ trim. entre los lanzamientos de la API proporcionarán actualizaciones incrementales para ayudar a garantizar una calidad continua. Estamos trabajando de forma activa con nuestros socios de dispositivos para llevar la versión del segundo trimestre a la mayor cantidad de dispositivos posible.

Cómo usar APIs nuevas con versiones principales y secundarias

Hoy en día, la protección de un bloque de código con una verificación del nivel de API se realiza con la constante SDK_INT con VERSION_CODES. Esto seguirá siendo compatible con las versiones principales de Android.

if (SDK_INT >= VERSION_CODES.BAKLAVA) {
  // Use APIs introduced in Android 16
}

La nueva constante SDK_INT_FULL se puede usar para las verificaciones de API en versiones principales y secundarias con la nueva enumeración VERSION_CODES_FULL.

if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
  // Use APIs introduced in a major or minor release
}

También puedes usar el método Build.getMinorSdkVersion() para obtener solo la versión secundaria del SDK.

val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)

Estas APIs aún no están finalizadas y están sujetas a cambios, por lo que, si tienes alguna inquietud, envíanos comentarios.

Experiencia del usuario y IU del sistema

Android 16 les brinda a los desarrolladores de apps y a los usuarios más control y flexibilidad para configurar sus dispositivos según sus necesidades.

Notificaciones centradas en el progreso

Android 16 presenta notificaciones centradas en el progreso para ayudar a los usuarios a hacer un seguimiento sin problemas de los recorridos de principio a fin que inician.

Notification.ProgressStyle es un nuevo estilo de notificación que te permite crear notificaciones centradas en el progreso. Entre los casos de uso clave, se incluyen el transporte privado con conductor, la entrega y la navegación. Dentro de la clase Notification.ProgressStyle, puedes denotar estados y eventos importantes en el recorrido del usuario con puntos y segmentos.

Para obtener más información, consulta la página de documentación sobre las notificaciones centradas en el progreso.

锁屏上显示的以进度为中心的通知。
在通知栏中显示的以进度为中心的通知。

Actualizaciones del gesto atrás predictivo

Android 16 添加了新 API,可帮助您在手势导航中启用预测性返回系统动画,例如“返回主屏幕”动画。通过使用新的 PRIORITY_SYSTEM_NAVIGATION_OBSERVER 注册 onBackInvokedCallback,您的应用可以在系统处理返回导航时接收常规的 onBackInvoked 调用,而不会影响正常的返回导航流程。

Android 16 还添加了 finishAndRemoveTaskCallback()moveTaskToBackCallback。通过向 OnBackInvokedDispatcher 注册这些回调,系统可以在调用返回手势时触发特定行为并播放相应的提前动画。

Tecnología táctil más enriquecida

Android expuso el control sobre el actuador táctil desde su creación.

Android 11 agregó compatibilidad con efectos táctiles más complejos que los actuadores más avanzados podrían admitir a través de VibrationEffect.Compositions de primitivas semánticas definidas por el dispositivo.

Android 16 agrega APIs táctiles que permiten que las apps definan las curvas de amplitud y frecuencia de un efecto táctil y, al mismo tiempo, abstraigan las diferencias entre las capacidades del dispositivo.

Productividad y herramientas para desarrolladores

Si bien la mayor parte de nuestro trabajo para mejorar tu productividad se centra en herramientas como Android Studio, Jetpack Compose y las bibliotecas de Android Jetpack, siempre buscamos formas en la plataforma para ayudarte a materializar tu visión.

Manejo de contenido para fondos animados

En Android 16, el framework de fondos de pantalla animados obtiene una nueva API de contenido para abordar los desafíos de los fondos de pantalla dinámicos controlados por el usuario. Actualmente, los fondos de pantalla en vivo que incorporan contenido proporcionado por el usuario requieren implementaciones complejas y específicas del servicio. Android 16 presenta WallpaperDescription y WallpaperInstance. WallpaperDescription te permite identificar instancias distintas de un fondo animado del mismo servicio. Por ejemplo, un fondo de pantalla que tiene instancias en la pantalla principal y en la pantalla de bloqueo puede tener contenido único en ambos lugares. El selector de fondo de pantalla y WallpaperManager usan estos metadatos para presentar mejor los fondos de pantalla a los usuarios, lo que optimiza el proceso para que crees experiencias de fondo de pantalla en vivo diversas y personalizadas.

Rendimiento y batería

Android 16 presenta APIs que ayudan a recopilar estadísticas sobre tus apps.

Generación de perfiles activada por el sistema

ProfilingManager se agregó en Android 15, lo que les permite a las apps solicitar la recopilación de datos de perfiles con Perfetto en dispositivos públicos en el campo. Sin embargo, como esta generación de perfiles debe iniciarse desde la app, sería difícil o imposible que las apps capturaran flujos críticos, como inicios o errores de ANR.

Para ayudar con esto, Android 16 presenta la generación de perfiles activada por el sistema en ProfilingManager. Las apps pueden registrar interés en recibir registros de ciertos activadores, como el inicio en frío reportFullyDrawn o los errores de ANR, y, luego, el sistema inicia y detiene un registro en nombre de la app. Una vez que se completa el seguimiento, los resultados se envían al directorio de datos de la app.

Inicia el componente en ApplicationStartInfo

ApplicationStartInfo se agregó en Android 15, lo que permite que una app vea los motivos del inicio del proceso, el tipo de inicio, los horarios de inicio, la limitación y otros datos de diagnóstico útiles. Android 16 agrega getStartComponent() para distinguir qué tipo de componente activó el inicio, lo que puede ser útil para optimizar el flujo de inicio de tu app.

Mejor introspección de trabajos

JobScheduler#getPendingJobReason() API 会返回作业可能处于待处理状态的原因。不过,作业处于待处理状态的原因可能有多种。

在 Android 16 中,我们引入了一个新 API JobScheduler#getPendingJobReasons(int jobId),该 API 会返回作业处于待处理状态的多种原因,包括开发者设置的显式约束条件和系统设置的隐式约束条件。

我们还引入了 JobScheduler#getPendingJobReasonsHistory(int jobId),用于返回最新约束条件更改的列表。

我们建议您使用该 API 来调试作业可能无法执行的原因,尤其是在您发现某些任务的成功率降低或某些作业完成延迟存在 bug 时。例如,未能在后台更新微件,或在应用启动之前未能调用预加载作业。

这还有助于您更好地了解某些作业是否因系统定义的约束条件而无法完成,而不是因明确设置的约束条件而无法完成。

Frecuencia de actualización adaptativa

Android 15 中引入的自适应刷新率 (ARR) 可让受支持硬件上的显示屏刷新率使用离散的 VSync 步长来适应内容帧速率。这不仅降低了功耗,还无需进行可能导致卡顿的模式切换。

Android 16 引入了 hasArrSupport()getSuggestedFrameRate(int),同时恢复了 getSupportedRefreshRates(),以便您的应用更轻松地利用 ARR。RecyclerView 1.4从快速滑动或平滑滚动中稳定下来时会在内部支持 ARR,我们将继续努力,将 ARR 支持添加到更多 Jetpack 库中。这篇帧速率文章介绍了许多可用于设置帧速率的 API,以便您的应用可以直接使用 ARR。

APIs de Headroom en ADPF

SystemHealthManager presenta las APIs de getCpuHeadroom y getGpuHeadroom, diseñadas para proporcionar a los juegos y las apps con gran consumo de recursos estimaciones de los recursos de CPU y GPU disponibles. Estos métodos te ofrecen una forma de evaluar cómo tu app o juego puede mejorar mejor el estado del sistema, en particular, cuando se usan junto con otras APIs de Android Dynamic Performance Framework (ADPF) que detectan el estrangulamiento térmico.

Si usas CpuHeadroomParams y GpuHeadroomParams en dispositivos compatibles, puedes personalizar el período que se usa para calcular el margen y seleccionar entre la disponibilidad de recursos promedio o mínima. Esto puede ayudarte a reducir el uso de recursos de la CPU o la GPU según corresponda, lo que genera mejores experiencias del usuario y una mayor duración de batería.

Accesibilidad

Android 16 agrega nuevas APIs y funciones de accesibilidad que pueden ayudarte a llevar tu app a todos los usuarios.

APIs de accesibilidad mejoradas

Android 16 adds additional APIs to enhance UI semantics that help improve consistency for users that rely on accessibility services, such as TalkBack.

Duration added to TtsSpan

Android 16 extends TtsSpan with a TYPE_DURATION, consisting of ARG_HOURS, ARG_MINUTES, and ARG_SECONDS. This lets you directly annotate time duration, ensuring accurate and consistent text-to-speech output with services like TalkBack.

Support elements with multiple labels

Android currently allows UI elements to derive their accessibility label from another, and now offers the ability for multiple labels to be associated, a common scenario in web content. By introducing a list-based API within AccessibilityNodeInfo, Android can directly support these multi-label relationships. As part of this change, we've deprecated AccessibilityNodeInfo#setLabeledBy and #getLabeledBy in favor of #addLabeledBy, #removeLabeledBy, and #getLabeledByList.

Improved support for expandable elements

Android 16 adds accessibility APIs that allow you to convey the expanded or collapsed state of interactive elements, such as menus and expandable lists. By setting the expanded state using setExpandedState and dispatching TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents with a CONTENT_CHANGE_TYPE_EXPANDED content change type, you can ensure that screen readers like TalkBack announce state changes, providing a more intuitive and inclusive user experience.

Indeterminate ProgressBars

Android 16 adds RANGE_TYPE_INDETERMINATE, giving a way for you to expose RangeInfo for both determinate and indeterminate ProgressBar widgets, allowing services like TalkBack to more consistently provide feedback for progress indicators.

Tri-state CheckBox

The new AccessibilityNodeInfo getChecked and setChecked(int) methods in Android 16 now support a "partially checked" state in addition to "checked" and "unchecked." This replaces the deprecated boolean isChecked and setChecked(boolean).

Supplemental descriptions

When an accessibility service describes a ViewGroup, it combines content labels from its child views. If you provide a contentDescription for the ViewGroup, accessibility services assume you are also overriding the description of non-focusable child views. This can be problematic if you want to label things like a drop-down (for example, "Font Family") while preserving the current selection for accessibility (for example, "Roboto"). Android 16 adds setSupplementalDescription so you can provide text that provides information about a ViewGroup without overriding information from its children.

Required form fields

Android 16 adds setFieldRequired to AccessibilityNodeInfo so apps can tell an accessibility service that input to a form field is required. This is an important scenario for users filling out many types of forms, even things as simple as a required terms and conditions checkbox, helping users to consistently identify and quickly navigate between required fields.

Teléfono como entrada de micrófono para llamadas de voz con audífonos LEA

Android 16 agrega la capacidad para que los usuarios de audífonos LE Audio cambien entre los micrófonos integrados en los audífonos y el micrófono del teléfono para las llamadas de voz. Esto puede ser útil en entornos ruidosos o en otras situaciones en las que los micrófonos del audífono no funcionen bien.

Controles de volumen ambiental para audífonos LEA

Android 16 新增了一项功能,可让 LE Audio 助听器用户调节助听器麦克风接收的环境声音的音量。在背景噪音过大或过小的情况下,这可能会很有用。

Cámara

Android 16 mejora la compatibilidad con los usuarios de cámaras profesionales, lo que permite una exposición automática híbrida junto con ajustes precisos de temperatura de color y tono. Un nuevo indicador de modo nocturno ayuda a tu app a saber cuándo cambiar de una sesión de cámara con modo nocturno a una sin él y viceversa. Las nuevas acciones de Intent facilitan la captura de fotos en movimiento y seguimos mejorando las imágenes UltraHDR con compatibilidad con la codificación HEIF y nuevos parámetros del borrador del estándar ISO 21496-1.

Exposición automática híbrida

Android 16 向 Camera2 添加了新的混合自动曝光模式,让您可以手动控制曝光的特定方面,同时让自动曝光 (AE) 算法处理其余部分。您可以控制 ISO + AE曝光时间 + AE,与当前方法(您要么完全手动控制,要么完全依赖自动曝光)相比,可提供更大的灵活性。

public void setISOPriority() {
  ...
  int[] availablePriorityModes =
     mStaticInfo.getCharacteristics().get(CameraCharacteristics.
     COLOR_AE_AVAILABLE_PRIORITY_MODES);
  ...
  // Turn on AE mode to set priority mode
  reqBuilder.set(CaptureRequest.CONTROL_AE_MODE,
      CameraMetadata.CONTROL_AE_MODE_ON);
  reqBuilder.set(CaptureRequest.CONTROL_AE_PRIORITY_MODE,
      CameraMetadata.CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY);
  reqBuilder.set(CaptureRequest.SENSOR_SENSITIVITY,
      TEST_SENSITIVITY_VALUE);
  CaptureRequest request = reqBuilder.build();
  ...
}

Ajustes precisos de temperatura de color y tono

Android 16 agrega compatibilidad con la cámara para realizar ajustes precisos de temperatura y tono de color para brindar una mejor compatibilidad con aplicaciones de grabación de video profesionales. En versiones anteriores de Android, podías controlar la configuración del balance de blancos a través de CONTROL_AWB_MODE, que contiene opciones limitadas a una lista predeterminada, como Incandescente, Nublado y Crepúsculo. COLOR_CORRECTION_MODE_CCT permite el uso de COLOR_CORRECTION_COLOR_TEMPERATURE y COLOR_CORRECTION_COLOR_TINT para realizar ajustes precisos del balance de blancos en función de la temperatura de color correlacionada.

public void setCCT() {
  ...
  Range<Integer> colorTemperatureRange =
     mStaticInfo.getCharacteristics().get(CameraCharacteristics.
     COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE);
  // Set to manual mode to enable CCT mode
  reqBuilder.set(CaptureRequest.CONTROL_AWB_MODE, CameraMetadata.CONTROL_AWB_MODE_OFF);
  reqBuilder.set(CaptureRequest.COLOR_CORRECTION_MODE,
      CameraMetadata.COLOR_CORRECTION_MODE_CCT);
  reqBuilder.set(CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE, 5000);
  reqBuilder.set(CaptureRequest.COLOR_CORRECTION_COLOR_TINT, 30);
  CaptureRequest request = reqBuilder.build();
  ...
}

En los siguientes ejemplos, se muestra cómo se vería una foto después de aplicar diferentes ajustes de temperatura de color y tono:

La imagen original sin aplicar ajustes de temperatura ni tono de color.
La imagen con la temperatura de color ajustada a 3,000.
La imagen con la temperatura de color ajustada a 7,000.


La imagen con los niveles de tono reducidos en un 50%.
La imagen con los niveles de tono aumentados en 50.

Detección de escenas del modo nocturno de la cámara

Para ayudar a tu app a saber cuándo cambiar de una sesión de cámara con modo nocturno a una normal y viceversa, Android 16 agrega EXTENSION_NIGHT_MODE_INDICATOR. Si es compatible, está disponible en CaptureResult dentro de Camera2.

Esta es la API que mencionamos brevemente como próximamente disponible en la entrada de blog Cómo Instagram permitió a los usuarios tomar fotos increíbles con poca luz. Esa publicación es una guía práctica sobre cómo implementar el modo nocturno junto con un caso de éxito que vincula fotos de mayor calidad del modo nocturno integrado en la app con un aumento en la cantidad de fotos compartidas desde la cámara integrada en la app.

Acciones de intent de captura de fotos en movimiento

Android 16 添加了标准 intent 操作 ACTION_MOTION_PHOTO_CAPTUREACTION_MOTION_PHOTO_CAPTURE_SECURE,用于请求相机应用拍摄动态照片并将其返回。

您必须传递额外的 EXTRA_OUTPUT 来控制将图片写入的位置,或者通过 Intent.setClipData(ClipData) 传递 Uri。如果您未设置 ClipData,系统会在调用 Context.startActivity(Intent) 时将其复制到该位置。

动态照片示例,显示静态图片和动态播放画面。

Mejoras de imagen UltraHDR

标准动态范围 (SDR) 与高动态范围 (HDR) 图片质量对比示意图。

Android 16 继续致力于通过 UltraHDR 图片提供出色的图片质量。它添加了对 HEIC 文件格式的 UltraHDR 图片的支持。这些图片将获得 ImageFormat 类型 HEIC_ULTRAHDR,并包含类似于现有 UltraHDR JPEG 格式的嵌入式增益图。我们还在努力为 UltraHDR 添加 AVIF 支持,敬请期待。

此外,Android 16 在 UltraHDR 中实现了 ISO 21496-1 草稿标准中的其他参数,包括能够获取和设置应应用增益图算法的色彩空间,以及支持使用 SDR 增益图的 HDR 编码基础图片。

Gráficos

Android 16 incluye las mejoras gráficas más recientes, como los efectos gráficos personalizados con AGSL.

Efectos gráficos personalizados con AGSL

Android 16 agrega RuntimeColorFilter y RuntimeXfermode, lo que te permite crear efectos complejos, como Umbral, Sepia y Saturación de tono, y aplicarlos a las llamadas de dibujo. Desde Android 13, puedes usar AGSL para crear RuntimeShaders personalizados que extiendan Shader. La nueva API refleja esto, y agrega un RuntimeColorFilter potenciado por AGSL que extiende ColorFilter y un efecto Xfermode que te permite implementar la composición y la combinación personalizadas basadas en AGSL entre píxeles de origen y de destino.

private val thresholdEffectString = """
    uniform half threshold;

    half4 main(half4 c) {
        half luminosity = dot(c.rgb, half3(0.2126, 0.7152, 0.0722));
        half bw = step(threshold, luminosity);
        return bw.xxx1 * c.a;
    }"""

fun setCustomColorFilter(paint: Paint) {
   val filter = RuntimeColorFilter(thresholdEffectString)
   filter.setFloatUniform(0.5);
   paint.colorFilter = filter
}

Conectividad

Android 16 actualiza la plataforma para darle a tu app acceso a los avances más recientes en las tecnologías inalámbricas y de comunicación.

Rango con seguridad mejorada

Android 16 agrega compatibilidad con funciones de seguridad sólidas en la ubicación Wi-Fi en dispositivos compatibles con 802.11az de Wi-Fi 6, lo que permite que las apps combinen la mayor precisión, la mayor escalabilidad y la programación dinámica del protocolo con mejoras de seguridad, como la encriptación basada en AES-256 y la protección contra ataques de intermediarios. Esto permite que se use de forma más segura en casos de uso de proximidad, como destrabar una laptop o la puerta de un vehículo. 802.11az está integrado en el estándar Wi-Fi 6, lo que aprovecha su infraestructura y sus capacidades para una adopción más amplia y una implementación más sencilla.

APIs de rango genérico

Android 16 incluye el nuevo RangingManager, que proporciona formas de determinar la distancia y el ángulo en el hardware compatible entre el dispositivo local y un dispositivo remoto. RangingManager admite el uso de una variedad de tecnologías de medición de rango, como el sondeo de canales BLE, la medición de rango basada en RSSI BLE, la banda ultraancha y el tiempo de ida y vuelta de Wi-Fi.

Contenido multimedia

Android 16 incluye una variedad de funciones que mejoran la experiencia multimedia.

Mejoras en el selector de fotos

照片选择器为用户提供了一种安全的内置授权方式,让用户可以向应用授予对本地存储空间和云端存储空间中所选图片和视频的访问权限,而不是对整个媒体库的访问权限。通过 Google 系统更新Google Play 服务组合使用模块化系统组件,该工具向后支持到 Android 4.4(API 级别 19)。只需几行代码即可与相关的 Android Jetpack 库集成。

Android 16 对照片选择器进行了以下改进:

  • 嵌入式照片选择器新 API,可让应用将照片选择器嵌入其视图层次结构中。这样,它就感觉像是应用中更为集成的一部分,同时仍可利用进程隔离功能,让用户能够选择媒体,而无需应用拥有过于宽泛的权限。为了最大限度地提高跨平台版本的兼容性并简化集成,如果您想集成嵌入式照片选择器,则需要使用即将推出的 Android Jetpack 库。
  • 照片选择器中的云搜索新的 API 可让 Android 照片选择器从云端媒体提供商中进行搜索。照片选择器中的搜索功能即将推出。

Video profesional avanzado

Android 16 引入了对高级专业视频 (APV) 编解码器的支持,该编解码器专为专业级高品质视频录制和后期制作而设计。

APV 编解码器标准具有以下特点:

  • 感知上无损的视频画质(接近原始视频画质)
  • 复杂度低且吞吐量高的仅帧内编码(无像素域预测),以更好地支持编辑工作流
  • 支持高比特率范围(最高几十 Gbps),适用于 2K、4K 和 8K 分辨率内容,由轻量级熵编码方案实现
  • 帧平铺,用于沉浸式内容和启用并行编码和解码
  • 支持各种色度采样格式和位深
  • 支持多次解码和重新编码,且不会严重降低视觉质量
  • 支持多视图视频和辅助视频,例如深度、Alpha 和预览
  • 支持 HDR10/10+ 和用户定义的元数据

OpenAPV 项目提供了 APV 的参考实现。Android 16 将实现对 APV 422-10 配置文件的支持,该配置文件提供 YUV 422 色彩采样以及 10 位编码,并且目标比特率最高可达 2 Gbps。

Privacidad

Android 16 incluye una variedad de funciones que ayudan a los desarrolladores de apps a proteger la privacidad del usuario.

Actualizaciones de Health Connect

Health Connect en la versión preliminar para desarrolladores agrega ACTIVITY_INTENSITY, un nuevo tipo de datos definido según los lineamientos de la Organización Mundial de la Salud sobre la actividad moderada y vigorosa. Cada registro requiere la hora de inicio, la hora de finalización y si la intensidad de la actividad es moderada o vigorosa.

Health Connect también contiene APIs actualizadas que admiten registros de salud. Esto permite que las apps lean y escriban registros médicos en formato FHIR con el consentimiento explícito del usuario. Esta API está en un programa de acceso anticipado. Si quieres participar, regístrate para formar parte de nuestro programa de acceso anticipado.

Privacy Sandbox en Android

Android 16 incorpora la versión más reciente de Privacy Sandbox en Android, que forma parte de nuestro trabajo continuo para desarrollar tecnologías en las que los usuarios sepan que se protege su privacidad. En nuestro sitio web, encontrarás más información sobre el programa de versión beta para desarrolladores de Privacy Sandbox en Android para ayudarte a comenzar. Consulta el entorno de ejecución de SDK, que permite que los SDKs se ejecuten en un entorno de ejecución dedicado independiente de la app que se entrega, lo que proporciona protecciones más sólidas en torno a la recopilación y el uso compartido de los datos del usuario.

Seguridad

Android 16 incluye funciones que te ayudan a mejorar la seguridad de tu app y a proteger sus datos.

API de uso compartido de claves

Android 16 agrega APIs que admiten el uso compartido del acceso a las claves de Android Keystore con otras apps. La nueva clase KeyStoreManager admite otorgar y revocar el acceso a las claves por uid de la app, y también incluye una API para que las apps accedan a las claves compartidas.

Factores de forma de los dispositivos

Android 16 les brinda a tus apps la compatibilidad para aprovechar al máximo los factores de forma de Android.

Marco de trabajo estandarizado de calidad de imagen y audio para TVs

Android 16 中的新 MediaQuality 软件包公开了一组标准化 API,用于访问音频和图片配置文件以及与硬件相关的设置。这样,在线播放应用就可以查询配置文件并将其动态应用于媒体:

  • 使用更大动态范围进行母版制作的电影需要更高的色彩准确度,才能看清阴影中的细微细节并根据环境光线进行调整,因此,最好使用色彩准确度优先于亮度的配置文件。
  • 体育赛事直播通常采用较窄的动态范围进行母版制作,但通常是在白天观看,因此偏向亮度而非色彩准确度的配置文件可以获得更好的效果。
  • 完全交互式内容需要尽可能减少处理以缩短延迟时间,并且需要更高的帧速率,因此许多电视都附带游戏配置文件。

借助此 API,应用可以在个人资料之间切换,用户可以享受调整支持的电视,以便尽可能适合其内容。

Internacionalización

Android 16 agrega funciones y capacidades que complementan la experiencia del usuario cuando se usa un dispositivo en diferentes idiomas.

Texto vertical

Android 16 添加了对垂直渲染和测量文本的低级支持,以便为库开发者提供基本的垂直书写支持。这对于日语等通常使用竖向书写系统的语言特别有用。Paint 类中添加了一个新标志 VERTICAL_TEXT_FLAG。使用 Paint.setFlags 设置此标志后,Paint 的文本测量 API 将报告垂直进度,而不是水平进度,并且 Canvas 将垂直绘制文本。

val text = "「春は、曙。」"
Box(
    Modifier.padding(innerPadding).background(Color.White).fillMaxSize().drawWithContent {
        drawIntoCanvas { canvas ->
            val paint = Paint().apply { textSize = 64.sp.toPx() }
            // Draw text vertically
            paint.flags = paint.flags or VERTICAL_TEXT_FLAG
            val height = paint.measureText(text)
            canvas.nativeCanvas.drawText(
                text,
                0,
                text.length,
                size.width / 2,
                (size.height - height) / 2,
                paint
            )
        }
    }
) {}

Personalización del sistema de medición

Los usuarios ahora pueden personalizar su sistema de medición en las preferencias regionales de la configuración. La preferencia del usuario se incluye como parte del código de configuración regional, por lo que puedes registrar un BroadcastReceiver en ACTION_LOCALE_CHANGED para controlar los cambios de configuración regional cuando cambien las preferencias regionales.

El uso de formatos puede ayudar a que coincidan con la experiencia local. Por ejemplo, "0.5 in" en inglés (Estados Unidos) es "12.7 mm" para un usuario que configuró su teléfono en inglés (Dinamarca) o que usa su teléfono en inglés (Estados Unidos) con el sistema métrico como preferencia de sistema de medición.

Para encontrar esta configuración, abre la app de Configuración y dirígete a Sistema > Idiomas y región.