O Android 10 é construído em torno de três temas importantes. Primeiro, o Android 10 está moldando a vanguarda da inovação móvel com machine learning avançado e suporte para dispositivos emergentes, como smartphones dobráveis e com 5G. Além disso, o Android 10 tem um foco central na privacidade e na segurança, com quase 50 recursos que oferecem aos usuários mais proteção, transparência e controle. Por fim, o Android 10 expande os controles de bem-estar digital dos usuários para que indivíduos e famílias possam encontrar um equilíbrio melhor com a tecnologia.
Confira o que há no Android 10 para desenvolvedores e como você pode usá-lo hoje.
Inovação e novas experiências
Com o Android 10, você pode aproveitar as inovações mais recentes de hardware e software para criar experiências incríveis de apps para os usuários.
Com o Android 10, você pode otimizar seus apps para dispositivos dobráveis e outros dispositivos de tela grande.
Dobráveis
Com base no suporte robusto a várias janelas, o Android 10 estende a multitarefa entre
as janelas do app e oferece continuidade de tela para manter o estado do app quando o
dispositivo é dobrado ou desdobrado. O Android 10 adiciona várias melhorias em
onResume() e
onPause() para oferecer suporte
à retomada múltipla e notificar seu app quando ele estiver em foco. Ele também muda o funcionamento do atributo de manifesto
resizeableActivity para ajudar
você a gerenciar como o app é exibido em telas grandes e dobráveis. Para ajudar você
a criar para dispositivos dobráveis, é possível configurar um emulador dobrável como um dispositivo
virtual (AVD) no Android Studio. Para saber como otimizar seus apps para
dobráveis, consulte Aprenda Mais sobre dispositivos dobráveis.
Redes 5G
O 5G promete oferecer velocidades consistentemente mais rápidas e menor latência. O Android 10
adiciona suporte de plataforma para 5G e estende
ConnectivityManager para ajudar você
a aproveitar essas melhorias. Use as APIs de conectividade para detectar se
o dispositivo tem uma conexão de alta largura de banda e verificar se ela é
limitada. Com eles, seus apps e jogos podem oferecer experiências ricas e imersivas
aos usuários em 5G.
"Resposta inteligente" nas notificações
O Android 10 usa o ML no dispositivo para sugerir ações contextuais em notificações,
como respostas inteligentes para mensagens ou abertura de um mapa para um endereço na
notificação. Seus apps podem aproveitar esse recurso imediatamente, sem
que você precise fazer nada. As respostas e ações inteligentes fornecidas pelo sistema são
inseridas diretamente nas notificações por padrão. Você ainda pode fornecer suas próprias
respostas e ações, se quiser. Para desativar a Resposta Inteligente em cada notificação, use setAllowGeneratedReplies() e setAllowSystemGeneratedContextualActions().
A Resposta Inteligente pode sugerir ações com base no conteúdo da notificação.
Tema escuro
O Android 10 adiciona um tema escuro para todo o sistema, ideal para ambientes com pouca luz e que ajuda a economizar bateria. Os usuários podem ativar um novo tema escuro em todo o sistema acessando as Configurações ou ativando a Economia de bateria. Isso muda a IU do sistema para o modo escuro e ativa o tema escuro dos apps compatíveis. Você pode criar um tema escuro personalizado para seu app ou ativar o recurso Forçar Tema Escuro, que permite que o sistema crie dinamicamente uma versão escura com base no tema atual. Você também pode aproveitar o recurso DayNight do AppCompat para oferecer um tema escuro aos usuários de versões anteriores do Android. Para mais informações, consulte Tema escuro.
O Android 10 pode criar um tema escuro para seu app de forma dinâmica com o recurso Forçar tema escuro.
Navegação por gestos
A navegação por gestos oferece aos apps a tela cheia para o conteúdo.
O Android 10 apresenta um modo de navegação totalmente por gestos que elimina a
área da barra de navegação e permite que os apps usem a tela cheia para oferecer experiências mais ricas
e imersivas. Ela mantém a navegação conhecida de Voltar, Início e Recentes
por meio de deslizamentos na borda, em vez de botões visíveis. Para se integrar perfeitamente
à navegação por gestos, use o modo de ponta a ponta, desenhando atrás da barra de navegação para
criar uma experiência imersiva. Para implementar isso, use a
API setSystemUiVisibility() para definir o layout do app
em tela cheia e, em seguida, processe
WindowInsets conforme apropriado para garantir
que partes importantes da interface não sejam ocultadas. Para mais informações, consulte
Navegação por gestos e a
série de postagens do blog sobre navegação por gestos.
Painéis de configurações
É possível mostrar as principais configurações do sistema diretamente no contexto do app usando uma
API Settings.Panel. Um painel de configurações é uma interface flutuante que você invoca para mostrar as configurações que os usuários podem precisar, como conexão de internet, NFC e volume de áudio. Por exemplo, um navegador pode
mostrar um painel com configurações de conectividade, como modo avião, Wi-Fi (incluindo
redes próximas) e dados móveis. Para exibir um painel de configurações, acione uma intent
com uma das ações Settings.Panel.
Atalhos de compartilhamento
Os atalhos de compartilhamento tornam o compartilhamento mais rápido e fácil, permitindo que os usuários acessem diretamente
outro app para compartilhar conteúdo. Os desenvolvedores podem publicar destinos de compartilhamento que
iniciam uma atividade específica nos apps com conteúdo anexado, que são
mostrados aos usuários na interface de compartilhamento. Como eles são publicados com antecedência, a interface de compartilhamento é carregada instantaneamente quando iniciada. Os atalhos de compartilhamento são semelhantes aos atalhos de apps
e usam a mesma
API ShortcutInfo. A API também é
compatível com a biblioteca ShareTarget do AndroidX. Para mais informações, consulte
o app de exemplo de atalhos de compartilhamento.
Os atalhos de compartilhamento permitem que os usuários acessem diretamente uma atividade específica nos seus apps com conteúdo anexado.
Privacidade para os usuários
A privacidade é um foco central no Android 10, desde proteções mais fortes na plataforma até novos recursos projetados com a privacidade em mente. Com base nas versões anteriores, o Android 10 inclui mudanças extensas para proteger a privacidade e dar mais controle aos usuários, com uma interface do sistema aprimorada, permissões mais rígidas e restrições sobre quais dados os apps podem usar. Para mais informações sobre como oferecer suporte a essas mudanças nos seus apps, consulte Mudanças de privacidade.
Agora os usuários podem conceder acesso à localização quando o app está em primeiro plano.
Mais controle sobre os dados de local: os usuários têm mais controle sobre os dados de local com uma opção de permissão. Eles podem permitir que um app acesse o local apenas enquanto ele estiver em uso (em execução em primeiro plano). Para a maioria dos apps, isso oferece um nível de acesso suficiente, enquanto para os usuários é uma grande melhoria na transparência e no controle. Para mais informações sobre mudanças de local, consulte Solicitar atualizações do local ou a postagem do blog de Desenvolvedores Android sobre localização.
Proteção de dados de local em verificações de rede: a maioria das APIs para verificar redes já exigia a permissão de localização aproximada. O Android 10 aumenta a proteção dessas APIs exigindo a permissão de localização exata.
Prevenção do rastreamento de dispositivos: os apps não podem mais acessar identificadores de dispositivo não redefiníveis que podem ser usados para rastreamento, incluindo IMEI, número de série e identificadores semelhantes. O endereço MAC do dispositivo também é randomizado quando conectado a redes Wi-Fi por padrão. Para mais informações, consulte Práticas recomendadas para identificadores exclusivos e Restrição de identificadores de dispositivo não redefiníveis.
Proteção de dados do usuário no armazenamento externo: o Android 10 apresenta várias
mudanças para dar aos usuários mais controle sobre os arquivos no armazenamento externo e os dados
de apps neles. Os apps podem armazenar os próprios arquivos em sandboxes particulares, mas
precisam usar MediaStore para acessar arquivos de mídia compartilhados e o seletor de arquivos do sistema
para acessar arquivos compartilhados na coleção de downloads. Para mais informações,
consulte Armazenamento com escopo.
Bloqueio de interrupções indesejadas: o Android 10 impede que apps em segundo plano sejam iniciados e passem inesperadamente para o primeiro plano, assumindo o foco de outro app. Para mais informações, consulte Início de atividades em segundo plano.
Segurança
O Android 10 apresenta uma série de recursos de segurança que protegem os usuários com avanços em criptografia, proteção da plataforma e autenticação. Para mais informações, consulte Novidades na segurança do Android Q.
Criptografia de armazenamento: todos os dispositivos compatíveis lançados com o Android 10 precisam criptografar os dados do usuário. Para tornar esse processo mais eficiente, o Android 10 inclui o Adiantum, nosso modo de criptografia.
TLS 1.3 por padrão: o Android 10 também ativa o TLS 1.3 por padrão, uma grande revisão do padrão TLS com benefícios de desempenho e segurança aprimorada.
Reforço da proteção da plataforma: o Android 10 também inclui reforço da proteção para áreas críticas de segurança da plataforma.
Biometria aprimorada: o Android 10 estende o framework
BiometricPrompt para oferecer suporte a métodos de autenticação
passiva, como reconhecimento facial, e adicionar fluxos de autenticação
implícitos e explícitos. No fluxo explícito, o usuário precisa confirmar explicitamente a
transação no TEE durante a autenticação. O fluxo implícito foi projetado
como uma alternativa mais leve para transações com autenticação passiva.
O Android 10 também melhora o substituto para credenciais do dispositivo quando necessário. Para
mais informações, consulte
Mostrar uma caixa de diálogo de autenticação biométrica.
Câmera e mídia
Profundidade dinâmica para fotos
Os apps podem solicitar uma imagem de profundidade dinâmica, que consiste em um JPEG, metadados XMP relacionados a elementos de profundidade e um mapa de profundidade e confiança incorporado no mesmo arquivo. Eles permitem que você ofereça opções especializadas de desfoque e bokeh no seu app. A profundidade dinâmica é um formato aberto para dispositivos com o Android 10 (nível 29 da API) e versões mais recentes. Para mais informações, consulte a especificação de profundidade dinâmica (PDF).
Com a imagem de profundidade dinâmica, você pode oferecer opções especializadas de desfoque e bokeh no seu app.
Captura de reprodução de áudio
Qualquer app que reproduza áudio pode permitir que outros apps capturem o stream de áudio usando a API de captura de reprodução de áudio. Além de ativar legendas, a API permite que você ofereça suporte a casos de uso comuns, como jogos de transmissão ao vivo. Como esse recurso foi criado com foco na privacidade e na proteção de direitos autorais, a capacidade de um app capturar o áudio de outro é limitada, dando aos apps controle total sobre se os streams de áudio podem ser capturados. Para mais informações, consulte Como capturar áudio no Android Q.
Novos codecs de áudio e vídeo
O Android 10 adiciona suporte ao codec de vídeo de código aberto
AV1, que permite que os provedores de mídia
transmitam conteúdo de vídeo de alta qualidade para dispositivos Android
usando menos largura de banda. Além disso, o Android 10
oferece suporte à codificação de áudio usando
Opus, um codec aberto e livre de royalties
otimizado para streaming de fala e música, e
HDR10+ para vídeos de High Dynamic Range em dispositivos
compatíveis. A API MediaCodecInfo
oferece uma maneira mais fácil de determinar os recursos de renderização de vídeo de um
dispositivo Android. Para qualquer codec, é possível receber uma lista de tamanhos e frame rates
compatíveis.
API Native MIDI
Para apps que realizam o processamento de áudio em C++, o Android 10 apresenta uma API MIDI nativa para se comunicar com dispositivos MIDI pelo NDK. Essa API permite que os dados MIDI sejam recuperados dentro de um callback de áudio usando uma leitura de método de bloqueio, permitindo o processamento de baixa latência de mensagens MIDI. Teste o app de exemplo e o código-fonte aqui.
Microfones direcionais e com zoom
O Android 10 oferece mais controle sobre a captura de áudio com uma nova
API MicrophoneDirection. É possível usar a API para
especificar uma direção preferencial do microfone ao fazer uma gravação
de áudio. Por exemplo, quando o usuário estiver gravando um vídeo de "selfie", você pode
solicitar o microfone frontal para gravação de
áudio (se houver). Além disso, essa API apresenta uma maneira padronizada
de controlar microfones com zoom, permitindo que o app tenha controle sobre a
dimensão do campo de gravação.
Vulkan em alta
O Android 10 expande o impacto do Vulkan com nossa implementação da API multiplataforma de baixa sobrecarga para gráficos 3D de alto desempenho. O Vulkan 1.1 agora é um requisito em todos os dispositivos de 64 bits com o Android 10 e versões mais recentes, além de ser uma recomendação para todos os dispositivos de 32 bits. Já vemos um impulso significativo no suporte ao Vulkan no ecossistema: entre os dispositivos com o Android N ou versões mais recentes, 53% oferecem suporte ao Vulkan 1.0.3 ou versões mais recentes. Com o novo requisito no Android 10, esperamos que a adoção melhore ainda mais no próximo ano.
Conectividade
Melhor conectividade ponto a ponto e de Internet
O Android 10 refatora a pilha de Wi-Fi para melhorar a privacidade e o desempenho, além de melhorar casos de uso comuns, como o gerenciamento de dispositivos IoT e a sugestão de conexões de Internet, sem exigir a permissão de localização. As APIs de conexão de rede facilitam o gerenciamento de dispositivos IoT por Wi-Fi local para funções ponto a ponto, como configuração, download ou impressão. As APIs de sugestão de rede permitem que os apps mostrem as redes Wi-Fi preferidas ao usuário para conexão de Internet.
Modos de desempenho com Wi-Fi
Os apps podem solicitar o Wi-Fi adaptável ativando os modos de alto desempenho e baixa
latência. Isso pode ser um grande benefício quando a baixa latência é importante para a experiência do usuário, como em jogos em tempo real, ligações ativas e casos de uso semelhantes. A plataforma trabalha com o firmware do dispositivo para atender ao requisito
com o menor consumo de energia. Para usar os modos performance, chame
WifiManager.createWifiLock() com
WIFI_MODE_FULL_LOW_LATENCY ou WIFI_MODE_FULL_HIGH_PERF.
Conceitos básicos do Android
Otimizações de ART
As melhorias no ambiente de execução do ART ajudam os apps a serem iniciados mais rapidamente, consumirem menos memória e funcionarem melhor, sem que você precise fazer nada. Os perfis do ART fornecidos pelo Google Play permitem que o ART pré-compile partes do app antes mesmo de ele ser executado. No ambiente de execução, o Android 10 adiciona a coleta de lixo geracional ao coletor de lixo de cópia simultânea (CC, na sigla em inglês) do ART para tornar a coleta de lixo mais eficiente em termos de tempo e CPU, reduzir instabilidades e ajudar os apps a serem executados melhor em dispositivos mais simples.
Este gráfico mostra a porcentagem de melhoria no tempo de inicialização de apps específicos quando testados com perfis do Play.
API Neural Networks 1.2
O Android 10 adiciona 60 operações, incluindo ARGMAX, ARGMIN e LSTM quantizada, além de várias otimizações de desempenho. Isso estabelece as bases para acelerar uma variedade muito maior de modelos, como os de detecção de objetos e segmentação de imagens. O Google colabora com fornecedores de hardware e frameworks de machine learning conhecidos, como o TensorFlow, para otimizar e oferecer suporte à NNAPI 1.2.
API Thermal
Quando os dispositivos ficam muito quentes, eles podem limitar a CPU, a GPU ou ambas, e essa limitação pode afetar apps e jogos de maneiras inesperadas. No Android 10, apps e jogos podem usar uma API térmica para monitorar mudanças no dispositivo e entrar em ação para ajudar a restaurar a temperatura normal. Por exemplo, apps de streaming podem reduzir a resolução, a taxa de bits ou o tráfego de rede, um app de câmera pode desativar o flash ou a melhoria intensiva de imagem, ou um jogo pode reduzir o frame rate ou a tesselação de polígonos. Para mais informações, consulte API Thermal.
Compatibilidade por meio de APIs públicas
O Android 10 continua a expandir as restrições em interfaces que não são do SDK, para que os apps passem gradualmente a usar apenas APIs públicas. Se uma interface que você usa estiver restrita, solicite uma API pública para essa interface. Para ajudar você a fazer a transição e evitar que seus apps parem de funcionar, o Android 10 ativa as restrições somente quando o app é direcionado ao Android 10 (nível 29 da API). Para mais informações, consulte Atualizações para restrições de interface não SDK no Android 10.
Atualizações mais rápidas, código mais atualizado
O Android 10 foi criado para atualizações mais rápidas com o Projeto Treble, que oferece uma interface consistente e testável entre o Android e o código do dispositivo subjacente de fabricantes de dispositivos e de silício. Com o Treble, os fabricantes de dispositivos podem levar o Android 10 para dispositivos compatíveis com o Treble de forma mais rápida e com um custo menor.
O Android 10 também é a primeira versão compatível com o Projeto Mainline (oficialmente chamado de atualizações do sistema do Google Play), uma tecnologia para proteger os usuários do Android e manter os dispositivos atualizados com mudanças importantes no código, diretamente do Google Play. Com as atualizações do sistema do Google Play, é possível atualizar componentes internos específicos em todos os dispositivos com o Android 10 e versões mais recentes, sem exigir uma atualização completa do sistema do fabricante do dispositivo.
Para desenvolvedores, essas atualizações no Android 10 ajudam a aumentar a consistência da implementação da plataforma em vários dispositivos e, com o tempo, trazem maior uniformidade, o que reduz os custos de desenvolvimento e teste.
Primeiros passos
Para ver todos os recursos para desenvolvedores do Android 10, acesse developer.android.com/10.
