O Android 14 introduz ótimos recursos e APIs para desenvolvedores. As seções abaixo ajudam você a conhecer os recursos dos apps e a começar a usar as APIs relacionadas.
Para uma lista detalhada das APIs adicionadas, modificadas e removidas, leia o Relatório de diferenças da API. Para ver detalhes sobre as APIs adicionadas, acesse a Referência da API do Android. Para o Android 14, procure as APIs que foram adicionadas no nível da API 34. Para saber mais sobre as áreas em que as mudanças na plataforma podem afetar seus apps, consulte as mudanças de comportamento do Android 14 para apps destinados ao Android 14 e para todos os apps.
Internacionalização
Seleção de idioma por app
O Android 14 expande os recursos de linguagem por app lançados no Android 13 (API de nível 33) com estes recursos extras:
Gerar automaticamente o
localeConfigde um app: a partir do Android Studio Giraffe Canary 7 e do AGP 8.1.0-alpha07, é possível configurar seu app para oferecer suporte a seleção de idioma por app automaticamente. Com base nos recursos do projeto, o Plug-in do Android para Gradle gera o arquivoLocaleConfige adiciona uma referência a ele no arquivo de manifesto final. Assim, não é mais necessário criar ou atualizar o arquivo manualmente. O AGP usa os recursos nas pastasresdos módulos do app e qualquer dependência de módulos de biblioteca para determinar as localidades que serão incluídas no arquivoLocaleConfig.Atualizações dinâmicas para o
localeConfigde um app: use os métodossetOverrideLocaleConfig()egetOverrideLocaleConfig()emLocaleManagerpara atualizar dinamicamente a lista de idiomas com suporte no app nas configurações do sistema do dispositivo. Use essa flexibilidade para personalizar a lista de idiomas com suporte por região, executar experimentos A/B ou fornecer uma lista atualizada de localidades se o app usar pushes do lado do servidor para localização.Visibilidade do idioma do app para Editores de método de entrada (IMEs): os IMEs podem usar o método
getApplicationLocales()para conferir o idioma do app atual e associar o idioma do IME a ele.
API Grammatical Inflection
Três bilhões de pessoas falam idiomas com marcação de gênero: idiomas em que categorias gramaticais, como substantivos, verbos, adjetivos e preposições, mudam de acordo com o gênero das pessoas e os objetos sobre os quais elas falam. Tradicionalmente, vários idiomas com marcação de gênero usam o gênero gramatical masculino como padrão ou genérico.
Referir-se a usuários no gênero gramatical errado, como falar com uma mulher no gênero gramatical masculino, pode afetar negativamente o desempenho e a atitude dela. Por outro lado, uma interface com linguagem que reflete corretamente o gênero gramatical do usuário pode melhorar o engajamento e fornecer uma experiência do usuário mais personalizada e natural.
为帮助您针对区分性别的语言构建以用户为中心的界面,Android 14 引入了 Grammatical Inflection API,让您无需重构应用便能添加对语法性别的支持。
Preferências regionais
As preferências regionais permitem que os usuários personalizem unidades de temperatura, o primeiro dia da semana e sistemas de numeração. Um europeu que mora nos Estados Unidos pode preferir que as unidades de temperatura estejam em Celsius em vez de Fahrenheit e que apps tratem a segunda-feira como o início da semana, em vez do padrão dos EUA de usar o domingo.
Os novos menus de configurações do Android para essas preferências oferecem aos usuários um
local detectável e centralizado para mudar as preferências do app. Essas
preferências também são mantidas com backup e restauração. Várias APIs e
intents (como
getTemperatureUnit
e
getFirstDayOfWeek)
permitem que o app acesse as preferências do usuário, ajustando a forma como as informações
são exibidas. Também é possível registrar um
BroadcastReceiver em
ACTION_LOCALE_CHANGED
para processar mudanças de configuração de localidade quando as preferências regionais mudam.
Para encontrar essas configurações, abra o app Configurações e navegue até Sistema > Idiomas e entrada > Preferências regionais.
Acessibilidade
Dimensionamento de fonte não linear para 200%
从 Android 14 开始,系统支持字体放大高达 200%,为用户提供了其他无障碍功能选项。
为防止屏幕上的大文本元素过于放大,系统会采用非线性放大曲线。这种放大策略意味着大号文本的放大比例不会与较小的文本相同。非线性字体放大有助于保持不同大小元素之间的比例层次结构,同时缓解高级别线性文本放大存在的问题(例如文本被截断或文本因非常大的显示大小而难以阅读)。
使用非线性字体放大测试应用
如果您已使用可缩放像素 (sp) 单位来定义文本大小,那么这些额外的选项和缩放改进会自动应用于应用中的文本。不过,您仍应在启用最大字体大小 (200%) 的情况下执行界面测试,以确保应用正确应用字体大小,并且可以容纳更大的字体大小,而不会影响易用性。
要启用 200% 字号,请按以下步骤操作:
- 打开“设置”应用,然后依次前往无障碍 > 显示大小和文字。
- 在字号选项中,点按加号 (+) 图标,直到启用最大字号设置,如本部分随附的图片所示。
针对文本大小使用放大像素 (sp) 单位
请务必始终以 sp 为单位指定文本大小。当应用使用 sp 单位时,Android 可以应用用户的首选文本大小,并相应地进行缩放。
不要为内边距使用 sp 单位,也不要定义假设存在隐式内边距的视图高度:使用非线性字体放大 sp 尺寸可能并不成比例,因此 4sp + 20sp 可能并不等于 24sp。
转换放大像素 (sp) 单位
使用 TypedValue.applyDimension() 从 sp 单位转换为像素,并使用 TypedValue.deriveDimension() 将像素转换为 sp。这些方法会自动应用适当的非线性放大曲线。
避免使用 Configuration.fontScale 或 DisplayMetrics.scaledDensity 对等式进行硬编码。由于字体放大是非线性的,因此 scaledDensity 字段不再准确。fontScale 字段应仅用于提供信息,因为字体不再使用单个标量值进行缩放。
针对 lineHeight 使用 sp 单位
请始终使用 sp 单位(而非 dp)定义 android:lineHeight,以便行高随文本一起缩放。否则,如果您的文字是 sp,但 lineHeight 是 dp 或像素,则文字不会缩放,看起来会很拥挤。
TextView 会自动更正 lineHeight,以便保留您预期的比例,但前提是 textSize 和 lineHeight 均以 sp 单位定义。
Câmera e mídia
Ultra HDR para imagens
O Android 14 adiciona suporte a imagens de High Dynamic Range (HDR) que retêm mais informações do sensor ao tirar uma foto, o que permite cores vibrantes e maior contraste. O Android usa o formato Ultra HDR, que é totalmente compatível com versões anteriores de imagens JPEG, permitindo que os apps interajam perfeitamente com imagens HDR, exibindo-as no intervalo dinâmico padrão (SDR, na sigla em inglês) conforme necessário.
A renderização dessas imagens na interface em HDR é feita automaticamente pelo framework
quando o app opta por usar a interface HDR para a janela de atividade, seja por uma
entrada de manifesto ou no momento da execução, chamando
Window.setColorMode(). Também é possível capturar imagens estáticas Ultra
HDR compactadas em dispositivos compatíveis. Com mais cores recuperadas
do sensor, a edição na pós-produção pode ser mais flexível. O
Gainmap associado a imagens Ultra HDR pode ser usado para renderizá-las
usando OpenGL ou Vulkan.
Zoom, foco, visualização posterior e muito mais nas extensões de câmera
O Android 14 atualiza e melhora as extensões de câmera, permitindo que os apps processem imagens em tempos mais longos, o que melhora as imagens usando algoritmos de computação intensiva, como a fotografia com pouca luz em dispositivos compatíveis. Esses recursos oferecem aos usuários uma experiência ainda mais robusta ao usar os recursos de extensão da câmera. Confira alguns exemplos dessas melhorias:
- A estimativa de latência de processamento de captura estática dinâmica fornece estimativas de latência de captura estática muito mais precisas com base nas condições atuais da cena e do ambiente. Chame
CameraExtensionSession.getRealtimeStillCaptureLatency()para receber um objetoStillCaptureLatencycom dois métodos de estimativa de latência. O métodogetCaptureLatency()retorna a latência estimada entreonCaptureStartedeonCaptureProcessStarted(), e o métodogetProcessingLatency()retorna a latência estimada entreonCaptureProcessStarted()e o frame processado final que está disponível. - Suporte a callbacks de progresso de captura para que os apps possam mostrar o progresso
atual de operações de processamento de captura de longa duração. É possível verificar
se esse recurso está disponível com
CameraExtensionCharacteristics.isCaptureProcessProgressAvailable. Se estiver, implemente o callbackonCaptureProcessProgressed(), que tem o progresso (de 0 a 100) transmitido como um parâmetro. Metadados específicos da extensão, como
CaptureRequest.EXTENSION_STRENGTHpara discar a quantidade de um efeito de extensão, como a quantidade de desfoque do plano de fundo comEXTENSION_BOKEH.Recurso de visualização pós-captura para captura de fotos em extensões de câmera, que fornece uma imagem menos processada mais rapidamente do que a imagem final. Se uma extensão aumentar a latência de processamento, uma imagem pós-visualização poderá ser fornecida como um marcador de posição para melhorar a UX e ser trocada posteriormente pela imagem final. Você pode verificar se esse recurso está disponível com
CameraExtensionCharacteristics.isPostviewAvailable. Em seguida, você pode transmitir umOutputConfigurationparaExtensionSessionConfiguration.setPostviewOutputConfiguration.Compatibilidade com
SurfaceView, permitindo um caminho de renderização de visualização mais otimizado e eficiente em termos de energia.Suporte a toque para focar e zoom durante o uso da extensão.
Zoom no sensor
Quando REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE em
CameraCharacteristics contém
SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW, o app
pode usar recursos avançados do sensor para fornecer a um fluxo RAW cortado os mesmos
pixels do campo de visão completo usando um CaptureRequest
com um destino RAW que tenha o caso de uso do fluxo definido como
CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW.
Ao implementar os controles de substituição de solicitação, a câmera atualizada oferece aos usuários
o controle de zoom antes mesmo que outros controles da câmera estejam prontos.
Áudio USB sem perdas
O Android 14 oferece suporte a formatos de áudio sem perda para experiências
de áudio de alta qualidade com fones de ouvido com fio USB. É possível consultar um dispositivo USB para saber os
atributos de mixer preferidos, registrar um listener para mudanças nos atributos
de mixer preferidos e configurar atributos de mixer usando a
classe AudioMixerAttributes. Essa classe representa o
formato, como máscara de canal, taxa de amostragem e comportamento do mixer de áudio. A
classe permite que o áudio seja enviado diretamente, sem mixagem,
ajuste de volume ou efeitos de processamento.
Produtividade e ferramentas para desenvolvedores
Credential Manager
O Android 14 adiciona o Gerenciador de credenciais como uma API de plataforma, com suporte adicional para dispositivos Android 4.4 (nível 19 da API) e versões mais recentes por meio de uma biblioteca do Jetpack que usa o Google Play Services. O Gerenciador de credenciais tem como objetivo facilitar o login para os usuários com APIs que recuperam e armazenam credenciais com provedores de credenciais configurados pelo usuário. O Gerenciador de credenciais oferece suporte a vários métodos de login, incluindo nome de usuário e senha, chaves de acesso e soluções de login federadas (como o recurso Fazer login com o Google) em uma única API.
As chaves de acesso oferecem muitas vantagens. Por exemplo, as chaves de acesso são criadas com base em padrões do setor, podem funcionar em diferentes sistemas operacionais e ecossistemas de navegadores e podem ser usadas em sites e apps.
Para mais informações, consulte a documentação do Credential Manager e das chaves de acesso e a postagem do blog sobre o Credential Manager e as chaves de acesso.
Conexão Saúde
Health Connect 是用户健康与健身数据的设备端仓库。借助该功能,用户可以在一个位置控制要与这些应用共享哪些数据,并在自己喜爱的应用之间共享数据。
在搭载 Android 14 之前的 Android 版本的设备上,Health Connect 可作为应用从 Google Play 商店下载。从 Android 14 开始,Health Connect 将成为 Android 平台的一部分,并通过 Google Play 系统更新接收更新,而无需单独下载。这样一来,Health Connect 就可以频繁更新,您的应用可以依赖于搭载 Android 14 或更高版本的设备上提供的 Health Connect。用户可以通过设备的“设置”访问 Health Connect,隐私控制功能集成到系统设置中。
Health Connect 在 Android 14 中包含多项新功能,例如锻炼路线,可让用户分享可在地图上直观呈现的锻炼路线。路线定义为在一定时间范围内保存的位置列表,您的应用可以将路线插入锻炼时段,将它们关联起来。为确保用户能够完全控制此类敏感数据,用户必须允许与其他应用共享单个路线。
如需了解详情,请参阅 Health Connect 文档以及有关 Android Health 中的新功能的博文。
Atualizações do OpenJDK 17
O Android 14 continua o trabalho de atualizar as principais bibliotecas do Android para se alinhar aos recursos das versões mais recentes do LTS do OpenJDK, incluindo atualizações de bibliotecas e suporte à linguagem Java 17 para desenvolvedores de apps e plataformas.
Os seguintes recursos e melhorias estão incluídos:
- Aproximadamente 300 classes
java.baseforam atualizadas para oferecer suporte ao Java 17. - Blocos de texto, que introduzem literais de string de várias linhas à linguagem de programação Java.
- Correspondência de padrão para instanceof, que permite que um objeto
seja tratado como um tipo específico em uma
instanceofsem nenhuma outra variável. - Classes seladas, que permitem restringir quais classes e interfaces podem estender ou implementar essas classes.
Graças às atualizações do sistema do Google Play (Projeto Mainline), mais de 600 milhões de dispositivos podem receber as atualizações mais recentes do Android Runtime (ART), que incluem essas mudanças. Isso faz parte do nosso compromisso de oferecer aos apps um ambiente mais consistente e seguro em todos os dispositivos, com novos recursos para os usuários, independente da versão da plataforma.
Java e OpenJDK são marcas registradas da Oracle e/ou afiliadas.
Melhorias para app stores
O Android 14 apresenta várias APIs PackageInstaller que
permitem que as app stores melhorem a experiência do usuário.
Solicitar aprovação da instalação antes do download
A instalação ou atualização de um app pode exigir a aprovação do usuário.
Por exemplo, quando um instalador que usa a permissão
REQUEST_INSTALL_PACKAGES tenta instalar um
novo app. Nas versões anteriores do Android, as app stores só podem solicitar a aprovação do usuário
depois que os APKs são gravados na sessão de instalação e a
sessão é confirmada.
A partir do Android 14, o método requestUserPreapproval()
permite que os instaladores solicitem a aprovação do usuário antes de confirmar a sessão
de instalação. Essa melhoria permite que a app store adie o download de APKs até
que a instalação seja aprovada pelo usuário. Além disso, depois que um usuário
aprova a instalação, a app store pode fazer o download e instalar o app em
segundo plano sem interromper o usuário.
Reivindicar a responsabilidade por atualizações futuras
O método setRequestUpdateOwnership() permite que um instalador
indique ao sistema que pretende ser responsável por futuras atualizações
de um app que ele está instalando. Esse recurso permite a aplicação da propriedade
da atualização, ou seja, apenas o proprietário da atualização pode
instalar atualizações automáticas no app. A aplicação da propriedade da atualização ajuda a
garantir que os usuários recebam atualizações apenas da app store esperada.
Qualquer outro instalador, incluindo aqueles que usam a permissão
INSTALL_PACKAGES, precisa receber aprovação explícita do usuário
para instalar uma atualização. Se um usuário decidir continuar com uma
atualização de outra fonte, a propriedade da atualização será perdida.
Atualizar apps em momentos menos incômodos
Geralmente, as app stores não querem atualizar um app que está em uso, porque isso encerra os processos em execução e pode interromper o que o usuário está fazendo.
A partir do Android 14, a API InstallConstraints
oferece aos instaladores uma maneira de garantir que as atualizações do app ocorram em um
momento oportuno. Por exemplo, uma app store pode chamar o método
commitSessionAfterInstallConstraintsAreMet()
para garantir que uma atualização só será confirmada quando o usuário não estiver mais
interagindo com o app em questão.
Instalar divisões opcionais de forma simples
Com os APKs divididos, os recursos de um app podem ser enviados em arquivos APK separados
em vez de como um APK monolítico. Os APKs divididos permitem que as app stores otimizem a
entrega de diferentes componentes do app. Por exemplo, app stores podem otimizar
com base nas propriedades do dispositivo de destino. A
API PackageInstaller oferece
suporte a divisões desde a
apresentação no nível 22 da API.
No Android 14, o método setDontKillApp() permite que um
instalador indique que os processos em execução do app não serão encerrados quando
novas divisões forem instaladas. As app stores podem usar esse recurso para instalar
novos recursos enquanto o usuário está usando o app.
Pacotes de metadados do app
A partir do Android 14, o instalador do pacote do Android permite que você especifique os metadados do app, como práticas de segurança de dados, que serão incluídos em páginas de app stores, como o Google Play.
Detectar quando usuários fazem capturas de tela no dispositivo
Para criar uma experiência mais padronizada para detectar capturas de tela, o Android 14 apresenta uma API de detecção de capturas de tela que preserva a privacidade. Ela permite que os apps registrem callbacks por atividade. Esses callbacks são invocados, e o usuário é notificado quando faz uma captura de tela enquanto a atividade está visível.
Experiência do usuário
Ações personalizadas e melhoria na classificação do Sharesheet
O Android 14 atualiza o Sharesheet do sistema para oferecer suporte a ações personalizadas do app e resultados de visualização mais informativos para os usuários.
Adicionar ações personalizadas
Com o Android 14, o app pode adicionar ações personalizadas ao Sharesheet do sistema que ele invoca.
Melhorar a classificação dos alvos de compartilhamento direto
O Android 14 usa mais indicadores de apps para determinar a classificação dos alvos de compartilhamento diretos a fim de apresentar resultados mais úteis para o usuário. Para fornecer o indicador mais útil para a classificação, siga as orientações para melhorar a classificação dos seus alvos de compartilhamento direto. Os apps de comunicação também podem informar o uso de atalhos para mensagens de entrada e saída.
Suporte a animações de voltas preditivas integradas e personalizadas
Android 13 在开发者选项背后引入了预测性“返回主屏幕”动画。在已启用开发者选项的受支持应用中使用时,滑回手势会显示动画,表明返回手势会使应用退回到主屏幕。
Android 14 包含针对“预测性返回”的多项改进和新指南:
- 您可设置
android:enableOnBackInvokedCallback=true,以便为每个 activity 选择启用预测性返回系统动画,而不是为整个应用选择启用。 - 我们添加了新的系统动画,以配合 Android 13 中的“返回主屏幕”动画。新的系统动画是跨 activity 和跨任务的,您可在迁移到预测性返回后自动获得该动画。
- 我们为底部动作条、侧边动作条和搜索添加了新的 Material 组件动画。
- 我们制作了有关如何创建自定义应用内动画和转换的设计指南。
- 我们添加了许多新 API 来支持自定义的应用内转换动画:
在此 Android 14 预览版中,所有预测性返回功能都是位于开发者选项背后。请参阅与将您的应用迁移到预测性返回有关的开发者指南,以及与创建自定义应用内转换有关的开发者指南。
Substituições por app do fabricante de dispositivos de tela grande
As substituições por app permitem que os fabricantes mudem o comportamento dos apps em dispositivos de tela grande. Por exemplo, a substituição FORCE_RESIZE_APP instrui o sistema a redimensionar o app para que se ajuste às dimensões de exibição (evitando o modo de compatibilidade de tamanho), mesmo que resizeableActivity="false" esteja definido no manifesto do app.
As substituições têm como objetivo melhorar a experiência do usuário em telas grandes.
As novas propriedades do manifesto permitem desativar algumas substituições do fabricante do dispositivo para o app.
Substituições por app do usuário em telas grandes
As substituições por app mudam o comportamento dos apps em dispositivos de tela grande. Por exemplo, a substituição do fabricante do dispositivo OVERRIDE_MIN_ASPECT_RATIO_LARGE define a proporção do app como 16:9, independente da configuração dele.
O Android 14 QPR1 permite que os usuários apliquem substituições por app usando um novo menu de configurações em dispositivos de tela grande.
Compartilhamento de tela de app
借助应用界面共享功能,用户可以在录制屏幕内容时共享应用窗口,而不是整个设备屏幕。
在应用屏幕共享模式下,状态栏、导航栏、通知和其他系统界面元素会从共享显示屏中排除。系统只会分享所选应用的内容。
应用屏幕共享功能可让用户运行多个应用,但将内容共享限制为单个应用,从而提高工作效率并保护隐私。
Resposta inteligente com tecnologia de LLM no Gboard no Pixel 8 Pro
Em dispositivos Pixel 8 Pro com a versão de dezembro, os desenvolvedores podem testar respostas inteligentes de maior qualidade no Gboard com modelos de linguagem grandes (LLMs) no dispositivo em execução no Google Tensor.
Esse recurso está disponível como uma prévia limitada para o inglês dos EUA no WhatsApp, no Line e no KakaoTalk. É necessário usar um dispositivo Pixel 8 Pro com o Gboard como teclado.
Para testar, primeiro ative o recurso em Configurações > Opções do desenvolvedor > Configurações do AICore > Ativar o AICore persistente.
Em seguida, abra uma conversa em um app compatível para conferir a resposta inteligente com LLM na faixa de sugestões do Gboard em resposta às mensagens recebidas.
Gráficos
Os caminhos podem ser consultados e interpolados
Android 的 Path API 是一种强大且灵活的机制,可用于创建和渲染矢量图形,能够描边或填充路径、根据线段或二次曲线或立方曲线构建路径、执行布尔运算以获取更复杂的形状,或同时执行所有这些操作。但有一个限制是,您无法了解 Path 对象中实际包含的内容;该对象的内部信息在创建后对调用方是不透明的。
如需创建 Path,您可以调用 moveTo()、lineTo() 和 cubicTo() 等方法来添加路径段。但是,无法询问该路径有哪些片段,因此您必须在创建时保留该信息。
从 Android 14 开始,您可以查询路径以了解其内部内容。首先,您需要使用 Path.getPathIterator API 获取 PathIterator 对象:
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();
接下来,您可以调用 PathIterator 逐个遍历片段,并检索每个片段的所有必要数据。以下示例使用了 PathIterator.Segment 对象,它会为您打包数据:
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 还有一个非分配版 next(),您可以在其中传入缓冲区来保存点数据。
查询 Path 数据的一个重要用例是插值。例如,您可能想在两个不同的路径之间添加动画(或变形)。为了进一步简化该用例,Android 14 针对 Path 还包含 interpolate() 方法。假设两个路径具有相同的内部结构,interpolate() 方法会使用该插值结果创建一个新的 Path。以下示例返回了一个形状介于 path 和 otherPath 之间的一半(线性插值为 0.5)的路径:
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); }
Jetpack graphics-path 库也为早期版本的 Android 启用了类似的 API。
Malhas personalizadas com sombreadores de vértice e fragmento
O Android já oferece suporte a renderização de malhas triangulares com sombreamento personalizado, mas o formato de malha de entrada foi limitado a algumas combinações de atributos predefinidas. O Android 14 adiciona suporte a malhas personalizadas, que podem ser definidas como triângulos ou faixas de triângulo, e podem ser indexadas, se necessário. Essas malhas são especificadas com atributos personalizados, incrementos de vértice, variação e sombreadores de vértice e fragmento escritos em AGSL.
O sombreador de vértice define as variações, como posição e cor, enquanto o
sombreador de fragmentos pode definir a cor do pixel, normalmente
usando as variações criadas pelo sombreador de vértice. Se a cor for fornecida pelo
shader de fragmentos, ela será mesclada com a cor Paint
atual usando o modo de mesclagem selecionado ao
desenhar a malha. Os uniformes podem ser transmitidos
para os sombreadores de fragmentos e vértices para mais flexibilidade.
Renderizador de buffer de hardware para Canvas
Para ajudar no uso da API Canvas do Android para desenhar com
aceleração de hardware em um HardwareBuffer, Android 14
apresenta o HardwareBufferRenderer. Essa API é
particularmente útil quando seu caso de uso envolve a comunicação com o compositor
do sistema usando SurfaceControl para renderização
de baixa latência.