Postado por Matthew McCullough, VP de Gerenciamento de Produtos, Android Developer
Hoje estamos lançando o Android 17 e disponibilizando-o em quase todos os dispositivos Pixel suportados. Novos dispositivos com Android 17 estarão disponíveis nos próximos meses.
O Android 17 marca o início de nossa transição para um sistema inteligente, colocando seus aplicativos no centro. Está se movendo para uma norma de desenvolvimento adaptativa primeiro ao introduzir a redimensionabilidade obrigatória em telas grandes, tudo isso enquanto entrega privacidade, segurança, mídia, câmera e desempenho da próxima geração. Vamos abordar tudo isso neste post, bem como como estamos trazendo juntos as ferramentas, bibliotecas e habilidades de agente da próxima geração para ajudar seus aplicativos a aproveitar essa oportunidade.
No último ano, desde nosso canal Canary até nossos lançamentos Beta, trabalhamos com você na comunidade de desenvolvedores para construir uma plataforma que você e seus usuários possam confiar. Com esse objetivo em mente, este momento marca a disponibilidade do código-fonte no Projeto Android Open Source (AOSP). Isso permite que você examine o código-fonte para um entendimento mais profundo de como o Android funciona.
Vamos mergulhar mais fundo no Android 17.
Um sistema inteligente
Com uma integração profunda entre hardware, software e IA, estamos transformando o Android de um sistema operacional em um sistema inteligente. É sobre entregar novas experiências úteis que antecipam as necessidades dos usuários e traz mais oportunidades para a interação com seus aplicativos. Com esse objetivo, o Android 17 expande as capacidades do AppFunctions, uma API de plataforma com uma biblioteca correspondente Jetpack. Isso permite que você contribua com as capacidades únicas do seu aplicativo como
Adaptativo em primeiro lugar
Suas usuárias e usuários já não dependem de um único formato; eles transitam entre telefones, dobráveis, tablets, laptops, displays automotivos e ambientes imersivos XR. Agora, com mais de 580 milhões de dispositivos grandes nas mãos dos usuários e o lançamento iminente do Googlebooks, a próxima geração do ChromeOS construída na pilha Android, adaptativo não é mais apenas um objetivo técnico. É uma grande oportunidade para alcançar usuários altamente engajados, que é uma das razões pelas quais estamos nos movendo para um padrão de desenvolvimento adaptativo em primeiro lugar.
Sem restrições de redimensionamento/orientação em telas grandes
Para garantir que os aplicativos entreguem uma experiência premium em todos os formatos, incluindo dispositivos móveis em modo desktop conectados a displays, o Android 17 (API level 37) remove a opção de opt-out para restrições de orientação e redimensionamento em dispositivos grandes (sw > 600 dp) para aplicativos que visam o nível API 37. O sistema ignorará atributos manifestos legados e APIs de tempo de execução, incluindo screenOrientation, setRequestedOrientation(), resizeableActivity=false e restrições de proporção (minAspectRatio/maxAspectRatio). Jogos (baseado na categoria do aplicativo no Google Play) permanecem isentos. Seu aplicativo deve estar pronto para se adaptar a qualquer tamanho de janela, respeitar a postura preferida do dispositivo do usuário e suportar o gerenciamento de janelas livremente.
Multitarefas da próxima geração: Bolhas de Aplicativos, Barra de Bolhas e PiP interativo no desktop
O Android 17 introduz poderosas novas capacidades de gerenciamento de janelas que redefinem como os usuários realizam multitarefa, exigindo ainda mais flexibilidade na disposição do layout dos seus aplicativos:
- Bolhas de Aplicativo: Além da API de bolhas de mensagens, agora os usuários podem transformar qualquer aplicativo em uma bolha flutuante ao pressionar e segurar seu ícone no lançador. Esta funcionalidade está disponível em telefones, dobráveis e tablets, permitindo multitarefa leve para qualquer fluxo de trabalho.
- Barra de Bolhas: Em telas grandes (tablets e dobráveis), a barra de tarefas do sistema agora inclui uma Barra de Bolhas dedicada para organizar, transitar entre e ancorar essas bolhas flutuantes.
- PiP interativo no desktop: Em ambientes de desktop, o Android 17 introduz Picture-in-Picture (PiP) interativo. Diferentemente das janelas PiP tradicionais que são apenas para leitura, essas bolhas fixadas permanecem totalmente interativas enquanto ficam sempre em cima das outras janelas de aplicativos.
Bolhas de Aplicativo e Barra de Bolhas em ação
Atualizações na recriação de atividades
Para prevenir perda de estado disruptiva e estremecimentos, o Android 17 atualiza o comportamento padrão para recriação de Atividade. O sistema não reiniciará as atividades por padrão para alterações de configuração típicas que não exigem uma nova desenhar inteira da IU (incluindo CONFIG_KEYBOARD, CONFIG_KEYBOARD_HIDDEN, CONFIG_NAVIGATION, CONFIG_TOUCHSCREEN e CONFIG_COLOR_MODE).
Em vez disso, as atividades em execução receberão essas atualizações via onConfigurationChanged(), permitindo transições suaves. Se seu aplicativo depende explicitamente de uma reinicialização completa para recarregar recursos para essas alterações, você deve agora optar por isso explicitamente usando o novo android:recreateOnConfigChanges atributo do manifesto.
Continue On
O Android 17 adiciona o recurso Continue On para ajudar os usuários a transitar de forma fluida entre tarefas em diferentes dispositivos Android. O usuário vê uma sugestão do aplicativo mais recentemente aberto no seu dispositivo móvel na barra de tarefas do tablet, fornecendo um toque fácil para iniciar o aplicativo e acessar onde ele parou anteriormente. Continue On pode suportar transições de app-to-web, incluindo a opção de cair de volta ao uso da web se o aplicativo não estiver instalado.
class MyHandoffActivity : Activity() {
...
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Faça o que for necessário
...
// Ative a passagem de tarefas
setHandoffEnabled(true, null)
}
// Sobrescreva e implemente onHandoffActivityDataRequested
override fun onHandoffActivityDataRequested(handoffRequestInfo: HandoffActivityDataRequestInfo) : HandoffActivityData {
// Crie e retorne os dados de passagem de tarefas
}
}
Vá para Jetpack Compose adaptativo
Para ajudar você a adaptar seus aplicativos às novas exigências do Android 17, lançamos o skill de Jetpack Compose adaptativo. Esta workflow orientada por IA ajuda você a implementar as melhores práticas adaptativas:
- Navegação adaptativa: Transite automaticamente entre barras de navegação inferiores em dispositivos móveis e trilhos de navegação ancorados nas bordas para telas grandes usando NavigationSuiteScaffold da biblioteca Material 3 Adaptive.
- Layouts multi-painel: Implemente layouts list-detail e suporte a painéis nativamente usando Scenes do Navegador 3 (ListDetailSceneStrategy e SupportingPaneSceneStrategy) em vez de transações frágeis de fragmentos.
- FlexBox & APIs Grid: Utilize os componentes de layout dinâmicos da Compose 1.11 para ajustar facilmente o número de colunas e linhas, garantindo que seu conteúdo sempre preencha o espaço perfeitamente.
- Input não-tátil avançado: Utilize a suporte à trackpad e mouse da Compose 1.11 (como TrackpadInjectionScope e performTrackpadInput) para testar e entregar uma experiência verdadeiramente de
Desempenho e eficiência
O desempenho do aplicativo significa uma interface de usuário suave, tempos rápidos de inicialização do aplicativo e multitarefa eficiente; o Android 17 apresenta melhorias significativas em todos esses aspectos.
Limites de memória do aplicativo
O uso da memória é uma das fundações silenciosas do desempenho geral. Quando um aplicativo ou serviço no primeiro plano cresce sem controle, a gestão de memória aumenta o uso do CPU e da bateria e eventualmente leva à terminação de outros aplicativos bem comportados em cache e tarefas de segundo plano, forçando inicializações frias mais lentas e multitarefa prejudicada.
A partir do Android 17, o sistema imporá limites estritos de memória para cada aplicativo com base na RAM total do dispositivo, terminando abruptamente processos ofensivos. Novidades que ajudarão você a navegar por essas exigências mais rigorosas:
- Optimizador R8: O otimizador R8 reduz significativamente o rastro de bytecode do seu aplicativo ao encurtar classes, métodos e campos em nomes mais curtos e removendo código e recursos não utilizados. Use o R8 no modo completo junto com a nova analisador de configuração do R8 para garantir que seu aplicativo está aproveitando ao máximo o R8.
- LeakCanary no Android Studio Panda: O perfil agora inclui integração nativa com LeakCanary como uma tarefa dedicada, totalmente integrada à sua IDE e código-fonte.
- ApplicationExitInfo: Se seu aplicativo for terminado por esses limites, getDescription() de ApplicationExitInfo retornará "MemoryLimiter:AnonSwap".
- Deteção de Anomalias no Dispositivo: Parte do ProfilingManager, você pode aproveitar a criação automática de amostras de pilha quando o limite de memória é atingido usando gatilhos baseados em eventos com TRIGGER_TYPE_ANOMALY.
val profilingManager = applicationContext .getSystemService(ProfilingManager::class.java) val triggers = ArrayList<ProfilingTrigger>().apply { add(ProfilingTrigger.Builder( ProfilingTrigger.TRIGGER_TYPE_ANOMALY).build()) } profilingManager.addProfilingTriggers(triggers)E estamos trabalhando para fornecer mais métricas de memória em campo a você dentro do Google Play Console.
Coleta de lixo geracional
O Android 17 introduz coletas de geração jovem mais frequentes e menos intensivas em recursos ao colecionador de lixo Concurrent Mark-Compact (GC) do ART. Ao separar objetos com vida curta de objetos estáveis e longevos, o sistema executa varreduras leves e frequentes da "geração jovem" em vez de varreduras completas de pilha caras, reduzindo drasticamente o uso do CPU, a drenagem de energia e os estremecimentos na interface do usuário. Nosso teste mostrou melhorias significativas na interferência do GC com threads de aplicativo e uma diminuição no tamanho máximo do conjunto de memória residente (RSS). As melhorias do ART estão disponíveis para mais de um bilhão de dispositivos executando o Android 12 (API level 31) ou superior por meio das atualizações do Google Play System.
MensagemQueue sem bloqueio
Para aplicativos que visam a SDK 37 ou superior, a android.os.MessageQueue agora implementa uma arquitetura sem bloqueio, reduzindo significativamente o número de quadros perdidos, melhorando o tempo de inicialização do aplicativo e radicalmente aprimorando o desempenho de filas ocupadas em cenários multithread. Nota: Isso pode quebrar aplicativos que usam reflexão nos campos e métodos privados da MessageQueue. Os APIs peekWhen e poll foram adicionados ao TestLooperManager para testes de instrumentação sem depender da interna da MessageQueue.
Campos estáticos finais agora realmente finais
A partir do Android 17, aplicativos que visam SDK 37 ou superior não poderão modificar campos “static final”, permitindo que o tempo de execução aplique otimizações de desempenho mais agressivamente. Uma tentativa de fazê-lo via reflexão (ou reflexão profunda) resultará em um IllegalAccessException sendo lançado. Modificar através do JNI’s
SetStatic<Type>Fieldmétodos familiares fará com que o aplicativo seja imediatamente encerrado.Restrições para visualizações personalizadas de notificações
Para reduzir o uso da memória, estamos restringindo ainda mais o tamanho das visualizações personalizadas de notificações. Esta atualização fecha uma brecha que permite aos aplicativos contornar os limites existentes usando URIs. Este comportamento é controlado pela versão do SDK alvo e entra em vigor para aplicativos que visam a API 37 ou superior.
Privacidade & Segurança
Mantendo a confiança dos usuários está no coração do ecossistema Android. O Android 17 introduz recursos robustos que protegem dados sensíveis enquanto simplificam as experiências do usuário.
Escolhas preservadoras de privacidade
Historicamente, os aplicativos exigiam permissões amplas e permanentes para acessar informações como contatos, localização precisa e arquivos de mídia. O Android 17 continua a transição em direção a escolhas preservadoras de privacidade que concedem acesso temporário e baseado na sessão apenas aos dados explicitamente selecionados pelo usuário:
- Seletor de contatos do sistema: Utilizando
ACTION_PICK_CONTACTS, aplicativos podem solicitar acesso temporário apenas a campos específicos (por exemplo, email ou número de telefone) escolhidos pelo usuário, eliminando a necessidade da permissão amplaREAD_CONTACTS. Também suporta completamente a separação entre perfis profissionais e pessoais. - Aspecto personalizável do Seletor de Fotos: Usando
PhotoPickerUiCustomizationParams, você pode personalizar o seletor de fotos do sistema para mostrar miniaturas em modo retrato. Isso é perfeito para aplicativos que sempre exibem fotos e vídeos em modo retrato, como redes sociais baseadas em vídeo. - Botão de localização renderizado pelo sistema: Um novo botão de localização renderizado pelo sistema que você pode incorporar no seu aplicativo concede acesso à localização precisa apenas para a sessão atual.
- API EyeDropper: Uma nova API do sistema,
ACTION_OPEN_EYE_DROPPER, permite que o seu aplicativo crie um eye dropper alimentado pelo sistema, permitindo ao usuário selecionar uma cor de qualquer pixel na tela. Isso fornece uma experiência segura e preservadora de privacidade para a seleção de cores que elimina a necessidade de permissões amplas e sensíveis de captura da tela ou projeção de mídia.
val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> if (result.resultCode == Activity.RESULT_OK) { val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK) // Use a cor selecionada no seu aplicativo } } fún launchColorPicker() { val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER) eyeDropperLauncher.launch(intent) }Picking uma cor de qualquer lugar na tela com o EyeDropper do sistema
Acesso à rede local
Aplicativos que visam o Android 17 agora exigem a permissão em tempo de execução
ACCESS_LOCAL_NETWORKou o uso de seletores de dispositivos mediados pelo sistema, preservadores de privacidade para comunicação na rede local, como falar com dispositivos inteligentes da casa ou receptores de transmissão. ComoACCESS_LOCAL_NETWORKcai sob o grupo existente de permissõesNEARBY_DEVICES, usuários que já concederam outras permissões do grupoNEARBY_DEVICESnão serão solicitados novamente.Proteção OTP SMS
O Android 17 expande a proteção de OTP SMS (One-Time Password) ao adiar o acesso às mensagens SMS por três horas:
Criptografia Pós-Quântica (PQC)
O Android 17 está pronto para a próxima geração de segurança criptográfica:
- Integração com Keystore: Dispositivos compatíveis podem gerar chaves ML-DSA (Module-Lattice-Based Digital Signature Algorithm) em hardware seguro para produzir assinaturas resistentes à computação quântica, expostas via APIs JCA padrão.
- Assinatura de APK Híbrida: Introdução do esquema de assinatura v3.2 de APK, que combina assinaturas clássicas com assinaturas ML-DSA para proteger a distribuição de aplicativos.
Carga dinâmica mais segura de código nativo
Se seu app alvo for SDK 37 ou superior, a proteção Safer Dynamic Code Loading (DCL)
introduzida no Android 14para arquivos DEX e JAR agora se estende a bibliotecas nativas. Todos os arquivos nativos carregados usando System.load devem ser marcados como somente leitura. Caso contrário, o sistema lança uma exceção UnsatisfiedLinkError.
Proteção mais inteligente para senhas de entrada física
Com o Android 17, estamos tornando mais seguro a entrada de senhas, PINs e outras informações secretas ao usar um teclado físico, não mostrando mais por padrão o último caractere digitado.
Os usuários ainda podem facilmente personalizar essas configurações de exibição para atender às suas preferências (disponibilidade pode variar conforme a fabricante do dispositivo).
Essas proteções de privacidade melhoradas são automaticamente suportadas pelos componentes SDK integrados do Android e serão suportadas na versão 1.12 do Compose para SecureTextFields.
Recursos de mídia e câmera que empoderam criadores e agradam usuários
O Android 17 introduz novos recursos para criadores que fornecem acesso a câmeras de qualidade profissional e mídia, tudo isso enquanto melhora a experiência do consumidor.
- Eclipsa Video: Um padrão de vídeo HDR construído sobre a especificação SMPTE ST 2094-50 que introduz novos metadados para ajudar os dispositivos a adaptarem o conteúdo às suas condições de exibição e iluminação ambiente, bem como melhorar a simultânea exibição de conteúdo padrão e HDR.
- Formato de imagem RAW14: Novo suporte ao formato de imagem RAW14 que permite a captura do nível mais alto de detalhe e profundidade de cor por meio de sensores de câmera compatíveis.
- Extensões personalizadas da câmera: Extensões definidas pelo fornecedor permitem aos parceiros de hardware criar e implementar modos de extensão de câmera personalizados, proporcionando acesso às melhores e mais recentes funcionalidades de câmera.
- Encoder Extended HE-AAC: Um novo encoder de software Extended HE-AAC fornecido pelo sistema que suporta baixas e altas taxas de bits usando codificação unificada de voz e áudio, proporcionando uma qualidade de áudio significativamente melhor para mensagens de voz em condições de baixa largura de banda, incluindo suporte a metadados de nível.
- Código V Versátil (H.266): Permite que OEMs adicionem suporte ao codec definindo o tipo MIME
video/vvc, adicione novos perfis VVC emMediaCodecInfoe integre o suporte aoMediaExtractor. - Tipo de dispositivo da câmera: Novas APIs que consultam o tipo subjacente do dispositivo para identificar se a câmera é hardware embutido, webcam USB externa ou câmera virtual.
- Qualidade Constante para Gravação de Vídeo: A função
SetVideoEncodingQualitynoMediaRecorderconfigura um modo de qualidade constante (CQ) para codificadores de vídeo para garantir uma fidelidade visual uniforme ao longo do todo o vídeo.
Melhor suporte para aparelhos auditivos
- Suporte a aparelho auditivo Bluetooth LE: O Android agora inclui uma categoria de dispositivo específica para aparelhos auditivos Bluetooth Low Energy (BLE) com o novo constante
AudioDeviceInfo.TYPE_BLE_HEARING_AID, permitindo que seu aplicativo distingua aparelhos auditivos de fones regulares para fornecer uma experiência personalizada para usuários com dispositivos de audição assistiva. - Roteamento granular de áudio para aparelhos auditivos: O Android 17 permite aos usuários gerenciar independentemente onde sons específicos do sistema são reproduzidos. Eles podem escolher rotear notificações, toques e alarmes para aparelhos auditivos conectados ou alto-falantes embutidos no dispositivo, ajudando a evitar interrupções indesejadas na orelha enquanto mantém uma conexão Bluetooth para gerenciamento de aparelhos auditivos.
CameraX e Media3
CameraX e Media3 foram atualizados para o Android 17. Eles estão lá para fazer o trabalho pesado, suavizando as arestas ásperas do desenvolvimento de mídia e simplificando a construção de captura confiável de câmera, reprodução lisa de mídia e experiências criativas e complexas de edição.
Nós lançamos uma habilidade do agente que pode migrar implementações legadas de câmera Android (Camera1 ou APIs Camera2 brutais) para o CameraX.
Note: Você precisará atualizar sua versão do CameraX para a versão 1.5.2 ou 1.6.0+ para evitar um crash relacionado a um modo de faixa dinâmica adicionada em dispositivos Android 17.
Precisamos que seus aplicativos, bibliotecas, ferramentas e motores de jogos estejam prontos!
Se você desenvolve um SDK do Android, uma biblioteca, uma ferramenta ou um motor de jogo, é crucial preparar quaisquer atualizações necessárias agora para evitar que os desenvolvedores de aplicativos e jogos downstream sejam bloqueados por problemas de compatibilidade e permitir que eles direcionem as últimas funcionalidades do SDK. Por favor, informe seus desenvolvedores downstream se são necessárias atualizações para suportar completamente o Android 17.
A verificação envolve a instalação do seu aplicativo de produção ou um aplicativo de teste que use sua biblioteca ou motor usando o Google Play ou outros meios em um dispositivo ou emulador executando o Android 17 Beta 4. Trabalhe por todas as vias do seu aplicativo e procure problemas funcionais ou de interface do usuário. Cada lançamento do Android contém alterações na plataforma que melhoram a privacidade, segurança e experiência geral do usuário; revise as alterações comportamentais para apps executando em e direcionados a o Android 17 para focar seus testes, incluindo os seguintes:
- Tamanhos ajustáveis em telas grandes: Uma vez que você direcione o Android 17 (SDK 37), não pode mais optar por fora da manutenção de orientação, tamanhos ajustáveis e restrições de proporção em telas grandes.
- Carga dinâmica de código: Se seu aplicativo direcionar SDK 37 ou superior, a proteção Safer Dynamic Code Loading (DCL) introduzida no Android 14 para arquivos DEX e JAR agora se estende a bibliotecas nativas. Todos os arquivos nativos carregados usando System.load() devem ser marcados como somente leitura. Caso contrário, o sistema lança UnsatisfiedLinkError.
- Habilitar CT por padrão: Certificado de transparência (CT) está habilitado por padrão. (No Android 16, o CT está disponível, mas os aplicativos tinham que optar por entrar.).
- Proteções de rede local: Aplicativos direcionados a SDK 37 ou superior têm o acesso à rede local bloqueado por padrão. Mude para usar seletores que preservam privacidade se possível, e use a nova
PERMISSÃO_ACCESS_LOCAL_NETWORKpara acesso amplo e persistente. - Aperfeiçoamento de áudio em segundo plano: A partir do Android 17, o quadro de áudio impõe regras sobre interações com áudio em segundo plano, incluindo reprodução de áudio, solicitações de foco no áudio e APIs para alterar o volume. Com base em seu feedback, fizemos algumas mudanças desde a versão beta 2, incluindo gate de targetSDK para a aplicação da regra enquanto o app está sendo usado e isenção de áudio de alarme. Detalhes completos disponíveis na orientação atualizada.
- Declaração de acesso ao NPU: Aplicativos direcionados ao Android 17 que precisam acessar diretamente o NPU devem declarar FEATURE_NEURAL_PROCESSING_UNIT em seu manifesto para evitar ser bloqueado de acesso ao NPU. Isso inclui aplicativos que usam o LiteRT NPU delegate, SDKs específicos do fornecedor, bem como o obsoleto NNAPI.
Comece com o Android 17
Obtendo o beta do Android 17 em dispositivos parceiros
O Android 17 está disponível em versão beta nos formatos de dispositivo celular, tablet e dobrável de parceiros, incluindo Honor, iQOO, Lenovo, OnePlus, OPPO, Realme, Sharp, vivo e Xiaomi.
Para a melhor experiência de desenvolvimento com o Android 17, recomendamos que você use a versão mais recente do Android Studio Quail. Uma vez configurado, aqui estão algumas das coisas que você deve fazer:
Teste seu aplicativo atual para compatibilidade, descubra se seu aplicativo é afetado pelas mudanças no Android 17, instale seu aplicativo em um dispositivo ou emulador do Android executando o Android 17 e teste extensivamente.
Obrigado novamente a todos que participaram no nosso programa de pré-visualização e beta para desenvolvedores do Android. Estamos ansiosos para ver como seus aplicativos aproveitam as atualizações do Android 17, e temos planos para trazer atualizações em um ritmo acelerado.
Para informações completas sobre o Android 17, visite a página de desenvolvedores do Android 17.

