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 em privacidade e 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 em um suporte robusto para 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 enquanto 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 é mostrado 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 o guia para desenvolvedores.
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 as APIs existentes 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 a conexão é 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. Basta desativar a Resposta inteligente em cada notificação usando 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 escuro e ativa o tema escuro dos apps compatíveis. Você pode criar um tema escuro personalizado para seu app ou ativar o novo recurso Forçar Tema Escuro, que permite que o sistema crie dinamicamente uma versão escura do tema atual. Você também pode aproveitar o recurso DayNight do AppCompat para oferecer um tema escuro aos usuários em versões anteriores do Android. Consulte o guia para desenvolvedores e saiba mais.
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 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 nas bordas, em vez de botões visíveis. Para se integrar perfeitamente à navegação por gestos, o app precisa ser de ponta a ponta, desenhando atrás da barra de navegação para criar uma experiência imersiva. Para implementar isso, os apps precisam usar a API setSystemUiVisibility() para serem mostrados em tela cheia e, em seguida, processar WindowInsets, conforme apropriado, para garantir que partes importantes da IU não sejam ocultadas. Comece a otimizar seu app hoje mesmo e confira nossa série de postagens do blog para mais informações.
Painéis de configurações
Agora é possível mostrar as principais configurações do sistema diretamente no contexto do seu app, usando uma nova 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, basta disparar uma intent com uma das novas 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. Consulte o app de exemplo para mais detalhes.
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 aos usuários mais controle, com uma interface do sistema aprimorada, permissões mais rígidas e restrições sobre quais dados os apps podem usar. Consulte as mudanças de privacidade para saber como oferecer suporte a elas nos seus apps.
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 nova opção de permissão. Agora, eles podem permitir que um app acesse o local apenas enquanto 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 em termos de transparência e controle. Para saber mais sobre as mudanças de localização, consulte o guia para desenvolvedores ou nossa postagem do blog.
Proteção de dados de local em verificações de rede: a maioria das APIs para verificação de 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 precisa.
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 por padrão quando conectado a redes Wi-Fi. Leia as práticas recomendadas para ajudar você a escolher os identificadores certos para seu caso de uso e confira os detalhes aqui.
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 o MediaStore para acessar arquivos de mídia compartilhados e o seletor de arquivos do sistema para acessar arquivos compartilhados na nova coleção de downloads. Saiba mais aqui.
Bloqueio de interrupções indesejadas: o Android 10 impede que apps sejam iniciados em segundo plano e passem inesperadamente para o primeiro plano, assumindo o foco de outro app. Saiba mais aqui.
Segurança
O Android 10 apresenta vários recursos que mantêm os usuários mais seguros com avanços na criptografia, no aumento da segurança da plataforma e na autenticação. Leia mais sobre as atualizações de segurança do Android 10 aqui.
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 novo modo de criptografia.
TLS 1.3 por padrão: o Android 10 também ativa o TLS 1.3 por padrão, uma revisão importante 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 várias á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 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 recurso de fallback para credenciais do dispositivo quando necessário. Saiba mais aqui.
Câmera e mídia
Profundidade dinâmica para fotos
Agora, 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. Com eles, você pode oferecer opções especializadas de desfoque e bokeh no seu app. A profundidade dinâmica é um formato aberto para o ecossistema, e estamos trabalhando com nossos parceiros para disponibilizá-la em dispositivos com o Android 10 e versões mais recentes.
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
Agora, qualquer app que reproduza áudio pode permitir que outros apps capturem o stream de áudio usando uma nova API de captura de reprodução de áudio. Além de permitir legendas, a API é compatível com casos de uso conhecidos, como jogos de transmissão ao vivo. Criamos esse novo recurso pensando na privacidade e na proteção de direitos autorais. Por isso, 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. Saiba mais nesta postagem do blog.
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 é compatível com 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ídeo de High Dynamic Range em dispositivos compatíveis. A API MediaCodecInfo introduz uma maneira mais fácil de determinar os recursos de renderização de vídeo de um dispositivo Android. Para qualquer codec, é possível acessar 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 em um callback de áudio usando uma leitura de método de não 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
Refatoramos 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 de 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 conectividade com a Internet.
Modos de desempenho com Wi-Fi
Agora, 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 funciona com o firmware do dispositivo para atender ao
requisito com o menor consumo de energia. Para usar os novos modos performance,
chame WifiManager.WifiLock.createWifiLock()
com WIFI_MODE_FULL_LOW_LATENCY ou WIFI_MODE_FULL_HIGH_PERF. Nesses
modos, a plataforma funciona com o firmware do dispositivo para atender ao requisito
com o menor consumo de energia.
Conceitos básicos do Android
Otimizações de ART
As melhorias no ambiente de execução do ART ajudam seus apps a serem iniciados mais rapidamente, consumirem menos memória e funcionarem de maneira mais fluida, 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 funcionar 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 os perfis do Play.
API Neural Networks 1.2
Adicionamos 60 novas operações, incluindo ARGMAX, ARGMIN, 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. Estamos trabalhando com fornecedores de hardware e frameworks de machine learning conhecidos, como o TensorFlow, para otimizar e lançar suporte para a NNAPI 1.2.
API Thermal
Quando os dispositivos ficam muito quentes, eles podem limitar a CPU e/ou a GPU, e isso pode afetar os apps e jogos de maneiras inesperadas. Agora, no Android 10, apps e jogos podem usar uma API Thermal para monitorar mudanças no dispositivo e tomar medidas para ajudar a restaurar a temperatura normal. Por exemplo, apps de streaming podem reduzir a resolução/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. Saiba mais aqui.
Compatibilidade por meio de APIs públicas
O Android 10 continua ampliando 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 nova API pública para essa interface. Para ajudar você a fazer a transição e evitar que seus apps parem de funcionar, estamos ativando as restrições apenas quando o app é direcionado ao Android 10 (API 29). Para mais detalhes sobre as restrições, consulte o guia para desenvolvedores.
Atualizações mais rápidas, código mais atualizado
O Android 10 foi criado para atualizações mais rápidas com o Project Treble, que oferece uma interface consistente e testável entre o Android e o código do dispositivo dos 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 menor custo.
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), nossa nova 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, podemos 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 os desenvolvedores, esperamos que essas atualizações no Android 10 ajudem a aumentar a consistência da implementação da plataforma em todos os dispositivos e, com o tempo, tragam maior uniformidade, o que vai reduzir os custos de desenvolvimento e teste.
Primeiros passos
Para ver todos os recursos para desenvolvedores do Android 10, acesse developer.android.com/10.
