Hoje, estamos lançando a primeira versão Beta do Android 17, continuando nosso trabalho para criar uma plataforma que prioriza privacidade, segurança e desempenho refinado. Esta versão continua nosso trabalho para apps Android mais adaptáveis, apresenta melhorias significativas nos recursos de câmera e mídia, novas ferramentas para otimizar a conectividade e perfis expandidos para dispositivos complementares. Esta versão também destaca uma mudança fundamental na forma como estamos lançando novas versões para a comunidade de desenvolvedores, do modelo tradicional de prévia para desenvolvedores ao programa Android Canary.
Além da prévia para desenvolvedores
O Android substituiu a tradicional "prévia para desenvolvedores" por um canal Canary contínuo. Esse novo modelo "sempre ativo" oferece três benefícios principais:
- Acesso mais rápido:os recursos e as APIs chegam ao Canary assim que passam nos testes internos, sem precisar esperar um lançamento trimestral.
- Melhor estabilidade:os primeiros "testes de batalha" no Canary resultam em uma experiência Beta mais refinada com novas APIs e mudanças de comportamento que estão mais próximas da versão final.
- Testes mais fáceis:o Canary é compatível com atualizações OTA (sem mais atualizações manuais) e, como um canal de atualização separado, se integra mais facilmente aos fluxos de trabalho de CI e oferece a primeira oportunidade de dar feedback imediato sobre possíveis mudanças futuras.
Cronograma do Android 17
Vamos passar rapidamente dessa versão Beta para a etapa de estabilidade da plataforma, prevista para março. Nesse marco, vamos disponibilizar as APIs finais do SDK/NDK e os comportamentos finais relacionados aos apps. A partir desse momento, você terá vários meses antes do lançamento final para concluir os testes.
Um ano de lançamentos
Planejamos que o Android 17 continue recebendo atualizações em uma série de lançamentos trimestrais. O próximo lançamento no segundo trimestre é o único em que vamos introduzir mudanças planejadas no comportamento de interrupção de apps. Planejamos lançar uma versão secundária do SDK no quarto trimestre com mais APIs e recursos.
Restrições de orientação e redimensionamento
Com o lançamento da versão Beta do Android 17, estamos passando para a próxima fase do nosso roteiro adaptativo: o Android 17 (nível 37 da API) remove a opção de desativação do desenvolvedor para restrições de orientação e redimensionamento em dispositivos de tela grande (sw > 600 dp).
Quando o app tem como destino o SDK 37, ele precisa estar pronto para se adaptar. Os usuários esperam que os apps funcionem em qualquer lugar, seja em multitarefa em um tablet, um dispositivo desdobrável ou um ambiente de modo janela para computador. Eles também esperam que a interface preencha o espaço e respeite a postura do dispositivo.
Principais mudanças para o SDK 37
Os apps voltados ao Android 17 precisam garantir a compatibilidade com a descontinuação dos atributos do manifesto e das APIs de tempo de execução introduzidas no Android 16. Ao executar em uma tela grande (dimensão menor ≥ 600 dp), os seguintes atributos e APIs serão ignorados:
| Atributos/API do manifesto | Valores ignorados |
| screenOrientation | portrait, reversePortrait, sensorPortrait, userPortrait, landscape, reverseLandscape, sensorLandscape, userLandscape |
| setRequestedOrientation() | portrait, reversePortrait, sensorPortrait, userPortrait, landscape, reverseLandscape, sensorLandscape, userLandscape |
| resizeableActivity | todas |
| minAspectRatio | todas |
| maxAspectRatio | todas |
Exceções e controle do usuário
Essas mudanças são específicas para telas grandes e não se aplicam a telas menores que sw600dp, incluindo smartphones tradicionais. Além disso, os apps categorizados como jogos (com base na flag android:appCategory) são isentos dessas restrições.
Também é importante observar que os usuários continuam no controle. É possível ativar ou desativar explicitamente o uso do comportamento padrão de um app nas configurações de proporção da tela do sistema.
Atualizações nas mudanças de configuração
Para melhorar a compatibilidade de apps e minimizar a reprodução de vídeo interrompida, a entrada descartada e outros tipos de perda de estado disruptiva, estamos atualizando o comportamento padrão para a recriação de atividades. A partir do Android 17, o sistema não vai mais reiniciar atividades por padrão para mudanças de configuração específicas que normalmente não exigem uma recriação da interface, incluindo CONFIG_KEYBOARD, CONFIG_KEYBOARD_HIDDEN, CONFIG_NAVIGATION, CONFIG_UI_MODE (quando apenas UI_MODE_TYPE_DESK é alterado), CONFIG_TOUCHSCREEN e CONFIG_COLOR_MODE. Em vez disso, as atividades em execução vão receber essas atualizações via onConfigurationChanged. Se o aplicativo depender de uma reinicialização completa para recarregar recursos dessas mudanças, agora você precisará ativar explicitamente usando o novo atributo de manifesto android:recreateOnConfigChanges, que permite especificar quais mudanças de configuração devem acionar um ciclo de vida completo da atividade (de parada a destruição e criação novamente), junto com as constantes relacionadas mcc, mnc e as novas keyboard, keyboardHidden, navigation, touchscreen e colorMode.
Preparar o app
Lançamos ferramentas e documentação para facilitar sua vida. Nossa postagem do blog tem mais orientações, com estratégias para resolver problemas comuns. Os apps precisam oferecer suporte a layouts de paisagem e retrato para tamanhos de janela em toda a faixa de proporções, já que restringir a orientação ou a proporção não será mais uma opção. Recomendamos testar o app usando o Android 17 Beta 1 com emuladores do Pixel Tablet ou Pixel Fold (configurados para targetSdkPreview = "CinnamonBun") ou usando o framework de compatibilidade de apps para ativar UNIVERSAL_RESIZABLE_BY_DEFAULT em dispositivos Android 16.
Desempenho
MessageQueue sem bloqueio
No Android 17, os apps segmentando o SDK 37 ou mais recente vão receber uma nova implementação de android.os.MessageQueue sem bloqueio. A nova implementação melhora o desempenho e reduz os frames perdidos, mas pode interromper clientes que refletem em campos e métodos particulares de MessageQueue.
Coleta de lixo geracional
O Android 17 introduz a coleta de lixo geracional no coletor Concurrent Mark-Compact do ART. Essa otimização introduz coletas de geração jovem mais frequentes e menos intensivas em recursos, além de coletas de heap completo, com o objetivo de reduzir o custo geral de CPU e a duração da coleta de lixo. As melhorias do ART também estão disponíveis para mais de um bilhão de dispositivos com o Android 12 (nível 31 da API) e versões mais recentes pelas atualizações do sistema do Google Play.
Campos finais estáticos agora são realmente finais
A partir do Android 17, os apps destinados ao Android 17 ou versões mais recentes não poderão modificar campos "static final", permitindo que o tempo de execução aplique otimizações de desempenho de maneira mais agressiva. Uma tentativa de fazer isso por reflexão (e reflexão profunda) sempre vai gerar uma IllegalAccessException. Modificá-los usando a família de métodos SetStatic<Type>Field da JNI vai causar uma falha imediata no aplicativo.
Restrições de visualização de notificações personalizadas
Para reduzir o uso da memória, estamos restringindo o tamanho das visualizações de notificações personalizadas. Essa atualização corrige uma brecha que permite que os apps ignorem os limites atuais usando URIs. Esse comportamento é controlado pela versão do SDK de destino e entra em vigor para apps destinados à API 37 e mais recentes.
Novos gatilhos do ProfilingManager para depuração de desempenho
Adicionamos vários novos gatilhos de sistema ao ProfilingManager para ajudar você a coletar dados detalhados e depurar problemas de performance. Esses acionadores são TRIGGER_TYPE_COLD_START, TRIGGER_TYPE_OOM, e TRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE.
Para entender como configurar os novos acionadores do sistema, confira a documentação sobre criação de perfil com base em acionadores e recuperação e análise de dados de criação de perfil.
Mídia e câmera
O Android 17 traz ferramentas de nível profissional para apps de mídia e câmera, com recursos como transições perfeitas e intensidade sonora padronizada.
Atualizações dinâmicas de sessão da câmera
Apresentamos o updateOutputConfigurations() no CameraCaptureSession. Isso permite anexar e desconectar dinamicamente superfícies de saída sem precisar reconfigurar toda a sessão de captura da câmera. Essa mudança permite transições perfeitas entre casos de uso e modos da câmera (como tirar fotos e gravar vídeos) sem o custo de memória e a complexidade de código de configurar e manter todas as superfícies de saída da câmera que seu app pode precisar durante a inicialização da câmera. Isso ajuda a eliminar falhas ou travamentos visíveis ao usuário durante a operação.
fun updateCameraSession(session: CameraCaptureSession, newOutputConfigs: List<OutputConfiguration>)) {
// Dynamically update the session without closing and reopening
try {
// Update the output configurations
session.updateOutputConfigurations(newOutputConfigs)
} catch (e: CameraAccessException) {
// Handle error
}
}
Metadados lógicos de dispositivos com várias câmeras
Ao trabalhar com câmeras lógicas que combinam vários sensores de câmeras físicas, agora é possível solicitar metadados adicionais de todas as câmeras físicas ativas envolvidas em uma captura, não apenas da principal. Antes, era necessário implementar soluções alternativas, às vezes alocando fluxos físicos desnecessários, para obter metadados de câmeras secundárias ativas (por exemplo, durante uma troca de lente para zoom em que uma câmera seguidora está ativa). Esse recurso introduz uma nova chave, LOGICAL_MULTI_CAMERA_ADDITIONAL_RESULTS, em CaptureRequest e CaptureResult. Ao definir essa chave como "ON" no CaptureRequest, o TotalCaptureResult vai incluir metadados dessas outras câmeras físicas ativas. É possível acessar esses metadados abrangentes usando TotalCaptureResult.getPhysicalCameraTotalResults() para receber informações mais detalhadas que podem permitir otimizar o uso de recursos nos aplicativos de câmera.
Suporte a codificação de vídeo versátil (VVC)
O Android 17 adiciona suporte ao padrão Versatile Video Coding (VVC). Isso inclui definir o tipo MIME video/vvc em MediaFormat, adicionar novos perfis VVC em MediaCodecInfo e integrar o suporte ao MediaExtractor. Esse recurso será lançado para dispositivos com suporte à decodificação de hardware e drivers compatíveis.
Qualidade constante para gravação de vídeo
Adicionamos setVideoEncodingQuality() a MediaRecorder. Isso permite configurar um modo de qualidade constante (CQ) para codificadores de vídeo, oferecendo um controle mais preciso da qualidade do vídeo além das configurações simples de taxa de bits.
Reforço da proteção de áudio em segundo plano
A partir do Android 17, o framework de áudio vai aplicar restrições às interações de áudio em segundo plano, incluindo reprodução de áudio, solicitações de foco de áudio e APIs de mudança de volume para garantir que essas mudanças sejam iniciadas intencionalmente pelo usuário.
Se o app tentar chamar APIs de áudio enquanto o aplicativo não estiver em um ciclo de vida válido, as APIs de reprodução de áudio e mudança de volume vão falhar silenciosamente, sem que uma exceção seja gerada ou uma mensagem de falha seja fornecida. A API de seleção de áudio vai falhar com o código de resultado AUDIOFOCUS_REQUEST_FAILED.
Privacidade e segurança
Descontinuação do atributo de tráfego de texto não criptografado
O atributo android:usesCleartextTraffic foi descontinuado. Se o app for destinado ao Android 17 ou versões mais recentes e depender de usesCleartextTraffic="true" sem uma Configuração de segurança de rede correspondente, o padrão será não permitir o tráfego de texto simples. Recomendamos migrar para arquivos de configuração de segurança de rede para ter controle granular.
Criptografia híbrida HPKE
Estamos lançando uma interface de provedor de serviços (SPI) pública para uma implementação da criptografia híbrida HPKE, permitindo a comunicação segura usando uma combinação de chave pública e criptografia simétrica (AEAD).
Conectividade e telecomunicações
Histórico de chamadas VoIP aprimorado
Estamos lançando o gerenciamento de preferências do usuário para a integração do histórico de ligações VoIP de apps. Isso inclui suporte para URIs de avatar de chamador e participante no discador do sistema, permitindo o controle granular do usuário sobre a privacidade do registro de chamadas e enriquecendo a exibição visual dos registros de chamadas VoIP integrados.
Intervalo e proximidade do Wi-Fi
O Wi-Fi Ranging foi aprimorado com novos recursos de detecção de proximidade, oferecendo suporte a alcance contínuo e descoberta segura ponto a ponto. As atualizações de alcance do Wi-Fi Aware incluem novas APIs para identificadores de peer e cache de PMKID para alcance seguro 11az.
Produtividade e ferramentas para desenvolvedores
Atualizações para apps de dispositivos complementares
Introduzimos dois novos perfis no CompanionDeviceManager para melhorar a distinção de dispositivos e o processamento de permissões:
- Dispositivos médicos:esse perfil permite que aplicativos móveis de dispositivos médicos solicitem todas as permissões necessárias com um único toque, simplificando o processo de configuração.
- Trackers de condicionamento físico:o perfil DEVICE_PROFILE_FITNESS_TRACKER permite que apps complementares indiquem explicitamente que estão gerenciando um tracker de condicionamento físico. Isso garante experiências precisas com ícones distintos, reutilizando as permissões de função do relógio.
Além disso, o CompanionDeviceManager agora oferece uma caixa de diálogo unificada para associação de dispositivos e solicitações de permissão do Nearby. Você pode usar o novo método setExtraPermissions em AssociationRequest.Builder para agrupar solicitações de permissão próximas no fluxo de associação atual, reduzindo o número de caixas de diálogo apresentadas ao usuário.
Começar a usar o Android 17
Você pode registrar qualquer dispositivo Pixel compatível para receber essa e outras atualizações do Android Beta over the air. Se você não tiver um dispositivo Pixel, use as imagens do sistema de 64 bits com o Android Emulator no Android Studio.
Se você estiver no programa Android Beta, vai receber uma atualização over the air para a versão Beta 1.
Se você tem o Android 26Q1 Beta e quer usar a versão estável final do 26Q1 e sair da versão Beta, ignore a atualização OTA para o 26Q2 Beta 1 e aguarde o lançamento do 26Q1.
Queremos saber sua opinião. Por isso, relate problemas e envie solicitações de recursos na página de feedback. Quanto mais cedo recebermos seu feedback, mais melhorias poderão ser incluídas na versão final.
Para ter a melhor experiência de desenvolvimento com o Android 17, recomendamos que você use a versão prévia mais recente do Android Studio (Panda). Depois de configurar, faça o seguinte:
- Compile com o novo SDK, teste em ambientes de CI e informe qualquer problema no rastreador na página de feedback.
- Teste a compatibilidade do app atual, saiba se ele é afetado por mudanças no Android 17 e instale o app em um dispositivo ou emulador com o Android 17 para testá-lo extensivamente.
Vamos atualizar regularmente as imagens do sistema de prévia/Beta e o SDK durante todo o ciclo de lançamento do Android 17. Depois de instalar um build Beta, você vai receber automaticamente atualizações OTA de todas as prévias e versões Beta mais recentes.
Para informações completas, acesse o site para desenvolvedores do Android 17.
Participe da conversa
À medida que avançamos para a Estabilidade da plataforma e o lançamento estável final do Android 17 ainda este ano, seu feedback continua sendo nosso recurso mais valioso. Seja um usuário pioneiro no canal Canary ou um desenvolvedor de apps testando no Beta 1, participe das nossas comunidades e envie feedback. Estamos ouvindo.
Continuar lendo
-
Notícias sobre produtos
Hoje, estamos aprimorando o desenvolvimento para Android com o Gemma 4, nosso mais recente modelo aberto de última geração projetado com recursos complexos de raciocínio e chamada de ferramentas autônoma.
Matthew McCullough • 2 min de leitura
-
Notícias sobre produtos
O Android 17 atingiu oficialmente a estabilidade da plataforma hoje com a versão Beta 3. Isso significa que a superfície da API está bloqueada. Você pode realizar testes finais de compatibilidade e enviar os apps direcionados ao Android 17 para a Google Play Store.
Matthew McCullough • Leitura de 5 minutos
-
Notícias sobre produtos
Queremos tornar mais rápido e fácil para você criar apps Android de alta qualidade. Uma das maneiras de ajudar você a ser mais produtivo é colocar a IA ao seu alcance.
Matthew McCullough • 2 min de leitura
Fique por dentro
Receba os insights mais recentes sobre desenvolvimento Android na sua caixa de entrada semanalmente.