Android Studio 3.5 (agosto de 2019)

O Android Studio 3.5 é uma versão principal que resultou do Project Marble. A partir do lançamento do Android Studio 3.3, a iniciativa do Project Marble deu origem a várias versões que se concentram na melhoria de três áreas principais do ambiente de desenvolvimento integrado: integridade do sistema, aperfeiçoamento de recursos e correção de bugs.

Para saber mais sobre essas e outras atualizações do Project Marble, leia a postagem no Blog de desenvolvedores Android (em inglês) ou as seções abaixo.

Também gostaríamos de agradecer a todos os nossos colaboradores da comunidadeque ajudaram com esta versão.

3.5.3 (dezembro de 2019)

Esta é uma atualização secundária que inclui várias correções de bugs e melhorias no desempenho.

3.5.2 (novembro de 2019)

Esta é uma atualização secundária que inclui várias correções de bugs e melhorias no desempenho. Para consultar uma lista de correções de bugs importantes, leia a postagem relacionada no blog de Atualizações de versão (em inglês).

3.5.1 (outubro de 2019)

Esta é uma atualização secundária que inclui várias correções de bugs e melhorias no desempenho. Para consultar uma lista de correções de bugs importantes, leia a postagem relacionada no blog de Atualizações de versão (em inglês).

Project Marble: integridade do sistema

Esta seção descreve as mudanças no Android Studio 3.5 com foco na melhoria da integridade do sistema.

Configurações de memória recomendadas

O Android Studio agora notifica você caso detecte que pode melhorar o desempenho aumentando a quantidade máxima de memória RAM que seu sistema operacional precisa alocar para processos do Android Studio, como ambiente de desenvolvimento integrado principal, daemon do Gradle e daemon do Kotlin. Você pode aceitar as configurações recomendadas clicando no link de ação na notificação ou ajustar essas configurações manualmente selecionando File > Settings (ou Android Studio > Preferences no macOS), e navegando até a seção Memory Settings em Appearance & Behavior > System Settings. Para saber mais, consulte Tamanho máximo de heap.

Notificação sobre as configurações recomendadas de memória.

Notificação sobre as configurações recomendadas de memória.

Relatório de uso de memória

Às vezes, os problemas de memória no Android Studio são difíceis de reproduzir e informar. Para resolver esse problema, o Android Studio permite gerar um relatório de uso de memória, clicando em Help > Analyze Memory Usage na barra de menus. Ao fazer isso, o ambiente de desenvolvimento integrado limpa localmente os dados de informações pessoais antes de perguntar se você quer enviá-los à equipe do Android Studio para identificar a origem dos problemas de memória. Para saber mais, consulte Executar um relatório de uso da memória.

Um relatório de uso da memória.

Um relatório de uso da memória.

Windows: otimização de E/S de arquivos antivírus

O Android Studio agora verifica automaticamente se determinados diretórios de projeto são excluídos da verificação antivírus em tempo real. Quando ajustes podem ser feitos para melhorar o desempenho do build, o Android Studio notifica você e fornece instruções sobre como otimizar a configuração do seu antivírus. Para saber mais, consulte Minimizar o impacto do software antivírus na velocidade do build.

Project Marble: aperfeiçoamento de recursos

Esta seção descreve as mudanças no Android Studio 3.5 com foco na melhoria dos recursos já existentes.

Aplicar mudanças

Com o recurso Apply Changes, você pode enviar mudanças de código e recursos ao aplicativo em execução sem reiniciar o app e, em alguns casos, sem reiniciar a atividade atual. Esse recurso implementa uma abordagem completamente nova para preservar o estado do seu app. Ao contrário do Instant Run, que reprogramou o bytecode do APK, o Apply Changes redefine classes em tempo real aproveitando a instrumentação no tempo de execução com suporte no Android 8.0 (API de nível 26) ou mais recente.

Para saber mais, consulte Apply Changes.

Botões da barra de ferramentas para "Apply Changes".

Botões da barra de ferramentas para "Apply Changes".

Fluxo de implantação de apps

O ambiente de desenvolvimento integrado tem um novo menu suspenso que permite selecionar rapidamente em qual dispositivo você quer implantar seu app. Esse menu também inclui uma nova opção que permite executar o app em vários dispositivos ao mesmo tempo.

Menu suspenso do dispositivo de destino.

Menu suspenso do dispositivo de destino.

Sincronização aprimorada do Gradle e detecção do cache

Agora o ambiente de desenvolvimento integrado detecta melhor quando o Gradle limpa periodicamente o cache do seu build ao reduzir o consumo do disco rígido. Nas versões anteriores, esse estado fazia o ambiente de desenvolvimento integrado reportar dependências ausentes e a sincronização do Gradle falhar. Agora, o ambiente de desenvolvimento integrado faz o download das dependências conforme o necessário para garantir que a sincronização do Gradle seja concluída.

Saída do erro de build aprimorada

A janela Build Ícone da janela "Build" agora fornece melhores relatórios de erros, como um link para o arquivo e a linha do erro informado, para os seguintes processos de build:

  • Compilação e vinculação de AAPT
  • R8 e ProGuard
  • Dexing
  • Mescla de recursos
  • Análise do arquivo XML
  • Compilação Javac, Kotlinc e CMake

Upgrades de projeto

A experiência de atualização foi melhorada para fornecer mais informações e ações a fim de atualizar o ambiente de desenvolvimento integrado e o Plug-in do Android para Gradle. Por exemplo, mais erros de sincronização e de build incluem ações para reduzir erros ao atualizar.

É importante lembrar que você pode atualizar o ambiente de desenvolvimento integrado independe de outros componentes, como o Plug-in do Android para Gradle. Assim, você pode atualizar o ambiente de desenvolvimento integrado com segurança assim que uma versão mais recente é disponibilizada e atualizar outros componentes depois.

Layout Editor

O Android Studio 3.5 inclui várias melhorias na visualização, no gerenciamento e na interação de layouts.

Ao trabalhar com ConstraintLayout, uma nova seção Constraints no painel Attributes lista as relações de restrições do componente de interface selecionado. Você pode selecionar uma restrição na superfície de design ou na lista de restrições para destacar a restrição em ambas as áreas.

Relações de restrição para um elemento de interface selecionado.

Relações de restrição para um elemento de interface selecionado.

Da mesma forma, agora você pode excluir uma restrição selecionando-a e pressionando a tecla Delete. Você também pode excluir uma restrição mantendo a tecla Control (Command no macOS) pressionada e clicando no ponto de fixação da restrição. Quando você mantém a tecla Control ou Command pressionada e passa o cursor sobre um ponto de âncora, as restrições associadas ficam vermelhas para indicar que você pode clicar para excluí-las.

Ao selecionar uma visualização, você vai poder criar uma restrição clicando em qualquer um dos ícones + na seção Constraint Widget do painel Attributes, como mostrado na imagem a seguir. Quando você cria uma nova restrição, o Layout Editor agora seleciona e destaca a restrição, fornecendo feedback visual imediato para o que você acabou de adicionar.

Uma animação mostrando como usar o widget de restrição para criar
            restrições.

Uso do widget de restrição para criar restrições

Ao criar uma restrição, o Layout Editor agora mostra apenas os pontos de fixação qualificados que você pode restringir. Anteriormente, o Layout Editor destacava todos os pontos de fixação em todas as visualizações, independente de você poder ou não se restringir a elas. Além disso, uma sobreposição azul agora destaca a meta da restrição. Esse destaque é particularmente útil ao tentar restringir a um componente que se sobrepõe a outro.

Uma animação mostrando como criar uma restrição para um componente
            sobreposto no Android Studio 3.4.

Como criar uma restrição para um componente de sobreposição no Android Studio 3.4.

Uma animação mostrando como criar uma restrição para um componente
            sobreposto no Android Studio 3.5.

Como criar uma restrição para um componente de sobreposição no Android Studio 3.5.

Além das atualizações acima, o Android Studio 3.5 também contém as seguintes melhorias do Layout Editor:

  • O Constraint Widget e o menu suspenso de margem padrão agora permitem que você use recursos de dimensão para margens.
  • Na barra de ferramentas do Layout Editor, a lista de dispositivos que determinam o tamanho da superfície de design foi atualizada. Além disso, o comportamento de ajuste durante o redimensionamento foi aprimorado, e as alças de redimensionamento na superfície de design agora estão sempre visíveis. Ao redimensionar, novas sobreposições aparecem e mostram tamanhos de dispositivos comuns.
  • O Layout Editor tem um novo esquema de cores que melhora a consistência e reduz o contraste entre componentes, texto e restrições.
  • O modo Blueprint agora inclui suporte de texto para alguns componentes em que o texto não estava sendo exibido.

Para saber mais sobre essas mudanças, consulte Project Marble do Android Studio: Layout Editor.

Vinculação de dados

Além de adicionar suporte incremental a processamento de anotações para vinculação de dados, o ambiente de desenvolvimento integrado melhora os recursos e o desempenho do editor inteligente, criando expressões de vinculação de dados em XML.

Uma animação mostrando o desempenho do editor de código no Android Studio
            3.4.

Desempenho do editor de código no Android Studio 3.4.

Uma animação mostrando o desempenho do editor de código no Android Studio
            3.5.

Melhor desempenho de edição de código no Android Studio 3.5.

Suporte aprimorado a projetos C/C++

O Android Studio 3.5 inclui várias mudanças que melhoram o suporte a projetos C/C++.

Melhorias no painel "Build Variants" para sincronização de variante única

Agora você pode especificar a variante de build ativa e a ABI ativa no painel Build Variants. Esse recurso simplifica a configuração do build por módulo e também pode melhorar o desempenho da sincronização do Gradle.

Para saber mais, consulte Mudar a variante de build.

Painel "Build Variants" mostrando seleção de variante única pela ABI.

O painel "Build Variants" com seleção de variante única da ABI.

Versões lado a lado do NDK

Agora você pode usar várias versões do NDK lado a lado. Esse recurso oferece mais flexibilidade durante a configuração dos seus projetos, por exemplo, se você tem projetos que usam diferentes versões do NDK na mesma máquina.

Se o projeto usa o Plug-in do Android para Gradle 3.5.0 ou mais recente, você também pode especificar a versão do NDK que cada módulo do seu projeto vai usar. Você pode usar esse recurso para criar builds reproduzíveis e reduzir as incompatibilidades entre as versões do NDK e o Plug-in do Android para Gradle.

Para saber mais, consulte Instalar e configurar NDK, CMake e LLDB.

Suporte ao ChromeOS

O Android Studio agora oferece oficialmente suporte a dispositivos ChromeOS, como o Chromebook HP x360 14, o Chromebook Acer 13/Spin 13 e outros, sobre os quais você pode ler nos requisitos do sistema. Para começar, faça o download do Android Studio no dispositivo ChromeOS compatível e siga as instruções de instalação.

Observação: atualmente, o Android Studio no ChromeOS tem suporte à implantação do seu app apenas em um dispositivo de hardware conectado. Para saber mais, consulte Executar apps em um dispositivo de hardware.

Entrega condicional para módulos de recursos

A entrega condicional permite definir alguns requisitos de configuração de dispositivos para que os módulos de recursos sejam transferidos por download automaticamente durante a instalação do app. Por exemplo, você pode configurar um módulo de recursos que inclua a funcionalidade de realidade aumentada (RA) disponível na instalação do app apenas para dispositivos com suporte à RA.

No momento, esse mecanismo de entrega permite controlar o download de um módulo no momento da instalação do app com base nas seguintes configurações de dispositivos:

  • Recursos de hardware e software do dispositivo, incluindo a versão do OpenGL ES
  • País do usuário
  • Nível da API

Se um dispositivo não atender a todos os requisitos especificados, o módulo não vai ser transferido por download no momento da instalação do app. No entanto, o app vai poder pedir o download do módulo sob demanda usando a biblioteca Play Core. Para saber mais, leia Configurar entrega condicional.

IntelliJ IDEA 2019.1

O ambiente de desenvolvimento integrado principal do Android Studio foi atualizado com as melhorias do IntelliJ IDEA até a versão 2019.1, por exemplo, personalização de temas.

A última versão do IntelliJ incluída no Android Studio foi a 2018.3.4. Para saber mais sobre as melhorias de outras versões do IntelliJ incluídas cumulativamente nesta versão do Android Studio, consulte as seguintes atualizações de correção de bugs:

Atualizações do Plug-in do Android para Gradle 3.5.0

Para saber mais sobre as novidades do Plug-in do Android para Gradle 3.5.0, como o suporte aprimorado ao processamento incremental de anotações e testes de unidade armazenáveis em cache, consulte as notas da versão.

Colaboradores da comunidade

Agradecemos a todos os colaboradores da comunidade que nos ajudaram a descobrir bugs e outras formas de melhorar o Android Studio 3.5. Em particular, gostaríamos de agradecer às seguintes pessoas que relataram bugs P0 e P1: