Android

7 ago, 2018

Apresentando o Android 9 Pie

Publicidade

Artigo de Dave Burke, publicado originalmente pelo Android Developers Blog. A tradução foi feita pela Redação iMasters com autorização.

***

Depois de mais de um ano de desenvolvimento e meses de testes por parte dos primeiros usuários, estamos prontos para lançar o Android 9 Pie, o mais recente lançamento do Android, para o mundo.

O Android 9 aproveita o poder do aprendizado de máquina para tornar seu smartphone mais inteligente, simples e personalizado para você. Leia tudo sobre os novos recursos do consumidor aqui. Para os desenvolvedores, o Android 9 inclui muitas novas maneiras de aprimorar seus aplicativos e criar novas experiências para impulsionar o engajamento.

Vocês nos deram toneladas de feedback ao longo do caminho – mais de mil erros e solicitações de recursos – obrigado! Mais de 140.000 pessoas experimentaram as compilações de visualização por meio do programa Android Beta, e sete de nossos parceiros fabricantes de dispositivos também trouxeram nossa versão Beta para seus dispositivos principais, permitindo que os usuários em todo o mundo também dessem seu feedback.

Estamos aplicando o código-fonte ao Projeto de Código Aberto Android (AOSP) e iniciando o lançamento do Android 9 para todos os usuários do Pixel no mundo todo, com o Android 9 chegando a muitos outros dispositivos nos próximos meses.

Continuamos a impulsionar o Android como a principal plataforma aberta para desenvolvedores em todo o mundo a fim de construir seus negócios. Com o Android 9, junto com os novos e poderosos recursos da Google Play para aplicativos e jogos, estamos comprometidos em ajudar você a criar ótimas experiências, além de alcançar e envolver os usuários certos com segurança e economia em todo o mundo.

O que há no Android 9?

Um smartphone mais inteligente, com aprendizado de máquina no núcleo

O Android 9 ajuda seu smartphone a aprender enquanto você o utiliza, captando suas preferências e ajustando-as automaticamente. Tudo, desde ajudar os usuários a aproveitar ao máximo a duração da bateria, até encontrar as melhores partes dos aplicativos que usam o tempo todo, exatamente quando mais precisam, o Android 9 mantém as execuções mais fluidas e por mais tempo.

Bateria Adaptativa

Fizemos uma parceria com a DeepMind em um recurso chamado Adaptive Battery que usa aprendizado de máquina para priorizar os recursos do sistema para os aplicativos que o usuário mais se importa.

Se seu aplicativo estiver otimizado para Doze, App Standby e Background Limits, o Bateria Adaptativa deve funcionar bem para você imediatamente. Se você ainda não otimizou seu aplicativo, verifique os detalhes na documentação de energia para ver como ele funciona.

Slices

As Slices podem ajudar os usuários a executar tarefas mais rapidamente, ativando o envolvimento fora da experiência do aplicativo em tela cheia. Ele faz isso usando modelos de interface do usuário que podem exibir conteúdo rico, dinâmico e interativo de seu aplicativo a partir do aplicativo da Pesquisa do Google e, posteriormente, em outros lugares, como o Assistente do Google. Você pode aprender mais sobre como criar Fatias para aprimorar seu aplicativo aqui.

Ações do aplicativo

As Actions do aplicativo representam uma nova maneira de aumentar a visibilidade do seu aplicativo e impulsionar o engajamento. Actions aproveita o aprendizado de máquina para exibir seu aplicativo para o usuário no momento certo, com base nas intenções semânticas do aplicativo e no contexto do usuário.

Compartilharemos mais detalhes nas próximas semanas sobre como registrar seu aplicativo para lidar com uma ou mais intenções do usuário. Assim, seus aplicativos podem ser ativados para Actions do aplicativo e exibidos em várias superfícies do Google e do Android em resposta a consultas de usuários.

Classificador de texto e Smart Linkify

Estendemos os modelos ML que identificam entidades em conteúdo ou entrada de texto para oferecer suporte a mais tipos, como Datas e Números de Voo, por meio da API TextClassifier. O Smart Linkify permite que você aproveite os modelos TextClassifier por meio da API do Linkify, incluindo opções enriquecidas para ações de usuário de acompanhamento rápido. O Smart Linkify também oferece melhorias significativas na precisão da detecção, bem como no desempenho.

API de redes neurais 1.1

O Android 9 adiciona uma versão atualizada da API de redes neurais para estender o suporte do Android para o aprendizado de máquina acelerado no dispositivo. O Redes Neurais 1.1 adiciona suporte a nove novos ops – Pad, BatchToSpaceND, SpaceToBatchND, Transpose, Strided Slice, Mean, Div, Sub e Squeeze. Uma maneira típica de aproveitar as APIs é por meio do TensorFlow Lite.

Aproveitando o máximo do seu telefone – mais facilmente

Estamos empolgados em tornar seu smartphone mais inteligente, mas também é importante que a tecnologia desapareça para os usuários. No Android 9, evoluímos a interface do usuário do Android para ser mais simples e mais acessível. Para desenvolvedores, essas alterações ajudam a melhorar a maneira como os usuários encontram, usam e gerenciam seus aplicativos.

Nova navegação do sistema

O Android 9 introduz uma nova navegação do sistema na qual estamos trabalhando há mais de um ano. O novo design ajuda a tornar a multitarefa do Android mais acessível e facilita muito a descoberta de aplicativos. Você pode deslizar de qualquer lugar para ver as visualizações em tela cheia dos aplicativos usados recentemente e simplesmente tocar para voltar a um deles.

Exibição de recorte

Agora, seu aplicativo pode aproveitar totalmente as mais recentes telas de ponta a ponta por meio do suporte a recortes de tela no Android 9. Para a maioria dos aplicativos, o recorte de exibição de suporte é perfeito, com o sistema gerenciando a altura da barra de status para separar seu conteúdo do recorte.

Se você tiver conteúdo imersivo, poderá usar as APIs de recorte de exibição para verificar a posição e o formato do recorte e solicitar um layout de tela inteira ao redor dele. Para ajudar no desenvolvimento e nos testes, adicionamos uma Opção de Desenvolvedor que simula diversas formas de recorte em qualquer dispositivo.

Notificações e resposta inteligente

O Android 9 torna as notificações ainda mais úteis e mais acionáveis. Os aplicativos de mensagens podem aproveitar as novas APIs do MessagingStyle para exibir conversas, anexar fotos e adesivos e até sugerir respostas inteligentes. Em breve, você poderá usar o Kit ML para gerar sugestões inteligentes de resposta para seu aplicativo.

Notificações MessagingStyle com conversas e respostas inteligentes [imagem de cima], imagens e adesivos [imagem de baixo].

Ampliador de texto

No Android 9, adicionamos um widget de lente de aumento para melhorar a experiência do usuário de selecionar texto. O widget de lente de aumento permite que os usuários posicionem com precisão o cursor ou as alças de seleção de texto, visualizando o texto ampliado através de um painel arrastável.

Você pode anexá-lo a qualquer exibição anexada a uma janela, para usá-lo em widgets personalizados ou durante a renderização de texto personalizada. O widget de lente de aumento também pode fornecer uma versão ampliada de qualquer exibição ou superfície, não apenas texto.

Confira nossa postagem recente no blog para saber mais sobre esse e outros recursos de texto, como o PrecomputedText, a altura da linha e o alinhamento do texto da linha de base.

Segurança e privacidade para usuários

Prompt biométrico

Com uma variedade de sensores biométricos em uso para autenticação, tornamos a experiência mais consistente entre tipos de sensores e aplicativos. O Android 9 introduz uma caixa de diálogo gerenciada pelo sistema para solicitar ao usuário qualquer tipo de autenticação biométrica com suporte.

Os aplicativos não precisam mais criar sua própria caixa de diálogo – em vez disso, usam a API BiometricPrompt para mostrar a caixa de diálogo padrão do sistema. Além da Impressão digital (incluindo sensores em exibição), a API suporta a autenticação de Face e de Iris.

Se o seu aplicativo estiver desenhando seus próprios diálogos de autenticação de impressão digital, você deverá alternar para o uso da API BiometricPrompt o mais rápido possível. Veja este artigo para mais informações.

Confirmação Protegida

O Android 9 introduz o Confirmação Protegida Android, que usa o Ambiente de Execução Confiável/Trusted Execution Environment (TEE) para garantir que uma determinada string de prompt seja mostrada e confirmada pelo usuário. Somente após a confirmação do usuário bem-sucedida o TEE assinará a string do prompt, que o aplicativo pode verificar.

Proteção mais forte para chaves privadas

Adicionamos o StrongBox como um novo tipo de KeyStore, fornecendo suporte a API para dispositivos que fornecem armazenamento de chaves em hardware resistente a violações com CPU isolada, RAM e flash seguro. Você pode definir se suas chaves devem ser protegidas por um chip de segurança StrongBox no seu KeyGenParameterSpec.

DNS sobre TLS

O Android 9 adiciona suporte interno para DNS sobre TLS, atualizando automaticamente as consultas DNS para TLS se o servidor DNS da rede oferecer suporte a ele. Os usuários podem gerenciar o comportamento de DNS sobre TLS em um novo Modo de DNS Privado nas configurações de Rede e Internet.

Os aplicativos que realizam suas próprias consultas DNS podem usar uma nova API, LinkProperties.isPrivateDnsActive(), para verificar o modo DNS. Mais neste artigo.

HTTPS por padrão

Como parte de um esforço maior para mover todo o tráfego de rede de texto não criptografado (HTTP não criptografado) para sites protegidos por TLS (HTTPS), estamos alterando os padrões da Configuração de Segurança de Rede para bloquear todo o tráfego de texto sem criptografia.

Agora você precisa fazer conexões por TLS, a menos que você tenha optado explicitamente por texto não criptografado para domínios específicos. Veja os detalhes aqui.

Mitigações de segurança baseadas em compilador

No Android 9, expandimos o uso de atenuações no nível do compilador para fortalecer a plataforma por meio da detecção em tempo de execução de comportamento perigoso.

As técnicas de Controle de Fluxo Integrado (CFI) ajudam a evitar ataques de reutilização de código e execução de código arbitrário. No Android 9, expandimos muito o uso de CFI na framework de mídia e em outros componentes críticos para a segurança, como NFC e Bluetooth. Também introduzimos o suporte ao kernel CFI no kernel comum do Android ao criar com o LLVM.

Também expandimos nosso uso de sanitizantes de extravasamento de números inteiros para reduzir as vulnerabilidades de corrupção de memória e divulgação de informações.

Nós priorizamos sanitizantes em bibliotecas com vulnerabilidades passadas ou onde entradas complexas não confiáveis ​​são processadas, como libui, libnl, libmediaplayerservice e outras. Veja este artigo para mais detalhes.

Privacidade para usuários

O Android 9 protege a privacidade de várias maneiras novas. O sistema agora restringe o acesso ao microfone, câmera e todos os sensores do SensorManager de aplicativos que estão ociosos.

Enquanto o UID do seu aplicativo está ocioso, o microfone informa áudio vazio e os sensores param de relatar eventos. As câmeras usadas pelo seu aplicativo são desconectadas e geram um erro se o aplicativo tentar usá-las.

Na maioria dos casos, essas restrições não devem introduzir novos problemas para os aplicativos existentes, mas recomendamos remover essas solicitações dos seus aplicativos.

O Android 9 também dá ao usuário o controle sobre o acesso ao identificador build.serial da plataforma colocando-o atrás da permissão READ_PHONE_STATE. Para acessar o identificador build.serial, você deve usar o método Build.getSerial().

Leia mais sobre todas as alterações de privacidade aqui.

Novas experiências em câmera, áudio e gráficos

API multicâmera e outras atualizações de câmeras

Com o Android 9, agora você pode abrir fluxos de duas ou mais câmeras físicas simultaneamente em dispositivos compatíveis com a API multicâmera. Em dispositivos com câmeras dual-front ou dual-back, você pode criar recursos inovadores que não são possíveis com apenas uma única câmera, como zoom contínuo, bokeh e visão estérea.

A API também permite que você chame um fluxo de câmera lógico ou fundido que alterna automaticamente entre duas ou mais câmeras.

Outras melhorias na câmera incluem novos Parâmetros de sessão que ajudam a reduzir os atrasos durante a captura inicial e o Compartilhamento de superfície que permite que os clientes da câmera lidem com vários casos de uso sem a necessidade de parar e iniciar o streaming da câmera.

Também adicionamos APIs para suporte a flash baseado em exibição e acesso a timestamps OIS para estabilização de imagem em nível de aplicativo e efeitos especiais.

Vídeo HDR VP9 e compactação de imagem HEIF

O Android 9 adiciona suporte interno ao HDR VP9 Profile 2, para que você possa agora oferecer filmes habilitados para HDR para seus usuários em dispositivos compatíveis com HDR.

Estamos felizes em adicionar a codificação de imagem HEIF (heic) à plataforma. HEIF é um formato popular para fotos que melhora a compactação para economizar em armazenamento e dados de rede.

Com suporte de plataforma em dispositivos Android 9, é fácil enviar e utilizar imagens HEIF do seu servidor de back-end. Depois de se certificar de que seu aplicativo é compatível com esse formato de dados para compartilhamento e exibição, experimente o HEIF como um formato de armazenamento de imagens no seu aplicativo.

Você pode fazer uma conversão jpeg-para-heic usando ImageDecoder ou BitmapFactory para obter um bitmap do jpeg, e você pode usar HeifWriter na biblioteca AndroidX para gravar imagens estáticas HEIF do buffer de bytes YUV, Surface ou Bitmap.

Áudio aprimorado com Processamento Dinâmico

A API de Processamento Dinâmico permite usar um novo efeito de áudio para isolar frequências específicas e diminuir o volume ou aumentar os sons suaves para melhorar a qualidade acústica do seu aplicativo. Por exemplo, você pode melhorar o som de alguém que fala em voz baixa em um ambiente barulhento, distante ou acusticamente desafiador.

A API oferece acesso a um efeito de processamento dinâmico de várias faixas e várias bandas que inclui um pré-equalizador, um compressor multibanda, um pós-equalizador e um limitador vinculado.

ImageDecoder para bitmaps e drawables

Uma API do ImageDecoder oferece uma maneira mais fácil de decodificar imagens para bitmaps ou drawables. Você pode criar um bitmap ou drawable a partir de um buffer de byte, arquivo ou URI. A API oferece várias vantagens sobre o BitmapFactory, incluindo suporte para dimensionamento exato, decodificação de etapa única para memória de hardware, suporte para pós-processamento em decodificação e decodificação de imagens animadas. Você pode ler mais aqui.

Conectividade e localização

RTT Wi-Fi para posicionamento interno

O Android 9 permite que você crie recursos de posicionamento interno em seus aplicativos por meio do suporte à plataforma do protocolo Wi-Fi IEEE 802.11mc – também conhecido como RTT (Wi-Fi Round-Trip-Time). Nos dispositivos Android 9 com suporte de hardware, permissão de local e local ativado, seus aplicativos podem usar APIs RTT para medir a distância até os pontos de acesso Wi-Fi (APs) próximos. O dispositivo não precisa se conectar aos pontos de acesso para usar o RTT, e para manter a privacidade, apenas o telefone é capaz de determinar a distância, não os pontos de acesso.

Sabendo a distância para três ou mais APs, você pode calcular a posição do dispositivo com uma precisão de 1 a 2 metros. Com essa precisão, você pode oferecer suporte a casos de uso, como navegação na construção; serviços baseados em localização de baixa granularidade, como controle de voz sem ambiguidade (por exemplo, “Ativar esta luz”); e informações baseadas em localização (por exemplo: “Há ofertas especiais para este produto?”).

Sensibilidade de custo de dados no JobScheduler

O JobScheduler é o serviço central do Android para ajudá-lo a gerenciar tarefas agendadas ou a trabalhar em Doze, App Standby e Background Limits. No Android 9, o JobScheduler gerencia melhor os trabalhos relacionados à rede para o usuário, coordenando com os sinais de status da rede fornecidos separadamente pelas operadoras.

Os trabalhos agora podem declarar seu tamanho estimado de dados, sinalizar a pré-busca e especificar requisitos detalhados de rede – as operadoras podem relatar que as redes estão congestionadas ou não. JobScheduler, em seguida, gerencia o trabalho de acordo com o status da rede.

Por exemplo, quando uma rede está congestionada, o JobScheduler pode adiar grandes solicitações de rede. Quando não é medido, ele pode executar trabalhos de pré-busca para melhorar a experiência do usuário, como a pré-busca de manchetes.

Abra a API móvel para pagamentos

NFC e transações seguras

O Android 9 adiciona uma implementação da API GlobalPlatform Open Mobile ao Android. Em dispositivos suportados, os aplicativos podem usar a API OMAPI para acessar elementos seguros (SE) para ativar pagamentos com cartão inteligente e outros serviços seguros. Uma camada de abstração de hardware (HAL) fornece a API subjacente para enumerar a variedade de Elementos Seguros (eSE, UICC e outros) disponíveis.

Desempenho para aplicativos

Desempenho ART

O Android 9 traz melhorias de desempenho e eficiência para todos os aplicativos por meio do tempo de execução do ART. Expandimos o uso de perfis de execução do ART para otimizar aplicativos e reduzir o espaço ocupado na memória do código de aplicativo compilado.

O ART agora usa informações de perfil para a reconfiguração de arquivos DEX no dispositivo, com reduções de até 11% em vários aplicativos populares. Esperamos que estes se correlacionem de perto com reduções no uso da memória do sistema DEX e tempos de inicialização mais rápidos para seus aplicativos.

Otimizado para Kotlin

Kotlin é uma linguagem de primeira classe no Android, e se você ainda não experimentou, deveria! Fizemos um compromisso duradouro com Kotlin no Android e continuamos a expandir o suporte, incluindo a otimização do desempenho do código Kotlin.

No Android 9, você verá os primeiros resultados deste trabalho – melhoramos várias otimizações do compilador, especialmente aquelas que visam loops, para extrair um melhor desempenho. Também continuamos a trabalhar em parceria com a JetBrains para otimizar o código gerado pelo Kotlin. Você pode obter todas as melhorias de desempenho mais recentes do Kotlin apenas mantendo o plug-in Kotlin do Android Studio atualizado.

Também estamos lançando uma atualização para o Android 9-API 28 SDK (rev. 6), que contém anotações de nulidade em algumas das APIs usadas com mais frequência. Forneceremos mais detalhes sobre isso em uma publicação futura.

Android moderno

Como parte do Android 9, estamos modernizando as bases do Android e dos aplicativos executados, como parte de nossos investimentos profundos e sustentados em segurança, desempenho e estabilidade.

Conforme anunciado no ano passado, o Google Play exigirá que todas as atualizações de aplicativos segmentem o Android Oreo (targetSdkVersion 26 ou posterior) até novembro de 2018. Se o seu aplicativo segmentar uma plataforma anterior ao Android 4.2 (nível 17 da API), os usuários que o instalarem verão uma caixa de diálogo de aviso deste dia em diante.

Aqui está uma lista de verificação de recursos para ajuda e suporte à medida que você migra. Estamos ansiosos para ver seus apps aproveitarem o máximo do Android moderno.

Prepare seus aplicativos para o Android 9!

Com o Android 9 chegando aos usuários do Pixel a partir de hoje e para outros dispositivos nos próximos meses, é importante testar seu aplicativo quanto à compatibilidade o mais rápido possível. Basta instalar seu aplicativo atual do Google Play em um dispositivo ou emulador que execute o Android 9. À medida em que você trabalha nos fluxos, verifique se seu aplicativo é executado e está otimizado, e se ele trata adequadamente as alterações de comportamento do Android 9.

Além disso, observe os usos de interfaces não SDK no seu aplicativo. O Android 9 restringe o acesso à interfaces não SDK selecionadas. Portanto, você deve reduzir sua confiança nelas. Veja nosso artigo recente para detalhes.

Depois de fazer as atualizações necessárias, recomendamos que você as publique no Google Play imediatamente sem alterar a segmentação de plataforma do aplicativo. Isso permite que você tenha uma ótima experiência para os usuários do Android 9, enquanto você trabalha no aprimoramento do seu aplicativo com as APIs e a segmentação do Android 9.

Melhore seu aplicativo com recursos e APIs do Android 9

Quando estiver pronto, mergulhe no Android 9 e construa com os novos recursos e APIs do Android 9.

Para começar, basta fazer o download da API 28 SDK oficial e das ferramentas e imagens de emulador mais recentes para o Android Studio 3.1 ou usar a versão mais recente do Android Studio 3.2.

Em seguida, atualize o compileSdkVersion e o targetSdkVersion do seu projeto para a API 28. Quando você alterar a segmentação, verifique se o seu aplicativo oferece suporte a todas as alterações de comportamento aplicáveis.

Assim que estiver pronto, publique as suas atualizações do APK no Google Play. Uma estratégia comum é usar o recurso de testes beta do Google Play para obter feedback inicial de um pequeno grupo de usuários e depois fazer um lançamento gradual para a produção.

Visite o site do Android 9 para obter detalhes e documentação do desenvolvedor. Confira também esse vídeo e a lista de reprodução Android do Google I/O para saber mais sobre o que há de novo no Android 9 para desenvolvedores.

Chegando a um dispositivo perto de você

Uma atualização instantânea para o Android 9 começou a ser lançada em telefones Pixel, e os dispositivos que participaram do programa Beta da Sony Mobile, Xiaomi, HMD Global, Oppo, Vivo, OnePlus e Essential, bem como todos os dispositivos Android One qualificados, receberão essa atualização até o final deste outono! Também estamos trabalhando com vários outros parceiros para lançar ou atualizar dispositivos para o Android 9 este ano.

Como sempre, as imagens do sistema para dispositivos Pixel estão disponíveis aqui para flash manual e download. Se você está procurando a fonte do Android 9, você a encontrará aqui no repositório do Android Open Source Project sob as ramificações do Android 9.

O que vem por aí?

Agora que chegamos ao lançamento oficial, estamos encerrando a Visualização do Desenvolvedor. Em breve, estaremos fechando o rastreador de problemas da Visualização do Desenvolvedor a novos problemas.

Portanto, se você tiver comentários, sinta-se à vontade para registrar um novo problema contra o Android 9 no rastreador de problemas do AOSP.

Obrigado novamente aos muitos desenvolvedores e usuários que participaram do Android 9 Developer Preview e do beta público. Suas contribuições foram fundamentais para tornar a plataforma Android 9 otimizada para desenvolvedores e consumidores.

***

Este artigo é do Android Developers Blog. Ele foi escrito por Dave Burke. A tradução foi feita pela Redação iMasters com autorização. Você pode acessar o original em: https://android-developers.googleblog.com/2018/08/introducing-android-9-pie.html