Android 14 incluye excelentes funciones y APIs para desarrolladores. A continuación, se incluye información que te ayudará a conocer las funciones de tus apps y a comenzar a usar las APIs relacionadas.
Para obtener una lista detallada de las APIs agregadas, modificadas y quitadas, consulta el informe de diferencias de la API. Para obtener detalles sobre las APIs agregadas, consulta la referencia de la API de Android. En Android 14, busca las APIs que se agregaron en el nivel de API 34. Para obtener información sobre las áreas en las que los cambios de la plataforma podrían afectar tus apps, asegúrate de revisar los cambios en el comportamiento de Android 14 para apps orientadas a Android 14 y para todas las apps.
Internacionalización
Preferencias de idioma de las apps
Android 14 amplía las funciones del idioma de las apps que se introdujeron en Android 13 (nivel de API 33) con estas capacidades adicionales:
Genera automáticamente
localeConfig
de una app: A partir de Android Studio Giraffe Canary 7 y AGP 8.1.0-alpha07, puedes configurar tu app para que admita automáticamente las preferencias de idioma de las apps. En función de los recursos de tu proyecto, el complemento de Android para Gradle genera el archivoLocaleConfig
y le agrega una referencia en el archivo de manifiesto final, por lo que ya no necesitas crear ni actualizar el archivo de forma manual. AGP usa los recursos en las carpetasres
de los módulos de tu app y las dependencias de módulos de biblioteca para determinar las configuraciones regionales que se incluirán en el archivoLocaleConfig
.Actualizaciones dinámicas para
localeConfig
de una app: Usa los métodossetOverrideLocaleConfig()
ygetOverrideLocaleConfig()
deLocaleManager
para actualizar, de forma dinámica, la lista de idiomas compatibles con tu app en la configuración del sistema del dispositivo. Usa esta flexibilidad para personalizar la lista de idiomas compatibles por región, ejecutar experimentos A/B o proporcionar una lista actualizada de configuraciones regionales si tu app usa envíos del servidor para la localización.Visibilidad del idioma de la app para editores de métodos de entrada (IME): Los IMEs pueden usar el método
getApplicationLocales()
para verificar el idioma de la app actual y hacer coincidir el idioma IME con ese idioma.
API de Grammatical Inflection
Tres mil millones de personas hablan idiomas con género, es decir, idiomas en los que las categorías gramaticales, como sustantivos, verbos, adjetivos y preposiciones, inflexionan según el género de las personas y los objetos con las que te comunicas o sobre los que hablas. Tradicionalmente, muchos idiomas con género usan el género gramatical masculino como el género predeterminado o genérico.
Dirigirse a usuarios con un género gramatical incorrecto, por ejemplo, a mujeres con género gramatical masculino, puede tener un impacto negativo en su rendimiento y actitud. Por el contrario, una IU con un lenguaje que refleja, de forma correcta, el género gramatical del usuario puede mejorar su participación y proporcionar una experiencia más personalizada y más natural.
To help you build a user-centric UI for gendered languages, Android 14 introduces the Grammatical Inflection API, which lets you add support for grammatical gender without refactoring your app.
Preferencias regionales
Regional preferences enable users to personalize temperature units, the first day of the week, and numbering systems. A European living in the United States might prefer temperature units to be in Celsius rather than Fahrenheit and for apps to treat Monday as the beginning of the week instead of the US default of Sunday.
New Android Settings menus for these preferences provide users with a
discoverable and centralized location to change app preferences. These
preferences also persist through backup and restore. Several APIs and
intents—such as
getTemperatureUnit
and
getFirstDayOfWeek
—
grant your app read access to user preferences, so your app can adjust how it
displays information. You can also register a
BroadcastReceiver
on
ACTION_LOCALE_CHANGED
to handle locale configuration changes when regional preferences change.
To find these settings, open the Settings app and navigate to System > Languages & input > Regional preferences.


Accesibilidad
Escalamiento de fuente no lineal al 200%
A partir de Android 14, el sistema admite el escalamiento de fuente hasta el 200%, lo que les brinda a los usuarios con visión reducida opciones de accesibilidad adicionales que se alinean con las Pautas de Accesibilidad al Contenido Web (WCAG).
Para evitar que los elementos de texto grandes en la pantalla escalen demasiado, el sistema aplica una curva de escalamiento no lineal. Esta estrategia de escalamiento implica que el texto grande no escala a la misma velocidad que uno más pequeño. El escalamiento de fuente no lineal ayuda a preservar la jerarquía proporcional entre elementos de diferentes tamaños, a la vez que mitiga los problemas con el escalamiento lineal de texto en grados altos (como el texto cortado o el texto que se vuelve más difícil de leer debido a su gran tamaño de visualización).
Prueba tu app con escalamiento de fuente no lineal

Si ya usas unidades de píxeles ajustados (sp) para definir el tamaño del texto, estas opciones adicionales y mejoras de escala se aplican automáticamente al texto de tu app. Sin embargo, debes realizar pruebas de la IU con el tamaño máximo de fuente habilitado (200%) para asegurarte de que tu app aplique los tamaños de fuente correctamente y pueda adaptarse a tamaños de fuente más grandes sin afectar la usabilidad.
Para habilitar el tamaño de la fuente al 200%, sigue estos pasos:
- Abre la app de Configuración y dirígete a Accesibilidad > Tamaño y texto de la pantalla.
- En la opción Tamaño de fuente, presiona el ícono de signo más (+) hasta que se habilite la configuración de tamaño máximo de fuente, como se muestra en la imagen que acompaña esta sección.
Usa unidades de píxeles ajustados (sp) para los tamaños de texto
Recuerda siempre especificar los tamaños de texto en unidades de sp. Cuando tu app usa unidades de sp, Android puede aplicar el tamaño de texto preferido del usuario y escalarlo de forma adecuada.
No uses unidades de sp para el padding ni definas alturas de las vistas suponiendo padding implícito: con el escalamiento de fuente no lineal, las dimensiones de sp podrían no ser proporcionales, por lo que 4 sp + 20 sp podría no ser igual a 24 sp.
Convierte unidades de píxeles ajustados (sp)
Usa TypedValue.applyDimension()
para convertir unidades de sp en píxeles y TypedValue.deriveDimension()
para convertir píxeles en sp. Estos métodos aplican automáticamente la curva de escalamiento no lineal adecuada.
Evita codificar la ecuación mediante Configuration.fontScale
o DisplayMetrics.scaledDensity
. Como el escalamiento de fuente no es lineal, el campo scaledDensity
ya no es preciso. El campo fontScale
debe usarse solo con fines informativos, porque las fuentes ya no se escalan con un solo valor escalar.
Usa unidades de sp para lineHeight
Define siempre android:lineHeight
con unidades de sp en lugar de dp para que la altura de la línea se escale junto con el texto. De lo contrario, si tu texto es sp, pero tu lineHeight
está en dp o px, no se escala y parece apretado.
TextView corrige automáticamente el lineHeight
para que se conserven las proporciones previstas, pero solo si textSize
y lineHeight
se definen en unidades sp.
Cámara y contenido multimedia
Ultra HDR para imágenes

Android 14 adds support for High Dynamic Range (HDR) images that retain more of the information from the sensor when taking a photo, which enables vibrant colors and greater contrast. Android uses the Ultra HDR format, which is fully backward compatible with JPEG images, allowing apps to seamlessly interoperate with HDR images, displaying them in Standard Dynamic Range (SDR) as needed.
Rendering these images in the UI in HDR is done automatically by the framework
when your app opts in to using HDR UI for its Activity Window, either through a
manifest entry or at runtime by calling
Window.setColorMode()
. You can also capture compressed Ultra
HDR still images on supported devices. With more colors recovered
from the sensor, editing in post can be more flexible. The
Gainmap
associated with Ultra HDR images can be used to render
them using OpenGL or Vulkan.
Zoom, enfoque, Postview y más en las extensiones de cámara
Android 14 actualiza y mejora las extensiones de la cámara, lo que permite que las apps manejen tiempos de procesamiento más largos, lo que permite mejorar las imágenes con algoritmos intensivos en procesamiento, como la fotografía con poca luz en dispositivos compatibles. Estas funciones les brindan a los usuarios una experiencia aún más sólida cuando usan las funciones de extensión de la cámara. Entre los ejemplos de estas mejoras, se incluyen los siguientes:
- La estimación de latencia de procesamiento de capturas estáticas dinámicas proporciona estimaciones de latencia de capturas estáticas mucho más precisas en función de las condiciones actuales de la escena y el entorno. Llama a
CameraExtensionSession.getRealtimeStillCaptureLatency()
para obtener un objetoStillCaptureLatency
que tenga dos métodos de estimación de latencia. El métodogetCaptureLatency()
muestra la latencia estimada entreonCaptureStarted
yonCaptureProcessStarted()
, y el métodogetProcessingLatency()
muestra la latencia estimada entreonCaptureProcessStarted()
y el fotograma procesado final que está disponible. - Compatibilidad con devoluciones de llamada de progreso de captura para que las apps puedan mostrar el progreso actual de las operaciones de procesamiento de capturas estáticas de larga duración. Puedes verificar si esta función está disponible con
CameraExtensionCharacteristics.isCaptureProcessProgressAvailable
y, si es así, implementar la devolución de llamadaonCaptureProcessProgressed()
, que tiene el progreso (de 0 a 100) pasado como parámetro. Metadatos específicos de la extensión, como
CaptureRequest.EXTENSION_STRENGTH
para marcar la cantidad de un efecto de extensión, como la cantidad de desenfoque de fondo conEXTENSION_BOKEH
Función de vista posterior para la captura de imágenes fijas en extensiones de cámara, que proporciona una imagen menos procesada más rápido que la imagen final. Si una extensión tiene una latencia de procesamiento mayor, se puede proporcionar una imagen posterior a la vista como marcador de posición para mejorar la UX y cambiarla más adelante por la imagen final. Puedes verificar si esta función está disponible con
CameraExtensionCharacteristics.isPostviewAvailable
. Luego, puedes pasar unOutputConfiguration
aExtensionSessionConfiguration.setPostviewOutputConfiguration
.Compatibilidad con
SurfaceView
, que permite una ruta de renderización de vista previa más optimizada y eficiente en términos de energía.Se agregó compatibilidad con el enfoque y el zoom con un toque durante el uso de la extensión.
Zoom en el sensor
When REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE
in
CameraCharacteristics
contains
SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
, your app
can use advanced sensor capabilities to give a cropped RAW stream the same
pixels as the full field of view by using a CaptureRequest
with a RAW target that has stream use case set to
CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
.
By implementing the request override controls, the updated camera gives users
zoom control even before other camera controls are ready.
Audio USB sin pérdida
Android 14 gains support for lossless audio formats for audiophile-level
experiences over USB wired headsets. You can query a USB device for its
preferred mixer attributes, register a listener for changes in preferred mixer
attributes, and configure mixer attributes using the
AudioMixerAttributes
class. This class represents the
format, such as channel mask, sample rate, and behavior of the audio mixer. The
class allows for audio to be sent directly, without mixing,
volume adjustment, or processing effects.
Productividad y herramientas para desarrolladores
Credential Manager
Android 14 agrega Credential Manager como una API de la plataforma, con compatibilidad adicional con dispositivos Android 4.4 (nivel de API 19) a través de una biblioteca de Jetpack que usa los Servicios de Google Play. El objetivo de Credential Manager es facilitar el acceso de los usuarios con APIs que recuperan y almacenan credenciales con proveedores de credenciales configurados por el usuario. El Administrador de credenciales admite varios métodos de acceso, como nombres de usuario y contraseñas, llaves de acceso y soluciones de acceso federado (como Acceder con Google) en una sola API.
Las llaves de acceso ofrecen muchas ventajas. Por ejemplo, las llaves de acceso se basan en estándares de la industria, pueden funcionar en diferentes sistemas operativos y ecosistemas de navegadores, y se pueden usar con sitios web y apps.
Para obtener más información, consulta la documentación de Credential Manager y las llaves de acceso y la entrada de blog sobre Credential Manager y las llaves de acceso.
Health Connect
Health Connect is an on-device repository for user health and fitness data. It allows users to share data between their favorite apps, with a single place to control what data they want to share with these apps.
On devices running Android versions prior to Android 14, Health Connect is available to download as an app on the Google Play store. Starting with Android 14, Health Connect is part of the platform and receives updates through Google Play system updates without requiring a separate download. With this, Health Connect can be updated frequently, and your apps can rely on Health Connect being available on devices running Android 14 or higher. Users can access Health Connect from the Settings in their device, with privacy controls integrated into the system settings.


Health Connect includes several new features in Android 14, such as exercise routes, allowing users to share a route of their workout which can be visualized on a map. A route is defined as a list of locations saved within a window of time, and your app can insert routes into exercise sessions, tying them together. To ensure that users have complete control over this sensitive data, users must allow sharing individual routes with other apps.
For more information, see the Health Connection documentation and the blogpost on What's new in Android Health.
Actualizaciones de OpenJDK 17
Android 14 continues the work of refreshing Android's core libraries to align with the features in the latest OpenJDK LTS releases, including both library updates and Java 17 language support for app and platform developers.
The following features and improvements are included:
- Updated approximately 300
java.base
classes to Java 17 support. - Text Blocks, which introduce multi-line string literals to the Java programming language.
- Pattern Matching for instanceof, which allows an object to
be treated as having a specific type in an
instanceof
without any additional variables. - Sealed classes, which allow you restrict which classes and interfaces can extend or implement them.
Thanks to Google Play system updates (Project Mainline), over 600 million devices are enabled to receive the latest Android Runtime (ART) updates that include these changes. This is part of our commitment to give apps a more consistent, secure environment across devices, and to deliver new features and capabilities to users independent of platform releases.
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Mejoras para tiendas de aplicaciones
Android 14 introduce varias APIs de PackageInstaller
que permiten que las tiendas de aplicaciones mejoren la experiencia del usuario.
Solicita aprobación para la instalación antes de realizar la descarga
La instalación o actualización de una app puede requerir aprobación del usuario.
Por ejemplo, cuando un instalador que usa el permiso REQUEST_INSTALL_PACKAGES
intenta instalar una app nueva. En versiones anteriores de Android, las tiendas de aplicaciones solo pueden solicitar la aprobación del usuario después de que se escriben los APK en la sesión de instalación y esta está confirmada.
A partir de Android 14, el método requestUserPreapproval()
les permite a los instaladores solicitar la aprobación del usuario antes de confirmar la sesión de instalación. Esta mejora permite que una tienda de aplicaciones aplace la descarga de cualquier APK hasta que el usuario haya aprobado la instalación. Además, una vez que un usuario aprobó la instalación, la tienda de aplicaciones puede descargarla e instalarla en segundo plano sin interrumpir al usuario.
Reclama la responsabilidad de las actualizaciones futuras
El método setRequestUpdateOwnership()
permite que un instalador le indique al sistema que tiene la responsabilidad de las actualizaciones futuras de una app que instala. Esta función permite actualizar la aplicación forzosa de la propiedad, es decir, que solo el propietario de la actualización puede instalar actualizaciones automáticas en la app. La aplicación forzosa de la actualización de la propiedad ayuda a garantizar que los usuarios reciban actualizaciones solo desde la tienda de aplicaciones prevista.
Cualquier otro instalador, incluidos los que usan el permiso INSTALL_PACKAGES
, deben recibir la aprobación explícita del usuario para instalar una actualización. Si un usuario decide continuar con la actualización desde otra fuente, la propiedad de esta se perderá.
Actualiza las apps en momentos menos disruptivos
Por lo general, las tiendas de aplicaciones quieren evitar actualizar una app que está en uso de forma activa, ya que esto produce que se finalicen los procesos en ejecución de la app, lo que podría interrumpir lo que el usuario estaba haciendo.
A partir de Android 14, la API de InstallConstraints
les brinda a los instaladores una forma de garantizar que las actualizaciones de apps se realicen en un momento oportuno. Por ejemplo, una tienda de aplicaciones puede llamar al método commitSessionAfterInstallConstraintsAreMet()
para asegurarse de que una actualización solo se confirme cuando el usuario ya no interactúa con la app en cuestión.
Instala divisiones opcionales sin inconvenientes
Con los APK divididos, las funciones de una app se pueden entregar en archivos APK separados, en lugar de un APK monolítico. Los APK divididos permiten que las tiendas de aplicaciones optimicen la entrega de diferentes componentes de las apps. Por ejemplo, las tiendas de aplicaciones pueden realizar optimizaciones en función de las propiedades del dispositivo de destino. La API de PackageInstaller
es compatible con las divisiones desde su introducción en el nivel de API 22.
En Android 14, el método setDontKillApp()
permite que un instalador indique que los procesos en ejecución de la app no deberían finalizar cuando se instalan nuevas divisiones. Las tiendas de aplicaciones pueden usar esta función para instalar funciones nuevas de una app sin inconvenientes mientras el usuario la usa.
Paquetes de metadatos de la app
A partir de Android 14, el instalador de paquetes de Android te permite especificar metadatos de la app, como las prácticas de seguridad de los datos, para incluir en las páginas de la tienda de aplicaciones, como Google Play.
Detecta cuando los usuarios toman capturas de pantalla del dispositivo
Para crear una experiencia más estandarizada para detectar capturas de pantalla, Android 14 introduce una API de detección de capturas de pantalla que preserva la privacidad. Esta API permite que las apps registren devoluciones de llamada por actividad. Estas devoluciones de llamada se invocan y se notifica al usuario cuando toma una captura de pantalla mientras esa actividad está visible.
Experiencia del usuario
Acciones personalizadas y clasificación mejorada de Sharesheet
Android 14 updates the system sharesheet to support custom app actions and more informative preview results for users.
Add custom actions
With Android 14, your app can add custom actions to the system sharesheet it invokes.

Improve ranking of Direct Share targets
Android 14 uses more signals from apps to determine the ranking of the direct share targets to provide more helpful results for the user. To provide the most useful signal for ranking, follow the guidance for improving rankings of your Direct Share targets. Communication apps can also report shortcut usage for outgoing and incoming messages.

Compatibilidad con animaciones integradas y personalizadas para el gesto atrás predictivo
Android 13 introduced the predictive back-to-home animation behind a developer option. When used in a supported app with the developer option enabled, swiping back shows an animation indicating that the back gesture exits the app back to the home screen.
Android 14 includes multiple improvements and new guidance for Predictive Back:
- You can set
android:enableOnBackInvokedCallback=true
to opt in to predictive back system animations per-Activity instead of for the entire app. - We've added new system animations to accompany the back-to-home animation from Android 13. The new system animations are cross-activity and cross-task, which you get automatically after migrating to Predictive Back.
- We've added new Material Component animations for Bottom sheets, Side sheets, and Search.
- We've created design guidance for creating custom in-app animations and transitions.
- We've added new APIs to support custom in-app transition animations:
handleOnBackStarted
,handleOnBackProgressed
,handleOnBackCancelled
in
OnBackPressedCallback
onBackStarted
,onBackProgressed
,onBackCancelled
in
OnBackAnimationCallback
- Use
overrideActivityTransition
instead ofoverridePendingTransition
for transitions that respond as the user swipes back.
With this Android 14 preview release, all features of Predictive Back remain behind a developer option. See the developer guide to migrate your app to predictive back, as well as the developer guide to creating custom in-app transitions.
Anulaciones por app del fabricante de dispositivos con pantalla grande
Las anulaciones por app permiten que los fabricantes de dispositivos cambien el comportamiento de las apps en dispositivos con pantallas grandes. Por ejemplo, la anulación FORCE_RESIZE_APP
le indica al sistema que cambie el tamaño de la app para que se ajuste a las dimensiones de la pantalla (evitando el modo de compatibilidad de tamaño) incluso si se configuró resizeableActivity="false"
en el manifiesto de la app.
Las anulaciones están diseñadas para mejorar la experiencia del usuario en pantallas grandes.
Las nuevas propiedades del manifiesto te permiten inhabilitar algunas anulaciones del fabricante de dispositivos para tu app.
Anulaciones por app para usuarios de pantallas grandes
Las anulaciones por app cambian el comportamiento de las apps en dispositivos con pantallas grandes. Por ejemplo, la anulación del fabricante del dispositivo OVERRIDE_MIN_ASPECT_RATIO_LARGE
establece la relación de aspecto de la app en 16:9, independientemente de su configuración.
QPR1 de Android 14 permite que los usuarios apliquen anulaciones por app a través de un nuevo menú de configuración en dispositivos con pantalla grande.
Compartir pantalla de una app
App screen sharing enables users to share an app window instead of the entire device screen during screen content recording.
With app screen sharing, the status bar, navigation bar, notifications, and other system UI elements are excluded from the shared display. Only the content of the selected app is shared.
App screen sharing improves productivity and privacy by enabling users to run multiple apps but limit content sharing to a single app.
Respuesta inteligente potenciada por LLM en Gboard en el Pixel 8 Pro
On Pixel 8 Pro devices with the December Feature Drop, developers can try out higher-quality smart replies in Gboard powered by on-device Large Language Models (LLMs) running on Google Tensor.
This feature is available as a limited preview for US English in WhatsApp, Line, and KakaoTalk. It requires using a Pixel 8 Pro device with Gboard as your keyboard.
To try it out, first enable the feature in Settings > Developer Options > AiCore Settings > Enable Aicore Persistent.
Next, open a conversation in a supported app to see LLM-powered Smart Reply in Gboard's suggestion strip in response to incoming messages.
Gráficos
Las rutas de acceso son consultables e interpolables
La API de Path
de Android es un mecanismo potente y flexible para crear y renderizar gráficos vectoriales, con la capacidad de dibujar o rellenar una ruta, construir una ruta a partir de segmentos de línea o curvas cuadráticas o cúbicas, realizar operaciones booleanas para obtener formas aún más complejas o todas estas acciones de forma simultánea. Una limitación es la capacidad de descubrir lo que hay realmente en un objeto Path; los componentes internos del objeto son opacos para los llamadores después de su creación.
Para crear un Path
, debes llamar a métodos como moveTo()
, lineTo()
y cubicTo()
para agregar segmentos de ruta. Sin embargo, no hay forma de preguntarle a esa ruta cuáles son los segmentos, por lo que debes conservar esa información en el momento de la creación.
A partir de Android 14, puedes consultar rutas de acceso para descubrir su contenido.
Primero, debes obtener un objeto PathIterator
con la API de Path.getPathIterator
:
Kotlin
val path = Path().apply { moveTo(1.0f, 1.0f) lineTo(2.0f, 2.0f) close() } val pathIterator = path.pathIterator
Java
Path path = new Path(); path.moveTo(1.0F, 1.0F); path.lineTo(2.0F, 2.0F); path.close(); PathIterator pathIterator = path.getPathIterator();
A continuación, puedes llamar a PathIterator
para iterar a través de los segmentos uno por uno y recuperar todos los datos necesarios de cada segmento. En este ejemplo, se usan objetos PathIterator.Segment
, que agrupan los datos por ti:
Kotlin
for (segment in pathIterator) { println("segment: ${segment.verb}, ${segment.points}") }
Java
while (pathIterator.hasNext()) { PathIterator.Segment segment = pathIterator.next(); Log.i(LOG_TAG, "segment: " + segment.getVerb() + ", " + segment.getPoints()); }
PathIterator
también tiene una versión de next()
no asignable en la que puedes pasar un búfer para contener los datos de puntos.
Uno de los casos de uso importantes para consultar datos de Path
es la interpolación. Por ejemplo, podrías animar (o transformar) entre dos rutas diferentes. Para simplificar aún más ese caso de uso, Android 14 también incluye el método interpolate()
en Path
. Si suponemos que las dos rutas de acceso tienen la misma estructura interna, el método interpolate()
crea un Path
nuevo con ese resultado interpolado. En este ejemplo, se muestra una ruta cuya forma está incompleta (una interpolación lineal de 0.5) entre path
y otherPath
:
Kotlin
val interpolatedResult = Path() if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, .5f, interpolatedResult) }
Java
Path interpolatedResult = new Path(); if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, 0.5F, interpolatedResult); }
La biblioteca graphics-path de Jetpack también habilita APIs similares para versiones anteriores de Android.
Mallas personalizadas con sombreadores de vértices y fragmentos
Android admite desde hace mucho tiempo el dibujo de mallas de triángulos con sombreado personalizado, pero el formato de malla de entrada se limitó a algunas combinaciones de atributos predefinidos. Android 14 agrega compatibilidad con mallas personalizadas, que se pueden definir como triángulos o tiras de triángulos, y, de manera opcional, se pueden indexar. Estas mallas se especifican con atributos personalizados, pasos de vértices, variaciones y sombreadores de vértices y fragmentos escritos en AGSL.
El sombreador de vértices define las variaciones, como la posición y el color, mientras que el sombreador de fragmentos puede definir de manera opcional el color del píxel, por lo general, con las variaciones creadas por el sombreador de vértices. Si el sombreador de fragmentos proporciona el color, se combina con el color Paint
actual con el modo de combinación seleccionado cuando se dibuja la malla. Los uniformes se pueden pasar a los sombreadores de fragmentos y vértices para obtener mayor flexibilidad.
Procesador de búfer de hardware para Canvas
Para ayudar a usar la API de Canvas
de Android y dibujar con aceleración de hardware en un HardwareBuffer
, Android 14 presenta HardwareBufferRenderer
. Esta API es
particularmente útil cuando tu caso de uso involucra la comunicación con el sistema
a través de SurfaceControl
para una latencia baja
dibujo.