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 la 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 en la plataforma podrían afectar tus apps. Si deseas obtener más información, consulta las siguientes páginas:
- Cambios de comportamiento que afectan a las apps cuando se segmentan para Android 16
- Cambios de comportamiento que afectan a todas las apps, independientemente de
targetSdkVersion.
Funcionalidad principal
Android incluye nuevas APIs que expanden las capacidades principales del sistema Android.
Dos versiones de la API de Android en 2025
- This preview is for the next major release of Android with a planned launch in Q2 of 2025. This release is similar to all of our API releases in the past, where we can have planned behavior changes that are often tied to a targetSdkVersion.
- We're planning the major release a quarter earlier (Q2 rather than Q3 in prior years) to better align with the schedule of device launches across our ecosystem, so more devices can get the major release of Android sooner. With the major release coming in Q2, you'll need to do your annual compatibility testing a few months earlier than in previous years to make sure your apps are ready.
- We plan to have another release in Q4 of 2025 which also will include new developer APIs. The Q2 major release will be the only release in 2025 to include planned behavior changes that could affect apps.
In addition to new developer APIs, the Q4 minor release will pick up feature updates, optimizations, and bug fixes; it will not include any app-impacting behavior changes.
We'll continue to have quarterly Android releases. The Q1 and Q3 updates in-between the API releases will provide incremental updates to help ensure continuous quality. We're actively working with our device partners to bring the Q2 release to as many devices as possible.
Using new APIs with major and minor releases
Guarding a code block with a check for API level is done today using
the SDK_INT constant with
VERSION_CODES. This will continue
to be supported for major Android releases.
if (SDK_INT >= VERSION_CODES.BAKLAVA) {
// Use APIs introduced in Android 16
}
The new SDK_INT_FULL
constant can be used for API checks against both major and minor versions with
the new VERSION_CODES_FULL
enumeration.
if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
// Use APIs introduced in a major or minor release
}
You can also use the
Build.getMinorSdkVersion()
method to get just the minor SDK version.
val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)
These APIs have not yet been finalized and are subject to change, so please send us feedback if you have any concerns.
Experiencia del usuario y la IU del sistema
Android 16 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 de ayudarte a concretar tu visión en la plataforma.
Control de contenido para fondos animados
在 Android 16 中,动态壁纸框架将获得一个新的 content API,以应对由用户驱动的动态壁纸带来的挑战。目前,包含用户提供的内容的实时壁纸需要复杂的服务专用实现。Android 16 引入了 WallpaperDescription 和 WallpaperInstance。借助 WallpaperDescription,您可以识别同一服务中的动态壁纸的不同实例。例如,如果某张壁纸同时在主屏幕和锁定屏幕上显示,则这两种情况下显示的内容可能各不相同。壁纸选择器和 WallpaperManager 会使用此元数据更好地向用户呈现壁纸,从而简化创建多样化个性化动态壁纸体验的过程。
Rendimiento y batería
Android 16 introduce 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.
Componente de inicio 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 los trabajos
La API de JobScheduler#getPendingJobReason() muestra un motivo por el que un trabajo podría estar pendiente. Sin embargo, un trabajo puede estar pendiente por varios motivos.
En Android 16, presentamos una nueva API JobScheduler#getPendingJobReasons(int jobId), que muestra varios motivos por los que una tarea está pendiente, debido a las restricciones explícitas que establece el desarrollador y las implícitas que establece el sistema.
También presentamos JobScheduler#getPendingJobReasonsHistory(int jobId), que muestra una lista de los cambios de restricción más recientes.
Te recomendamos que uses la API para depurar por qué es posible que no se ejecuten tus trabajos, sobre todo si observas tasas de éxito reducidas en ciertas tareas o tienes errores en la latencia de la finalización de ciertos trabajos. Por ejemplo, no se pudo actualizar los widgets en segundo plano o no se pudo llamar a la tarea de precarga antes de iniciar la app.
Esto también puede ayudarte a comprender mejor si ciertas tareas no se completan debido a restricciones definidas por el sistema en comparación con las restricciones establecidas de forma explícita.
Frecuencia de actualización adaptativa
La frecuencia de actualización adaptativa (ARR), que se introdujo en Android 15, permite que la frecuencia de actualización de la pantalla en el hardware compatible se adapte a la velocidad de fotogramas del contenido mediante pasos discretos de VSync. Esto reduce el consumo de energía y, al mismo tiempo, elimina la necesidad de cambiar de modo, lo que podría generar fallas.
Android 16 presenta hasArrSupport() y getSuggestedFrameRate(int) mientras restablece getSupportedRefreshRates() para que tus apps aprovechen el ARR con mayor facilidad. RecyclerView 1.4 admite ARR de forma interna cuando se establece desde un deslizamiento o un desplazamiento suave, y seguimos trabajando para agregar compatibilidad con ARR a más bibliotecas de Jetpack. En este artículo sobre la velocidad de fotogramas, se describen muchas de las APIs que puedes usar para establecer la velocidad de fotogramas de modo que tu app pueda usar directamente la 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.
Se mejoraron las APIs de accesibilidad
Android 16 adds additional APIs to enhance UI semantics that help improve consistency for users that rely on accessibility services, such as TalkBack.
Outline text for maximum text contrast
Users with low vision often have reduced contrast sensitivity, making it challenging to distinguish objects from their backgrounds. To help these users, Android 16 introduces outline text, replacing high contrast text, which draws a larger contrasting area around text to greatly improve legibility.
Android 16 contains new AccessibilityManager APIs to let
your apps check or register a listener to
see if this mode is enabled. This is primarily for UI Toolkits like Compose to
offer a similar visual experience. If you maintain a UI Toolkit library or your
app performs custom text rendering that bypasses the
android.text.Layout class then you can use this to know
when outline text is enabled.
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.
El 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 agrega la capacidad para que los usuarios de audífonos LE Audio ajusten el volumen del sonido ambiental que captan los micrófonos de los audífonos. Esto puede ser útil en situaciones en las que el ruido de fondo es demasiado alto o demasiado bajo.
Cámara
Android 16 mejora la compatibilidad para los usuarios de cámaras profesionales, lo que permite la exposición automática híbrida junto con ajustes precisos de la temperatura de color y el tono. Un nuevo indicador de modo nocturno ayuda a tu app a saber cuándo cambiar a una sesión de cámara en modo nocturno y cuándo salir de ella. Las nuevas acciones de Intent facilitan la captura de fotos en movimiento, y seguimos mejorando las imágenes UltraHDR con compatibilidad para la codificación HEIC 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,与当前方法(您要么完全手动控制,要么完全依赖自动曝光)相比,可提供更大的灵活性。
fun setISOPriority() {
// ... (Your existing code before the snippet) ...
val availablePriorityModes = mStaticInfo.characteristics.get(
CameraCharacteristics.CONTROL_AE_AVAILABLE_PRIORITY_MODES
)
// ... (Your existing code between the snippets) ...
// 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_PRIORITY
)
reqBuilder.set(
CaptureRequest.SENSOR_SENSITIVITY,
TEST_SENSITIVITY_VALUE
)
val request: CaptureRequest = reqBuilder.build()
// ... (Your existing code after the snippet) ...
}
Ajustes precisos de temperatura y tono de color
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.
fun setCCT() {
// ... (Your existing code before this point) ...
val colorTemperatureRange: Range<Int> =
mStaticInfo.characteristics[CameraCharacteristics.COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE]
// Set to manual mode to enable CCT mode
reqBuilder[CaptureRequest.CONTROL_AWB_MODE] = CameraMetadata.CONTROL_AWB_MODE_OFF
reqBuilder[CaptureRequest.COLOR_CORRECTION_MODE] = CameraMetadata.COLOR_CORRECTION_MODE_CCT
reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE] = 5000
reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TINT] = 30
val request: CaptureRequest = reqBuilder.build()
// ... (Your existing code after this point) ...
}
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:
Detección de escenas en el 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_CAPTURE 和 ACTION_MOTION_PHOTO_CAPTURE_SECURE,用于请求相机应用拍摄动态照片并将其返回。
您必须传递额外的 EXTRA_OUTPUT 来控制将图片写入的位置,或者通过 Intent.setClipData(ClipData) 传递 Uri。如果您未设置 ClipData,系统会在调用 Context.startActivity(Intent) 时将其复制到该位置。
Mejoras de imagen Ultra 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 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 que tu app tenga acceso a los avances más recientes en tecnologías inalámbricas y de comunicación.
Medición de distancia con seguridad mejorada
Android 16 在搭载 Wi-Fi 6 的 802.11az 的受支持设备上为 Wi-Fi 位置信息添加了对强大的安全功能的支持,让应用能够将该协议的更高精确性、更高可伸缩性和动态调度与安全增强功能(包括基于 AES-256 的加密和防范中间人攻击)相结合。这样,在近距离使用情形(例如解锁笔记本电脑或车门)时,便可更安全地使用该功能。802.11az 与 Wi-Fi 6 标准集成,可利用其基础架构和功能实现更广泛的采用和更轻松的部署。
APIs de rango genéricas
Android 16 包含新的 RangingManager,它提供了在受支持的硬件上确定本地设备与远程设备之间的距离和角度的方法。RangingManager 支持使用各种测距技术,例如 BLE 信道声音探测、基于 BLE RSSI 的测距、超宽带和 Wi-Fi 往返时间。
Presencia del dispositivo del administrador de dispositivo complementario
En Android 16, se presentan nuevas APIs para vincular el servicio de tu app complementaria. El servicio se vinculará cuando el BLE esté dentro del alcance y el Bluetooth esté conectado, y se desvinculará cuando el BLE esté fuera del alcance o el Bluetooth esté desconectado. La app recibirá una nueva devolución de llamada 'onDevicePresenceEvent()' según varios DevicePresenceEvent.
Puedes encontrar más detalles en 'startObservingDevicePresence(ObservingDevicePresenceRequest)'.
Medios
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 introduce la compatibilidad con el códec de video profesional avanzado (APV), que está diseñado para usarse en la grabación y postproducción de video de alta calidad a nivel profesional.
El estándar de códec APV tiene las siguientes características:
- Calidad de video sin pérdida perceptiva (cercana a la calidad de video sin procesar)
- Codificación solo dentro de la trama de baja complejidad y alta capacidad de procesamiento (sin predicción de dominio de píxeles) para admitir mejor los flujos de trabajo de edición
- Compatibilidad con un rango de tasa de bits alto de hasta unos pocos Gbps para contenido de resolución 2K, 4K y 8K, habilitado por un esquema de codificación de entropía ligero
- Recorte de fotogramas para contenido envolvente y para habilitar la codificación y decodificación en paralelo
- Compatibilidad con varios formatos de muestreo de crominancia y profundidades de bits
- Compatibilidad con varias decodificaciones y recodificaciones sin degradación severa de la calidad visual
- Compatibilidad con videos multivista y auxiliares, como profundidad, alfa y vista previa
- Compatibilidad con HDR10/10+ y metadatos definidos por el usuario
Se proporciona una implementación de referencia de APV a través del proyecto OpenAPV. Android 16 implementará la compatibilidad con el perfil APV 422-10 que proporciona muestreo de color YUV 422 junto con codificación de 10 bits y para tasas de bits objetivo de hasta 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 agrega ACTIVITY_INTENSITY, un 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 médicos. Esto permite que las apps lean y escriban registros médicos en formato FHIR con el consentimiento explícito del usuario.
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 del dispositivo
Android 16 brinda a tus apps la compatibilidad necesaria para aprovechar al máximo los factores de forma de Android.
Marco de trabajo estandarizado de calidad de imagen y audio para TVs
The new MediaQuality
package in Android 16 exposes
a set of standardized APIs for access to audio and picture profiles and
hardware-related settings. This allows streaming apps to query profiles and
apply them to media dynamically:
- Movies mastered with a wider dynamic range require greater color accuracy to see subtle details in shadows and adjust to ambient light, so a profile that prefers color accuracy over brightness may be appropriate.
- Live sporting events are often mastered with a narrow dynamic range, but are often watched in daylight, so a profile that preferences brightness over color accuracy can give better results.
- Fully interactive content wants minimal processing to reduce latency, and wants higher frame rates, which is why many TV's ship with a game profile.
The API allows apps to switch between profiles and users to enjoy tuning supported TVs to best suit their content.
Internacionalización
Android 16 agrega funciones y capacidades que complementan la experiencia del usuario cuando un dispositivo se usa en diferentes idiomas.
Texto vertical
Android 16 agrega compatibilidad de bajo nivel para renderizar y medir texto verticalmente para proporcionar compatibilidad básica con la escritura vertical para desarrolladores de bibliotecas. Esto es útil, en particular, para idiomas como el japonés, que suelen usar sistemas de escritura vertical. Se agregó una marca nueva, VERTICAL_TEXT_FLAG, a la clase Paint. Cuando
esta marca se establece con
Paint.setFlags, las APIs de medición de texto de Paint
informarán avances verticales en lugar de horizontales, y Canvas dibujará texto
verticalmente.
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.