O Android 14 introduz ótimos recursos e APIs para desenvolvedores. As seções a seguir ajudam você a conhecer os recursos disponíveis para os 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 mais detalhes sobre as APIs adicionadas, acesse a Referência da API do Android. No Android 14, procure APIs que foram adicionadas no nível 34 da API. Para saber mais sobre as áreas em que as mudanças na plataforma podem afetar seus apps, confira 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
localeConfig
de 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 arquivoLocaleConfig
e 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 pastasres
dos 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
localeConfig
de um app: use os métodossetOverrideLocaleConfig()
egetOverrideLocaleConfig()
emLocaleManager
para 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
有 30 亿人在使用区分性别的语言,此类语言的语法类别(例如名词、动词、形容词和介词)会根据您交谈所涉及的人或物的性别而变化。传统上,许多区分性别的语言使用阳性语法性别作为默认或通用性别。
以错误的语法性别来称呼用户,例如以阳性语法性别来称呼女性,可能会对她们的表现和态度产生负面影响。相比之下,界面语言如果能正确反映用户的语法性别,就可以提高用户互动度,并提供更个性化、更自然的用户体验。
为帮助您针对区分性别的语言构建以用户为中心的界面,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%
No Android 14 e versões mais recentes, o sistema oferece suporte a escala de fonte de até 200%, oferecendo usuários com deficiência visual com opções de acessibilidade adicionais alinhadas com a Web Diretrizes de Acessibilidade de Conteúdo (WCAG, na sigla em inglês).
Para evitar que elementos de texto grandes na tela fiquem grandes demais, o sistema aplica uma curva de dimensionamento não linear. Essa estratégia significa que textos grandes não são dimensionados na mesma taxa que os menores. O dimensionamento de fontes não linear ajuda a preservar a hierarquia proporcional entre elementos de tamanhos diferentes, reduzindo problemas com dimensionamento linear em graus elevados, como cortes de texto ou dificuldade para ler um texto devido a tamanhos muito grandes de tela.
Testar o app com dimensionamento de fontes não linear

Se você já usa unidades de pixels dimensionados (sp) para definir o dimensionamento de texto, então essas opções extras e melhorias de escalonamento são aplicadas automaticamente texto em seu aplicativo. No entanto, você ainda deve realizar testes de interface com o máximo tamanho de fonte ativado (200%) para garantir que o app aplique os tamanhos de fonte corretamente e podem acomodar tamanhos de fonte maiores sem afetar a usabilidade.
Para ativar o tamanho de fonte de 200%, siga estas etapas:
- Abra o app Configurações e navegue até Acessibilidade > Texto e tamanho de exibição.
- Na opção Tamanho da fonte, toque no ícone de adição (+) até ativar a configuração de tamanho máximo de fonte, conforme mostrado na imagem que acompanha esta seção.
Usar unidades de pixels dimensionados (sp) para tamanhos de texto
Sempre especifique tamanhos de texto em unidades de sp. Quando seu app usa unidades sp, o Android pode aplicar o tamanho de texto preferencial do usuário e dimensioná-lo adequadamente.
Não use unidades sp para preenchimento ou defina alturas de visualização assumindo o preenchimento implícito: com o dimensionamento não linear, as dimensões de sp podem não ser proporcionais. Portanto, 4sp + 20sp podem não ser iguais a 24sp.
Converter unidades de pixels dimensionados
Usar TypedValue.applyDimension()
para converter de unidades de sp
em pixels, e use TypedValue.deriveDimension()
para
converter pixels em sp. Esses métodos aplicam o escalonamento não linear apropriado
curva automaticamente.
Evite equações fixadas no código usando
Configuration.fontScale
ou
DisplayMetrics.scaledDensity
Como o dimensionamento da fonte é
não linear, o campo scaledDensity
não é mais preciso. O campo fontScale
deve ser usado apenas para fins informativos, porque as fontes não são mais
dimensionadas com um único valor escalar.
Usar unidades de sp para lineHeight
Sempre defina android:lineHeight
usando unidades sp em vez
de dp para que a altura da linha seja dimensionada junto com o texto. Caso contrário, se o texto
é sp, mas lineHeight
está em dp ou px. Ele não é dimensionado e parece apertado.
A TextView corrige automaticamente o lineHeight
para que o objeto
proporções são preservadas, mas somente se textSize
e lineHeight
forem
definido em unidades de 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, pós-visualização e muito mais nas extensões de câmera
Android 14 upgrades and improves camera extensions, allowing apps to handle longer processing times, which enables improved images using compute-intensive algorithms like low-light photography on supported devices. These features give users an even more robust experience when using camera extension capabilities. Examples of these improvements include:
- Dynamic still capture processing latency estimation provides much more
accurate still capture latency estimates based on the current scene and
environment conditions. Call
CameraExtensionSession.getRealtimeStillCaptureLatency()
to get aStillCaptureLatency
object that has two latency estimation methods. ThegetCaptureLatency()
method returns the estimated latency betweenonCaptureStarted
andonCaptureProcessStarted()
, and thegetProcessingLatency()
method returns the estimated latency betweenonCaptureProcessStarted()
and the final processed frame being available. - Support for capture progress callbacks so that apps can display the current
progress of long-running, still-capture processing operations. You can check
if this feature is available with
CameraExtensionCharacteristics.isCaptureProcessProgressAvailable
, and if it is, you implement theonCaptureProcessProgressed()
callback, which has the progress (from 0 to 100) passed in as a parameter. Extension specific metadata, such as
CaptureRequest.EXTENSION_STRENGTH
for dialing in the amount of an extension effect, such as the amount of background blur withEXTENSION_BOKEH
.Postview Feature for Still Capture in camera extensions, which provides a less-processed image more quickly than the final image. If an extension has increased processing latency, a postview image could be provided as a placeholder to improve UX and switched out later for the final image. You can check if this feature is available with
CameraExtensionCharacteristics.isPostviewAvailable
. Then you can pass anOutputConfiguration
toExtensionSessionConfiguration.setPostviewOutputConfiguration
.Support for
SurfaceView
allowing for a more optimized and power-efficient preview render path.Support for tap to focus and zoom during extension usage.
Zoom no 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.
Áudio USB sem perdas
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.
Produtividade e ferramentas para desenvolvedores
Credential Manager
Android 14 adds Credential Manager as a platform API, with additional support back to Android 4.4 (API level 19) devices through a Jetpack Library using Google Play services. Credential Manager aims to make sign-in easier for users with APIs that retrieve and store credentials with user-configured credential providers. Credential Manager supports multiple sign-in methods, including username and password, passkeys, and federated sign-in solutions (such as Sign-in with Google) in a single API.
Passkeys provide many advantages. For example, passkeys are built on industry standards, can work across different operating systems and browser ecosystems, and can be used with both websites and apps.
For more information, see the Credential Manager and passkeys documentation and the blogpost about Credential Manager and passkeys.
Conexão Saúde
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.
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.base
foram 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
instanceof
sem 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
Android 14 introduces several PackageInstaller
APIs that
allow app stores to improve their user experience.
Request install approval before downloading
Installing or updating an app might require user approval.
For example, when an installer making use of the
REQUEST_INSTALL_PACKAGES
permission attempts to install a
new app. In prior Android versions, app stores can only request user approval
after APKs are written to the install session and the
session is committed.
Starting with Android 14, the requestUserPreapproval()
method lets installers request user approval before committing the install
session. This improvement lets an app store defer downloading any APKs until
after the installation has been approved by the user. Furthermore, once a user
has approved installation, the app store can download and install the app in the
background without interrupting the user.
Claim responsibility for future updates
The setRequestUpdateOwnership()
method allows an installer
to indicate to the system that it intends to be responsible for future updates
to an app it is installing. This capability enables update ownership
enforcement, meaning that only the update owner is permitted
to install automatic updates to the app. Update ownership enforcement helps to
ensure that users receive updates only from the expected app store.
Any other installer, including those making use of the
INSTALL_PACKAGES
permission, must receive explicit user
approval in order to install an update. If a user decides to proceed with an
update from another source, update ownership is lost.
Update apps at less-disruptive times
App stores typically want to avoid updating an app that is actively in use because this leads to the app's running processes being killed, which potentially interrupts what the user was doing.
Starting with Android 14, the InstallConstraints
API
gives installers a way to ensure that their app updates happen at an opportune
moment. For example, an app store can call the
commitSessionAfterInstallConstraintsAreMet()
method to
make sure that an update is only committed when the user is no longer
interacting with the app in question.
Seamlessly install optional splits
With split APKs, features of an app can be delivered in separate APK files,
rather than as a monolithic APK. Split APKs allow app stores to optimize the
delivery of different app components. For example, app stores might optimize
based on the properties of the target device. The
PackageInstaller
API has supported splits since its
introduction in API level 22.
In Android 14, the setDontKillApp()
method allows an
installer to indicate that the app's running processes shouldn't be killed when
new splits are installed. App stores can use this feature to seamlessly install
new features of an app while the user is using the app.
Pacotes de metadados do app
从 Android 14 开始,Android 软件包安装程序可让您指定应用元数据(例如数据安全做法),以在 Google Play 等应用商店页面上架。
Detectar quando usuários fazem capturas de tela no dispositivo
To create a more standardized experience for detecting screenshots, Android 14 introduces a privacy-preserving screenshot detection API. This API lets apps register callbacks on a per-activity basis. These callbacks are invoked, and the user is notified, when the user takes a screenshot while that activity is visible.
Experiência do usuário
Ações personalizadas e melhoria na classificação do Sharesheet
Android 14 更新了系统 Sharesheet,以便为用户提供自定义应用操作和信息更丰富的预览结果。
添加自定义操作
对于 Android 14,您的应用可以向其调用的系统 Sharesheet 添加自定义操作。

提高直接共享目标的排名
Android 14 根据来自应用的更多信号来确定直接共享目标的排名,以便为用户提供更实用的结果。为了提供最实用的排名信号,请遵循提高直接共享目标排名的准则。通讯应用还可以报告出站和入站消息的快捷方式使用情况。

Suporte a animações de voltas preditivas integradas e personalizadas
O Android 13 introduziu a animação de volta preditiva à tela inicial por trás de uma opção do desenvolvedor. Quando usada em um app com suporte para a opção para desenvolvedor ativada, deslizar para trás mostra uma animação indicando que o gesto de retorno sai do app de volta à tela inicial.
O Android 14 inclui várias melhorias e novas orientações para a volta preditiva:
- Você pode configurar
android:enableOnBackInvokedCallback=true
para ativar as animações do sistema de volta preditiva por atividade em vez de para todo o app. - Adicionamos novas animações do sistema para acompanhar a animação de retorno à tela inicial do Android 13. As novas animações do sistema são entre atividades e tarefas, que são recebidas automaticamente após a migração para a volta preditiva.
- Adicionamos novas animações do componente Material Design para páginas inferiores, páginas laterais e pesquisa.
- Desenvolvemos orientações de design para a criação de transições e animações personalizadas no app.
- Adicionamos novas APIs para oferecer suporte a animações de transição personalizadas no app:
handleOnBackStarted
,handleOnBackProgressed
,handleOnBackCancelled
in
OnBackPressedCallback
onBackStarted
,onBackProgressed
,onBackCancelled
in
OnBackAnimationCallback
- Use
overrideActivityTransition
em vez deoverridePendingTransition
para transições que respondem à medida que o usuário desliza de volta.
Com esta versão de pré-lançamento do Android 14, todos os recursos de volta preditiva permanecem por trás de uma opção para desenvolvedores. Consulte o guia do desenvolvedor para migrar seu app para a volta preditiva e o guia do desenvolvedor para criar transições personalizadas no app.
Substituições por app do fabricante de dispositivos de tela grande
Per-app overrides enable device manufacturers to change the behavior of apps on large screen devices. For example, the FORCE_RESIZE_APP
override instructs the system to resize the app to fit display dimensions (avoiding size compatibility mode) even if resizeableActivity="false"
is set in the app manifest.
Overrides are intended to improve the user experience on large screens.
New manifest properties enable you to disable some device manufacturer overrides for your app.
Substituições por app para usuários de 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
O compartilhamento de tela de apps permite que os usuários compartilhem uma janela de app em vez de toda a tela do dispositivo durante a gravação do conteúdo da tela.
Com o compartilhamento de tela do app, a barra de status, a barra de navegação, as notificações e outros elementos da interface do sistema são excluídos da tela compartilhada. Somente o conteúdo do app selecionado é compartilhado.
O compartilhamento de tela de apps melhora a produtividade e a privacidade, permitindo que os usuários executem vários apps, mas limitem o compartilhamento de conteúdo a um único app.
Resposta inteligente com tecnologia de LLM no Gboard do 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 shaders 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
To assist in using Android's Canvas
API to draw with
hardware acceleration into a HardwareBuffer
, Android 14
introduces HardwareBufferRenderer
. This API is
particularly useful when your use case involves communication with the system
compositor through SurfaceControl
for low-latency
drawing.