Versões anteriores

Consulte abaixo as notas da versão do Android Studio 3.6 e versões anteriores e o Plug-in do Android para Gradle 3.6.0 e versões anteriores.

Versões mais antigas do Android Studio

3.6 (fevereiro de 2020)

O Android Studio 3.6 é uma versão principal que inclui uma variedade de novos recursos e melhorias.

Também gostaríamos de agradecer a todos os nossos colaboradores da comunidade que ajudaram nesta versão.

3.6.3 (abril de 2020)

Esta atualização secundária inclui várias correções de bugs. 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.6.2 (março de 2020)

Esta atualização secundária inclui várias correções de bugs. 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.6.1 (fevereiro de 2020)

Esta atualização secundária inclui várias correções de bugs. 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).

Ferramentas de design

Esta versão do Android Studio inclui atualizações para várias ferramentas de design, incluindo o Layout Editor e o Resource Manager.

Dividir visualização e aumentar zoom nos editores de design

visualização dividida mostra as visualizações de design e de texto ao mesmo tempo

As seguintes atualizações dos editores de design visual estão incluídas nesta versão:

  • Editores de design, como o Layout Editor e o Navigation Editor, agora fornecem uma visualização Split, que permite observar as visualizações Design e Code da interface ao mesmo tempo. No canto superior direito da janela do editor, agora há três botões ícones de visualização para alternar entre as opções de visualização:

    • Para ativar a visualização dividida, clique no ícone Split ícone de visualização dividida.
    • Para ativar a visualização de origem XML, clique no ícone Source ícone de visualização de origem.
    • Para ativar a visualização de design, clique no ícone Design ícone de visualização de design.
  • Os controles de zoom e panorâmica nos editores de design foram movidos para um painel flutuante na parte de baixo do lado direito da janela do editor.

Para saber mais, consulte Criar uma interface com o Layout Editor.

Guia de recursos do seletor de cores

Para atualizar rapidamente os valores de recursos de cores no app quando você estiver usando o seletor de cores no XML ou nas ferramentas de design, o ambiente de desenvolvimento integrado agora vai preencher os valores de recursos de cores para você.

Seletor de cores com valores de cor preenchidos

Resource Manager

O Resource Manager contém as seguintes atualizações:

  • O Resource Manager agora oferece suporte à maioria dos tipos de recurso.
  • Ao pesquisar um recurso, o Resource Manager agora exibe os resultados de todos os módulos do projeto. Anteriormente, as pesquisas retornavam resultados apenas do módulo selecionado.
  • O botão de filtro permite visualizar recursos de módulos dependentes locais, bibliotecas externas e a estrutura do Android. Você também pode usar o filtro para mostrar os atributos do tema.
  • Agora você pode renomear recursos durante o processo de importação clicando na caixa de texto acima do recurso.

Para saber mais, consulte Gerenciar os recursos de interface do app com o Resource Manager.

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

A versão mais recente do Plug-in do Android para Gradle conta com muitas atualizações, incluindo otimizações da velocidade do build e suporte ao plug-in do Maven e à vinculação de visualizações. Para saber mais, leia as notas completas da versão.

Vinculação de visualizações

A vinculação de visualizações permite programar com mais facilidade um código que interaja com visualizações gerando uma classe de vinculação para cada arquivo de layout XML. Essas classes contêm referências diretas a todas as visualizações que têm um ID no layout correspondente.

Como a vinculação de visualizações substitui findViewById(), ela elimina o risco de exceções de ponteiro nulo resultantes de um ID de visualização inválido.

Para ativar a vinculação de visualizações, você precisa usar o Plug-in do Android para Gradle versão 3.6.0 ou mais recente e incluir o seguinte no arquivo build.gradle de cada módulo:

Groovy

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

Aplicar mudanças

Agora, você pode adicionar uma classe e implantar essa mudança de código no app em execução clicando em Apply Code Changes  ou em Apply Changes and Restart Activity .

Para saber mais sobre a diferença entre as duas ações, consulte Aplicar mudanças.

Refatorar a opção de menu para ativar o suporte a Apps instantâneos

Agora, é possível ativar instantaneamente seu módulo base a qualquer momento depois de criar o projeto do app da seguinte maneira:

  1. Abra o painel Project selecionando View > Tool Windows > Project na barra de menus.
  2. Clique com o botão direito no módulo base, normalmente chamado de "app", e selecione Refactor > Enable Instant Apps Support.
  3. Na caixa de diálogo exibida, selecione o módulo base no menu suspenso.
  4. Clique em OK.

Observação: a opção para ativar instantaneamente o módulo base do seu app usando o assistente Create New Project foi removida.

Para saber mais, leia Visão geral do Google Play Instant.

Desofuscar o bytecode de classe e método no APK Analyzer

Ao usar o APK Analyzer para inspecionar arquivos DEX, é possível desofuscar o bytecode de classe e método da seguinte maneira:

  1. Selecione Build > Analyze APK na barra de menus.
  2. Na caixa de diálogo exibida, navegue até o APK que quiser inspecionar e selecione-o.
  3. Clique em Open.
  4. No APK Analyzer, selecione o arquivo DEX que você quer inspecionar.
  5. No visualizador de arquivos DEX, carregue o arquivo de mapeamentos ProGuard para o APK que você está analisando.
  6. Clique com o botão direito do mouse na classe ou no método que quer inspecionar e selecione Show bytecode.

Ferramentas nativas

As seguintes atualizações são compatíveis com o desenvolvimento nativo (C/C++) no Android Studio.

Suporte ao Kotlin

Os seguintes recursos do NDK no Android Studio, que anteriormente contavam com suporte do Java, agora também têm suporte do Kotlin:

  • Navegue de uma declaração JNI para a função de implementação correspondente em C/C++. Para observar essa associação, passe o cursor sobre o marcador de item C ou C++ próximo ao número da linha no arquivo de código-fonte gerenciado.

  • Crie automaticamente uma função de implementação de stub para uma declaração JNI. Defina a declaração JNI primeiro e, em seguida, digite “jni” ou o nome do método no arquivo C/C++ a ser ativado.

  • As funções de implementação nativa não utilizadas são destacadas como avisos no código-fonte. Declarações JNI com implementações ausentes também são destacadas como erros.

  • Quando você renomeia (refatora) uma função de implementação nativa, todas as declarações JNI correspondentes são atualizadas. Renomeie uma declaração JNI para atualizar a função de implementação nativa.

  • Verificação de assinatura para implementações de JNI vinculadas implicitamente.

Outras melhorias do JNI

O editor de código no Android Studio agora oferece suporte a um fluxo de trabalho de desenvolvimento de JNI mais integrado, incluindo dicas aprimoradas de tipo, preenchimento automático, inspeções e refatoração de código.

Recarregamento do APK para bibliotecas nativas {:#3.6-reload-apk}

Não é mais necessário criar um novo projeto quando o APK do seu projeto é atualizado fora do ambiente de desenvolvimento integrado. O Android Studio detecta mudanças no APK e oferece a opção de importá-lo novamente.

Anexar origens de APKs somente para Kotlin

Agora é possível anexar origens de APK externas exclusivas do Kotlin quando você cria perfis e depura APKs pré-criados. Para saber mais, consulte Anexar origens Kotlin/Java.

Detecção de vazamento no Memory Profiler

Ao analisar um heap dump no Memory Profiler, agora é possível filtrar dados de criação de perfil que o Android Studio considera vazamentos de memória em instâncias de Activity e Fragment do seu app.

Os tipos de dados mostrados pelo filtro incluem o seguinte:

  • Instâncias de Activity que foram destruídas, mas ainda estão sendo referenciadas.
  • Instâncias de Fragment que não têm um FragmentManager, mas ainda estão sendo referenciadas.

Anexar origens de APKs somente para Kotlin

Agora é possível anexar origens de APK externas exclusivas do Kotlin quando você cria perfis e depura APKs pré-criados. Para saber mais, consulte Anexar origens Kotlin/Java.

Detecção de vazamento no Memory Profiler

Ao analisar um heap dump no Memory Profiler, agora é possível filtrar dados de criação de perfil que o Android Studio considera vazamentos de memória em instâncias de Activity e Fragment do seu app.

Os tipos de dados mostrados pelo filtro incluem o seguinte:

  • Instâncias de Activity que foram destruídas, mas ainda estão sendo referenciadas.
  • Instâncias de Fragment que não têm um FragmentManager, mas ainda estão sendo referenciadas.

Em determinadas situações, como as seguintes, o filtro pode gerar falsos positivos:

  • Um Fragment foi criado, mas ainda não foi usado.
  • Um Fragment está sendo armazenado em cache, mas não como parte de um FragmentTransaction.

Para usar esse recurso, primeiro capture um heap dump ou importe um arquivo de heap dump para o Android Studio. Para mostrar os fragmentos e atividades que podem estar vazando memória, marque a caixa de seleção Activity/Fragment Leaks no painel de heap dump do Memory Profiler.

Profiler: detecção de vazamento de memória

Filtragem de um heap dump em busca de vazamentos de memória.

Emuladores

O Android Studio 3.6 ajuda você a aproveitar as diversas atualizações incluídas no Android Emulator 29.2.7 ou mais recente, conforme descrito abaixo.

Suporte aprimorado a local

O Android Emulator 29.2.7 e versões mais recentes oferecem mais suporte à emulação de coordenadas de GPS e informações de rota. Quando você abrir os Controles estendidos dos emuladores, as opções na guia "Location" agora estarão organizadas em duas guias: Single points e Routes.

Pontos únicos

Na guia Single points, você pode usar a visualização da Web do Google Maps para pesquisar pontos de interesse, assim como faria ao usar o Google Maps em um smartphone ou navegador. Ao pesquisar ou clicar em um local no mapa, você pode salvar o local selecionando "Save point" próximo à parte de baixo do mapa. Todos os seus locais salvos são listados no lado direito da janela Extended controls.

Para definir o local dos emuladores como o local que você selecionou no mapa, clique no botão Set location perto do canto inferior direito da janela Extended controls.

Guia Single Points nos controles estendidos do emulador..

Rotas

Semelhante à guia Single points, a guia Routes fornece uma WebView do Google Maps que você pode usar para criar um trajeto entre dois ou mais locais. Para criar e salvar uma rota, faça o seguinte:

  1. Na visualização de mapa, use o campo de texto para pesquisar o primeiro destino na sua rota.
  2. Selecione o local nos resultados da pesquisa.
  3. Selecione o botão Navigate.
  4. Selecione o ponto de partida do seu trajeto no mapa.
  5. (Opcional) Clique em Add destination para adicionar mais paradas ao trajeto.
  6. Salve seu trajeto clicando em Save route na visualização do mapa.
  7. Especifique um nome para o trajeto e clique em Save.

Para simular o emulador seguindo o trajeto que você salvou, selecione o trajeto na lista Saved routes e clique em Play route próximo ao canto inferior direito da janela Extended controls. Para interromper a simulação, clique em Stop route.

Guia de trajetos nos controles estendidos do emulador..

Para simular continuamente o emulador seguindo o trajeto especificado, ative a chave ao lado de Repeat playback. Para mudar a velocidade com que o emulador segue o trajeto especificado, selecione uma opção na lista suspensa Playback speed.

Suporte a várias telas

O Android Emulator agora permite implantar o app em várias telas, que oferecem suporte a dimensões personalizáveis e podem testar apps com suporte a várias janelas e várias telas. Enquanto um dispositivo virtual está em execução, é possível colocar até duas telas extras da seguinte maneira:

  1. Abra Extended controls e navegue até a guia Displays.

  2. Adicione outra exibição clicando em Add secondary display.

  3. No menu suspenso em Secondary displays, siga um destes procedimentos:

  4. Selecione uma das proporções predefinidas

  5. Selecione custom e defina height (altura), width (largura) e dpi para a exibição personalizada.

  6. (Opcional) Clique em Add secondary display para adicionar uma terceira exibição.

  7. Clique em Apply changes para adicionar as telas especificadas ao dispositivo virtual em execução.

A adição de várias telas abre a guia de exibição dos controles estendidos do emulador.

Novos dispositivos virtuais e modelos de projeto para o Android Automotive OS

Ao criar um novo projeto usando o Android Studio, agora você pode selecionar entre três modelos na guia Automotive no assistente Create New Project: No Activity, Media service e Messaging service. Para projetos já existentes, você pode adicionar suporte a dispositivos Android Automotive selecionando File > New > New Module na barra de menus e selecionando Automotive Module. O assistente Create New Module vai orientar você na criação de um novo módulo usando um dos modelos de projeto do Android Automotive.

Seleção de um modelo de projeto do Android Automotive..

Além disso, agora você pode criar um Dispositivo virtual Android (AVD, na sigla em inglês) para dispositivos Android Automotive OS selecionando uma das opções a seguir na guia Automotive no assistente Virtual Device Configuration.

  1. Polestar 2: crie um AVD que emule a unidade principal do Polestar 2.
  2. Automotive (paisagem 1.024p): crie um AVD para unidades genéricas do Android Automotive de 1024 x 768 px.

Seleção de um dispositivo virtual Android Automotive..

Downloads recuperáveis do SDK

Ao fazer o download de componentes e ferramentas do SDK usando o SDK Manager, o Android Studio agora permite retomar downloads interrompidos (por exemplo, devido a um problema de rede) em vez de reiniciá-los desde o começo. Essa melhoria é útil principalmente para downloads grandes, como do Android Emulator ou de imagens do sistema, quando a conectividade de Internet não é confiável.

Além disso, se você tem uma tarefa de download do SDK em execução em segundo plano, é possível pausar ou retomar o download usando os controles na barra de status.

Uma tarefa de download em segundo plano na barra de status com novos
            controles que permitem pausar ou retomar o download.

Uma tarefa de download em segundo plano na barra de status com novos controles que permitem pausar ou retomar o download.

Descontinuação do Win32

A versão para Windows de 32 bits do Android Studio não vai mais receber atualizações após dezembro de 2019, nem suporte após dezembro de 2020. Você pode continuar usando o Android Studio. No entanto, para receber mais atualizações, faça upgrade da sua estação de trabalho para uma versão de 64 bits do Windows.

Para saber mais, leia o blog sobre a descontinuação do Windows de 32 bits (em inglês).

Nova opção para otimizar o tempo de sincronização do Gradle

Nas versões anteriores, o Android Studio recuperava a lista de tarefas do Gradle durante a sincronização com o Gradle. Em projetos grandes, recuperar a lista de tarefas pode causar lentidão nos tempos de sincronização.

Para melhorar a performance da sincronização do Gradle, acesse File > Settings > Experimental e selecione "Do not build Gradle task list during Gradle sync".

Quando você ativa essa opção, o Android Studio pula a criação da lista de tarefas durante a sincronização, o que permite que ela seja concluída mais rapidamente e melhora a capacidade de resposta da interface. Não se esqueça de que, quando o ambiente de desenvolvimento integrado pula a criação da lista de tarefas, elas ficam vazias no painel do Gradle, e o preenchimento automático do nome da tarefa nos arquivos do build não funciona.

Novo local para alternar o modo off-line do Gradle

Para ativar ou desativar o modo off-line do Gradle, selecione View > Tool Windows > Gradle na barra de menus. Em seguida, na parte de cima da janela Gradle, clique em Toggle Offline Mode Botão "Gradle off-line" no painel do Gradle..

IntelliJ IDEA 2019.2

O ambiente de desenvolvimento integrado principal do Android Studio foi atualizado com melhorias da versão 2019.2 do IntelliJ IDEA.

Para saber mais sobre as melhorias de outras versões do IntelliJ incluídas cumulativamente na versão 2019.2, consulte as seguintes páginas (em inglês):

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.6. Em particular, gostaríamos de agradecer às seguintes pessoas que relataram bugs:

  • Albert Lo
  • Alexey Rott
  • Andrea Leganza
  • Benedikt Kolb
  • César Puerta
  • Curtis Kroetsch
  • Damian Wieczorek
  • Dan Lew
  • David Burström
  • Deepanshu
  • Egor Andreevici
  • Eli Graber
  • Emin Kokalari
  • Evan Tatarka
  • Frantisek Nagy
  • Greg Moens
  • Hannes Achleitner
  • Hans Petter Eide
  • Henning Bunk
  • Hugo Visser
  • Igor Escodro
  • Iñaki Villar
  • Javentira Lienata
  • Joe Rogers
  • Kristoffer Danielsson
  • Liran Barsisa
  • Louis CAD
  • Lóránt Pintér
  • Łukasz Wasylkowski
  • Luke Fielke
  • Malvin Sutanto
  • Masatoshi Kubode
  • Mathew Winters
  • Michael Bailey
  • Michał Górny
  • Mihai Neacsu
  • Mike Scamell
  • Monte Creasor
  • Nelson Osacky
  • Nelson Osacky
  • Nick Firmani
  • Nicklas Ansman Giertz
  • Niclas Kron
  • Nicolás Lichtmaier
  • Niek Haarman
  • Niels van Hove
  • Niklas Baudy
  • Renato Gonçalves
  • Roar Grønmo
  • Ruslan Baratov
  • Sinan Kozak
  • Slawomir Czerwinski
  • Stefan Wolf
  • Stephen D'Amico
  • Tao Wang
  • Tomas Chladek
  • Tomáš Procházka
  • Tony Robalik
  • Torbjørn Sørli
  • Warren He
  • Yenchi Lin
  • Zac Sweers
  • 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:

    3.4 (abril de 2019)

    O Android Studio 3.4 é uma versão principal que inclui uma variedade de novos recursos e melhorias.

    3.4.2 (julho 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.4.1 (maio 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).

    Problemas conhecidos da versão 3.4.0

    • A criação de perfil é desativada ao implantar o app em um dispositivo com o Android Q Beta.

    • Ao usar a biblioteca Data Binding, LiveDataListener.onChanged() pode falhar com um NPE. Uma correção para esse problema vai ser incluída no Android Studio 3.4.1 e já está disponível na versão de pré-lançamento mais recente do Android Studio 3.5. Consulte o problema 122066788.

    IntelliJ IDEA 2018.3.4

    O ambiente de desenvolvimento integrado principal do Android Studio foi atualizado com melhorias da versão 2018.3.4 do IntelliJ IDEA (em inglês).

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

    Para saber mais sobre as novidades do Plug-in do Android para Gradle 3.4.0, consulte as notas da versão.

    Nova caixa de diálogo "Project Structure"

    A nova caixa de diálogo Project Structure (PSD, na sigla em inglês) facilita a atualização de dependências e a configuração de diferentes aspectos do projeto, como módulos, variantes de build, configurações de assinatura e variáveis de build.

    Para abrir a PSD, selecione File > Project Structure na barra de menus. Você também pode abrir a PSD pressionando Ctrl+Shift+Alt+S no Windows e no Linux ou Command+; (ponto-e-vírgula) no macOS. Você pode encontrar descrições de algumas das seções novas e atualizadas da PSD abaixo.

    Variáveis

    A nova seção de variáveis da PSD permite criar e gerenciar variáveis de build, como as que mantêm números de versão para dependências consistentes em todo o projeto.

    • Veja e edite rapidamente as variáveis de build que já existem nos scripts de build do Gradle do projeto.
    • Adicione novas variáveis de build em um nível do projeto ou do módulo diretamente da PSD.

    Observação: se os arquivos de configuração do build já existentes atribuírem valores usando scripts complexos do Groovy, talvez não seja possível editar esses valores pela PSD. Além disso, não é possível editar arquivos de build escritos em Kotlin usando a PSD.

    Módulos

    Configure as propriedades que são aplicadas a todas as variantes de build em um módulo existente ou adicione novos módulos ao projeto na seção Modules. Por exemplo, é aqui que você pode configurar propriedades defaultConfig ou gerenciar configurações de assinatura.

    Dependências

    Inspecione e visualize cada dependência no gráfico do seu projeto, conforme resolvido pelo Gradle durante a sincronização do projeto, seguindo estas etapas:

    1. No painel esquerdo da PSD, selecione Dependencies.
    2. No painel Modules, selecione um módulo para inspecionar as dependências resolvidas.
    3. No lado direito da PSD, abra o painel Resolved Dependencies, mostrado abaixo.

    Você também pode pesquisar e adicionar dependências ao seu projeto rapidamente. Para isso, basta selecionar um módulo da seção Dependencies da PSD, clicar no botão (+) na seção Declared Dependencies e selecionar o tipo de dependência que você quer adicionar.

    Dependendo do tipo de dependência selecionada, você verá uma caixa de diálogo parecida com a mostrada abaixo, que ajuda a adicionar a dependência ao módulo.

    Variantes de build

    Nesta seção da PSD, você pode criar e configurar variantes de build e variações de produto para cada módulo do projeto. Você pode adicionar marcadores de posição do manifesto e arquivos ProGuard, bem como atribuir chaves de assinatura e muito mais.

    Sugestões

    Consulte as atualizações sugeridas para dependências do projeto e variáveis de build na seção Suggestions, como mostrado abaixo.

    Novo Resource Manager

    O Resource Manager é uma nova janela de ferramenta para importar, criar, gerenciar e usar recursos no app. Você pode abrir a janela da ferramenta selecionando View > Tool Windows > Resource Manager na barra de menus. O Resource Manager permite que você faça o seguinte:

    • Visualizar recursos: você pode ver drawables, cores e layouts para encontrar rapidamente os recursos necessários.
    • Importação em massa: você pode importar vários recursos drawable de uma só vez arrastando-os e soltando-os na janela de ferramentas Resource Manager ou usando o assistente Import drawables. Para acessar o assistente, selecione o botão (+) no canto superior esquerdo da janela de ferramentas e Import Drawables no menu suspenso.
    • Converter SVGs em objetos VectorDrawableVectorDrawable: você pode usar o assistente Import Drawables para converter imagens SVG em objetos VectorDrawable.
    • Arrastar e soltar recursos: na janela da ferramenta Resource Manager, você pode arrastar e soltar os drawables nas visualizações de design e XML do Layout Editor.
    • Visualizar versões alternativas: agora você pode ver versões alternativas dos seus recursos clicando duas vezes em um recurso na janela Tool. Essa visualização mostra as diferentes versões que você criou e os qualificadores que foram incluídos.
    • Visualizações em bloco e em lista: é possível mudar a visualização dentro da janela de ferramentas para ver seus recursos organizados de maneiras diferentes.

    Para saber mais, leia o guia sobre como Gerenciar recursos do app.

    Conferir IDs de build ao criar perfis e depurar APKs

    Quando você fornece arquivos de símbolos de depuração para as bibliotecas compartilhadas .so dentro do APK, o Android Studio verifica se o ID do build (em inglês) dos arquivos de símbolos fornecidos corresponde ao ID do build das bibliotecas .so dentro do APK.

    Se você criar as bibliotecas nativas do APK usando um ID de build, o Android Studio vai conferir se o ID nos arquivos de símbolo corresponde ao ID das bibliotecas nativas e rejeitar os arquivos de símbolo se não houver correspondência. Se você não usar um ID do build, o fornecimento de arquivos de símbolo incorretos poderá causar problemas na depuração.

    R8 ativado por padrão

    O R8 integra a simplificação, redução, ofuscação, otimização e dexação em uma única etapa, o que resulta em melhorias significativas no desempenho do build. O R8 foi apresentado no Plug-in do Android para Gradle 3.3.0 e agora está ativado por padrão nos projetos de biblioteca Android e em apps que usam o plug-in 3.4.0 ou mais recente.

    A imagem abaixo fornece uma visão geral de alto nível do processo de compilação antes do R8.

    Antes do R8, o ProGuard era uma etapa de build diferente da dexação e da simplificação de
            leitura.

    Agora, com o R8, a simplificação, a redução, a ofuscação, a otimização e a dexação (D8) são todas concluídas em uma etapa, conforme ilustrado abaixo.

    Com o R8, a simplificação, a redução, a ofuscação, a otimização e a dexação
            são realizadas em uma única etapa de build.

    Não se esqueça de que o R8 foi projetado para funcionar com suas regras do ProGuard. Você provavelmente não vai precisar fazer nada para se beneficiar do R8. No entanto, como essa é uma tecnologia diferente do ProGuard e é projetada especificamente para projetos Android, a redução e a otimização podem resultar na remoção de códigos que o ProGuard talvez não removesse. Nessa situação improvável, talvez seja necessário adicionar outras regras para manter esse código no resultado de build.

    Se você tiver problemas ao usar o R8, leia as Perguntas frequentes de compatibilidade do R8 para conferir se há uma solução. Se nenhuma solução tiver sido documentada, informe um bug. Você pode desativar o R8 adicionando uma das seguintes linhas ao arquivo gradle.properties do projeto:

        # Disables R8 for Android Library modules only.
        android.enableR8.libraries = false
        # Disables R8 for all modules.
        android.enableR8 = false
        
      

    Observação: para determinado tipo de build, se você definir useProguard como false no arquivo build.gradle do módulo do app, o Plug-in do Android para Gradle vai usar o R8 para reduzir o código desse tipo de build, independente de você ter ou não desativado o R8 no arquivo gradle.properties.

    Agora todos os tipos de argumentos com suporte ao componente Navigation também têm suporte ao Navigation Editor. Para saber mais sobre tipos com suporte, consulte Transmitir dados entre destinos.

    Melhorias no Layout Editor {:#layout-editor}

    O painel Attributes no Layout Editor foi simplificado em uma única página com seções que você pode expandir para revelar os atributos que podem ser configurados. O painel Attributes também inclui as atualizações a seguir:

    • Uma nova seção Declared Attributes lista os atributos especificados pelo arquivo de layout e permite adicionar novos atributos rapidamente.
    • Agora, o painel Attributes também apresenta indicadores ao lado de cada atributo. Esses indicadores serão mostrados preenchidos quando o valor do atributo for uma referência de recurso, e vazios, quando não for.
    • Atributos com erros ou avisos agora estão destacados. Os destaques em vermelho indicam erros, por exemplo, uso de valores de layout inválidos. E os destaques em laranja indicam avisos, por exemplo, uso de valores codificados.

    Nova ação de intent para importar dependências rapidamente

    Se você começar a usar determinadas classes do Jetpack e do Firebase no código, uma nova ação da intent vai sugerir adicionar a dependência da biblioteca do Gradle ao projeto, caso ainda não tenha feito isso. Por exemplo, se você fizer referência à classe WorkManager sem importar primeiro a dependência android.arch.work:work-runtime necessária, uma ação da intent vai permitir que você faça isso facilmente com um clique, conforme mostrado abaixo.

    Em particular, como o Jetpack reempacotou a biblioteca de suporte em pacotes distintos que são mais fáceis de gerenciar e atualizar, essa ação da intent ajuda a adicionar rapidamente apenas as dependências necessárias aos componentes do Jetpack que você quer usar.

    3.3 (janeiro de 2019)

    O Android Studio 3.3 é uma versão principal que inclui uma variedade de novos recursos e melhorias.

    3.3.2 (março 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.3.1 (fevereiro de 2019)

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

    IntelliJ IDEA 2018.2.2

    O ambiente de desenvolvimento integrado principal do Android Studio foi com melhorias da versão 2018.2.2 do IntelliJ IDEA.

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

    Para saber mais sobre as novidades do Plug-in do Android para Gradle, consulte as notas da versão.

    O Navigation Editor permite visualizar e criar rapidamente a navegação no seu app usando o componente de arquitetura Navigation.

    Para saber mais, consulte Implementar a navegação com o componente de arquitetura Navigation.

    Excluir diretórios não usados do Android Studio

    Quando você executa uma versão principal do Android Studio pela primeira vez, ela busca diretórios que contêm caches, configurações, índices e registros de versões do Android Studio para os quais uma instalação correspondente não é encontrada. A caixa de diálogo Delete Unused Android Studio Directories mostra os locais, tamanhos e horários da última modificação desses diretórios não usados e fornece uma opção para os excluir.

    Estes são os diretórios que o Android Studio pode excluir:

    • Linux: ~/.AndroidStudio[Preview]X.Y
    • Mac: ~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y
    • Windows: %USER%.AndroidStudio[Preview]X.Y

    Melhorias no Lint

    O lint, quando invocado pelo Gradle, é significativamente mais rápido. Projetos maiores podem esperar que o lint seja executado até quatro vezes mais rápido.

    Assistente Create New Project

    O assistente Create New Project está com uma nova aparência e contém atualizações que agilizam a criação de novos projetos do Android Studio.

    Para saber mais, consulte Criar um projeto.

    Atualizações dos criadores de perfil

    O Android Studio 3.3 inclui atualizações para cada criador de perfil.

    Melhor desempenho

    Com base no feedback do usuário, o desempenho da renderização ao usar os criadores de perfil foi bastante aprimorado. Continue enviando feedback, principalmente se os problemas de desempenho persistirem.

    Opções de rastreamento de alocação de memória do criador de perfil

    Para melhorar o desempenho do app durante a criação de perfil, o Memory Profiler analisa as alocações de memória periodicamente por padrão. Se quiser, você pode mudar esse comportamento usando o menu suspenso Allocation Tracking durante o teste de dispositivos que executam o Android 8.0 (API de nível 26) ou mais recente.

    Usando o menu suspenso Allocation Tracking, você pode escolher um dos seguintes modos:

    • Full: captura todas as alocações de memória de objeto. Se você tiver um app que aloque muitos objetos, poderá ter problemas significativos de desempenho durante a criação de perfil.

    • Sampled: captura uma amostra periódica de alocações de memória de objeto. Esse é o comportamento padrão e tem menos impacto no desempenho do app durante a criação de perfil. É possível que haja alguns problemas de desempenho em apps que alocam uma grande quantidade de objetos em um curto período.

    • Off: desativa a alocação de memória. Se ainda não estiver selecionado, esse modo será ativado automaticamente durante uma gravação da CPU e, em seguida, voltará à configuração anterior quando a gravação for concluída. Você pode alterar esse comportamento na caixa de diálogo de configuração de gravação da CPU.

      O rastreamento afeta objetos Java e referências JNI.

    Inspecionar dados de renderização de frames

    Agora, no CPU Profiler, você pode inspecionar quanto tempo leva para seu app Java renderizar cada frame na linha de execução de interface principal e no RenderThread. Esses dados podem ser úteis ao investigar afunilamentos que causam instabilidade de interface e baixas frame rates. Por exemplo, cada frame que demora mais que os 16 ms necessários para manter um frame rate eficiente é mostrado em vermelho.

    Para ver dados de renderização de frame, grave um trace usando uma configuração que permita rastrear chamadas do sistema com a opção Trace System Calls. Depois de gravar o rastro, procure informações sobre cada frame na linha do tempo da gravação na seção FRAMES, conforme mostrado abaixo.

    Para saber mais sobre como investigar e corrigir problemas de frame rate, leia Renderização lenta.

    Fragmentos na linha do tempo de eventos

    A linha do tempo de eventos agora mostra quando os fragmentos são anexados e desconectados. Além disso, quando você passa o mouse sobre um fragmento, uma dica mostra o status dele.

    Ver texto formatado para payloads de conexão no Network Profiler

    Anteriormente, o Network Profiler mostrava apenas texto bruto de payloads de conexão. O Android Studio 3.3 agora formata alguns tipos de texto por padrão, incluindo JSON, XML e HTML. Nas guias Response e Request, clique no link View Parsed para mostrar o texto formatado e clique no link View Source para o texto bruto.

    Para saber mais, consulte Inspecionar tráfego de rede com o Network Profiler.

    Download automático de componentes do SDK

    Quando o projeto precisa de um componente do SDK das plataformas SDK, NDK ou CMake, o Gradle agora tenta fazer o download automático dos pacotes necessários, desde que você tenha aceitado anteriormente todos os contratos de licença relacionados usando o SDK Manager.

    Para saber mais, consulte Download automático de pacotes ausentes com o Gradle.

    Suporte a Clang-Tidy

    O Android Studio agora oferece suporte a análise de código estático usando o Clang-Tidy para projetos que incluem código nativo. Para ativar o suporte ao Clang-Tidy, atualize seu NDK para r18 ou mais recente.

    Para ativar ou reativar as inspeções, abra a caixa de diálogo Settings ou Preferences e navegue até Editor > Inspections > C/C++ > General > Clang-Tidy. Quando você selecionar essa inspeção na caixa de diálogo Settings ou Preferences, a lista de verificações Clang-Tidy ativadas e desativadas também será mostrada na seção Option do último painel à direita. Para ativar outras verificações (em inglês), adicione-as à lista e clique em Apply.

    Para configurar o Clang-Tidy com outras opções (em inglês), clique em Configure Clang-Tidy Checks Options e inclua-as na caixa de diálogo que é aberta.

    Remoção de opções para personalização de C++

    As seguintes opções foram removidas da caixa de diálogo Personalizar suporte para C++:

    • Exceptions Support (-fexceptions)
    • Suporte a informações do tipo de momento de execução (-ftti)

    Os respectivos comportamentos são ativados para todos os projetos criados pelo Android Studio.

    Versão do CMake 3.10.2

    O CMake versão 3.10.2 agora está incluído no SDK Manager. Observe que o Gradle ainda usa a versão 3.6.0 por padrão.

    Para especificar uma versão do CMake para o Gradle usar, adicione o seguinte ao arquivo build.gradle do seu módulo:

        android {
            ...
            externalNativeBuild {
                cmake {
                    ...
                    version "3.10.2"
                }
            }
        }
        
      

    Para saber mais sobre como configurar o CMake em build.gradle, consulte Configurar o Gradle manualmente.

    Nova sintaxe “+” para especificar versões mínimas do CMake

    Ao especificar uma versão do CMake no arquivo build.gradle do seu módulo principal, você pode anexar um “+” para fazer a correspondência com o comportamento do comando cmake_minimum_required().

    Cuidado: usar a sintaxe "+" com outras dependências de build não é recomendado, já que as dependências dinâmicas podem causar atualizações inesperadas e dificuldades para resolver as diferenças de versão.

    Os Android App Bundles agora têm suporte a Apps instantâneos

    O Android Studio agora permite criar Android App Bundles com suporte total ao Google Play Instant. Em outras palavras, agora é possível criar e implantar experiências instantâneas e de instalação com um único projeto do Android Studio e as incluir em um único Android App Bundle.

    Se você estiver criando um novo projeto do Android Studio usando a caixa de diálogo Create New Project, marque a caixa ao lado de Configure your project > This project will support instant apps. O Android Studio cria um novo projeto de app como normalmente faria, mas inclui as seguintes propriedades no manifesto para adicionar suporte a apps instantâneos ao módulo base do app:

        <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
            <dist:module dist:instant="true" />
            ...
        </manifest>
        
      

    Em seguida, você pode criar um módulo de recursos instantâneos selecionando File > New > New Module na barra de menus e selecionando Instant Dynamic Feature Module na caixa de diálogo Create New Module. Não se esqueça de que a criação desse módulo também ativa o módulo base do app para experiências instantâneas.

    Para implantar o app em um dispositivo local como uma experiência instantânea, edite a configuração de execução e marque a caixa ao lado de General > Deploy as instant app.

    Sincronização de projeto de variante única

    Sincronizar seu projeto com a configuração do build é uma etapa importante para permitir que o Android Studio entenda como o projeto está estruturado. No entanto, esse processo pode levar muito tempo em projetos grandes. Caso seu projeto use diversas variantes de build, você pode otimizar as sincronizações dele limitando-as apenas à variante selecionada no momento.

    Você precisa usar o Android Studio 3.3 ou mais recente com o Plug-in do Android para Gradle 3.3.0 ou mais recente para ativar essa otimização. Quando você atende a esses requisitos, o ambiente de desenvolvimento integrado pede que você ative essa otimização ao sincronizar seu projeto. A otimização também é ativada por padrão em novos projetos.

    Para ativar essa otimização manualmente, clique em File > Settings > Experimental > Gradle (Android Studio > Preferences > Experimental > Gradle em um Mac) e marque a caixa de seleção Only sync the active variant.

    Observação: no momento, essa otimização oferece suporte a projetos que contêm apenas a linguagem de programação Java. Se, por exemplo, o ambiente de desenvolvimento integrado detecta código Kotlin ou C++ no seu projeto, ele não ativa a otimização automaticamente, e não é recomendado que você a ative de forma manual.

    Para saber mais, consulte Ativar sincronização de projeto de variante única.

    Fornecer feedback rápido

    Se você optou por compartilhar estatísticas de uso para melhorar o Android Studio, estes dois novos ícones vão ser mostrados na barra de status, na parte de baixo da janela do ambiente de desenvolvimento integrado:

    Basta clicar no ícone que melhor representa sua experiência atual com o ambiente de desenvolvimento integrado. Ao fazer isso, o ambiente de desenvolvimento integrado envia estatísticas de uso que permitem que a equipe do Android Studio entenda melhor sua opinião. Em alguns casos, por exemplo, ao indicar uma experiência negativa com o ambiente de desenvolvimento integrado, você tem a oportunidade de fornecer outro feedback.

    Se ainda não tiver feito isso, ative o compartilhamento das estatísticas de uso: abra a caixa de diálogo Settings (Preferences em um Mac), navegue até Appearance & Behavior > System Settings > Data Sharing e selecione Send usage statistics to Google.

    3.2 (setembro de 2018)

    O Android Studio 3.2 é uma versão principal que inclui uma variedade de novos recursos e melhorias.

    3.2.1 (outubro de 2018)

    Esta atualização do Android Studio 3.2 inclui as seguintes alterações e correções:

    • O pacote Kotlin agora é a versão 1.2.71.
    • Agora, a versão padrão das ferramentas de compilação é 28.0.3.
    • Na biblioteca Navigation, os tipos de argumento foram renomeados de type para argType.
    • Os seguintes bugs foram corrigidos:
      • Ao usar a biblioteca Data Binding, os nomes de variáveis com sublinhados estavam causando erros de compilação.
      • O CMake estava causando falha do IntelliSense e de outros recursos do CLion.
      • Adicionar um SliceProvider estava causando erros de compilação em projetos que não usavam bibliotecas androidx.*.
      • Alguns testes de unidade do Kotlin não estavam sendo executados.
      • Um problema com a vinculação de dados estava causando uma PsiInvalidElementAccessException.
      • Às vezes, elementos <merge> faziam com que o Layout Editor falhasse.

    Problemas conhecidos da versão 3.2.0

    Observação: esses problemas foram resolvidos no Android Studio 3.2.1

    • Recomendamos que você não use o Kotlin versão 1.2.70.

      O Kotlin versão 1.2.61 corrige um bug que pode travar o Android Studio, mas o Kotlin 1.2.70 não inclui essa correção.

      As versões 1.2.71 e mais recentes do Kotlin, no entanto, incluem a correção.

    • Embora você normalmente não precise especificar a versão das ferramentas de build, ao usar o plug-in do Android para Gradle 3.2.0 com renderscriptSupportModeEnabled definido como true, é necessário incluir o seguinte no arquivo build.gradle de cada módulo:

      android.buildToolsVersion "28.0.3"

    Assistente de novos recursos

    Um novo assistente informa você sobre as alterações mais recentes no Android Studio.

    O assistente será aberto quando você iniciar o Android Studio depois de uma nova instalação ou atualização, se for detectado que há novas informações a serem exibidas. Também é possível abrir o assistente em Help > What's new in Android Studio.

    Android Jetpack

    O Android Jetpack ajuda a acelerar o desenvolvimento em Android com componentes, ferramentas e diretrizes que eliminam tarefas repetitivas e permitem criar apps de alta qualidade compatíveis com testes com mais rapidez e facilidade. O Android Studio inclui as atualizações a seguir para o suporte ao Jetpack. Para saber mais, consulte a documentação do Jetpack.

    O novo Navigation Editor se integra aos componentes de navegação do Android Jetpack para fornecer uma visualização gráfica da criação da estrutura de navegação do seu app. O editor simplifica o design e a implementação da navegação entre destinos no app.

    O Navigation Editor é um recurso experimental no Android Studio 3.2. Para ativar o Navigation Editor, clique em File > Settings (Android Studio > Preferences no Mac), selecione a categoria Experimental no painel esquerdo, marque a caixa ao lado de Enable Navigation Editor e reinicie o Android Studio.

    Para saber mais, leia a documentação do Navigation Editor.

    Migração do AndroidX

    Como parte do Jetpack, estamos migrando as Bibliotecas de Suporte do Android para uma nova biblioteca de extensões do Android usando o namespace androidx. Para saber mais, consulte a Visão geral do AndroidX.

    O Android Studio 3.2 ajuda você nesse processo com um novo recurso de migração.

    Para migrar um projeto já existente para o AndroidX, selecione Refactor > Migrate to AndroidX. Se você tiver alguma dependência do Maven que não tenha sido migrada para o namespace do AndroidX, o sistema de build do Android Studio também vai converter essas dependências do projeto automaticamente.

    O Plug-in do Android para Gradle fornece as seguintes flags globais que você pode definir no arquivo gradle.properties:

    • android.useAndroidX: quando definida como true, essa flag indica que você quer começar a usar o AndroidX a partir de agora. Se a flag estiver ausente, o Android Studio vai se comportar como se a flag estivesse definida como false.
    • android.enableJetifier: quando definida como true, essa flag indica que você quer ter suporte de ferramenta (do plug-in Android Gradle) para converter bibliotecas de terceiros como se elas tivessem sido escritas para o AndroidX. Se a flag estiver ausente, o Android Studio vai se comportar como se a flag estivesse definida como false.

    As duas flags serão definidas como true quando você usar o comando Migrate to AndroidX.

    Se você quiser começar a usar bibliotecas AndroidX imediatamente e não precisar converter bibliotecas de terceiros, defina a flag android.useAndroidX como true e a flag android.enableJetifier como false.

    Android App Bundle

    O Android App Bundle é um novo formato para upload que inclui todos os recursos e o código compilado do seu app, mas repassa a geração e a assinatura do APK para a Google Play Store.

    O novo modelo de exibição de apps do Google Play usa seu pacote de apps para gerar e disponibilizar APKs otimizados para a configuração do dispositivo de cada usuário, de modo que eles façam o download apenas do código e dos recursos necessários à execução do app. Você não precisa mais criar, assinar e gerenciar vários APKs, e os usuários recebem downloads menores e mais otimizados.

    Além disso, é possível adicionar módulos de recursos dinâmicos ao projeto do app e os incluir no pacote de apps. Os usuários podem fazer o download dos recursos do app e os instalar on demand.

    Para criar um pacote, escolha Build > Build Bundle(s) / APK(s) > Build Bundle(s).

    Para mais informações, incluindo instruções sobre como criar e analisar um Android App Bundle, consulte Android App Bundle.

    Dados de amostra no Layout Editor

    Muitos layouts do Android têm dados de tempo de execução que podem dificultar a visualização da aparência de um layout durante o estágio de design do desenvolvimento do app. Agora é possível ter a visualização no Layout Editor facilmente preenchida com dados de amostra. Quando você adicionar uma visualização, um botão será exibido abaixo da visualização na janela "Design". Clique nesse botão para definir os atributos de visualização de tempo de design. É possível escolher entre uma variedade de modelos de dados de amostra e especificar o número de itens de amostra para preencher a visualização.

    Para tentar usar dados de amostra, adicione um RecyclerView a um novo layout, clique no botão de atributos de tempo de design abaixo da visualização e escolha uma seleção no carrossel de modelos de dados de amostra.

    Slices

    Os Slices oferecem uma nova maneira de incorporar partes da funcionalidade do app em outras superfícies da interface do usuário no Android. Por exemplo, com eles, é possível mostrar a funcionalidade e o conteúdo do app nas sugestões da Pesquisa Google.

    O Android Studio 3.2 tem um modelo integrado para expandir seu app com as novas APIs do Slice Provider, além de novas verificações de lint para garantir o cumprimento das práticas recomendadas ao criar Slices.

    Para começar, clique com o botão direito do mouse em uma pasta de projeto e escolha New > Other > Slice Provider.

    Para saber mais, incluindo como testar suas interações de Slices, leia o Guia explicativo com Slices.

    Kotlin 1.2.61

    O Android Studio 3.2 empacota o Kotlin 1.2.61, e o novo SDK do Android integra-se melhor com o Kotlin. Para ver mais informações, consulte o Blog de desenvolvedores Android (link em inglês).

    IntelliJ IDEA 2018.1.6

    O IDE principal do Android Studio foi atualizado com melhorias da versão 2018.1.6 do IntelliJ IDEA.

    Criadores de perfil do Android

    Faça um teste com os novos recursos do Android Profiler a seguir no Android Studio 3.2.

    Sessões

    Agora você pode salvar dados do Profiler na forma de sessões para revisitar e inspecionar mais tarde. Os dados da sua sessão serão mantidos até que você reinicie o ambiente de desenvolvimento integrado.

    Quando você grava um rastreamento de método ou captura um heap dump, o ambiente de desenvolvimento integrado adiciona esses dados (com a atividade de rede do seu app) como uma entrada separada à sessão atual, e você pode alternar facilmente entre as gravações para comparar dados.

    Rastreamento do sistema

    No CPU Profiler, selecione a nova configuração System Trace para inspecionar a atividade da linha de execução e da CPU do sistema do seu dispositivo. Essa configuração de rastreamento é criada no systrace e é útil para investigar problemas no sistema, como instabilidade de interface.

    Ao usar essa configuração de rastreamento, você pode marcar visualmente rotinas de código importantes na linha do tempo do Profiler pela instrumentação do seu código C/C++ com a API de rastreamento nativo ou seu código Java com a classe Trace.

    Inspecionar referências de JNI no Memory Profiler

    Se você implantar seu app em um dispositivo que executa o Android 8.0 (API de nível 26) ou versão mais recente, vai ser possível inspecionar as alocações de memória para o código JNI do app usando o Memory Profiler.

    Enquanto o app estiver em execução, selecione uma parte da linha do tempo que você quer inspecionar e escolha JNI heap no menu suspenso acima da lista de classes, conforme mostrado abaixo. Em seguida, será possível inspecionar objetos no heap normalmente e clicar duas vezes em objetos na guia Allocation Call Stack para ver onde as referências de JNI estão alocadas e liberadas no código.

    Importar, exportar e inspecionar arquivos de heap dump de memória

    Agora é possível importar, exportar e inspecionar arquivos de heap dump de memória .hprof criados com o Memory Profiler.

    Para importar o arquivo .hprof, clique em Start new profiler session no painel Sessions do criador de perfil e depois selecione Load from file. Você vai poder inspecionar os dados no Memory Profiler como faria em qualquer outro heap dump.

    Para salvar dados de heap dump para revisar mais tarde, use o botão Export Heap Dump à direita da entrada Heap Hump no painel Sessions. Na caixa de diálogo Export As que é mostrada em seguida, salve o arquivo com a extensão .hprof.

    Gravar a atividade da CPU durante a inicialização do app

    Agora é possível gravar a atividade da CPU durante a inicialização do seu app da seguinte maneira:

    1. Selecione Run > Edit Configurations no menu principal.
    2. Na guia Profiling da configuração desejada, marque a caixa ao lado de Start recording a method trace on startup.
    3. Selecione no menu suspenso uma configuração de registro da CPU que vai ser usada.
    4. Implante seu app em um dispositivo com Android 8.0 (nível de API 26) ou mais recente selecionando Run > Profile.
    Exportar rastros da CPU

    Depois de registrar a atividade da CPU com o CPU Profiler, você pode exportar os dados como um arquivo .trace para compartilhar com outras pessoas ou inspecionar mais tarde.

    Faça o seguinte para exportar rastros depois de gravar a atividade da CPU:

    1. Clique com o botão direito no registro que você quer exportar da linha do tempo da CPU.
    2. Selecione Export trace no menu suspenso.
    3. Navegue até o local onde você quer salvar o arquivo e clique em Save.
    Importar e inspecionar arquivos de rastreamento da CPU

    Agora você pode importar e inspecionar arquivos .trace criados com API Debug ou CPU Profiler. Atualmente, não é possível importar gravações do Rastreamento do sistema.

    Para importar o arquivo de rastreamento, clique em Start new profiler session no painel Sessions e selecione Load from file. Em seguida, você pode inspecionar os dados no CPU Profiler da mesma forma que faria normalmente, com as seguintes exceções:

    • A atividade da CPU não é representada ao longo da linha do tempo da CPU.
    • A linha do tempo de atividades de encadeamentos indica apenas onde os dados dos rastros estão disponíveis para cada encadeamento, e não os estados reais dos encadeamentos (como em execução, em espera ou em repouso).
    Gravar a atividade da CPU usando a API Debug

    Agora você pode iniciar e interromper a gravação da atividade da CPU no CPU Profiler instrumentando seu app com a API Debug. Depois de implantar o app em um dispositivo, o criador de perfil vai começar a gravar automaticamente a atividade da CPU quando o app chamar startMethodTracing(String tracePath) e interromper a gravação quando o app chamar stopMethodTracing(). Durante a gravação da atividade da CPU que acionou o uso dessa API, o CPU Profiler mostra a API Debug como a configuração de gravação de CPU selecionada.

    Energy Profiler

    O Energy Profiler mostra uma visualização do uso de energia estimado do seu app, bem como eventos do sistema que o afetam, como wakelocks, alarmes e jobs.

    O Energy Profiler é mostrado como uma nova linha na parte de baixo da janela Profiler durante a execução do app em um dispositivo conectado ou no Android Emulator que executa o Android 8.0 (API 26) ou versão mais recente.

    Clique na linha Energy para maximizar a visualização do Energy Profiler. Posicione o ponteiro do mouse sobre uma barra na linha do tempo para ver o consumo de energia por recursos de CPU, rede e localização (GPS), bem como em eventos relevantes do sistema.

    Eventos do sistema que afetam o uso de energia são indicados na linha do tempo System abaixo da linha do tempo Energy. Os detalhes dos eventos do sistema dentro do período especificado serão mostrados no painel de eventos, quando você selecionar um período na linha do tempo Energy.

    Use o painel de eventos para ver a pilha de chamadas e outros detalhes de um evento do sistema, como um wake lock. Para ir até o código responsável por um evento do sistema, clique duas vezes na entrada na pilha de chamadas.

    Verificação de Lint

    O Android Studio 3.2 inclui muitos recursos novos e melhorados para a verificação de lint.

    As novas verificações de lint ajudam você a encontrar e identificar problemas comuns de código, desde avisos sobre possíveis problemas de usabilidade até erros de alta prioridade relacionados a possíveis vulnerabilidades de segurança.

    Verificações de lint para interoperabilidade entre Java/Kotlin

    Para garantir a boa interação do código Java com o Kotlin, as novas verificações de lint aplicam as práticas recomendadas descritas no Guia de interoperabilidade do Kotlin. Exemplos dessas verificações incluem procurar a presença de anotações de valores nulos, usar palavras-chave difíceis de Kotlin e posicionar parâmetros de lambda por último.

    Para ativar essas verificações, clique em File > Settings (Android Studio > Preferences no Mac) para abrir a caixa de diálogo Settings, navegue até a seção Editor > Inspections > Android > Lint > Interoperability > Kotlin Interoperability e selecione as regras que você quer ativar.

    Para ativar essas verificações para builds de linha de comando, adicione o seguinte ao seu arquivo build.gradle:

            android {
                lintOptions {
                    check 'Interoperability'
                }
            }
            
          
    Verificação de lint para Slices

    As novas verificações de lint ajudam a garantir a criação correta de Slices. Por exemplo, as verificações de lint vão avisar você se uma ação primária não for atribuída a um Slice.

    Novo objetivo do Gradle

    Use a nova tarefa lintFix do Gradle para aplicar todas as correções seguras sugeridas pela verificação de lint diretamente no código-fonte. Um exemplo de verificação de lint que sugere a aplicação de uma correção segura é SyntheticAccessor.

    Atualizações de metadados

    Vários metadados, como a verificação de transmissão de serviço, foram atualizados para que verificações de lint funcionem com o Android 9 (API de nível 28).

    Aviso em caso de execução do lint em uma nova variante

    O Lint agora registra com qual variante e versão um valor de referência foi registrado, além de avisar caso seja ele executado em uma variante diferente daquela criada pelo valor de referência.

    Melhorias nas verificações de lint existentes

    O Android Studio 3.2 inclui muitas melhorias nas verificações de lint existentes. Por exemplo, as verificações de ciclo agora se aplicam a mais tipos de recursos, e o detector de tradução agora pode encontrar traduções ausentes no editor em tempo real.

    IDs de problemas mais detectáveis

    Os IDs de problemas agora são mostrados em mais lugares, inclusive na janela Inspection Results. Isso facilita a localização das informações necessárias para ativar ou desativar verificações específicas usando lintOptions em build.gradle.

    Para saber mais, consulte Configurar opções de lint com o Gradle.

    Vinculação de dados V2

    O Data Binding V2 agora está ativado por padrão e é compatível com a V1. Isso significa que, se você tiver dependências de biblioteca compiladas com a V1, poderá usá-las com projetos que usam o Data Binding V2. No entanto, projetos que usam a V1 não podem consumir dependências que foram compiladas com a V2.

    Simplificar a leitura com D8

    No Android Studio 3.1, integramos a etapa de simplificação de leitura à ferramenta D8 como um recurso experimental, reduzindo o tempo total de build. No Android Studio 3.2, a simplificação de leitura com D8 é ativada por padrão.

    Novo redutor de código

    O R8 é uma nova ferramenta para ofuscação e redução de código que substitui o ProGuard. Comece a usar a versão de pré-lançamento do R8 incluindo o seguinte no arquivo gradle.properties do seu projeto:

          android.enableR8 = true
        

    Mudança de ABIs padrão para vários APKs

    Ao criar vários APKs voltados, cada um, para uma ABI diferente, o plug-in não gera mais APKs para as seguintes ABIs por padrão: mips, mips64 e armeabi.

    Para criar APKs voltados para essas ABIs, use o NDK r16b ou anterior e especifique as ABIs no arquivo build.gradle, como mostrado abaixo:

        splits {
            abi {
                include 'armeabi', 'mips', 'mips64'
                ...
            }
        }
        
        splits {
            abi {
                include("armeabi", "mips", "mips64")
                ...
            }
        }
        

    Observação: essa mudança de comportamento também está incluída no Android Studio 3.1 RC1 e versões mais recentes.

    Melhoria de recursos do editor para arquivos de build do CMake

    Se você usa o CMake para adicionar código C e C++ ao projeto, o Android Studio agora inclui recursos aprimorados do editor para editar os scripts de build do CMake, como estes:

    • Destaque de sintaxe e preenchimento de código: o ambiente de desenvolvimento integrado destaca e sugere o preenchimento de código para comandos comuns do CMake. Além disso, você pode navegar até um arquivo clicando nele enquanto pressiona a tecla Ctrl (Command no Mac).
    • Reformatação de código: agora é possível usar a opção de reformatação de código do IntelliJ para aplicar estilos de código aos seus scripts de build do CMake.
    • Refatoração segura: as ferramentas integradas de refatoração do ambiente de desenvolvimento integrado agora também conferem se você está renomeando ou excluindo os arquivos usados como referência nos scripts de build do CMake.

    Ao usar a janela Project nas versões anteriores do Android Studio, era possível navegar em e inspecionar apenas os arquivos de cabeçalho pertencentes às bibliotecas criadas em um projeto local. Com esta versão, agora você também pode ver e inspecionar os arquivos de cabeçalho incluídos nas dependências externas da biblioteca C/C++ importadas para o projeto do app.

    Se você já inclui código e bibliotecas C/C++ no seu projeto, abra a janela Project no lado esquerdo do ambiente de desenvolvimento integrado, selecionando View > Tool Windows > Project no menu principal, e escolha Android no menu suspenso. No diretório cpp, todos os cabeçalhos que estão dentro do escopo do seu projeto de app são organizados no nó include de cada uma das dependências da biblioteca C/C++ local, conforme mostrado abaixo.

    Multidexação nativa ativada por padrão

    As versões anteriores do Android Studio ativavam a multidexação nativa ao implantar a versão de depuração de um app em um dispositivo com API do Android nível 21 ou mais recente. Agora, se você estiver implantando em um dispositivo ou criando um APK para lançamento, o plug-in do Android para Gradle ativará a multidexação nativa para todos os módulos com definição minSdkVersion=21 ou maior.

    AAPT2 migrado para o repositório Maven do Google

    A partir do Android Studio 3.2, a origem do AAPT2 (Android Asset Packaging Tool 2) é o repositório Maven do Google.

    Para usar o AAPT2, verifique se você tem uma dependência google() no seu arquivo build.gradle, conforme mostrado aqui:

        buildscript {
            repositories {
                google() // here
                jcenter()
            }
            dependencies {
                classpath 'com.android.tools.build:gradle:3.2.0'
            }
        }
        allprojects {
            repositories {
                google() // and here
                jcenter()
            }
        }
        
        buildscript {
            repositories {
                google() // here
                jcenter()
            }
            dependencies {
                classpath("com.android.tools.build:gradle:3.2.0")
            }
        }
        allprojects {
            repositories {
                google() // and here
                jcenter()
            }
        }
        

    A nova versão do AAPT2 corrige muitos problemas, inclusive melhora o processamento de caracteres não ASCII no Windows.

    Remoção de configuração on demand

    A preferência Configure on demand foi removida do Android Studio.

    O Android Studio não transmite mais o argumento --configure-on-demand para o Gradle.

    ADB Connection Assistant

    O novo ADB Connection Assistant fornece instruções detalhadas para configurar e usar um dispositivo pela conexão do Android Debug Bridge (adb).

    Para iniciar o assistente, escolha Tools > Connection Assistant.

    O ADB Connection Assistant oferece instruções, controles em contexto e uma lista de dispositivos conectados em uma série de páginas no painel Assistant.

    Melhorias do Emulator

    Agora é possível salvar e carregar snapshots de um Dispositivo virtual Android (AVD, na sigla em inglês) a qualquer momento no Android Emulator, o que facilita e agiliza a tarefa de retornar um dispositivo emulado a um estado conhecido para fins de teste. Ao editar um dispositivo virtual com o AVD Manager, é possível especificar qual snapshot do dispositivo será carregado quando ele for iniciado.

    Os controles para salvar, carregar e gerenciar snapshots do AVD agora estão na guia Snapshots na janela Extended controls do emulador.

    Para mais detalhes, consulte Snapshots.

    Para saber mais sobre o que há de novo e o que foi mudado no Emulator, consulte as notas da versão do Emulator.

    3.1 (março de 2018)

    O Android Studio 3.1.0 é uma versão principal que inclui uma variedade de novos recursos e melhorias.

    3.1.4 (agosto de 2018)

    Esta atualização para o Android Studio 3.1 inclui as seguintes alterações e correções:

    • O pacote Kotlin agora é a versão 1.2.50.
    • Novos projetos são criados com kotlin-stdlib-jdk* artifacts em vez de artefatos kotlin-stdlib-jre*, que foram descontinuados.
    • A análise R8 das regras do ProGuard foi aprimorada.
    • Os seguintes bugs foram corrigidos:
      • Falha na tentativa de executar a classe Kotlin Main com um erro: "Error: Could not find or load main class...".
      • O R8 entrava em um loop infinito ao executar determinadas otimizações.
      • O uso do comando Rerun failed tests na janela Run às vezes retornava incorretamente a mensagem "No tests were found".
      • O D8 não processava corretamente instâncias de invoke-virtual, o que causava uma falha com um VerifyError: invoke-super/virtual can't be used on private method.
      • O compilador Data Binding dependia de uma versão antiga de com.android.tools:annotations. O compilador agora usa anotações de ferramentas do projeto base quando disponíveis.
      • O Android Studio travava durante transições de fragmento ao usar criadores de perfil.
      • O depurador travava ao depurar um layout com uma caixa de texto.
      • O D8 falhava ao ler alguns arquivos ZIP com caracteres especiais.

    3.1.3 (junho de 2018)

    Esta atualização para o Android Studio 3.1 inclui correções para os seguintes bugs:

    • Os vazamentos de memória faziam com que o Android Studio se tornasse lento e não respondesse depois de o Layout Editor ter sido usado. Esta atualização inclui correções para a maioria desses problemas. Pretendemos lançar outra atualização em breve para corrigir outros vazamentos de memória.
    • Alguns apps criados com o D8 travavam em alguns tablets da Verizon Ellipsis.
    • Falha na instalação de apps criados com o D8 com um erro INSTALL_FAILED_DEXOPT em dispositivos com Android 5.0 ou 5.1 (API de nível 21 ou 22).
    • Alguns apps que usavam a biblioteca OkHttp e eram criados com o D8 travavam em dispositivos com o Android 4.4 (API de nível 19).
    • Às vezes, o Android Studio falhava ao iniciar com uma ProcessCanceledException durante a inicialização da classe para com.intellij.psi.jsp.JspElementType.

    3.1.2 (abril de 2018)

    Esta atualização para o Android Studio 3.1 inclui correções para os seguintes bugs:

    • Em alguns casos, o Android Studio ficava inativo indefinidamente durante a saída.
    • Builds configurados com conjuntos de origem falhavam com a seguinte mensagem quando o Instant Run era ativado:

      "The SourceSet name is not recognized by the Android Gradle Plugin."

    • Quando o Instant Run era ativado, os builds de novos projetos do Kotlin falhavam quando acionadas pelo comando Run.
    • Durante a edição do arquivo build.gradle, às vezes havia um atraso perceptível entre a digitação de um caractere e a exibição dele na tela.
    • Ocorriam falhas de compilação durante a dexação em alguns projetos com um grande número de módulos ou dependências externas, com a seguinte mensagem de erro:

      "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

    • A computação da lista DEX principal do D8 não incluía algumas invocações reflexivas.

    Esta atualização também inclui alterações que tornam as verificações de lint em execução do Gradle muito mais rápidas em alguns cenários.

    3.1.1 (abril de 2018)

    Esta atualização para o Android Studio 3.1 inclui correções para os seguintes bugs:

    • Em alguns casos, quando um projeto criado no Android Studio 3.0 era aberto pela primeira vez no Android Studio 3.1, a tarefa Gradle-aware Make era removida da área Before launch em Run/Debug Configurations. Como resultado, os projetos não eram criados quando o botão Run ou Debug era clicado, o que, por sua vez, causava falhas, como a implantação de APKs incorretos e travamentos ao usar o Instant Run.

      Para resolver esse problema, o Android Studio 3.1.1 adiciona a tarefa Gradle-aware Make à configuração de execução dos projetos que estão sem essa entrada. Essa modificação ocorre após a primeira sincronização do Gradle quando o projeto é carregado.

    • O depurador travava ao depurar um layout com uma caixa de texto se a criação de perfil avançada estivesse ativada.
    • O Android Studio congelava depois do clique em Build Variants.
    • Os arquivos AAR (arquivos Android) eram extraídos duas vezes. Uma vez durante o processo de sincronização do Gradle e uma vez durante o processo de compilação do Gradle.
    • Faltavam elementos em alguns drawables vetoriais importados de arquivos SVG.
    • O aviso sobre a descontinuação da configuração de dependência compile foi atualizado com uma orientação melhor sobre as configurações de implementation e api. Para ver detalhes sobre como migrar do uso da configuração de compile, consulte a documentação das novas configurações de dependência.

    Programação/IDE

    IntelliJ 2017.3.3

    O ambiente de desenvolvimento integrado principal do Android Studio foi atualizado com melhorias da versão 2017.3.3 do IntelliJ IDEA. As melhorias incluem uma análise de fluxo de controle aprimorada para coleções e strings, inferência aprimorada de valores nulos, novas correções rápidas e muito mais.

    Para detalhes, consulte as notas da versão do JetBrains para IntelliJ IDEA versões 2017.2 e 2017.3, bem como as notas da versão do JetBrains para atualizações de correções de bugs.

    Melhorias na edição do SQL com Room

    Ao usar a biblioteca de banco de dados do Room, você pode aproveitar várias melhorias para a edição do SQL:

    • O preenchimento de código em uma Query compreende tabelas SQL (entidades), colunas, parâmetros de consulta, aliases, mesclas, subconsultas e cláusulas WITH.
    • O destaque da sintaxe SQL agora funciona.
    • Você pode clicar com o botão direito do mouse em um nome de tabela no SQL e renomeá-lo, o que também reprograma o código Java ou Kotlin correspondente (incluindo, por exemplo, o tipo de retorno da consulta). A renomeação também funciona em outra direção. Portanto, renomear uma classe ou um campo Java reprograma o código SQL correspondente.
    • Os usos de SQL são mostrados ao usar Find usages. Clique com o botão direito do mouse e selecione Find usages no menu de contexto.
    • Para navegar até a declaração de uma entidade SQL no código Java ou Kotlin, você pode manter a tecla Ctrl (Command no Mac) pressionada enquanto clica na entidade.

    Para saber mais sobre como usar o SQL com Room, consulte Salvar dados em um banco de dados local usando Room.

    Atualizações na vinculação de dados

    Esta atualização inclui várias melhorias na vinculação de dados:

    • Agora você pode usar um objeto LiveData como um campo observável em expressões de vinculação de dados. A classe ViewDataBinding agora inclui um novo método setLifecycle() que é usado para observar objetos LiveData.

    • A classe ObservableField agora pode aceitar outros objetos Observable no respectivo construtor.

    • Você pode visualizar um novo compilador incremental para suas classes de vinculação de dados. Para saber mais detalhes sobre esse novo compilador e instruções para ativá-lo, consulte Data Binding Compiler V2.

      Veja os benefícios do novo compilador:

      • As classes ViewBinding são geradas pelo plug-in do Android para Gradle antes do compilador Java.
      • As bibliotecas mantêm as respectivas classes de vinculação geradas quando o app é compilado, em vez de serem geradas novamente a cada vez. Isso pode melhorar muito o desempenho de projetos com vários módulos.

    Compilador e Gradle

    D8 é o compilador DEX padrão

    O compilador D8 agora é usado por padrão para gerar bytecode DEX.

    Esse novo compilador DEX traz vários benefícios, incluindo os seguintes:

    • Dexação mais rápida
    • Menor uso de memória
    • A geração de código foi melhorada (melhor alocação de registro, tabelas de string mais inteligentes)
    • Melhor experiência de depuração ao percorrer o código

    Você não precisa fazer nenhuma mudança no código ou no fluxo de trabalho de desenvolvimento para ter esses benefícios, a menos que tenha desativado o compilador D8 de forma manual anteriormente.

    Se você definir android.enableD8 como false em gradle.properties, exclua essa flag ou defina-a como true:

            android.enableD8=true
          

    Para saber detalhes, consulte Novo compilador DEX.

    Simplificação incremental

    Para projetos que usam recursos de linguagem Java 8, a simplificação incremental é ativada por padrão, o que pode melhorar os tempos de build.

    A simplificação converte a sintaxe leve em uma forma que o compilador pode processar com mais eficiência.

    Você pode desativá-la especificando o seguinte no arquivo gradle.properties do seu projeto:

            android.enableIncrementalDesugaring=false
          
    Janela de saída simplificada

    O Gradle Console foi substituído pela janela Build, que tem as guias Sync e Build.

    Para saber detalhes sobre como usar a nova janela simplificada Build, consulte Monitorar o processo de build.

    Atualizações em lote e simultaneidade de indexação

    A sincronização com Gradle e os processos de indexação de ambiente de desenvolvimento integrado agora são muito mais eficientes, reduzindo o tempo perdido em muitas operações de indexação redundantes.

    C++ e LLDB

    Fizemos muitas melhorias na qualidade e no desempenho nas fases de programação, sincronização, compilação e depuração do desenvolvimento em C++. As melhorias incluem o seguinte:

    • Se você trabalha com projetos C++ grandes, vai notar uma melhoria significativa na redução do tempo gasto na criação de símbolos. O tempo de sincronização também é muito reduzido em projetos grandes.

    • A performance ao criar e sincronizar com o CMake foi melhorada pela reutilização mais agressiva dos resultados armazenados em cache.

    • A adição de formatadores ("impressoras bonitas") para mais estruturas de dados em C++ torna a saída do LLDB mais fácil de ler.

    • O LLDB agora funciona apenas com o Android 4.1 (API de nível 16) e versões mais recentes.

    Observação: a depuração nativa com o Android Studio 3.0 ou mais recente não funciona no Windows de 32 bits. Se você estiver usando o Windows de 32 bits e precisar depurar código nativo, use o Android Studio 2.3.

    Kotlin

    Atualização do Kotlin para a versão 1.2.30

    O Android Studio 3.1 inclui a versão 1.2.30 do Kotlin.

    Código Kotlin agora analisado com verificação de lint da linha de comando

    A execução de lint da linha de comando agora analisa suas classes do Kotlin.

    Para cada projeto em que você quiser executar o lint, o repositório Maven do Google vai precisar ser incluído no arquivo build.gradle de nível superior. O repositório Maven já está incluído nos projetos criados no Android Studio 3.0 e versões mais recentes.

    Ferramentas de desempenho

    Exemplos de processos C++ nativos com o CPU Profiler

    O CPU Profiler agora inclui uma configuração padrão para gravar rastros de amostras das linhas de execução nativas do seu app. Para usar essa configuração, implante o app em um dispositivo com Android 8.0 (API de nível 26) ou mais recente e selecione Sampled (Native) no menu suspenso de configurações de gravação do CPU Profiler. Depois disso, grave e inspecione um rastro como faria normalmente.

    Você pode mudar as configurações padrão, como o intervalo de amostragem, criando uma configuração de gravação.

    Para voltar a rastrear as linhas de execução Java, selecione uma configuração Sampled (Java) ou Instrumented (Java).

    Filtrar rastros de CPU, resultados de alocação de memória e heap dumps

    O CPU Profiler e o Memory Profiler incluem um recurso de pesquisa que permite filtrar os resultados da gravação de um rastreamento de método, alocações de memória ou heap dump.

    Para pesquisar, clique em Filter no canto superior direito do painel, digite sua consulta e pressione Enter.

    Dica: você também pode abrir o campo de pesquisa pressionando Ctrl + F (Command + F no Mac).

    Na guia Flame Chart do CPU Profiler, as pilhas de chamadas que incluem métodos relacionados à sua consulta de pesquisa são destacadas e movidas para o lado esquerdo do gráfico.

    Para saber mais sobre a filtragem por método, classe ou nome do pacote, consulte Gravar e inspecionar rastreamento de método.

    Guia "Request" no Network Profiler

    O Network Profiler agora inclui uma guia Request que fornece detalhes sobre pedidos de rede durante a linha do tempo selecionada. Nas versões anteriores, o Network Profiler fornecia apenas informações sobre as respostas da rede.

    Visualização da linha de execução no Network Profiler

    Depois de selecionar uma parte da linha do tempo no Network Profiler, você pode selecionar uma das seguintes guias para saber mais sobre a atividade da rede durante esse período:

    • Connection View: oferece as mesmas informações das versões anteriores do Android Studio. Lista os arquivos enviados ou recebidos durante o período selecionado da linha do tempo em todas as linhas de execução da CPU do app. Para cada pedido, você pode inspecionar o tamanho, o tipo, o status e a duração da transmissão.
    • Thread View: mostra a atividade de rede de cada uma das linhas de execução da CPU do app. Essa visualização permite inspecionar quais linhas de execução do app são responsáveis por cada pedido de rede.

    Layout Inspector

    O Layout Inspector ganhou novos recursos, incluindo algumas funcionalidades fornecidas anteriormente pelas ferramentas obsoletas Hierarchy Viewer e Pixel Perfect:

    • Botões de zoom e atalhos de teclado para navegar e inspecionar layouts
    • Sobreposição de grade de referência
    • Capacidade de carregar uma imagem de referência e usá-la como uma sobreposição (útil para comparar seu layout com um modelo de interface do usuário)
    • A opção Render subtree preview para isolar uma visualização em um layout complexo

    Layout Editor

    A Palette no Layout Editor recebeu muitas melhorias:

    • Reorganização de categorias para visualizações e layouts
    • Nova categoria Common para visualizações e layouts, em que você pode usar um comando Favorite para adições.
    • A pesquisa de visualizações e layouts foi melhorada.
    • Novos comandos para abrir a documentação de um elemento específico de visualização ou layout.

    Você pode usar o novo comando Convert view na Component tree ou no editor de design para converter uma visualização ou layout em outro tipo de visualização ou layout.

    Agora você pode criar restrições facilmente para itens próximos à visualização selecionada usando os novos botões Create a connection no inspetor de visualização na parte de cima da janela Attributes.

    Run e Instant Run

    O comportamento da opção Use same selection for future launches na caixa de diálogo Select deployment target ficou mais consistente. Se a opção Use same selection estiver ativada, a caixa de diálogo Select deployment target será aberta apenas na primeira vez que você usar o comando Run até que o dispositivo selecionado não esteja mais conectado.

    Ao segmentar um dispositivo com o Android 8.0 (API de nível 26) ou mais recente, o Instant Run vai poder implantar mudanças nos recursos sem causar uma reinicialização do app. Isso é possível porque os recursos estão em um APK dividido.

    Emulador

    Para detalhes sobre as novidades e as mudanças no emulador desde o Android Studio 3.0, consulte as notas da versão do Android Emulator da versão 27.0.2 até a versão 27.1.12.

    As principais melhorias incluem o seguinte:

    • Instantâneos de Quick Boot para salvar o estado do emulador e iniciar mais rapidamente, com a capacidade de usar o comando Save now para salvar um estado inicial personalizado.
    • Tela do emulador sem janelas.
    • Imagens do sistema para Android 8.0 (API de nível 26), Android 8.1 (API de nível 27) e prévia para desenvolvedores do Android P.

    Melhorias na interface e na experiência do usuário

    Mais dicas de ferramentas, atalhos de teclado e mensagens úteis

    Adicionamos dicas de ferramentas e sobreposições úteis de mensagens em muitos lugares no Android Studio.

    Para ver atalhos de teclado para muitos comandos, basta manter o ponteiro do mouse sobre um botão até que a dica de ferramenta apareça.

    Menu Tools > Android removido

    O menu Tools > Android foi removido. Os comandos que estavam anteriormente nesse menu foram movidos.

    • Muitos comandos foram movidos diretamente para o menu Tools.
    • O comando Sync project with gradle files foi movido para o menu File.
    • O comando Device Monitor foi removido, conforme descrito abaixo.

    Device Monitor disponível na linha de comando

    No Android Studio 3.1, o Device Monitor desempenha uma função menor do que anteriormente. Em muitos casos, a funcionalidade disponível pelo Device Monitor agora é fornecida por ferramentas novas e melhoradas.

    Consulte a documentação do Device Monitor para instruções sobre como ele pode ser invocado na linha de comando e detalhes sobre as ferramentas que ele disponibiliza.

    3.0 (outubro de 2017)

    O Android Studio 3.0.0 é uma versão principal que inclui uma variedade de novos recursos e melhorias.

    Usuários do macOS: se você estiver atualizando uma versão mais antiga do Android Studio, pode encontrar uma caixa de diálogo de erro de atualização que diz "Alguns conflitos foram encontrados na área de instalação". Simplesmente ignore esse erro e clique em Cancelar para continuar a instalação.

    3.0.1 (novembro de 2017)

    Essa é uma atualização secundária para o Android Studio 3.0 que inclui correções gerais de bug e melhorias de desempenho.

    Plug-in do Android para Gradle 3.0.0

    O novo plug-in do Android para Gradle inclui uma variedade de melhorias e novos recursos, mas melhora principalmente o desempenho de build para projetos que possuem um grande número de módulos. Ao usar o novo plug-in com esses projetos grandes, você terá o seguinte:

    • Tempos de configuração do build mais rápidos devido à nova resolução de dependência atrasada.
    • Resolução de dependência com reconhecimento de variantes apenas para os projetos e as variantes que você está criando.
    • Tempos de build incrementais mais rápidos ao aplicar mudanças simples no código ou nos recursos.

    Observação: essas melhorias exigiram mudanças significativas que interrompem alguns dos comportamentos, DSL e APIs do plug-in. O upgrade para a versão 3.0.0 pode exigir mudanças nos seus arquivos de build e plug-ins do Gradle.

    Esta versão também inclui o seguinte:

    • Compatibilidade com Android 8.0.
    • Suporte à criação de APKs separados com base nos recursos da linguagem.
    • Suporte a bibliotecas Java 8 e recursos da linguagem Java 8 (sem o compilador Jack).
    • Suporte à Biblioteca de Suporte Android Test 1.0 (Android Test Utility e Android Test Orchestrator).
    • As velocidades de build de ndk-build e cmake foram melhoradas.
    • Melhoria na velocidade de sincronização do Gradle.
    • O AAPT2 agora está ativado por padrão.
    • O uso de ndkCompile agora é mais restrito. Em vez disso, você precisa migrar para o CMake ou o ndk-build para compilar o código nativo que quer empacotar no seu APK. Para saber mais, leia Migrar do ndkcompile.

    Para saber mais sobre o que foi mudado, consulte as Notas da versão do plug-in do Android para Gradle.

    Se você estiver pronto para fazer upgrade para o novo plug-in, consulte Migrar para o plug-in do Android para Gradle 3.0.0.

    Suporte ao Kotlin

    Conforme anunciado no Google I/O 2017, a linguagem de programação Kotlin agora tem oficialmente suporte ao Android. Portanto, com esta versão, o Android Studio inclui suporte à linguagem Kotlin para desenvolvimento do Android.

    É possível incorporar o Kotlin ao projeto convertendo um arquivo Java para o Kotlin (clique em Code > Convert Java File to Kotlin File) ou criando um novo projeto ativado pelo Kotlin usando o assistente New Project.

    Para começar, leia como adicionar o Kotlin ao projeto.

    Compatibilidade com recursos da linguagem Java 8

    Agora você pode usar determinados recursos da linguagem Java 8 e consumir bibliotecas criadas com o Java 8. O Jack não é mais necessário, e você precisa desativar o Jack antes de usar o suporte aprimorado da linguagem Java 8 incorporado ao conjunto de ferramentas padrão.

    Para atualizar o projeto para que seja compatível com o novo conjunto de ferramentas da linguagem Java 8, atualize a Source Compatibility e a Target Compatibility para 1.8 na caixa de diálogo Project Structure (clique em File > Project Structure). Para saber mais, leia como usar os recursos da linguagem Java 8.

    Android Profiler

    O novo Android Profiler substitui a ferramenta Android Monitor e fornece um novo conjunto de ferramentas para medir o uso da CPU, memória e rede do seu app em tempo real. Você pode rastrear pelo método baseado em amostra para cronometrar a execução do código, capturar despejos de heap, ver alocações de memória e inspecionar os detalhes de arquivos transmitidos pela rede.

    Para abrir, clique em View > Tool Windows > Android Profiler (ou clique em Android Profiler na barra de ferramentas).

    A linha do tempo do evento, na parte de cima da janela, mostra eventos de toque, pressionamentos de teclas e mudanças de atividades para que você tenha mais contexto para entender outros eventos de desempenho na linha do tempo.

    Observação: a visualização Logcat também foi movida para uma janela separada (ela estava anteriormente no Android Monitor, que foi removido).

    Na linha do tempo de visão geral do Android Profiler, clique nas linhas do tempo da CPU, MEMORY ou NETWORK para acessar as ferramentas do criador de perfil correspondentes.

    CPU Profiler

    Com o CPU Profiler você analisa o uso da linha de execução da CPU do app pelo acionamento de um rastro de CPU instrumentado ou de exemplo. Em seguida, você pode solucionar problemas de desempenho da CPU usando vários modos de visualização de dados e filtros.

    Para saber mais, consulte o Guia do CPU Profiler.

    Memory Profiler

    O Memory Profiler ajuda a identificar vazamentos e rotatividade de memória que podem gerar oscilações, travamentos e até mesmo falhas no app. O componente mostra um gráfico em tempo real do uso da memória pelo app, permite capturar um heap dump, forçar coletas de lixo e rastrear alocações de memória.

    Para saber mais, consulte o Guia do Memory Profiler.

    Network Profiler

    O Network Profiler permite monitorar a atividade de rede do app, inspecionar o payload de cada uma das suas solicitações de rede e vincular novamente ao código que gerou a solicitação de rede.

    Para saber mais, consulte o Guia do Network Profiler.

    Criação de perfil e depuração do APK

    O Android Studio agora permite criar perfis e depurar qualquer APK sem ter que criá-lo usando um projeto do Android Studio, desde que o APK seja criado para permitir a depuração e você tenha acesso aos símbolos de depuração e aos arquivos de origem.

    Para começar, clique em Profile or debug APK na tela de boas-vindas do Android Studio. Ou, se já tiver um projeto aberto, clique em File > Profile or debug APK na barra de menus. Isso exibe os arquivos APK descompactados, mas não descompila o código. Portanto, para adicionar pontos de interrupção e ver corretamente os stack traces, é necessário anexar arquivos de origem Java e símbolos de depuração nativos.

    Para mais informações, consulte Criar perfil e depurar APKs prontos.

    Device File Explorer

    O novo Device File Explorer permite que você inspecione o sistema de arquivos do dispositivo conectado e transfira arquivos entre o dispositivo e o computador. Isso substitui a ferramenta do sistema de arquivos disponível no DDMS.

    Para abrir, clique em View > Tool Windows > Device File Explorer.

    Para mais informações, consulte o Guia do Device File Explorer.

    Suporte ao Instant Apps

    O novo suporte a Apps instantâneos Android permite criar Apps instantâneos no seu projeto usando dois novos tipos de módulos: Instant App e Feature. Eles exigem a instalação do SDK de desenvolvimento de Apps instantâneos.

    O Android Studio também inclui uma nova ação de refatoração modular para oferecer suporte a Apps instantâneos em um projeto já existente. Por exemplo, se você quiser refatorar seu projeto para colocar algumas classes em um módulo de recurso do Instant App, selecione as classes na janela Project e clique em Refactor > Modularize. Na caixa de diálogo mostrada, selecione o módulo para onde as classes precisam ir e clique em OK.

    Quando estiver tudo pronto para testar o app instantâneo, crie e execute o módulo Instant App em um dispositivo conectado, especificando o URL do app instantâneo nas opções de início da configuração de execução: selecione Run > Edit Configurations, selecione o módulo Instant App e defina o URL em Launch Options.

    Para mais informações, consulte Instant Apps Android.

    Módulos do Android Things

    Novos modelos do Android Things nos assistentes New Project e New Module para ajudar você a começar a desenvolver dispositivos IoT baseados em Android.

    Para mais informações, veja como criar um projeto do Android Things.

    Assistente de ícones adaptáveis

    O Image Asset Studio agora oferece suporte a drawables vetoriais, permite criar ícones na tela de início adaptáveis para o Android 8.0 e, ao mesmo tempo, cria ícones tradicionais (ícones "Legacy") para dispositivos mais antigos.

    Para começar, clique com o botão direito do mouse na pasta res no projeto e, em seguida, clique em New > Image Asset. Na janela do Asset Studio, selecione Launcher Icons (Adaptive and Legacy) como o tipo de ícone.

    Observação: defina compileSdkVersion para 26 ou mais recente para usar ícones adaptativos na tela de início.

    Para saber mais, leia sobre Ícones adaptativos.

    Suporte a recursos de fonte

    Para compatibilidade com novos recursos de fontes no Android 8.0, o Android Studio inclui um seletor de recursos de fontes para ajudar a agregar fontes ao app ou configurar seu projeto para fazer o download das fontes no dispositivo (quando disponíveis). Com o editor de layout também é possível visualizar as fontes no seu layout.

    Para testar fontes para download, confira se o dispositivo ou emulador está executando o Google Play Services v11.2.63 ou mais recente. Para ver mais informações, leia sobre Fontes para download.

    Assistente do Firebase para indexação de apps

    O Firebase Assistente foi atualizado com um novo tutorial para testar a indexação de apps. Para abrir o assistente, selecione Tools > Firebase. Em seguida, selecione App Indexing > Test App Indexing.

    O tutorial inclui novos botões para testar a indexação de conteúdo público e pessoal:

    • Na etapa 2, clique em Preview search results para verificar se os URLs estão sendo exibidos nos resultados da Pesquisa Google.
    • Na etapa 3, clique em Check for errors para verificar se os objetos indexáveis no seu app foram adicionados ao índice de conteúdo pessoal.

    O App Links Assistant foi atualizado com estes novos recursos:

    • Adicione testes de URL a cada mapeamento de URL para ter certeza de que seus filtros de intent processam URLs reais.

      Você também pode definir esses testes de URL manualmente usando a tag <tools:validation> descrita abaixo.

    • Crie um arquivo Digital Asset Links com a entrada de objeto adequada para oferecer suporte ao Google Smart Lock e adicione a tag correspondente asset_statements <meta-data> ao arquivo de manifesto.

    Validador de filtro de intent de URL

    O Android Studio agora tem suporte a uma tag especial no arquivo de manifesto que permite testar seus URLs de filtro de intent. Essas são as mesmas tags que o App Links Assistant pode criar para você.

    Para declarar um URL de teste para um filtro de intent, adicione um elemento <tools:validation> ao elemento <intent-filter> correspondente. Exemplo:

          <activity ...>
              <intent-filter>
                  ...
              </intent-filter>
              <tools:validation testUrl="https://www.example.com/recipe/1138" />
          </activity>
        
        

    Inclua também xmlns:tools="http://schemas.android.com/tools" na tag <manifest>.

    Se algum dos URLs de teste não transmitir a definição do filtro de intent, um erro de lint será exibido. Esse erro ainda permite criar variantes de depuração, mas isso quebra os builds de lançamento.

    Layout Editor

    O Layout Editor foi atualizado com várias melhorias, incluindo o seguinte:

    • Novo layout da barra de ferramentas e ícones.
    • Layout atualizado na árvore de componentes.
    • Melhorias nas inserções de visualização de arrastar e soltar.
    • Novo painel de erro abaixo do editor, mostrando todos os problemas com sugestões de correção (se disponíveis).
    • Várias melhorias na interface para criar com ConstraintLayout, incluindo o seguinte:
      • Novo suporte para criar barreiras.
      • Novo suporte para criar grupos: na barra de ferramentas, selecione Guidelines > Add Group (requer o ConstraintLayout 1.1.0 beta 2 ou mais recente).
      • Nova interface para criar redes: selecione várias visualizações, clique com o botão direito do mouse e selecione Chain.

    Layout Inspector

    O Layout Inspector inclui melhorias para facilitar a depuração de problemas com os layouts do seu app, incluindo agrupamento de propriedades em categorias comuns e nova funcionalidade de pesquisa nos painéis View Tree e Properties.

    APK Analyzer

    Agora você pode usar o APK Analyzer da linha de comando com a ferramenta apkanalyzer.

    O APK Analyzer também foi atualizado com as seguintes melhorias:

    • Para APKs criados com o ProGuard, você pode carregar arquivos de associação do ProGuard que adicionam recursos ao DEX Viewer, incluindo estes:
      • Nós em negrito para indicar que eles não podem ser removidos ao reduzir o código.
      • Um botão para mostrar nós que foram removidos durante o processo de redução.
      • Um botão que restaura os nomes originais dos nós na visualização em árvore que foram ofuscados pelo ProGuard.
    • O DEX Viewer agora mostra o impacto do tamanho estimado de cada pacote, classe e método.
    • Novas opções de filtragem na parte de cima para mostrar e ocultar campos e métodos.
    • Na exibição em árvore, os nós que são referências não definidas no arquivo DEX aparecem em itálico.

    Para saber mais, consulte Analisar seu build com o APK Analyzer.

    Visualização do compilador D8 DEX

    O Android Studio 3.0 inclui um novo compilador DEX opcional chamado D8. Ele acabará substituindo o compilador DX, mas você pode optar por usar o novo compilador D8 agora.

    A compilação de DEX afeta diretamente o tempo de build do app, o tamanho do arquivo .dex e o desempenho do ambiente de execução. E ao comparar o novo compilador D8 com o compilador DX atual, o D8 compila mais rapidamente e gera arquivos .dex menores, tendo o mesmo ou melhor desempenho em tempo de execução de apps.

    Para testá-lo, defina o seguinte no arquivo gradle.properties do seu projeto:

    android.enableD8=true
        

    Para saber mais, consulte a postagem do blog sobre o compilador D8 (em inglês).

    Repositório Maven do Google

    O Android Studio agora usa o Repositório Maven do Google por padrão, em vez de depender do Gerenciador do Android SDK para receber atualizações da Android Support Library, do Google Play Services, do Firebase e de outras dependências. Isso facilita manter as bibliotecas atualizadas, principalmente ao usar um sistema de integração contínua (CI).

    Todos os novos projetos agora incluem o repositório Maven do Google por padrão. Para atualizar seu projeto, adicione google() ao bloco repositories do arquivo build.gradle de nível superior:

          allprojects {
              repositories {
                  google()
              }
          }
        
        

    Saiba mais sobre o repositório Maven do Google neste link.

    Outras alterações

    • A depuração nativa com o Android Studio não tem mais suporte ao Windows de 32 bits. Optamos por nos concentrar em outras plataformas porque poucos desenvolvedores estão usando essa plataforma. Se você está usando o Windows de 32 bits e planeja a depuração do código nativo, continue usando o Android Studio 2.3.
    • Upgrade do ambiente de desenvolvimento integrado de base para o IntelliJ 2017.1.2, que adiciona vários recursos novos de 2016.3 e 2017.1, como refatoração de linguagem Java 8, dicas de parâmetro, realce semântico, pontos de interrupção arrastáveis, resultados instantâneos na pesquisa e muito mais.
    • Foram adicionadas muitas verificações novas de lint.
    • Veja também as últimas atualizações do Android Emulator.

    2.3 (março de 2017)

    O Android Studio 2.3.0 é basicamente uma versão de estabilidade e correção de bug, mas também inclui uma série de novos recursos.

    2.3.3 (junho de 2017)

    Esta é uma atualização secundária para adicionar compatibilidade ao Android O (API de nível 26).

    2.3.2 (abril de 2017)

    Esta é uma atualização secundária do Android Studio 2.3 para as seguintes alterações:

    • Atualizações do AVD Manager para oferecer suporte ao Google Play nas imagens do sistema
    • Correções de bugs em builds do NDK ao usar o NDK R14 ou mais recente

    Veja também atualizações correspondentes para o Android Emulator 26.0.3.

    2.3.1 (abril de 2017)

    Esta é uma atualização secundária do Android Studio 2.3 que corrige um problema em que alguns dispositivos físicos Android não funcionavam de forma adequada com o Instant Run. Consulte o problema 235879 (links em inglês).

    <h3 class="hide-from-toc">
      New
    </h3>
    
    <div class="video-wrapper-left">
      <iframe class="devsite-embedded-youtube-video" data-video-id="VFyKclKBGf0"
              data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen>
      </iframe>
    </div>
    
    <ul>
      <li>Android Studio can now convert PNG, BMP, JPG, and static GIF files to
      WebP format. WebP is an image file format from Google that provides lossy
      compression (like JPEG) as well as transparency (like PNG) but can provide
      better compression than either JPEG or PNG. For more information, see
        <a href="/studio/write/convert-webp.html">Convert images to WebP in Android
        Studio</a>.
      </li>
    
      <li>The new <a href="/studio/write/app-link-indexing.html">App Links
      Assistant</a> simplifies the process of adding Android App Links to your app
      into a step-by-step wizard. Android App Links are HTTP URLs that bring users
      directly to specific content in your Android app.
      </li>
    
      <li>The Layout Editor now includes support for two new ConstraintLayout
      features:
        <ul>
          <li>Define a view size based on an aspect ratio.
          </li>
          <li>Create packed, spread, and weighted linear groups with constraint
          chains.
          </li>
        </ul>
        For more information, see <a href=
        "/training/constraint-layout/index.html">Build a Responsive UI with
        ConstraintLayout</a>.
      </li>
    
      <li>The Layout Editor also now lets you create a list of <a href=
      "/studio/write/layout-editor.html#edit-properties">favorite attributes</a> so
      you don't have to click <b>View all attributes</b> to access the attributes
      you use most.
      </li>
    
      <li>When adding a material icon using the Vector Import Dialog (<b>File &gt;
      New &gt; Vector Asset</b>), you can now filter the list of available icons by
      category or by icon name. For more information, see <a href=
      "/studio/write/vector-asset-studio.html#materialicon">Adding a material
      icon</a>.
      </li>
    
      <li>
        <a href="/studio/write/annotations.html#accessibility">New and updated
        annotations</a>. The new <code>@RestrictTo</code> annotation for methods,
        classes, and packages lets you restrict an API. The updated
        <code>@VisibleForTesting</code> annotation now has an optional
        <code>otherwise</code> argument that lets you designate what the visibility
        of a method should be if not for the need to make it visible for testing.
        Lint uses the <code>otherwise</code> option to enforce the intended
        visibility of the method.
      </li>
    
      <li>New <a href="/studio/write/lint.html#snapshot">lint baseline support</a>
      allows you to use a snapshot of your project's current set of warnings as a
      baseline for future inspection runs so only new issues are reported. The
      baseline snapshot lets you start using lint to fail the build for new issues
      without having to go back and address all existing issues first.
      </li>
    
      <li>New lint checks, including the following:
        <ul>
          <li>Obsolete <code>SDK_INT</code> Checks: Android Studio removes obsolete
          code that checks for SDK versions.
          </li>
          <li>Object Animator Validation: Lint analyzes your code to make sure that
          your <code>ObjectAnimator</code> calls reference valid methods with the
          right signatures and checks that those methods are annotated with <code>
            @Keep</code> to prevent ProGuard from renaming or removing them during
            release builds.
          </li>
          <li>Unnecessary Item Decorator Copy: Older versions of the
          <code>RecyclerView</code> library did not include a divider decorator
          class, but one was provided as a sample in the support demos. Recent
          versions of the library have a divider decorator class. Lint looks for
          the old sample and suggests replacing it with the new one.
          </li>
          <li>WifiManager Leak: Prior to Android 7.0 (API level 24), initializing
          the <code>WifiManager</code> with <code><a href="/reference/android/content/Context.html#getSystemService(java.lang.Class&lt;T&gt;)">Context.getSystemService()</a></code>
          can cause a memory leak if the context is not the application context.
          Lint looks for these initializations, and if it <em>cannot</em> determine
          that the context is the application context, it suggests you use <code><a href="/reference/android/content/Context.html#getApplicationContext()">Context.getApplicationContext()</a></code> to get the proper context for the
          initialization.
          </li>
          <li>Improved Resource Prefix: The existing <code>resourcePrefix</code>
          lint check had many limitations. You can now configure your project with
          a prefix, such as <code>android { resourcePrefix '<var>my_lib</var>'
          }</code>, and lint makes sure that all of your resources are using this
          prefix. You can use variations of the name for styles and themes. For
          example for the <var>my_lib</var> prefix, you can have themes named
          <code>MyLibTheme</code>, <code>myLibAttr</code>,
          <code>my_lib_layout</code>, and so on.
          </li>
          <li>Switch to WebP: This check identifies images in your project that can
          be converted to WebP format based on your project’s
          <code>minSdkVersion</code> setting. An associated quickfix can
          automatically convert the images, or you can <a href=
          "/studio/write/convert-webp.html">convert images to WebP</a> manually.
          </li>
          <li>Unsafe WebP: If your project already includes WebP images, this check
          analyzes your project to ensure that your <code>minSdkVersion</code>
          setting is high enough to support the included images. For more
          information about WebP support in Android and Android Studio, see
          <a class="external" href=
          "https://developers.google.com/speed/webp/faq#which_web_browsers_natively_support_webp">
            Which browsers natively support WebP?</a> and <a href=
            "/studio/write/convert-webp.html">Create WebP Images Using Android
            Studio</a>.
          </li>
        </ul>
      </li>
    </ul>
    
    <h3 class="hide-from-toc">
      Changes
    </h3>
    
    <ul>
      <li>A separate button to push changes with Instant Run: After deploying your
      app, you now click <b>Apply Changes</b> <img src=
      "/studio/images/buttons/toolbar-apply-changes.svg" alt="" class=
      "inline-icon"> to quickly push incremental changes to your running app using
      Instant Run. The <b>Run</b> <img src="/studio/images/buttons/toolbar-run.png"
        alt="" class="inline-icon"> and <b>Debug</b> <img src=
        "/studio/images/buttons/toolbar-debug.png" alt="" class="inline-icon">
        buttons are always available to you when you want to reliably push your
        changes and force an app restart.
        <ul>
          <li>Instant Run is supported only when deploying your app to a target
          device running Android 5.0 (API level 21) or higher.
          </li>
          <li>Instant Run is no longer disabled for projects that <a href=
          "/studio/projects/add-native-code.html">link to external native
          projects</a> using CMake or ndk-build. However, you can only use Instant
          Run to push incremental changes to your Java code, not your native code.
          </li>
          <li>Cold swaps (which you can force for a running app by clicking
          <strong>Run</strong> <img src="/studio/images/buttons/toolbar-run.png"
          alt="" class="inline-icon">) are now more reliable. Forcing a cold swap
          also fixes the issue where changes to notification and widget UIs were
          not updated on the target device.
          </li>
          <li>Includes optimizations that make app startup much faster. These
          optimizations may affect profiling, so you should temporarily <a href=
          "/studio/run/index.html#disable-ir">disable Instant Run</a> whenever
          profiling your app.
          </li>
        </ul>
      </li>
    
      <li>
        <p>
          The <b>AVD Manager</b> <img src=
          "/studio/images/buttons/toolbar-avd-manager.png" alt="" class=
          "inline-icon"> and <b>SDK Manager</b> <img src=
          "/studio/images/buttons/toolbar-sdk-manager.png" alt="" class=
          "inline-icon"> buttons are now included in the lean Navigation Bar as
          well as the full Toolbar. To use the lean Navigation Bar, click
          <b>View</b> to open the View menu, then ensure that <b>Navigation Bar</b>
          is selected and <b>Toolbar</b> is <em>not</em> selected.
        </p>
        <img src="/studio/images/releases/navigationbar_sdkavd_2x.png" width="757">
      </li>
    
      <li>The "Hybrid" debugger has been renamed to "Dual" debugger.
      </li>
    
      <li>In the <a href="/studio/run/rundebugconfig.html">Run/Debug
      Configurations</a> dialog, under Defaults in the left pane, the following run
      configuration names have changed with no behavior changes:
        <ul>
          <li>The JUnit name has changed to Android JUnit. If you have a project
          that uses JUnit run configurations, those configurations are transformed
          to Android JUnit run configurations the first time you open the project
          with Android Studio. A dialog appears to inform you of the name change.
          </li>
          <li>The Android Tests name has changed to Android Instrumented Tests.
          </li>
        </ul>
      </li>
    
      <li>The <a href="/studio/debug/am-gpu-debugger.html">GPU Debugger</a> has
      been removed from Android Studio as of version 2.3. An open-source,
      standalone version of the tool is now available on <a href=
      "https://github.com/google/gapid" class="external-link">GitHub</a>.
      </li>
    
      <li>The Run/Debug option is no longer available when you right-click a <code>
        *.gradle build</code> script.
      </li>
    
      <li>All templates now use <code>ConstraintLayout</code> as the default
      layout.
      </li>
    
      <li>The Widgets palette in the Layout Editor has been redesigned.
      </li>
    </ul>
    
    <p>
      This release also includes a number of bug fixes. <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.3+status%3DReleased&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.3.0.</a>
    </p>
    
    <p class="note">
      <b>Known issue:</b> Some device manufacturers block apps from automatically
      launching after being installed on the device. When deploying your app to a
      physical device using Android Studio 2.3, this restriction breaks the
      intended behavior of Instant Run and causes the following error output:
      <code>Error: Not found; no service started</code>. To avoid this issue,
      either <a href="/studio/run/emulator.html">use the emulator</a> or enable
      automatic launching for your app in your device's settings. The procedure
      for doing this is different for each device, so check the instructions
      provided by the manufacturer. To learn more about this issue, see
      <a href="https://code.google.com/p/android/issues/detail?id=235879">Issue
        #235879</a>.
    </p>
    

    2.2 (setembro de 2016)

    2.2.3 (dezembro de 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes a bug fixes
      focused around gradle, the core IDE, and lint.
    </p>
    
    <p>
      Highlighted build changes:
    </p>
    
    <ul>
      <li>ProGuard version rollback. Due to a <a href=
      "https://sourceforge.net/p/proguard/bugs/625/">correctness issue</a>
      discovered in ProGuard 5.3.1, we have rolled back to ProGuard 5.2.1. We
      have worked with the ProGuard team on getting a fix quickly, and we expect
      to roll forward to ProGuard 5.3.2 in Android Studio 2.3 Canary 3.
      </li>
      <li>Bug fix for <code>aaptOptions</code> <code>IgnoreAssetsPattern</code>
      not working properly (<a href="http://b.android.com/224167">issue
      224167</a>)
      </li>
      <li>Bug fix for Gradle autodownload for Constraint Layout library
        (<a href="https://code.google.com/p/android/issues/detail?id=212128">issue
        212128</a>)
      </li>
      <li>Bug fix for a JDK8/Kotlin compiler + dx issue (<a href=
      "http://b.android.com/227729">issue 227729</a>)
      </li>
    </ul>
    
    <p>
      <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.2.3+status%3AReleased+&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.2.3</a>.
    </p>
    

    2.2.2 (outubro de 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes a number of small
      changes and bug fixes, including:
    </p>
    
    <ul>
      <li>When reporting Instant Run issues through the IDE, the report now also
      includes logcat output for <code>InstantRun</code> events. To help us
      improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
      </li>
      <li>A number of small bug fixes for Gradle.
      </li>
      <li>A fix for problems with generating multiple APKs.
      </li>
    </ul>
    

    2.2.1 (outubro de 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes several bug fixes
      and a new feature to enable extra logging to help us troubleshoot Instant
      Run issues—to help us improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
    </p>
    

    Novo

    • Layout Editor totalmente novo, com ferramentas personalizadas com suporte ao ConstraintLayout.
    • <li>New <strong><a href=
      "http://tools.android.com/tech-docs/layout-inspector">Layout
      Inspector</a></strong> lets you examine snapshots of your layout hierarchy
      while your app is running on the emulator or a device.
      </li>
      
      <li>New <strong><a href="/studio/write/firebase.html">Assistant</a></strong>
      window to help you integrate Firebase services into your app.
      </li>
      
      <li>New <strong><a href="/studio/debug/apk-analyzer.html">APK
      Analyzer</a></strong> tool so you can inspect the contents of your packaged
      app.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/test-recorder">Espresso Test
      Recorder</a></strong> tool (currently in beta) to help you create UI tests by
      recording your own interactions.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/build-cache">build cache</a></strong>
      (currently experimental) to speed up build performance.
      </li>
      
      <li>New <strong>C/C++ build integration with CMake and ndk-build</strong>.
      Compile and build new or existing native code into libraries packaged into
      your APK, and debug using lldb. For new projects, Android Studio uses CMake
      by default, but also supports ndk-build for existing projects. To learn how
      to include native code in your Android application, read <a href=
      "/studio/projects/add-native-code.html">Add C and C++ Code to Your
      Project</a>. To learn how to debug native code with lldb, see <a href=
      "/studio/debug/index.html#debug-native">Debug Native Code</a>.
      </li>
      
      <li>New <strong><a href="/studio/intro/index.html#sample-code">Samples
      Browser</a></strong> so you can easily look up Google Android sample code
      from within Android Studio to jump start app development.
      </li>
      
      <li>New <strong>Merged Manifest Viewer</strong> to help you diagnose how your
      manifest file merges with your app dependencies across project build
      variants.
      </li>
      
      <li>The <strong>Run</strong> window now contains log messages for the current
      running app. Note that you can configure the <a href=
      "/studio/debug/am-logcat.html">logcat Monitor</a> display, but not the
      <strong>Run</strong> window.
      </li>
      
      <li>New <strong><a href="/studio/run/emulator.html">Android
      Emulator</a></strong> features:
        <ul>
          <li>Added new <strong>Virtual</strong> <strong>Sensors</strong> and
          <strong>Cellular</strong> &gt; <strong>Signal Strength</strong> controls.
          </li>
          <li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
          &gt; <strong>Network type</strong> control.
          </li>
          <li>Added simulated vertical swipes for scrolling through vertical menus
          with a mouse wheel.
          </li>
        </ul>
      </li>
      
      <li>New <strong><a href="/studio/run/rundebugconfig.html">Run/Debug
      Configuration</a></strong> features:
        <ul>
          <li>The <strong>Debugger</strong> tab of the Android App and Android
          Tests templates now contain several new options for debugging with LLDB.
          </li>
          <li>The <strong>Profiling</strong> tab of the Android App and Android
          Tests templates now contain a <strong>Capture GPU Commands</strong>
          option for enabling GPU tracing. You can display GPU traces in the GPU
          Debugger (a beta feature).
          </li>
          <li>The Android Tests template now has a <strong>Firebase Test Lab Device
          Matrix</strong> option for the <strong>Deployment Target</strong>.
          </li>
          <li>The Native Application template has been deprecated. If you use this
          template in a project, Android Studio automatically converts it to the
          Android App template.
          </li>
          <li>The Android Application template has been renamed to Android App.
          </li>
        </ul>
      </li>
      
      <li>Improved installation, configuration, performance, and UI features in the
      <strong><a href="/studio/debug/am-gpu-debugger.html">GPU
      Debugger</a></strong> (currently in beta).
      </li>
      
      <li>Android Studio now comes bundled with <strong>OpenJDK 8</strong>.
      Existing projects still use the JDK specified in <strong>File &gt; Project
      Structure &gt; SDK Location</strong>. You can switch to use the new bundled
      JDK by clicking <strong>File &gt; Project Structure &gt; SDK
      Location</strong> and checking the <strong>Use embedded JDK</strong>
      checkbox.
      </li>
      
      <li>Added new <strong>help menus and buttons</strong> in the UI so you can
      more easily find the online documentation.
      </li>
      

    Mudanças

    • A base de código do ambiente de desenvolvimento integrado do IntelliJ 15 foi atualizada para o IntelliJ 2016.1.
    • O Instant Run agora exige que seja instalado o SDK da plataforma correspondente ao nível da API do dispositivo de destino.
    • O Instant Run será desativado automaticamente se o usuário estiver executando o app em um perfil de trabalho ou como um usuário secundário.
    • Foram corrigidos muitos problemas de confiabilidade do Instant Run em que as mudanças não estavam sendo implantadas ou o app falhava:
      • Alguns recursos não foram implantados no app em execução (bug: 213454).
      • O app trava quando o usuário transita entre as sessões Instant Run e não Instant Run, em que uma classe serializável não tem serialVersionUID definido (bug: 209006).
      • As mudanças de estilo não são refletidas na execução do Instant Run (bug: #210851, link em inglês).
      • A sessão do Instant Run não é confiável e gera FileNotFoundException (bug: 213083).
      • Mudanças em drawables não refletidas até que a reconstrução completa seja executada para KitKat (bug: 21530).
      • As mudanças de recursos não são refletidas no Instant Run quando os sourceSets personalizados contêm caminhos aninhados (bug: 219145).
      • Hot e warm swap não funcionam se a classe modificada contém anotações com valor de tipo enumerado (bug: 209047).
      • Mudanças nos dados de anotação não são refletidas com o Instant Run (bug: 210089).
      • O Instant Run não seleciona mudanças de código se elas são feitas fora do ambiente de desenvolvimento integrado (bug: 213205).
      • A sessão de Instant Run não é confiável devido a um token de segurança incompatível (bug: #211989).
      • Cold swap falha para dispositivos sem suporte à execução de run-as (bug: #210875, link em inglês).
      • Falha do app após a reinicialização do Instant Run (bug: 219744).
      • ClassNotFoundException observada ao alternar de Instant Run para Instant Debug (bug: 215805).
    • <li>Improved performance for <strong>Gradle sync</strong> within the IDE,
      especially for large projects.
      </li>
      
      <li>Improved build times for both full and incremental builds with new app
      packaging code.
      </li>
      
      <li>Improved <strong>Jack compiler performance and features</strong>,
      including support for annotation processors and dexing in process. To learn
      more, read the <a href=
      "/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
      2.2.0 release notes</a>.
      </li>
      
      <li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
      </li>
      
      <li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
      command-line options now report which ports and serial number the emulator
      instance is using, and warn if there are any issues with the values you
      provided.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/create-java-class.html">Create New Class dialog</a></strong>
      and the corresponding file templates. <strong>Note:</strong> If you've
      previously customized the <strong>AnnotationType</strong>,
      <strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
      <strong>Singleton</strong> file templates, you need to modify your templates
      to comply with the new templates or you won’t be able to use the new fields
      in the <strong>Create New Class</strong> dialog.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
      user interface and added support for Adobe Photoshop Document (PSD) files.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
      interface.
      </li>
      
      <li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
      </li>
      
      <li>Fixed memory leaks and reduced overall memory usage in Android Studio.
      </li>
      
      <li>Added a <strong>Background</strong> button in the <strong><a href=
      "/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
      get back to work and install your packages in the background.
      </li>
      
      <li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
      features</a></strong>, including support for screen readers and keyboard
      navigation.
      </li>
      
      <li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
      Java 8 language usage and more cross-file analysis.
      </li>
      
      <li>Several toolbar icons have changed.
      </li>
      

    2.1 (abril de 2016)

    As principais mudanças nesta atualização oferecem suporte ao desenvolvimento do Android N Preview.

    2.1.3 (agosto de 2016)

    Esta atualização adiciona suporte ao Gradle 2.14.1, que inclui melhorias de desempenho, novos recursos e uma correção de segurança importante. Para saber mais, consulte as notas da versão do Gradle (em inglês).

    Por padrão, novos projetos no Android Studio 2.1.3 usam o Gradle 2.14.1. Para projetos já existentes, o ambiente de desenvolvimento integrado solicita o upgrade para o Gradle 2.14.1 e o plug-in do Android para Gradle 2.1.3, que é necessário ao usar o Gradle 2.14.1 e mais recente.

    2.1.2 (junho de 2016)

    Esta atualização inclui várias pequenas mudanças e correções de bugs:

    • Atualizações e correções de bugs do Instant Run.
    • Melhorias no desempenho de LLDB e em notificações de falha.
    • Foi corrigida uma regressão na atualização de segurança do Android Studio 2.1.1 que causou a falha de git rebase.

    2.1.1 (maio de 2016)

    Atualização da versão de segurança.

    A plataforma Android N adiciona suporte a recursos da linguagem Java 8, que exigem um novo compilador experimental chamado Jack. A versão mais recente do Jack conta, atualmente, com suporte apenas no Android Studio 2.1. Portanto, para usar os recursos de linguagem do Java 8, use o Android Studio 2.1 para criar o app.

    Observação: o Instant Run é desativado quando você ativa o compilador Jack, porque atualmente eles não são compatíveis.

    Embora o Android Studio 2.1 agora esteja estável, o compilador Jack ainda é experimental e deve ser ativado com a propriedade jackOptions no seu arquivo build.gradle.

    Além das mudanças no suporte ao N Preview, o Android Studio 2.1 inclui pequenas correções de bug e as seguintes melhorias:

    • O depurador C++ com suporte Java agora é ativado por padrão quando você está usando um dispositivo N ou emulador e seleciona o modo depurador Native na guia Debugger para sua configuração de execução/depuração.

    Para outras melhorias de versão, incluindo compilação Java incremental e dexação no processo, atualize o plug-in do Android para Gradle para a versão 2.1.0.

    2.0 (abril de 2016)

    Observação: se você estiver desenvolvendo para a prévia para desenvolvedores N, use a versão de pré-lançamento do Android Studio 2.1. O Android Studio 2.0 não oferece suporte a todos os recursos necessários para ser a prévia N

    Instant Run:

    • O Android Studio agora implanta builds limpos mais rápido do que nunca. Além disso, o envio de mudanças de código incremental para o emulador ou dispositivo físico é quase instantâneo. Revise suas atualizações sem reimplantar um novo build de depuração ou, em muitos casos, sem reiniciar o app.
    • O Instant Run tem suporte às seguintes mudanças em um app em execução:
      • Mudanças na implementação de um método de instância ou método estático já existente.
      • Mudanças em um recurso de app existente
      • Mudanças no código estrutural, como uma assinatura de método ou um campo estático, o que exige um dispositivo de destino que execute a API de nível 21 ou mais recente.
    • Leia a documentação para saber mais sobre o Instant Run.

      Observação: o Instant Run tem suporte apenas quando você implanta a variante de build de depuração, usa o plug-in do Android para Gradle versão 2.0.0 ou mais recente e configura o arquivo build.gradle no nível do módulo do app para minSdkVersion 15 ou mais recente. Para ter o melhor desempenho, configure o app para minSdkVersion 21 ou mais recente.

    Novas adições ao lint:

    • Inspeção de instruções switch usando inteiros anotados @IntDef para garantir que todas as constantes sejam processadas. Para adicionar instruções ausentes com rapidez, use o menu suspenso de ações de intent e selecione Add Missing @IntDef Constants.
    • Flags de tentativas incorretas de usar interpolação de string para inserir números de versão no arquivo build.gradle.
    • Flags de classes anônimas que estendem a classe Fragment.
    • Flags de código nativo em locais não seguros, como as pastas res/ e asset/. Essa flag incentiva o armazenamento de código nativo na pasta libs/, que é então empacotada de forma segura na pasta data/app-lib/ do aplicativo no momento da instalação (AOSP: 169950).
    • Flags para chamadas não seguras para Runtime.load() e System.load() (AOSP: 179980).
    • Encontre e remova recursos não utilizados selecionando Refactor > Remove Unused Resources na barra de menus. A detecção de recursos não utilizados agora oferece suporte a recursos referenciados apenas por recursos não utilizados, referências em arquivos brutos, como de imagens .html, e atributos tools:keep e tools:discard usados pelo redutor de recursos do Gradle, considerando conjuntos de origem inativos (por exemplo, recursos usados em outras variações de build) e processando adequadamente importações de campo estático.
    • Verifica se referências implícitas da API têm suporte em todas as plataformas segmentadas por minSdkVersion.
    • Sinaliza o uso indevido de RecyclerView e Parcelable.
    • As inspeções @IntDef, @IntRange e @Size agora também são verificadas para matrizes e varargs int.

    Outras melhorias:

    • Otimização para o Android Emulator 2.0, que está mais rápido do que nunca, oferece suporte a uma ampla variedade de dispositivos virtuais e apresenta uma grande melhora na interface. Para saber mais sobre o novo emulador, leia as notas da versão das Ferramentas do SDK.
    • O Gerenciador do Dispositivo virtual Android foi melhorado:
      • As imagens do sistema agora são categorizadas nas seguintes guias: Recommended, x86 e Other.
      • Em configurações avançadas, você pode ativar o suporte a vários núcleos e especificar o número de núcleos que o emulador pode usar.
      • Em configurações avançadas, você pode determinar como os gráficos são renderizados no emulador, selecionando uma das seguintes opções:
        • Hardware: use a placa de vídeo do seu computador para renderizar mais rapidamente.
        • Software: use a renderização baseada em software.
        • Auto: deixe o emulador decidir qual seria a melhor opção. Essa é a configuração padrão.
    • Tempos de empacotamento AAPT melhorados especificando o destino da implementação antes da criação do app. Isso permite que o Android Studio empacote com eficiência apenas os recursos exigidos pelo dispositivo especificado.
    • A integração do Cloud Test Lab foi adicionada para fornecer testes de apps on demand com a conveniência e escalabilidade de um serviço em nuvem. Saiba mais sobre como você pode usar o Cloud Test Lab com o Android Studio.
    • Adicionada uma visualização do novo GPU Debugger. Para gráficos elaborados, você pode se valer do código OpenGL ES para otimizar seu app ou jogo.
    • Adicionado um teste de indexação de apps do Google. Adicione suporte a URLs, indexação de apps e funcionalidade de pesquisa para direcionar mais tráfego para o app, descobrir qual conteúdo é mais usado e atrair novos usuários. Teste e valide URLs no seu app, tudo no Android Studio. Consulte Suporte a URLs e indexação de apps no Android Studio.
    • Atualizações da versão mais recentes do IntelliJ 15, incluindo melhorias na análise de código e desempenho. Confira O que há de novo no IntelliJ para ter uma descrição completa dos novos recursos e melhorias.
    • O preenchimento automático do editor de XML agora adiciona aspas ao concluir os atributos. Para conferir se essa opção está ativada, abra a caixa de diálogo Setting ou Preferences, navegue até Editor > General > Smart Keys e marque a caixa ao lado de Add quotes for attribute value on attribute completion (problema: 195113).
    • O editor de XML é agora oferece suporte ao preenchimento de código para expressões de vinculação de dados.

    Android Studio v1.5.1 (dezembro de 2015)

    Correções e melhorias:

    • Correção de um problema de falha de renderização no Layout Editor. (problema: 194612).
    • Agora é possível variar atributos do manifesto de description por configuração. Problema: 194705
    • Melhora no contraste do tema de aparência do Android Studio Darcula no Vector Asset Studio (problema: 191819).
    • Foi adicionado suporte ao botão Help no Vector Asset Studio.
    • Foi adicionado suporte ao operador % na vinculação de dados. Problema: 194045
    • Corrigido um caso em que o lançamento de um app para depuração resultava na conexão do depurador ao dispositivo errado. Problema: 195167
    • Correção de uma exceção de ponteiro nulo que poderia ocorrer ao tentar executar um app em determinados cenários.

    Android Studio v1.5.0 (novembro de 2015)

    Correções e melhorias:

    • Adição de novas habilidades de análise do monitor de memória ao Android Monitor. Quando você visualiza um arquivo HPROF capturado nesse monitor, a exibição agora agiliza a localização de problemas, como vazamentos de memória. Para usar esse monitor, clique em Android Monitor na parte de baixo da janela principal. No Android Monitor, clique na guia Memory. Enquanto o monitor estiver em execução, clique no ícone Dump Java Heap e, em seguida, clique em Captures na janela principal e clique duas vezes no arquivo para exibir. Clique em Capture Analysis à direita. O Android Device Monitor não pode ser executado ao mesmo tempo que o Android Monitor.
    • Adicionado suporte a links diretos e links de apps. O Editor de Código pode criar automaticamente um filtro de intent para link direto no arquivo AndroidManifest.xml. Ele também pode gerar código para você integrar-se à API App Indexing em uma atividade em um arquivo Java. Um recurso de teste verifica se um link direto especificado pode iniciar um app. Na guia General da caixa de diálogo Run/Debug Configurations, é possível especificar as opções de inicialização do link direto. Você também pode testar chamadas da API App Indexing em uma atividade usando a exibição logcat do Android Monitor. A ferramenta Android lint agora tem avisos sobre alguns problemas que envolvem links diretos e a API App Indexing.
    • Possibilidade de usar nomes curtos ao completar visualizações personalizadas por código no Code Editor.
    • Foi adicionado suporte a mais elementos VectorDrawable no Vector Asset Studio para ter compatibilidade com versões anteriores. O Vector Asset Studio pode usar esses elementos para converter drawables vetoriais em imagens de varredura PNG para uso com Android 4.4 (API de nível 20) e mais antigo.
    • Novas verificações de lint para Android TV e Android Auto para que você tenha feedback imediato e acionável no Android Studio, além de várias correções rápidas. Por exemplo, para Android TV, ele pode informar e apresentar uma correção rápida para permissões, hardware sem suporte, elemento uses-feature e problemas de banners ausentes. Para o Android Auto, ele pode validar o uso correto no arquivo descritor do seu arquivo AndroidManifest.xml, informar se não houver um filtro de intent para a classe MediaBrowserService e identificar certos problemas de comandos de voz.
    • Novas verificações de lint para broadcast receivers não seguros, usos de classe SSLCertificateSocketFactory e HostnameVerifier e chamadas File.setReadable() e File.setWritable(). Ele também detecta pesquisas inválidas de recursos de manifesto, especialmente para recursos que variam de acordo com a configuração.
    • Correção de vários problemas de estabilidade.

    Android Studio v1.4.1 (outubro de 2015)

    Correções e melhorias:

    • Correção de um problema de armazenamento em cache do modelo Gradle que poderia levar à sincronização excessiva do Gradle quando o IDE fosse reiniciado.
    • Correção de um problema de impasse de depuração nativa.
    • Foi corrigido um problema de bloqueio de usuários do sistema de controle de versões do Subversion 1.9.
    • Foi corrigido um problema na caixa de diálogo do Device Chooser. Depois de conectar um dispositivo não autorizado, não era mais possível selecionar o emulador. Problema: 189658
    • Correção do relatório incorreto de erros de tradução para localidades que têm um qualificador de região e uma tradução na região, mas não na localidade de base. Problema: 188577
    • Correção de um problema de impasse no Theme Editor relacionado à interação dele com o Layout Editor. Problema: 188070
    • Foi corrigido um conflito de atualização e edição do Theme Editor que fazia com que atributos não fossem atualizados corretamente. Problema: 187726 (link em inglês)
    • Melhoria no desempenho do Theme Editor.
    • Correção de um problema em que o atributo android:required era ignorado no manifesto. (problema 187665).

    Android Studio v1.4.0 (setembro de 2015)

    Correções e melhorias:

    • A ferramenta Vector Asset Studio foi adicionada para importar gráficos vetoriais, como ícones do material e arquivos SVG. Para usar essa ferramenta, na visualização Android da janela Project, clique com o botão direito na pasta res e selecione New > Vector Asset.
    • Novas funções do Android Monitor, GPU e Rede. Para usar esses monitores, clique em Android Monitor na parte inferior da janela principal. O Android Device Monitor não pode ser executado ao mesmo tempo que o Android Monitor.
    • Adição de uma visualização do novo Theme Editor. Para usar esse recurso, selecione Tools > Android > Theme Editor.
    • Atualização dos modelos do Android para a Design Support Library. Os modelos agora incluem suporte à especificação do Material Design e à Biblioteca de Suporte de appcompat para compatibilidade com versões anteriores.

    Android Studio v1.3.2 (agosto de 2015)

    Correções e melhorias:

    • Foi adicionado suporte ao Android 6.0 (API de nível 23), incluindo novos ícones e suporte ao AVD Manager para criar dispositivos com novas densidades de tela.
    • Correção de uma exceção que estava ocorrendo durante as verificações de atualização. (problema: 183068).
    • Foi corrigido um problema em que coordenadas de visualização não resolvidas podiam gerar falhas no editor de layout (problema: 178690).
    • Correção do problema com avisos inválidos de tipo de recurso. Problema: 182433 (link em inglês)
    • Correção da verificação de lint que sinalizava incorretamente os recursos como privados. Problema: 183120 (link em inglês)

    Android Studio v1.3.1 (agosto de 2015)

    Correções e melhorias:

    • Foi corrigido o suporte à criação de um Dispositivo virtual Android (AVD, na sigla em inglês) para Android Wear no Windows.
    • Atualização do Project Wizard para usar o nome do projeto.
    • Adição de compatibilidade para permitir que o Android SDK seja armazenado em um diretório somente leitura.
    • O plug-in do Android para Gradle foi atualizado para a versão 1.3.0.
    • Correção de problemas com a inicialização de uma sessão de depuração do shell Unix do Android Debug Bridge (adb).
    • A mensagem de renomeação do pacote Java foi corrigida para mostrar o nome correto.

    Android Studio v1.3.0 (julho de 2015)

    Correções e melhorias:

    • Adicionadas opções para ativar serviços de desenvolvedor, por exemplo, Google AdMob e Google Analytics, no seu app pelo Android Studio.
    • Foram adicionadas outras anotações, como @RequiresPermission, @CheckResults e @MainThread.
    • Possibilidade de gerar heap dumps Java e analisar alocações de linha de execução do Memory Monitor. Você também pode converter arquivos HPROF binários específicos para Android no formato HPROF padrão no Android Studio.
    • Integração do SDK Manager ao Android Studio para simplificar o acesso a pacotes e ferramentas e apresentar notificações de atualização.

      Observação: o SDK Manager autônomo ainda está disponível na linha de comando, mas é recomendado para uso somente com instalações independentes do SDK.

    • Adição do comando finger no console do emulador para simular a autenticação por impressão digital.
    • Uma declaração de recurso <public> foi adicionada para designar recursos da biblioteca como recursos públicos e privados.

      Observação: requer o plug-in do Android para Gradle versão 1.3 ou mais recente.

    • Foi adicionado suporte à vinculação de dados para criar layouts declarativos que vinculam a lógica do app aos elementos de layout.
    • Foi adicionado suporte a um módulo de APK de teste separado para criar APKs de teste no Android Studio.
    • Atualização do AVD Manager com otimizações do HAXM e notificações aprimoradas.
    • Foi adicionado suporte ao emulador de MIPS e ARM de 64 bits para o QEMU 2.1.
    • Simplificação da resolução de avisos do lint adicionando correções rápidas, como a geração automática de implementação Parcelable.
    • Foi adicionado suporte a modelos ao vivo para inserção rápida de snippets de código.

    Android Studio v1.2.2 (junho de 2015)

    Correções e melhorias:

    • Correção de problemas de compilação que impediam a conclusão das compilações.

    Android Studio v1.2.1 (maio de 2015)

    Correções e melhorias:

    • Correção de problemas secundários de desempenho e recursos.

    Android Studio v1.2.0 (abril de 2015)

    Correções e melhorias:

    • A janela do Android Runtime foi atualizada para incluir a ferramenta Memory Monitor, e uma guia foi adicionada para acompanhar o monitoramento da performance da CPU.
    • Uma guia Captures foi adicionada à margem esquerda para mostrar os arquivos de dados de memória capturada e de performance da CPU, como rastreamento do método da CPU e instantâneos de alocação heap da memória.
    • O suporte a anotações expandidas, com anotações de metadados extras e inferência de valores nulos, foi expandido.
    • O Translations Editor foi aprimorado com suporte extra às Práticas recomendadas atuais (BCP, na sigla em inglês) 47, que usam linguagem de três letras e códigos regionais.
    • Recursos integrados do IntelliJ 14 e 14.1 para melhorar a análise e o desempenho do código:
      • Depuração aprimorada para mostrar valores sequenciais para variáveis e objetos de referência, bem como para realizar avaliações inline de expressões lambda e operador.
      • Detecção de estilo de código para tamanhos de guias e recuos.
      • Foram adicionados arquivos de rascunho para experimentos de código e prototipagem sem arquivos de projeto.
      • Adição da inserção simultânea de tags de abertura e fechamento em arquivos HTML e XML.
      • Um descompilador de classe Java integrado foi adicionado para que você possa ver o conteúdo de uma biblioteca que não tenha o código-fonte disponível.

      Confira O que há de novo no IntelliJ para ter uma descrição completa dos novos recursos e melhorias.

    • Foram adicionados outros Project Views para Scratches, Project Files, Problems, Production e Tests para melhorar o gerenciamento e o acesso a projetos.
    • Melhoria no menu File > Settings e nas caixas de diálogo para facilitar o acesso e o gerenciamento das configurações.
    • Foi adicionado suporte a telas de alta densidade no Windows e Linux.
    • Foi adicionado suporte a recursos de 280 dpi na pasta res/drawable-280dpi/.

    Android Studio v1.1.0 (fevereiro de 2015)

    Várias correções e melhorias:

    • Foi adicionado suporte ao modelo de relógio Android Wear.
    • O novo projeto foi modificado, e foi criado um módulo para incluir pastas res/mipmap para ícones específicos de densidade na tela de início. Essas pastas res/mipmap substituem as pastas res/drawable para os ícones na tela de início.
    • Ícones na tela de início foram atualizados para seguir o Material Design, e um ícone xxxhdpi foi adicionado.
    • Verificações de lint foram adicionadas e melhoradas para combinações de região e idioma, ícones na tela de início, nomes de recursos e outros problemas comuns de código.
    • Adicionado suporte à tag de idioma 47 das Práticas recomendadas atuais (BCP, na sigla em inglês).

    Android Studio v1.0.1 (dezembro de 2014)

    Várias correções e melhorias:

    • Correção de problema de bloqueio do arquivo AVD Manager e device.xml.
    • Correção do log do emulador nos sistemas Windows.
    • Foi corrigido um problema na criação de AVDs com o Android Studio e o Android SDK instalados em unidades diferentes nos sistemas Windows.
    • Define o canal de atualização padrão para novos downloads como Stable. Se você instalou a versão 1.0.0 do Android Studio e quer atualizações de versão estáveis e prontas para produção, use File > Settings > Updates para acessar o canal de atualização Stable.

    Android Studio v1.0 (dezembro de 2014)

    Versão inicial do Android Studio.

    Android Studio v0.8.14 (outubro de 2014)

    Consulte tools.android.com para ver uma lista completa de mudanças.

    Android Studio v0.8.6 (agosto de 2014)

    Consulte tools.android.com para conferir uma lista completa de alterações.

    Android Studio v0.8.0 (junho de 2014)

    Foi adicionado suporte a projetos do Android Wear.

    Consulte tools.android.com para conferir uma lista completa de alterações.

    Android Studio v0.5.2 (maio de 2014)

    Android Studio v0.4.6 (março de 2014)

    Android Studio v0.4.2 (janeiro de 2014)

    Android Studio v0.3.2 (outubro de 2013)

    Android Studio v0.2.x (julho de 2013)

    • Combinação das mais recentes alterações do IntelliJ codebase. Inclui correções para problemas relatados por usuários do Studio, como ajustes nos tamanhos de fontes do Linux e renderização de fontes.
    • Android Gradle plug-in atualização para 0.5.0.

      Atenção: esta nova versão não oferece suporte a versões anteriores. Ao abrir um projeto que usa uma versão mais antiga do plug-in, o Studio mostra um erro informando Gradle <project_name> project refresh failed.

      O plug-in atualizado do Gradle inclui as seguintes alterações:

      • O modelo do ambiente de desenvolvimento integrado foi corrigido para conter o arquivo de saída, mesmo que ele seja personalizado através da DSL. A DSL também foi corrigida para ter/definir o arquivo de saída no objeto variante, de modo que não seja necessário usar variant.packageApplication or variant.zipAlign
      • A resolução de dependências foi corrigida para que pudéssemos resolver a combinação de configuração padrão, tipos de build e variações ao mesmo tempo.
      • Dependência para testes de projeto de biblioteca foram corrigidas para incluir corretamente todas as dependências da própria biblioteca.
      • Foi corrigido um caso em que duas dependências possuem o mesmo nome de folha.
      • Foi corrigido um problema em que o arquivo de regras do ProGuard não podia ser aplicado a variações.

      Todas as notas de versão do plug-in para Gradle estão disponíveis neste link: http://tools.android.com/tech-docs/new-build-system.

    • Os erros do Gradle do aapt não apontam mais para os arquivos de saída mesclados na pasta build/. Eles apontam para os locais de origem reais.
    • Compilações paralelas. Agora é possível usar builds paralelos do Gradle. Os builds paralelos estão em desenvolvimento. Consulte a documentação do Gradle. Esse recurso fica desativado por padrão. Para ativar o recurso, acesse Preferences > Compiler e marque a caixa Compile independent modules in parallel.
    • Outras mudanças no novo repositório de recursos usado para renderização de layout, recursos para dobráveis no editor e mais:
      • Compatibilidade básica para dependências da biblioteca .aar (por exemplo, usando uma biblioteca sem uma cópia local das fontes). Ainda não está funcionando para validação de recursos XML e navegação em editores de origem.
      • Detecção de ciclo em referências de recursos.
      • A Quick Documentation (F1), que pode mostrar todas as traduções da string embaixo do cursor, agora também mostra todas as sobreposições de recursos dos diversos tipos de build e variações do Gradle, além de bibliotecas. Elas são listadas na ordem inversa da sobreposição de recursos, com tachado nas versões da string que são mascaradas.
      • Correções para resolver a atualização dos recursos combinados quando o conjunto de dependências do módulo muda.
      • Correções de processamento de XML para processar corretamente declarações de entidade de caractere e escapes XML e unicode.
    • Suporte ao salvamento de capturas de tela para a visualização do layout e as janelas do editor de layout.
    • Correções de bugs de modelos.
    • Correções de bugs do lint.
    • Várias correções para relatórios de falhas. Continue arquivando relatórios de erros.

    Android Studio v0.1.x (maio de 2013)

    • Várias correções de bugs, incluindo uma correção para um problema comum de instalação do Windows.

    Versões mais antigas do Plug-in do Android para Gradle

    3.6.0 (fevereiro de 2020)

    Esta versão do plug-in do Android requer o seguinte:

    Novos recursos

    Esta versão do Plug-in do Android para Gradle inclui os novos recursos a seguir.

    Vinculação de visualizações

    A vinculação de visualizações fornece segurança durante a compilação quando há referências a visualizações no código. Agora você pode substituir findViewById() pela referência de classe de vinculação gerada automaticamente. Para começar a usar a vinculação de visualizações, inclua o seguinte no arquivo build.gradle de cada módulo:

          android {
              viewBinding.enabled = true
          }
          
          android {
              viewBinding.enabled = true
          }
          

    Para saber mais, leia a documentação de Vinculação de visualizações.

    Suporte ao plug-in Maven Publish

    O Plug-in do Android para Gradle oferece suporte ao plug-in Maven Publish para Gradle, que permite a publicação de artefatos de build em um repositório Apache Maven. O Plug-in do Android para Gradle cria um componente para cada artefato de variante de build no módulo do app ou da biblioteca usado para personalizar uma publicação para um repositório Maven (links em inglês).

    Para saber mais, acesse a página sobre como usar o plug-in Maven Publish.

    Nova ferramenta de empacotamento padrão

    Ao criar a versão de depuração do app, o plug-in usa uma nova ferramenta de empacotamento, chamada zipflinger, para criar o APK. Essa nova ferramenta vai trazer melhorias de velocidade de build. Se a nova ferramenta de empacotamento não funcionar como esperado, informe um bug. Você pode voltar a usar a ferramenta de empacotamento antiga incluindo o seguinte no arquivo gradle.properties:

            android.useNewApkCreator=false
          
    Atribuição do build nativo

    Agora é possível determinar o tempo que o Clang leva para criar e vincular cada arquivo C/C ++ no seu projeto. O Gradle pode gerar um trace do Chrome que contém carimbos de data/hora para esses eventos do compilador para que você possa analisar o tempo necessário para criar seu projeto. Para gerar esse arquivo de atribuição de build, faça o seguinte:

    1. Adicione a flag -Pandroid.enableProfileJson=true ao gerar um build do Gradle. Exemplo:

      gradlew assembleDebug -Pandroid.enableProfileJson=true

    2. Abra o navegador Chrome e digite chrome://tracing na barra de pesquisa.

    3. Clique no botão Load e navegue até <var>project-root</var>/build/android-profile para encontrar o arquivo. O nome do arquivo é profile-<var>timestamp</var>.json.gz.

    Você pode conferir os dados de atribuição do build nativo perto da parte de cima do visualizador:

    Traço de atribuição do build nativo no Chrome

    Mudanças de comportamento

    Ao usar esta versão do plug-in, você pode encontrar as seguintes mudanças no comportamento.

    Bibliotecas nativas empacotadas descompactadas por padrão

    Quando você cria seu app, o plug-in agora define extractNativeLibs como "false" por padrão. Ou seja, suas bibliotecas nativas são alinhadas na página e empacotadas sem compactação. Apesar de isso gerar um tamanho do upload maior, seus usuários se beneficiam pelos seguintes motivos:

    • O tamanho de instalação do app é menor porque a plataforma pode acessar as bibliotecas nativas diretamente do APK instalado, sem criar uma cópia das bibliotecas.
    • O tamanho de download é menor, porque a compactação da Play Store geralmente é melhor quando você inclui bibliotecas nativas não compactadas no seu APK ou Android App Bundle.

    Se, em vez disso, você quiser que o Plug-in do Android para Gradle empacote bibliotecas nativas compactadas, inclua o seguinte no manifesto do app:

            <application
              android:extractNativeLibs="true"
              ... >
            </application>
            
          

    Observação: o atributo de manifesto extractNativeLibs foi substituído pela opção DSL useLegacyPackaging. Para saber mais, consulte a nota da versão Usar a DSL para empacotar bibliotecas nativas compactadas.

    Versão padrão do NDK

    Se você fizer o download de várias versões do NDK, o Plug-in do Android para Gradle agora vai selecionar uma versão padrão para compilar seus arquivos de código-fonte. Antes, o plug-in selecionava a versão mais recente do NDK transferida por download. Use a propriedade android.ndkVersion no arquivo build.gradle do módulo para substituir o padrão selecionado pelo plug-in.

    Geração de classe R simplificada

    O Plug-in do Android para Gradle simplifica o caminho de classe de compilação gerando apenas uma classe R para cada módulo de biblioteca no projeto e compartilhando essas classes R com outras dependências do módulo. Essa otimização proporciona builds mais rápidos, mas exige que você tenha em mente o seguinte:

    • Como o compilador compartilha classes R com dependências de módulo upstream, é importante que cada módulo do projeto use um nome de pacote exclusivo.
    • A visibilidade da classe R de uma biblioteca para outras dependências do projeto é determinada pela configuração usada para incluir a biblioteca como dependência. Por exemplo, se a Biblioteca A incluir a Biblioteca B como uma dependência "API", a Biblioteca A e outras bibliotecas que dependem dela vão ter acesso à classe R da Biblioteca B. No entanto, outras bibliotecas podem não ter acesso à classe R da Biblioteca B. Se a Biblioteca A usar a configuração de dependência implementation. Para saber mais, leia sobre as configurações de dependência.
    Remover recursos ausentes da configuração padrão

    Para módulos de Biblioteca, se você adicionar um recurso a um idioma que não incluiu no conjunto padrão de recursos (por exemplo, se você incluir hello_world como um recurso de string em /values-es/strings.xml, mas não definir esse recurso em /values/strings.xml), o Plug-in do Android para Gradle não vai incluir mais esse recurso ao compilar seu projeto. Essa mudança de comportamento resulta em menos exceções de tempo de execução Resource Not Found e maior velocidade de build.

    O D8 agora respeita a política de retenção de classe para anotações

    Ao compilar seu app, o D8 agora respeita quando as anotações aplicam uma política de retenção CLASS, e essas anotações não estão mais disponíveis no ambiente de execução. Esse comportamento também existe ao definir o SDK de destino do app para a API de nível 23, que anteriormente permitia acessar essas anotações durante a execução ao compilar o app usando versões mais antigas do Plug-in do Android para Gradle e do D8.

    Outras mudanças de comportamento
    • aaptOptions.noCompress não diferencia mais caracteres maiúsculos de minúsculos em todas as plataformas (para APK e pacotes) e respeita caminhos que usam caracteres maiúsculos.
    • A vinculação de dados agora é incremental por padrão. Para saber mais, consulte o problema 110061530.

    • Todos os testes de unidade, incluindo Roboeletric, agora podem ser totalmente armazenados em cache. Para saber mais, consulte o problema 115873047.

    Correções de bugs

    Esta versão do Plug-in do Android para Gradle inclui as seguintes correções de bugs:

    • Agora, os testes de unidade Roboletric têm suporte de módulos de biblioteca que usam vinculação de dados. Para saber mais, consulte o problema 126775542.
    • Agora é possível executar tarefas connectedAndroidTest em vários módulos enquanto o modo de execução paralela do Gradle está ativado.

    Problemas conhecidos

    Esta seção descreve problemas conhecidos que existem no Plug-in do Android para Gradle 3.6.0.

    Desempenho lento da tarefa Android Lint

    O Android Lint pode levar muito mais tempo para ser concluído em alguns projetos devido a uma regressão na infraestrutura de análise, o que resulta em um cálculo mais lento de tipos de inferência para lambdas em determinadas construções de códigos.

    O problema é relatado como um bug no IDEA e será corrigido no Plug-in do Android para Gradle 4.0.

    Falta a classe do manifesto {:#agp-missing-manifest}

    Se o app define permissões personalizadas no manifesto, o Plug-in do Android para Gradle normalmente gera uma classe Manifest.java que inclui suas permissões personalizadas como constantes de string. O plug-in empacota essa classe com seu app para que você possa referenciar essas permissões com mais facilidade no tempo de execução.

    A geração da classe de manifesto está corrompida no Plug-in do Android para Gradle 3.6.0. Se você criar seu app com essa versão do plug-in e fizer referência à classe de manifesto, talvez ocorra uma exceção ClassNotFoundException. Para resolver esse problema, execute uma destas ações:

    • Refira-se às suas permissões personalizadas pelo nome totalmente qualificado. Por exemplo: "com.example.myapp.permission.DEADLY_ACTIVITY".

    • Defina suas próprias constantes, conforme mostrado abaixo:

                  public final class CustomPermissions {
                    public static final class permission {
                      public static final String DEADLY_ACTIVITY="com.example.myapp.permission.DEADLY_ACTIVITY";
                    }
                  }
                  
                

    3.5.0 (agosto de 2019)

    O Plug-in do Android para Gradle 3.5.0, assim como o Android Studio 3.5, é um lançamento importante do Project Marble. O objetivo desse projeto é melhorar três áreas principais das ferramentas para desenvolvedores Android: a integridade do sistema, o aperfeiçoamento de recursos e a correção de bugs. No caso específico dessa atualização, o foco foi melhorar a velocidade de build do projeto (em inglês).

    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.

    Esta versão do plug-in do Android requer o seguinte:

    3.5.4 (julho de 2020)

    Esta atualização secundária oferece suporte a novas configurações e recursos padrão para visibilidade do pacote no Android 11.

    Consulte as notas da versão 4.0.1 para saber mais detalhes.

    3.5.3 (dezembro de 2019)

    Esta pequena atualização é compatível com o Android Studio 3.5.3 e inclui várias correções de bugs e melhorias no desempenho.

    3.5.2 (novembro de 2019)

    Esta pequena atualização tem suporte ao Android Studio 3.5.2 e inclui várias correções de bugs e melhorias de performance. Para ver uma lista de correções de bugs em destaque, leia a postagem correspondente no blog de atualizações de versão (link em inglês).

    3.5.1 (outubro de 2019)

    Esta pequena atualização tem suporte ao Android Studio 3.5.1 e inclui várias correções de bugs e melhorias no desempenho. Para ver uma lista de correções de bugs em destaque, leia a postagem correspondente no blog de atualizações de versão (link em inglês).

    Processamento de anotações incremental

    O processador de anotações da Vinculação de dados vai oferecer suporte ao processamento incremental de anotações (em inglês) se você definir android.databinding.incremental=true no arquivo gradle.properties. Essa otimização resulta em melhor performance do build incremental. Para ver uma lista completa de processadores de anotações otimizados, consulte a tabela de processadores de anotações incrementais (link em inglês).

    Além disso, o KAPT 1.3.30 e versões mais recentes também são compatíveis com processadores de anotações incrementais, que podem ser ativados incluindo kapt.incremental.apt=true no seu arquivo gradle.properties.

    Testes de unidade armazenáveis em cache

    Quando você ativa testes de unidade para usar recursos e manifestos Android configurando includeAndroidResources (em inglês) como true, o Plug-in do Android para Gradle gera um arquivo de configuração de teste com caminhos absolutos, o que interrompe a realocação do cache. Em vez disso, você pode instruir o plug-in para gerar a configuração de teste usando caminhos relativos, o que permite que a tarefa AndroidUnitTest seja totalmente armazenada em cache, pela inclusão do seguinte no arquivo gradle.properties:

          android.testConfig.useRelativePath = true
        

    Problemas conhecidos

    • Quando você usa o plug-in do Kotlin para Gradle 1.3.31 ou uma versão anterior, o seguinte aviso pode ser mostrado ao criar ou sincronizar seu projeto:

                WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced
                        with 'variant.getPackageLibraryProvider()'.
                
              

      Para resolver esse problema, atualize o plug-in para a versão 1.3.40 ou mais recente.

    3.4.0 (abril de 2019)

    Esta versão do plug-in do Android requer o seguinte:

    3.4.3 (julho de 2020)

    Esta atualização secundária oferece suporte a novas configurações e recursos padrão para visibilidade do pacote no Android 11.

    Consulte as notas da versão 4.0.1 para saber mais detalhes.

    3.4.2 (julho de 2019)

    Esta atualização pequena tem suporte ao Android Studio 3.4.2 e inclui várias correções de bugs e melhorias na performance. Para ver uma lista de correções de bugs em destaque, leia a postagem correspondente no blog de atualizações de versão (em inglês).

    3.4.1 (maio de 2019)

    Esta atualização pequena tem suporte ao Android Studio 3.4.1 e inclui várias correções de bugs e melhorias na performance. Para ver uma lista de correções de bugs em destaque, leia a postagem correspondente no blog de atualizações de versão (em inglês).

    Novos recursos

    • Novas configurações de dependência de verificação de lint: o comportamento de lintChecks mudou, e uma nova configuração de dependência (lintPublish) foi apresentada para oferecer mais controle sobre as verificações de lint que são empacotadas nas bibliotecas do Android.

      • lintChecks: esta é uma configuração existente necessária para verificações de lint que você queira executar somente ao criar seu projeto localmente. Se você estava usando a configuração de dependência lintChecks anteriormente para incluir verificações de lint no AAR publicado, vai precisar migrar essas dependências para usar a nova configuração lintPublish descrita abaixo.
      • lintPublish: use esta nova configuração em projetos de biblioteca para verificações de lint que você queira incluir no AAR publicado, conforme mostrado abaixo. Isso significa que os projetos que consomem sua biblioteca também aplicam essas verificações de lint.

      O exemplo de código a seguir usa as duas configurações de dependência em um projeto de biblioteca local do Android.

      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks project(':lint')
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish project(':lintpublish')
      }
              
      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks(project(":lint"))
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish(project(":lintpublish"))
          }
              
      • Em geral, as tarefas de empacotamento e assinatura terão uma melhoria geral na velocidade de build. Se você perceber uma regressão de desempenho relacionada a essas tarefas, informe um bug.

    Mudanças de comportamento

    • Aviso de descontinuação do plug-in do recurso Apps instantâneos Android: se você ainda estiver usando o plug-in com.android.feature para criar seu app instantâneo, o Plug-in do Android para Gradle 3.4.0 vai mostrar um aviso de descontinuação. Para garantir que seja possível criar seu app instantâneo em versões futuras do plug-in, migre-o para o plug-in de recurso dinâmico, que também permite a publicação das suas experiências de apps instalados e instantâneos de um único Android App Bundle.

    • R8 ativado por padrão: o R8 integra a simplificação, redução, ofuscação, otimização e dexação em uma única etapa, o que resulta em melhorias significativas na performance do build (em inglês). O R8 foi apresentado no Plug-in do Android para Gradle 3.3.0 e agora está ativado por padrão nos projetos de biblioteca Android e em apps que usam o plug-in 3.4.0 ou mais recente.

    A imagem abaixo fornece uma visão geral de alto nível do processo de compilação antes da inclusão do R8.

    Antes do R8, o ProGuard era uma etapa de compilação diferente da dexação e da simplificação de leitura.

    Agora, com o R8, a simplificação, redução, ofuscação, otimização e dexação (D8) são todas concluídas em uma única etapa, conforme ilustrado abaixo.

    Com o R8, a simplificação, redução, ofuscação, otimização e
      dexação são concluídas em uma única etapa de compilação.

    Lembre-se de que o R8 foi projetado para funcionar com suas regras do ProGuard. Desse modo, você provavelmente não precisa fazer nada para se beneficiar com o R8. No entanto, como essa é uma tecnologia diferente do ProGuard e é projetada especificamente para projetos Android, a redução e a otimização podem resultar na remoção de códigos que o ProGuard talvez não removesse. Nessa situação improvável, talvez seja necessário adicionar outras regras para manter esse código no resultado de build.

    Se você tiver problemas ao usar o R8, leia as Perguntas frequentes de compatibilidade do R8 (em inglês) para conferir se há uma solução para o problema. Se nenhuma solução tiver sido documentada, informe um bug. Você pode desativar o R8 adicionando uma das seguintes linhas ao arquivo gradle.properties do projeto:

          # Disables R8 for Android Library modules only.
          android.enableR8.libraries = false
          # Disables R8 for all modules.
          android.enableR8 = false
          
        

    Observação: para determinado tipo de build, se você definir useProguard como false no arquivo build.gradle do módulo do app, o Plug-in do Android para Gradle vai usar o R8 para reduzir o código desse tipo de build, independente de você ter ou não desativado o R8 no arquivo gradle.properties.

    • O uso de ndkCompile foi descontinuado: agora você vai encontrar um erro de build se tentar usar o ndkBuild para compilar bibliotecas nativas. Em vez disso, use o CMake ou o ndk-build para adicionar código C e C++ ao seu projeto.

    Problemas conhecidos

    • O uso correto de nomes de pacotes únicos não é obrigatório atualmente, mas se torna mais rigoroso em versões mais recentes do plug-in. No Plug-in do Android para Gradle versão 3.4.0, você pode conferir se o projeto declara nomes de pacotes aceitáveis adicionando a linha abaixo ao seu arquivo gradle.properties.

                android.uniquePackageNames = true
                
              

      Para saber mais sobre como definir um nome de pacote com o Plug-in do Android para Gradle, consulte Definir o ID do aplicativo.

    3.3.0 (janeiro de 2019)

    Esta versão do plug-in do Android requer o seguinte:

    3.3.3 (julho de 2020)

    Esta atualização secundária oferece suporte a novas configurações e recursos padrão para visibilidade do pacote no Android 11.

    Consulte as notas da versão 4.0.1 para saber mais detalhes.

    3.3.2 (março de 2019)

    Essa atualização pequena tem suporte ao Android Studio 3.3.2 e inclui várias correções de bugs e melhorias no desempenho. Para ver uma lista de correções de bugs em destaque, leia a postagem correspondente no blog de atualizações de versão (em inglês).

    3.3.1 (fevereiro de 2019)

    Esta atualização pequena é compatível com o Android Studio 3.3.1 e inclui várias correções de bugs e melhorias no desempenho.

    Novos recursos

    • Melhoria na sincronização de caminho de classe: ao resolver dependências nos seus caminhos de classe de execução e de compilação, o Plug-in do Android para Gradle tenta corrigir alguns conflitos de versão para dependências em vários caminhos de classe.

      Por exemplo, se o caminho de classe de execução incluir a Biblioteca A versão 2.0 e o de compilação incluir a Biblioteca A versão 1.0, o plug-in vai atualizar automaticamente a dependência do caminho de classe de compilação para a Biblioteca A 2.0 para evitar erros.

      No entanto, se o caminho de classe de execução incluir a Biblioteca A versão 1.0 e o de compilação incluir a Biblioteca A versão 2.0, o plug-in não vai fazer downgrade da dependência do caminho de classe de compilação para a Biblioteca A versão 1.0 e isso gera um erro. Para saber mais, consulte Corrigir conflitos entre caminhos de classe.

    • Melhoria na compilação Java incremental ao usar processadores de anotações: esta atualização diminui o tempo de build porque melhora o suporte à compilação Java incremental quando usada com processadores de anotações.

      Observação: esse recurso oferece suporte ao Gradle 4.10.1 e versões mais recentes, exceto ao Gradle 5.1 devido ao problema 8194 do Gradle (em inglês).

      • Para projetos que usam o Kapt (a maioria dos projetos somente em Kotlin e dos projetos híbridos em Kotlin-Java): a compilação incremental em Java é ativada, mesmo quando você usa a vinculação de dados ou o plug-in retro-lambda. O processamento de anotações pela tarefa do Kapt ainda não é incremental.

      • Para projetos que não usam o Kapt (projetos somente em Java): se os processadores de anotações que você usa oferecerem suporte ao processamento incremental de anotações (em inglês), a compilação Java incremental vai ser ativada por padrão. Para monitorar a adoção do processador de anotações incremental, consulte o problema 5277 do Gradle (em inglês).

        Entretanto, se um ou mais processadores de anotações não oferecerem suporte a builds incrementais, a compilação incremental em Java não vai ser ativada. Em vez disso, você pode incluir a seguinte flag no seu arquivo gradle.properties:

        android.enableSeparateAnnotationProcessing=true
                    

        Ao incluir essa flag, o Plug-in do Android para Gradle executa os processadores de anotações em uma tarefa separada e permite que as tarefas de compilação em Java sejam executadas de forma incremental.

    • Informações de depuração melhores ao usar uma API obsoleta: quando o plug-in detecta que você está usando uma API que não tem mais suporte, agora ele pode fornecer informações mais detalhadas para determinar onde essa API está sendo usada. Para outras informações, você precisa incluir o seguinte no arquivo gradle.properties do seu projeto:

                android.debug.obsoleteApi=true
              

      Também é possível ativar a flag transmitindo -Pandroid.debug.obsoleteApi=true na linha de comando.

    • Você pode executar testes de instrumentação em módulos de recursos da linha de comando.

    Mudanças de comportamento

    • Configuração lenta de tarefas: agora, o plug-in usa a nova API de criação de tarefas do Gradle (em inglês) para evitar a inicialização e a configuração de tarefas que não são necessárias para concluir o build atual (ou tarefas que não estejam no gráfico de tarefas em execução). Por exemplo, se você tiver diversas variantes de build, como "release" e "debug", e estiver criando a versão "debug" do seu app, o plug-in vai evitará inicializar e configurar tarefas para a versão "release" do app.

      Chamar alguns métodos antigos na API Variants, como variant.getJavaCompile(), ainda poderá forçar a configuração da tarefa. Para garantir que seu build seja otimizado para a configuração lenta de tarefas, invoque novos métodos que retornem um objeto TaskProvider, como variant.getJavaCompileProvider().

      Se você executa tarefas personalizadas de build, aprenda a adaptar-se à nova API de criação de tarefas do Gradle (em inglês).

    • Para um determinado tipo de build, ao configurar useProguard false, o plug-in agora vai usar o R8 em vez do ProGuard para reduzir e ofuscar o código e os recursos do app. Para saber mais sobre o R8, leia esta postagem do blog (em inglês) para desenvolvedores Android.

    • Geração de classe R mais rápida para projetos de biblioteca: anteriormente, o Plug-in do Android para Gradle gerava um arquivo R.java para cada uma das dependências do projeto e compilava essas classes R junto com as outras classes do app. O plug-in agora gera diretamente um JAR que contém a classe R compilada do seu app, sem criar classes R.java intermediárias antes. Essa otimização pode melhorar bastante a performance do build para projetos que incluem muitos subprojetos e dependências de biblioteca, além de melhorar a velocidade de indexação no Android Studio.

    • Ao criar um Android App Bundle, os APKs gerados desse pacote de apps destinado ao Android 6.0 (API de nível 23) ou mais recente agora incluem versões descompactadas das suas bibliotecas nativas por padrão. Essa otimização evita que o dispositivo tenha que fazer uma cópia da biblioteca e reduz o tamanho do app no disco. Se você preferir desativar essa otimização, adicione o código abaixo ao arquivo gradle.properties:

      android.bundle.enableUncompressedNativeLibs = false
              
    • O plug-in aplica versões mínimas de alguns plug-ins de terceiros.

    • Sincronização de projeto de variante única: sincronizar seu projeto com a configuração da build é uma etapa importante para permitir que o Android Studio entenda como o projeto está estruturado. No entanto, esse processo pode levar muito tempo em projetos grandes. Caso seu projeto use diversas variantes de build, você pode otimizar as sincronizações dele limitando-as apenas à variante selecionada no momento.

      Você precisa usar o Android Studio 3.3 ou mais recente com o Plug-in do Android para Gradle 3.3.0 ou mais recente para ativar essa otimização. Quando você atende a esses requisitos, o ambiente de desenvolvimento integrado pede que você ative essa otimização ao sincronizar seu projeto. A otimização também é ativada por padrão em novos projetos.

      Para ativar essa otimização manualmente, clique em File > Settings > Experimental > Gradle (Android Studio > Preferences > Experimental > Gradle em um Mac) e marque a caixa de seleção Only sync the active variant.

      Observação: essa otimização oferece suporte total a projetos que incluem as linguagens Java e C++ e suporte parcial para Kotlin. Ao ativar a otimização para projetos com conteúdo em Kotlin, a sincronização do Gradle volta a usar variantes completas internamente.

    • Download automático de pacotes SDK ausentes: essa funcionalidade foi expandida para oferecer suporte ao NDK. Para saber mais, leia Download automático de pacotes ausentes com o Gradle.

    Correções de bugs

    • O Plug-in do Android para Gradle 3.3.0 corrige os seguintes problemas:

      • O processo de build chama android.support.v8.renderscript.RenderScript em vez da versão do AndroidX, mesmo que o Jetifier esteja ativado.
      • Conflitos causados porque o androidx-rs.jar inclui este elemento com empacotamento estático annotation.AnyRes.
      • Ao usar o RenderScript, não vai ser mais necessário definir manualmente a versão do Build Tools nos arquivos build.gradle.

    3.2.0 (setembro de 2018)

    Esta versão do plug-in do Android requer o seguinte:

    3.2.1 (outubro de 2018)

    Com esta atualização, não será mais necessário especificar uma versão para o SDK Build Tools. O Plug-in do Android para Gradle agora usa a versão 28.0.3 por padrão.

    Novos recursos

    • Suporte à criação de Android App Bundles: o pacote de apps é um novo formato de upload que inclui todo o código e recursos compilados do app e adia a geração e a assinatura do APK para a Google Play Store. Não é mais necessário criar, assinar e gerenciar vários APKs, e os usuários recebem downloads menores, otimizados para o dispositivo deles. Para saber mais, leia Sobre os Android App Bundles.

    • Suporte a velocidades aprimoradas de build incremental ao usar processadores de anotações: a DSL AnnotationProcessorOptions agora estende a interface CommandLineArgumentProvider, que permite que você ou o autor do processador de anotações anote argumentos para o processador usando anotações de tipos de propriedade de build incremental (links em inglês). O uso dessas anotações melhora a exatidão e a performance de builds limpos incrementais e em cache. Para saber mais, leia Transmitir argumentos para os processadores de anotações.

    • Ferramenta de migração para o AndroidX: ao usar o Plug-in do Android para Gradle 3.2.0 com o Android 3.2 e versões mais recentes, você pode migrar as dependências locais e do Maven do seu projeto para que usem as novas bibliotecas AndroidX, selecionando Refactor > Migrate to AndroidX na barra de menus. O uso dessa ferramenta de migração também configura as flags abaixo como true no seu arquivo gradle.properties:

      • android.useAndroidX: quando configurado como true, o plug-in do Android usa a biblioteca AndroidX adequada, em vez de uma Biblioteca de Suporte. Quando essa flag não é especificada, o plug-in a configura como false por padrão.

      • android.enableJetifier: quando configurado como true, o plug-in do Android migra automaticamente as bibliotecas de terceiros já existentes para usar o AndroidX, reprogramando os binários delas. Quando essa flag não é especificada, o plug-in a configura como false por padrão. Você pode configurar essa flag como true apenas quando android.useAndroidX também estiver configurado como true. Caso contrário, ocorre um erro de build.

        Para saber mais, leia a Visão geral do AndroidX.

    • Novo redutor de código, R8: o R8 é uma nova ferramenta de redução e ofuscação de código que substitui o ProGuard. Comece a usar a versão de pré-lançamento do R8 incluindo o seguinte no arquivo gradle.properties do seu projeto:

              android.enableR8 = true
              
              android.enableR8 = true
              

    Mudanças de comportamento

    • Agora, a simplificação de leitura com D8 é ativada por padrão.

    • O AAPT2 agora fica no repositório Maven do Google. Para usar o AAPT2, confira se você tem a dependência do google() no seu arquivo build.gradle, conforme mostrado abaixo:

                buildscript {
                      repositories {
                          google() // here
                          jcenter()
                      }
                      dependencies {
                          classpath 'com.android.tools.build:gradle:3.2.0'
                      }
                  }
                  allprojects {
                      repositories {
                          google() // and here
                          jcenter()
                  }
                
                buildscript {
                      repositories {
                          google() // here
                          jcenter()
                      }
                      dependencies {
                          classpath 'com.android.tools.build:gradle:3.2.0'
                      }
                  }
                  allprojects {
                      repositories {
                          google() // and here
                          jcenter()
                  }
                
    • Agora, o multidex nativo é ativado por padrão. As versões anteriores do Android Studio ativavam a multidex nativa ao implantar a versão de depuração de um app em um dispositivo com a API de nível 21 do Android ou mais recente. Agora, independente de você estar implantando em um dispositivo ou criando um APK para a versão, o Plug-in do Android para Gradle ativa o multidex nativo para todos os módulos configurados como minSdkVersion=21 ou mais recente.

    • O plug-in agora aplica uma versão mínima dos plug-ins protobuf (0.8.6), Kotlin (1.2.50) e Crashlytics (1.25.4).

    • O plug-in de módulo de recurso, com.android.feature, agora aplica o uso exclusivo de letras, dígitos e sublinhados ao especificar um nome de módulo. Por exemplo, se o nome do módulo de recursos incluir traços, haverá um erro de build. Esse comportamento corresponde ao do plug-in de recursos dinâmicos.

    Correções de bugs

    • O JavaCompile agora pode ser armazenado em cache em projetos com vinculação de dados (problema 69243050).
    • Melhor evasão de compilação para módulos de biblioteca com vinculação de dados (problema 77539932).
    • Agora, você pode reativar a configuração sob demanda (em inglês), caso a tenha desativado em versões anteriores devido a alguns erros de build imprevisíveis (problema 77910727).

    3.1.0 (março de 2018)

    Esta versão do plug-in do Android requer o seguinte:

    • Gradle 4.4 ou mais recente.

      Para saber mais, leia a seção sobre como atualizar o Gradle.

    • Build Tools 27.0.3 ou mais recente.

      Lembre-se de que não vai ser mais necessário especificar uma versão para o Build Tools usando a propriedade android.buildToolsVersion, porque o plug-in usa a versão mínima necessária por padrão.

    Novo compilador DEX, D8

    Por padrão, o Android Studio agora usa um novo compilador DEX denominado D8. A compilação DEX é o processo de transformar bytecode .class em bytecode .dex para o Android Runtime (ou Dalvik, para versões mais antigas do Android). Em comparação com o compilador anterior, chamado DX, o D8 compila mais rapidamente e gera arquivos DEX menores, com performance igual ou melhor em relação ao tempo de execução do app.

    O fluxo de trabalho cotidiano de desenvolvimento de apps não vai mudar com o D8. No entanto, se você tiver algum problema relacionado ao novo compilador, informe um bug. Para desativar temporariamente o D8 e usar o DX, inclua o seguinte no arquivo gradle.properties do seu projeto:

          android.enableD8=false
        

    Para projetos que usam recursos da linguagem Java 8, a simplificação de leitura incremental é ativada por padrão. Você pode desativá-la especificando o seguinte no arquivo gradle.properties do seu projeto:

          android.enableIncrementalDesugaring=false.
        

    Usuário da versão de pré-lançamento: se você já estiver usando uma versão de pré-lançamento do D8, observe que agora ele é compilado em bibliotecas incluídas no SDK Build Tools, não no JDK. Portanto, se você acessa APIs já existentes no JDK, mas não nas bibliotecas do SDK Build Tools, ocorre um erro de build.

    Mudanças de comportamento

    • Ao criar vários APKs voltados, cada um, para uma ABI diferente, o plug-in não gera mais APKs para as seguintes ABIs por padrão: mips, mips64 e armeabi.

      Se você quiser criar APKs voltados para essas ABIs, use o NDK r16b ou anterior e especifique as ABIs no arquivo build.gradle, como mostrado abaixo:

                splits {
                    abi {
                        include 'armeabi', 'mips', 'mips64'
                        ...
                    }
                }
              
                splits {
                    abi {
                        include("armeabi", "mips", "mips64")
                        ...
                    }
                }
              
    • O cache de build do plug-in do Android agora mostra entradas de cache com mais de 30 dias.

    • Transmitir "auto" para resConfig não seleciona mais recursos de string automaticamente para empacotar no seu APK. Se você continuar usando "auto", o plug-in vai empacotar todos os recursos de string que seu app e as dependências dele fornecerem. Portanto, é necessário especificar cada localidade a ser empacotada pelo plug-in no seu APK.

    • Como os módulos locais não podem depender do APK de teste do app, adicionar dependências aos seus testes instrumentados usando a configuração androidTestApi, em vez de androidTestImplementation, faz com que o Gradle emita o seguinte aviso:

              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              
              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              

    Correções

    • Corrigido um problema em que o Android Studio não reconhecia dependências em builds compostos.
    • Corrigido um problema em que um erro de sincronização ocorria no projeto ao carregar o plug-in do Android várias vezes em um único build. Por exemplo, quando vários subprojetos incluíam o plug-in do Android no caminho de classe do buildscript.

    3.0.0 (outubro de 2017)

    O Plug-in do Android para Gradle 3.0.0 inclui uma variedade de mudanças que buscam resolver problemas de performance de grandes projetos.

    Por exemplo, em um exemplo de projeto esqueleto com aproximadamente 130 módulos e um grande número de dependências externas (mas nenhum código ou recursos), você pode ter melhorias de desempenho parecidas com estas:

    Versão do plug-in do Android + versão do Gradle Plug-in do Android 2.2.0 + Gradle 2.14.1 Plug-in do Android 2.3.0 + Gradle 3.3 Plug-in do Android 3.0.0 + Gradle 4.1
    Configuração (por exemplo, executando ./gradlew --help) Cerca de 2 min Cerca de 9 s Cerca de 2,5 s
    Alteração de 1 linha no Java (alteração de implementação) Cerca de 2 min 15 s Cerca de 29 s Cerca de 6,4 s

    Algumas dessas mudanças causam falhas nos builds já existentes. Portanto, você precisa considerar o esforço de migrar seu projeto antes de usar o novo plug-in.

    Se você não perceber as melhorias de desempenho descritas acima, informe um bug e inclua um rastro do seu build usando o Gradle Profiler (em inglês).

    Esta versão do plug-in do Android requer o seguinte:

    • Gradle 4.1 ou mais recente. Para saber mais, leia a seção sobre como atualizar o Gradle.
    • Build Tools 26.0.2 ou mais recente. Com esta atualização, não vai ser mais necessário especificar uma versão para o Build Tools. O plug-in vai usar a versão mínima necessária por padrão. Então, agora você pode remover a propriedade android.buildToolsVersion.

    3.0.1 (novembro de 2017)

    Esta é uma atualização pequena para oferecer suporte ao Android Studio 3.0.1 e inclui correções gerais de bugs e melhorias no desempenho.

    Otimizações

    • Melhor paralelismo para projetos com vários módulos com um gráfico de tarefas detalhado.
    • Ao fazer mudanças na dependência, o Gradle cria mais rapidamente porque não recompila módulos sem acesso à API dessa dependência. É necessário restringir quais dependências vazam APIs para outros módulos usando as novas configurações de dependência do Gradle: implementation, api, compileOnly e runtimeOnly.
    • Maior velocidade de build incremental devido à dexação por classe. Agora, cada classe é compilada em arquivos DEX separados, e apenas as classes modificadas são redexadas. Também vai haver aumento na velocidade de build de apps que tenham definido a minSdkVersion como 20 ou menos e usem multi-dex legado.
    • Velocidades de build aumentadas pela otimização de algumas tarefas para usar as saídas armazenadas em cache. Para aproveitar essa otimização, ative o cache de build do Gradle (em inglês).
    • O processamento de recursos incrementais foi melhorado com o uso de AAPT2, que agora é ativado por padrão. Caso tenha problemas ao usar o AAPT2, informe um bug. Você também pode desativar o AAPT2 configurando android.enableAapt2=false no seu arquivo gradle.properties e reiniciando o daemon Gradle executando ./gradlew --stop na linha de comando.

    Novos recursos

    • Gerenciamento de dependências com reconhecimento de variantes. Ao criar uma variante específica de um módulo, o plug-in agora faz a correspondência automática das variantes de dependências de módulo de biblioteca local com a variante do módulo que você está criando.
    • Incluído um novo plug-in do módulo Feature para oferecer suporte a Apps instantâneos Android e o SDK deles (disponível para download usando o SDK Manager). Para saber mais sobre a criação de módulos Feature com o novo plug-in, leia Estrutura de um app instantâneo com vários recursos.
    • Suporte integrado ao uso de alguns recursos da linguagem Java 8 e respectivas bibliotecas. O Jack foi descontinuado e não é mais necessário. Primeiro, é preciso desativar o Jack para usar o suporte aprimorado com Java 8 integrado no conjunto de ferramentas padrão. Para saber mais, leia Usar recursos da linguagem Java 8.
    • Foi adicionado suporte à execução de testes com o Android Test Orchestrator, que permite a execução de cada um dos testes do seu app na própria invocação de Instrumentação. Como cada teste é executado na própria instância de instrumentação, nenhum estado compartilhado entre os testes se acumula na CPU ou na memória do dispositivo. Mesmo que um teste falhe, ele só vai remover a própria instância de Instrumentação. Portanto, seus outros testes ainda serão executados.

      • testOptions.execution foi adicionado para determinar se a orquestração de teste será usada no dispositivo. Se você quiser usar o Android Test Orchestrator, especifique o ANDROID_TEST_ORCHESTRATOR, conforme mostrado abaixo. Por padrão, essa propriedade é configurada como HOST, o que desativa a orquestração no dispositivo e é o método padrão de execução de testes.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • A nova configuração de dependência androidTestUtil permite instalar outro APK auxiliar de teste antes de executar testes de instrumentação, como o Android Test Orchestrator:

      Groovy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • testOptions.unitTests.includeAndroidResources foi adicionado para oferecer suporte a testes de unidade que exigem recursos do Android, como Roboelectric (em inglês). Quando você configura essa propriedade como true, o plug-in executa mesclagem de recursos, e manifestos antes de executar os testes de unidade. Seus testes podem inspecionar com/android/tools/test_config.properties no caminho de classe para as seguintes chaves:

      • android_merged_assets: o caminho absoluto para o diretório de assets mesclados.

        Observação: para módulos de biblioteca, os recursos mesclados não contêm os recursos de dependências. Consulte o problema 65550419.

      • android_merged_manifest: o caminho absoluto para o arquivo de manifesto mesclado.

      • android_merged_resources: o caminho absoluto para o diretório de recursos mesclados, que contém todos os recursos do módulo e suas respectivas dependências.

      • android_custom_package: o nome do pacote da classe R final. Se você modificar dinamicamente o ID do aplicativo, talvez esse nome de pacote não corresponda ao atributo package no manifesto do app.

    • Suporte a fontes como recursos, que é uma nova funcionalidade apresentada no Android 8.0 (API de nível 26).
    • Suporte a APKs específicos de idiomas com o SDK 1.1 do Apps instantâneos Android ou mais recente.
    • Agora, você pode mudar o diretório de saída para seu projeto de build nativo externo, conforme mostrado abaixo:

      Groovy

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • Agora você pode usar o CMake 3.7 ou mais recente quando criar projetos nativos do Android Studio.
    • A nova configuração de dependência lintChecks permite criar um JAR que define regras de lint personalizadas e o empacote nos seus projetos AAR e APK.

      Suas regras de lint personalizadas precisam pertencer a um projeto separado que produza um único JAR e inclua apenas dependências compileOnly. Dessa forma, outros apps e módulos de biblioteca podem depender do seu projeto de lint usando a configuração lintChecks:

      Groovy

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    Mudanças de comportamento

    • O plug-in do Android 3.0.0 remove algumas APIs, e seu build vai apresentar falhas se você usá-las. Por exemplo, não é mais possível usar a API Variants para acessar objetos outputFile() ou usar processManifest.manifestOutputFile() para receber o arquivo de manifesto para cada variante. Para saber mais, leia as Mudanças na API.
    • Não é mais necessário especificar uma versão para o Build Tools, portanto, agora você pode remover a propriedade android.buildToolsVersion. Por padrão, o plug-in usa automaticamente a versão mínima necessária do Build Tools para a versão do plug-in do Android que você está usando.
    • Agora, você pode ativar ou desativar o processamento de PNG no bloco buildTypes, conforme mostrado abaixo. O processamento de PNG é ativado por padrão para todos os builds, exceto os de depuração, porque isso aumenta o tempo de build de projetos que tenham muitos arquivos PNG. Para melhorar os tempos de build de outros tipos, é necessário desativar o processamento de PNG ou converter suas imagens em WebP.

      Groovy

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • Agora, o plug-in do Android cria automaticamente destinos executáveis que podem ser configurados nos seus projetos externos do CMake.
    • Agora você precisa adicionar processadores de anotações ao caminho de classe do processador usando a configuração de dependência annotationProcessor.
    • O uso do ndkCompile descontinuado é mais restrito. Em vez disso, você precisa migrar para o CMake ou o ndk-build para compilar o código nativo que quer empacotar no seu APK. Para saber mais, leia Migrar do ndkcompile.

    3.0.0 (outubro de 2017)

    O Plug-in do Android para Gradle 3.0.0 inclui uma variedade de mudanças que buscam resolver problemas de performance de grandes projetos.

    Por exemplo, em um exemplo de projeto esqueleto com aproximadamente 130 módulos e um grande número de dependências externas (mas nenhum código ou recursos), você pode ter melhorias de desempenho parecidas com estas:

    Versão do plug-in do Android + versão do Gradle Plug-in do Android 2.2.0 + Gradle 2.14.1 Plug-in do Android 2.3.0 + Gradle 3.3 Plug-in do Android 3.0.0 + Gradle 4.1
    Configuração (por exemplo, executando ./gradlew --help) Cerca de 2 min Cerca de 9 s Cerca de 2,5 s
    Alteração de 1 linha no Java (alteração de implementação) Cerca de 2 min 15 s Cerca de 29 s Cerca de 6,4 s

    Algumas dessas mudanças causam falhas nos builds já existentes. Portanto, você precisa considerar o esforço de migrar seu projeto antes de usar o novo plug-in.

    Se você não perceber as melhorias de desempenho descritas acima, informe um bug e inclua um rastro do seu build usando o Gradle Profiler (em inglês).

    Esta versão do plug-in do Android requer o seguinte:

    • Gradle 4.1 ou mais recente. Para saber mais, leia a seção sobre como atualizar o Gradle.
    • Build Tools 26.0.2 ou mais recente. Com esta atualização, não vai ser mais necessário especificar uma versão para o Build Tools. O plug-in vai usar a versão mínima necessária por padrão. Então, agora você pode remover a propriedade android.buildToolsVersion.

    3.0.1 (novembro de 2017)

    Esta é uma atualização pequena para oferecer suporte ao Android Studio 3.0.1 e inclui correções gerais de bugs e melhorias no desempenho.

    Otimizações

    • Melhor paralelismo para projetos com vários módulos com um gráfico de tarefas detalhado.
    • Ao fazer mudanças na dependência, o Gradle cria mais rapidamente porque não recompila módulos sem acesso à API dessa dependência. É necessário restringir quais dependências vazam APIs para outros módulos usando as novas configurações de dependência do Gradle: implementation, api, compileOnly e runtimeOnly.
    • Maior velocidade de build incremental devido à dexação por classe. Agora, cada classe é compilada em arquivos DEX separados, e apenas as classes modificadas são redexadas. Também vai haver aumento na velocidade de build de apps que tenham definido a minSdkVersion como 20 ou menos e usem multi-dex legado.
    • Velocidades de build aumentadas pela otimização de algumas tarefas para usar as saídas armazenadas em cache. Para aproveitar essa otimização, ative o cache de build do Gradle (em inglês).
    • O processamento de recursos incrementais foi melhorado com o uso de AAPT2, que agora é ativado por padrão. Caso tenha problemas ao usar o AAPT2, informe um bug. Você também pode desativar o AAPT2 configurando android.enableAapt2=false no seu arquivo gradle.properties e reiniciando o daemon Gradle executando ./gradlew --stop na linha de comando.

    Novos recursos

    • Gerenciamento de dependências com reconhecimento de variantes. Ao criar uma variante específica de um módulo, o plug-in agora faz a correspondência automática das variantes de dependências de módulo de biblioteca local com a variante do módulo que você está criando.
    • Incluído um novo plug-in do módulo Feature para oferecer suporte a Apps instantâneos Android e o SDK deles (disponível para download usando o SDK Manager). Para saber mais sobre a criação de módulos Feature com o novo plug-in, leia Estrutura de um app instantâneo com vários recursos.
    • Suporte integrado ao uso de alguns recursos da linguagem Java 8 e respectivas bibliotecas. O Jack foi descontinuado e não é mais necessário. Primeiro, é preciso desativar o Jack para usar o suporte aprimorado com Java 8 integrado no conjunto de ferramentas padrão. Para saber mais, leia Usar recursos da linguagem Java 8.
    • Foi adicionado suporte à execução de testes com o Android Test Orchestrator, que permite a execução de cada um dos testes do seu app na própria invocação de Instrumentação. Como cada teste é executado na própria instância de instrumentação, nenhum estado compartilhado entre os testes se acumula na CPU ou na memória do dispositivo. Mesmo que um teste falhe, ele só vai remover a própria instância de Instrumentação. Portanto, seus outros testes ainda serão executados.

      • testOptions.execution foi adicionado para determinar se a orquestração de teste será usada no dispositivo. Se você quiser usar o Android Test Orchestrator, especifique o ANDROID_TEST_ORCHESTRATOR, conforme mostrado abaixo. Por padrão, essa propriedade é configurada como HOST, o que desativa a orquestração no dispositivo e é o método padrão de execução de testes.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • A nova configuração de dependência androidTestUtil permite instalar outro APK auxiliar de teste antes de executar testes de instrumentação, como o Android Test Orchestrator:

      Groovy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • testOptions.unitTests.includeAndroidResources foi adicionado para oferecer suporte a testes de unidade que exigem recursos do Android, como Roboelectric (em inglês). Quando você configura essa propriedade como true, o plug-in executa mesclagem de recursos, e manifestos antes de executar os testes de unidade. Seus testes podem inspecionar com/android/tools/test_config.properties no caminho de classe para as seguintes chaves:

      • android_merged_assets: o caminho absoluto para o diretório de assets mesclados.

        Observação: para módulos de biblioteca, os recursos mesclados não contêm os recursos de dependências. Consulte o problema 65550419.

      • android_merged_manifest: o caminho absoluto para o arquivo de manifesto mesclado.

      • android_merged_resources: o caminho absoluto para o diretório de recursos mesclados, que contém todos os recursos do módulo e suas respectivas dependências.

      • android_custom_package: o nome do pacote da classe R final. Se você modificar dinamicamente o ID do aplicativo, talvez esse nome de pacote não corresponda ao atributo package no manifesto do app.

    • Suporte a fontes como recursos, que é uma nova funcionalidade apresentada no Android 8.0 (API de nível 26).
    • Suporte a APKs específicos de idiomas com o SDK 1.1 do Apps instantâneos Android ou mais recente.
    • Agora, você pode mudar o diretório de saída para seu projeto de build nativo externo, conforme mostrado abaixo:

      Groovy

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • Agora você pode usar o CMake 3.7 ou mais recente quando criar projetos nativos do Android Studio.
    • A nova configuração de dependência lintChecks permite criar um JAR que define regras de lint personalizadas e o empacote nos seus projetos AAR e APK.

      Suas regras de lint personalizadas precisam pertencer a um projeto separado que produza um único JAR e inclua apenas dependências compileOnly. Dessa forma, outros apps e módulos de biblioteca podem depender do seu projeto de lint usando a configuração lintChecks:

      Groovy

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    Mudanças de comportamento

    • O plug-in do Android 3.0.0 remove algumas APIs, e seu build vai apresentar falhas se você usá-las. Por exemplo, não é mais possível usar a API Variants para acessar objetos outputFile() ou usar processManifest.manifestOutputFile() para receber o arquivo de manifesto para cada variante. Para saber mais, leia as Mudanças na API.
    • Não é mais necessário especificar uma versão para o Build Tools, portanto, agora você pode remover a propriedade android.buildToolsVersion. Por padrão, o plug-in usa automaticamente a versão mínima necessária do Build Tools para a versão do plug-in do Android que você está usando.
    • Agora, você pode ativar ou desativar o processamento de PNG no bloco buildTypes, conforme mostrado abaixo. O processamento de PNG é ativado por padrão para todos os builds, exceto os de depuração, porque isso aumenta o tempo de build de projetos que tenham muitos arquivos PNG. Para melhorar os tempos de build de outros tipos, é necessário desativar o processamento de PNG ou converter suas imagens em WebP.

      Groovy

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • Agora, o plug-in do Android cria automaticamente destinos executáveis que podem ser configurados nos seus projetos externos do CMake.
    • Agora você precisa adicionar processadores de anotações ao caminho de classe do processador usando a configuração de dependência annotationProcessor.
    • O uso do ndkCompile descontinuado é mais restrito. Em vez disso, você precisa migrar para o CMake ou o ndk-build para compilar o código nativo que quer empacotar no seu APK. Para saber mais, leia Migrar do ndkcompile.

    2.3.0 (fevereiro de 2017)

    2.3.3 (junho de 2017)

    Esta é uma pequena atualização que adiciona compatibilidade com o Android Studio 2.3.3.

    2.3.2 (maio de 2017)

    Esta é uma atualização secundária que adiciona compatibilidade com o Android Studio 2.3.2.

    2.3.1 (abril de 2017)

    Esta é uma atualização secundária do plug-in do Android 2.3.0 que corrige um problema em que alguns dispositivos físicos Android não funcionavam corretamente com o Instant Run. Consulte o problema 235879.

    Dependências:
    Novidade:
    • Usa o Gradle 3.3, que inclui melhorias de desempenho e novos recursos. Para saber mais, consulte as notas da versão do Gradle (em inglês).
    • Cache de build: armazena algumas saídas geradas pelo plug-in do Android ao criar seu projeto, como AARs não empacotados e dependências remotas pré-dexadas. Seus builds limpos são muito mais rápidos quando você usa o cache, porque o sistema de build pode simplesmente reutilizar os arquivos em cache nos builds subsequentes, em vez de os recriar. Os projetos que usam o plug-in do Android 2.3.0 e versões mais recentes usam o cache de build por padrão. Para saber mais, consulte Melhorar a velocidade de build com o cache de build.
      • Inclui uma tarefa cleanBuildCache que limpa o cache de build.
      • Se você está usando a versão experimental do cache de build, incluída em versões anteriores do plug-in, atualize o plug-in para a versão mais recente.
    Mudanças:

    2.2.0 (setembro de 2016)

    Dependências:
    Novidade:
    • Usa o Gradle 2.14.1, que inclui melhorias de desempenho e novos recursos, além de corrigir uma vulnerabilidade de segurança que permite o escalonamento de privilégios locais ao usar o daemon do Gradle. Para ver mais detalhes, consulte as notas da versão do Gradle (em inglês).
    • Com o uso da DSL externalNativeBuild {}, o Gradle agora permite a vinculação a origens nativas e a compilação de bibliotecas nativas usando o CMake ou o ndk-build. Depois de criar suas bibliotecas nativas, o Gradle as empacota no seu APK. Para saber mais sobre como usar o CMake e o ndk-build com o Gradle, leia Adicionar código C e C++ ao seu projeto.
    • Quando você executa um build na linha de comando, o Gradle agora tenta fazer o download automático de todos os componentes ou atualizações do SDK ausentes de que seu projeto depende. Para saber mais, leia Download automático de pacotes ausentes com o Gradle.
    • Um novo recurso experimental de armazenamento em cache permite que o Gradle acelere o tempo de build ao fazer a pré-dexação, o armazenamento e a reutilização das versões pré-dexadas das bibliotecas. Para saber mais sobre como usar esse recurso experimental, leia o guia Cache de build.
    • Melhora o desempenho do build adotando um novo pipeline de empacotamento padrão que cuida da compactação, assinatura e zipaligning em uma tarefa. Você pode voltar a usar as ferramentas de empacotamento anteriores adicionando android.useOldPackaging=true ao arquivo gradle.properties. Ao usar a nova ferramenta de empacotamento, a tarefa zipalignDebug não ficará disponível. No entanto, você pode criar uma chamando o método createZipAlignTask(String taskName, File inputFile, File outputFile).
    • A assinatura do APK agora usa o Esquema de assinatura de APK v2, além da assinatura JAR tradicional. Todas as plataformas Android aceitam os APKs resultantes. Qualquer modificação nesses APKs, após a assinatura, invalida as assinaturas v2 e impede a instalação em dispositivos. Para desativar esse recurso, adicione o seguinte ao seu arquivo build.gradle no módulo:

      Groovy

      android {
        ...
        signingConfigs {
          config {
            ...
            v2SigningEnabled false
          }
        }
      }
            

      Kotlin

      android {
        ...
        signingConfigs {
          create("config") {
            ...
            v2SigningEnabled = false
          }
        }
      }
            
    • Para builds multidex, agora você pode usar as regras do ProGuard para determinar quais classes o Gradle precisa compilar no arquivo DEX principal do app. Como o sistema Android carrega primeiro o arquivo DEX principal ao iniciar seu app, você pode priorizar determinadas classes na inicialização, compilando-as no arquivo DEX principal. Depois de criar um arquivo de configuração do ProGuard especificamente para seu arquivo DEX principal, transmita o caminho do arquivo de configuração para o Gradle usando buildTypes.multiDexKeepProguard. O uso dessa DSL é diferente do uso de buildTypes.proguardFiles (em inglês), que fornece regras gerais do ProGuard para o app e não especifica classes para o arquivo DEX principal.
    • Foi adicionado suporte à flag android:extractNativeLibs, que pode reduzir o tamanho do app quando você o instala em um dispositivo. Quando você configura essa flag como false no elemento <application> do manifesto do app, o Gradle empacota as versões descompactadas e alinhadas das suas bibliotecas nativas com seu APK. Isso impede que o PackageManager copie as bibliotecas nativas do APK para o sistema de arquivos do dispositivo durante a instalação, além de oferecer o benefício de diminuir as atualizações delta do seu app.
    • Agora você pode especificar versionNameSuffix e applicationIdSuffix para variações de produto (problema 59614).
    Mudanças:
    • O getDefaultProguardFile agora retorna os arquivos do ProGuard padrão fornecidos pelo Plug-in do Android para Gradle e não usa mais os que estão no SDK do Android.
    • Melhoria no desempenho e nos recursos do compilador Jack:
      • Agora, o Jack oferece suporte à cobertura de teste Jacoco quando testCoverageEnabled é configurado como true.
      • O suporte a processadores de anotações foi melhorado. Os processadores de anotações no seu caminho de classe, como as dependências compile, são aplicados automaticamente à build. Você também pode especificar um processador de anotação no seu build e transmitir argumentos usando a DSL javaCompileOptions.annotationProcessorOptions {} (em inglês) no arquivo build.gradle no módulo:

        Groovy

        android {
          ...
          defaultConfig {
            ...
            javaCompileOptions {
              annotationProcessorOptions {
                className 'com.example.MyProcessor'
                // Arguments are optional.
                arguments = [ foo : 'bar' ]
              }
            }
          }
        }
            

        Kotlin

        android {
          ...
          defaultConfig {
            ...
            javaCompileOptions {
              annotationProcessorOptions {
                className = "com.example.MyProcessor"
                // Arguments are optional.
                arguments(mapOf(foo to "bar"))
              }
            }
          }
        }
            

        Se você quiser aplicar um processador de anotações no tempo de compilação, sem o incluir no APK, use o escopo de dependência annotationProcessor:

        Groovy

        dependencies {
            compile 'com.google.dagger:dagger:2.0'
            annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
           // or use buildVariantAnnotationProcessor to target a specific build variant
        }
            

        Kotlin

        dependencies {
            implementation("com.google.dagger:dagger:2.0")
            annotationProcessor("com.google.dagger:dagger-compiler:2.0")
           // or use buildVariantAnnotationProcessor to target a specific build variant
        }
            
      • Para ver uma lista de parâmetros que podem ser configurados, execute o seguinte na linha de comando:

        java -jar /build-tools/jack.jar --help-properties
        
      • Por padrão, se o tamanho de heap do daemon Gradle for de pelo menos 1,5 GB, o Jack vai ser executado no mesmo processo que o Gradle. Para ajustar o tamanho de heap do daemon, adicione o seguinte ao seu arquivo gradle.properties:
        # This sets the daemon heap size to 1.5GB.
        org.gradle.jvmargs=-Xmx1536M
        

    2.1.0 (abril de 2016)

    2.1.3 (agosto de 2016)

    Esta atualização requer o Gradle 2.14.1 e versões mais recentes. O Gradle 2.14.1 inclui melhorias de desempenho, novos recursos e uma correção de segurança importante. Para mais detalhes, consulte as notas da versão do Gradle (links em inglês).

    Dependências:
    Novidade:
    • Adicionado suporte aos recursos da linguagem Java 8, do N Developer Preview e do JDK 8 usando o conjunto de ferramentas Jack. Para saber mais, leia o Guia do N Preview.

      Observação: o Instant Run não funciona com o Jack e vai ser desativado enquanto o novo conjunto de ferramentas estiver em uso. Você só precisa usar o Jack quando está desenvolvendo para N Preview e quer usar os recursos da linguagem com suporte ao Java 8.

    • Adicionado suporte padrão à compilação Java incremental para reduzir o tempo de compilação durante o desenvolvimento. Isso é feito apenas com a recompilação de partes da origem que foram alteradas ou que precisam ser recompiladas. Para desativar esse recurso, adicione o seguinte ao seu arquivo build.gradle no módulo:

      Groovy

      android {
        ...
        compileOptions {
          incremental false
        }
      }
      

      Kotlin

      android {
        ...
        compileOptions {
          incremental = false
        }
      }
      
    • Adicionado suporte à dexação no processo, executada no processo de build em vez de um processo de VM externo. Isso não só torna os builds incrementais mais rápidos, mas também agiliza os builds completos. O recurso é ativado por padrão para projetos com o tamanho de heap máximo do daemon Gradle configurado como, pelo menos, 2.048 MB. Você pode fazer isso incluindo o seguinte no arquivo gradle.properties do seu projeto:

      ```none org.gradle.jvmargs = -Xmx2048m ```

      Se você definiu um valor para javaMaxHeapSize no seu arquivo build.gradle no módulo, é necessário definir org.gradle.jvmargs para o valor de javaMaxHeapSize + 1024 MB. Por exemplo, se você configurou javaMaxHeapSize como "2048m", é necessário adicionar o seguinte ao arquivo gradle.properties do seu projeto:

      ```none org.gradle.jvmargs = -Xmx3072m ```

      Para desativar a dexação no processo, adicione o seguinte código ao seu arquivo build.gradle no módulo:

      Groovy

      android {
        ...
        dexOptions {
            dexInProcess false
        }
      }
      

      Kotlin

      android {
        ...
        dexOptions {
            dexInProcess = false
        }
      }
      

    2.0.0 (abril de 2016)

    Dependências:
    Novidade:
    • Ativado o Instant Run, oferecendo suporte à injeção de bytecode e ao envio de atualizações de código e recursos para um app em execução no emulador ou em um dispositivo físico.
    • Adicionado suporte a builds incrementais mesmo quando o app não está em execução. Os tempos de build completos foram aprimorados pelo envio de mudanças incrementais pelo Android Debug Bridge ao dispositivo conectado.
    • maxProcessCount (em inglês) foi adicionado para controlar quantos processos de dex worker podem ser gerados simultaneamente. O código abaixo, presente no arquivo build.gradle do módulo, define o número máximo de processos simultâneos como 4:

      Groovy

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }
      

      Kotlin

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }
      
        </li>
      
        <li>Added an experimental code shrinker to support pre-dexing and reduce re-dexing
        of dependencies, which are not supported with Proguard. This improves the build
        speed of your debug build variant. Because the experimental shrinker does not
        support optimization and obfuscation, you should enable Proguard for your
        release builds. To enable the experimental shrinker for your debug builds, add
        the following to your module-level <code>build.gradle</code> file:
      

      Groovy

      android {
        ...
        buildTypes {
          debug {
            minifyEnabled true
            useProguard false
          }
          release {
            minifyEnabled true
            useProguard true // this is a default setting
          }
        }
      }
      

      Kotlin

      android {
        ...
        buildTypes {
          getByName("debug") {
            minifyEnabled = true
            useProguard = false
          }
          getByName("release") {
            minifyEnabled = true
            useProguard = true // this is a default setting
          }
        }
      }
      
        </li>
      
        <li>Added logging support and improved performance for the resource shrinker.
        The resource shrinker now logs all of its operations into a <code>resources.txt</code>
        file located in the same folder as the Proguard log files.
        </li>
      </ul>
      

    Comportamento mudado:
    • Quando minSdkVersion é configurado como 18 ou mais, a assinatura do APK usa o SHA256.
    •   <li>DSA and ECDSA keys can now sign APK packages.
      
          <p class="note">
            <strong>Note:</strong> The <a href=
            "/training/articles/keystore.html">Android keystore</a> provider no
            longer supports <a href=
            "/about/versions/marshmallow/android-6.0-changes.html#behavior-keystore">
            DSA keys on Android 6.0</a> (API level 23) and higher.
          </p>
      
        </li>
      </ul>
      

    Problemas corrigidos:
    • Corrigido um problema que causava dependências AAR duplicadas nas configurações de build de teste e principal.

    Plug-in do Android para Gradle, revisão 1.5.0 (novembro de 2015)

    Dependências:
    • Gradle 2.2.1 ou mais recente
    • Build Tools 21.1.1 ou versões mais recentes
    Observações gerais:
    • O plug-in Data Binding foi integrado ao plug-in do Android para Gradle. Para ativá-lo, adicione o seguinte código a cada arquivo build.gradle de projeto que use o plug-in:
    • android {
          dataBinding {
              enabled = true
          }
      }
              
      android {
          dataBinding {
              enabled = true
          }
      }
              
    • Foi adicionada uma nova API Transform para permitir que plug-ins de terceiros manipulem arquivos .class compilados antes de serem convertidos em arquivos .dex. A API Transform simplifica a injeção de manipulações de classe personalizadas, oferecendo mais flexibilidade em relação ao que você pode manipular. Para inserir uma Transform em um build, crie uma nova classe implementando uma das interfaces Transform e registre-a em android.registerTransform(theTransform) ou android.registerTransform(theTransform, dependencies). Não é necessário conectar as tarefas. Observe o seguinte sobre a API Transform:
      • Uma transformação pode ser aplicada a um ou mais dos seguintes itens: projeto atual, subprojetos e bibliotecas externas.
      • Uma Transform precisa ser registrada globalmente, o que a aplica a todas as variantes.
      • O processamento interno de código pela biblioteca Java Code Coverage (JaCoCo), do ProGuard e do MultiDex agora usa a API Transform. No entanto, o Java Android Compiler Kit (Jack) não usa essa API; somente o caminho do código javac/dx a usa.
      • O Gradle executa as Transforms nesta ordem: JaCoCo, plug-ins de terceiros, ProGuard. A ordem de execução para plug-ins de terceiros corresponde à ordem em que as Transforms são adicionadas pelos plug-ins. Desenvolvedores de plug-ins de terceiros não podem controlar a ordem de execução das Transforms com uma API.
    • O getter dex da classe ApplicationVariant foi descontinuado. Não é mais possível acessar a tarefa Dex pela API Variant porque agora isso é feito usando uma Transform. Atualmente, não há substituto para controlar o processo de dex.
    • Corrigido suporte incremental com recursos.
    • O suporte ao MultiDex foi aprimorado, tornando-o disponível para projetos de teste, e agora os testes têm automaticamente a dependência com.android.support:multidex-instrumentation.
    • Agora um build do Gradle pode falhar corretamente e informar a causa do erro subjacente quando o build do Gradle invoca tarefas assíncronas e ocorre um erro no processo do worker.
    • Foi adicionado suporte à configuração de uma Interface binária do aplicativo (ABI) específica em variantes que contenham várias ABIs.
    • Adicionado suporte a uma lista separada por vírgulas de números de série do dispositivo na variável de ambiente ANDROID_SERIAL ao instalar ou executar testes.
    • Corrigida uma falha de instalação em dispositivos com o Android 5.0 (nível 20 da API) e versões mais recentes quando o nome do APK contém um espaço.
    • Correção de vários problemas relacionados à saída de erro da Android Asset Packaging Tool (AAPT).
    • Inclusão de compatibilidade com instrumentação incremental de JaCoCo para builds incrementais mais rápidos. O Plug-in do Android para Gradle agora invoca o instrumentador JaCoCo diretamente. Para forçar uma versão mais recente do instrumentador JaCoCo, é preciso adicioná-la como uma dependência de script de build.
    • O suporte a JaCoCo foi corrigido para ignorar arquivos que não são classes.
    • Adicionado suporte ao drawable vetorial para gerar PNGs durante o build e oferecer compatibilidade com versões anteriores. O plug-in do Android para Gradle gera PNGs para cada drawable vetorial encontrado em um diretório de recursos que não especifique uma versão da API ou que especifique um atributo android:minSdkVersion de valor 20 ou menos no elemento <uses-sdk> do manifesto do app. Você pode configurar densidades de PNG usando a propriedade generatedDensities nas seções defaultConfig ou productFlavor de um arquivo build.gradle.
    • Adicionado o compartilhamento do android.jar simulado, que o plug-in gera apenas uma vez e usa para o teste de unidade. Vários módulos, como app e lib, agora o compartilham. Exclua $rootDir/build para gerá-lo novamente.
    • O processamento de recursos Java foi mudado para ocorrer antes das tarefas de ofuscação, e não mais durante o empacotamento do APK. Essa mudança permite que as tarefas de ofuscação tenham a chance de adaptar os recursos Java após a ofuscação de pacotes.
    • Correção de um problema com o uso do código da interface nativa do Java (JNI, na sigla em inglês) no plug-in da biblioteca experimental.
    • Inclusão da capacidade de definir a versão da plataforma separadamente do atributo android:compileSdkVersion no plug-in da biblioteca experimental.

    Plug-in do Android para Gradle, revisão 1.3.1 (agosto de 2015)

    Dependências:
    • Gradle 2.2.1 ou mais recente
    • Build Tools 21.1.1 ou mais recente
    Observações gerais:
    • A tarefa ZipAlign foi corrigida para consumir corretamente a saída da tarefa anterior ao usar um nome de arquivo personalizado.
    • O empacotamento Renderscript foi corrigido com o NDK.
    • Foi mantido o suporte à tarefa de build createDebugCoverageReport.
    • Corrigido o suporte ao uso personalizado da propriedade archiveBaseName no arquivo build build.gradle.
    • Correção do aviso Invalid ResourceType de lint causado pela pesquisa de anotação de método do parâmetro quando o lint era executado fora do Android Studio.

    Plug-in do Android para Gradle, revisão 1.3.0 (julho de 2015)

    Dependências:
    • Gradle 2.2.1 ou mais recente
    • Build Tools 21.1.1 ou mais recente
    Observações gerais:
    • Foi adicionado suporte à propriedade com.android.build.threadPoolSize para controlar o tamanho do conjunto de linhas de execução de tarefas Android no arquivo gradle.properties ou na linha de comando. O exemplo a seguir configura essa propriedade como 4.

              
              -Pcom.android.build.threadPoolSize=4
              
            
    • Foi definido o comportamento de build padrão para excluir arquivos LICENSE e LICENSE.txt dos APKs. Para incluir esses arquivos em um APK, remova-os da propriedade packagingOptions.excludes no arquivo build.gradle. Exemplo:
      android {
            packagingOptions.excludes = []
          }
            
      android {
            packagingOptions.excludes.clear()
          }
          
    • A tarefa sourceSets foi adicionada para inspecionar o grupo de todos os conjuntos de fontes disponíveis.
    • O suporte ao teste de unidade foi melhorado para reconhecer pastas de origem com diversas variações e variantes de build. Por exemplo, para testar um app com as variações flavor1 e flavorA com o tipo de build Debug, os conjuntos de origens de teste são:
      • test
      • testFlavor1
      • testFlavorA
      • testFlavor1FlavorA
      • testFlavor1FlavorADebug

      Os testes Android já reconheciam pastas de fontes com diversas variações.

    • Aprimoramento do suporte ao teste de unidade para:
      • executar javac nas origens principais e de teste, mesmo que a propriedade useJack esteja configurada como true no arquivo de build;
      • reconhecer corretamente as dependências de cada tipo de build.
    • Foi adicionado suporte à especificação de argumentos do executor de testes de instrumentação na linha de comando. Por exemplo:
      ./gradlew connectedCheck \
         -Pandroid.testInstrumentationRunnerArguments.size=medium \
         -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
              
    • Adicionado suporte a outros parâmetros arbitrários da Android Asset Packaging Tool (AAPT) no arquivo build.gradle. Exemplo:

      android {
          aaptOptions {
            additionalParameters "--custom_option", "value"
          }
      }
            
      android {
          aaptOptions {
            additionalParameters += listOf("--custom_option", "value")
          }
      }
            
    • Foi adicionado suporte a um módulo de APK de teste como um módulo de teste separado, usando as propriedades targetProjectPath e targetVariant para definir o caminho do APK e a variante de destino.

      Observação: um módulo de APK de teste não tem suporte a variações de produtos e só pode ser destinado a uma única variante. Além disso, ainda não há suporte a JaCoCo.

    • Adicionada validação de nome de recursos antes da mesclagem deles.
    • Ao criar um pacote do ARchive do Android (AAR) para módulos de biblioteca, não forneça um marcador de posição @{applicationId} automático nas configurações de combinação de manifestos. Em vez disso, use um marcador diferente, como @{libApplicationId}, e forneça um valor para ele se quiser incluir IDs do aplicativo na biblioteca do arquivo.

    Plug-in do Android para Gradle, revisão 1.2.0 (abril de 2015)

    Dependências:
    • Gradle 2.2.1 ou mais recente
    • Build Tools 21.1.1 ou versões mais recentes
    Observações gerais:
    • Melhoria no suporte à execução de testes de unidade com o Gradle.
      • Foi adicionado suporte ao acréscimo de recursos com estilo Java no caminho de classe ao executar testes de unidade diretamente no Gradle.
      • Inclusão de compatibilidade com dependência de teste de unidade para artefatos do ARchive do Android (AAR).
      • Foi adicionado suporte à propriedade unitTestVariants para que as variantes de teste de unidade possam ser manipuladas usando o arquivo build.gradle.
      • O bloco de código unitTest.all foi adicionado em testOptions para configurar tarefas personalizadas para teste de unidade. O exemplo de código a seguir mostra como adicionar configurações de teste de unidade usando essa nova opção:
        android {
          testOptions {
            unitTest.all {
              jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option.
            }
          }
        }
        
        android {
          testOptions {
            unitTest.all {
              jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option.
            }
          }
        }
                    
      • Corrigido o processamento de tipos enumerados e campos de instâncias públicas no empacotamento do arquivo mockable-android.jar.
      • Correção das dependências de tarefa do projeto de biblioteca para que as classes de teste sejam recompiladas após mudanças.
    • Inclusão da propriedade testProguardFile para aplicar arquivos ProGuard ao reduzir um APK de teste.
    • Inclusão da propriedade timeOut no bloqueio de código adbOptions para configurar o tempo máximo de gravação da tela do Android Debug Bridge.
    • Foi adicionado suporte a recursos de 280 dpi.
    • Melhor desempenho durante a avaliação de projetos.

    Plug-in do Android para Gradle, revisão 1.1.3 (março de 2015)

    Dependências:
    • Gradle 2.2.1 ou mais recente
    • Build Tools 21.1.1 ou versões mais recentes
    Observações gerais:
    • Correção do problema com as dependências duplicadas em um aplicativo de teste que acionava uma falha do ProGuard.
    • Correção na implementação do Comparator que não estava em conformidade com o contrato do JDK Comparador e gerava um erro no JDK 7.

    Plug-in do Android para Gradle, revisão 1.1.2 (fevereiro de 2015)

    Dependências:
    • Gradle 2.2.1 ou mais recente
    • Build Tools 21.1.1 ou versões mais recentes
    Observações gerais:
    • Normalização do caminho ao criar um JAR simulado para teste de unidade.
    • Correção da configuração archivesBaseName no arquivo build.gradle.
    • Corrigida a falha de marcador de posição não resolvida na combinação de manifesto ao criar um aplicativo de teste de biblioteca.

    Plug-in do Android para Gradle, revisão 1.1.1 (fevereiro de 2015)

    Dependências:
    • Gradle 2.2.1 ou mais recente
    • Build Tools 21.1.1 ou versões mais recentes
    Observações gerais:
    • Modificação das variantes de build para que somente variantes que empacotam um app Wear acionem tarefas específicas do Wear.
    • Mudança de problemas relacionados a dependências para que causem falha no tempo de build, e não no de depuração. Esse comportamento permite executar tarefas de diagnóstico (como "dependências") para resolver o conflito.
    • Correção do método android.getBootClasspath() para retornar um valor.

    Plug-in do Android para Gradle, revisão 1.1.0 (fevereiro de 2015)

    Dependências:
    • Gradle 2.2.1 ou mais recente
    • Build Tools 21.1.1 ou versões mais recentes
    Observações gerais:
    • Adicionado suporte ao novo teste de unidade.
      • Ativação de testes de unidade para execução na JVM local em uma versão especial do arquivo android.jar, que é compatível com frameworks de simulação conhecidos, como o Mockito.
      • Adicionadas novas tarefas de teste testDebug, testRelease e testMyFlavorDebug ao usar variações de produto.
      • Inclusão de novas pastas de fonte reconhecidas como testes de unidade: src/test/java/, src/testDebug/java/, src/testMyFlavor/java/.
      • Inclusão de novas configurações no arquivo build.gradle para declarar dependências somente de teste, por exemplo, testCompile 'junit:junit:4.11', testMyFlavorCompile 'some:library:1.0'.

        Observação: atualmente, dependências somente de teste não são compatíveis com o Jack (Java Android Compiler Kit).

      • Inclusão da opção android.testOptions.unitTests.returnDefaultValues para controlar o comportamento do android.jar simulado.
    • Test foi substituído em nomes de tarefas de teste por AndroidTest. Por exemplo, a tarefa assembleDebugTest agora é chamada de assembleDebugAndroidTest. Tarefas de teste de unidade ainda têm UnitTest no nome da tarefa, por exemplo, assembleDebugUnitTest.
    • Modificação dos arquivos de configuração do ProGuard para que eles não sejam mais aplicados ao APK de teste. Se a minificação estiver ativada, o ProGuard vai processar o APK de teste e aplicar somente o arquivo de mapeamento gerado ao minificar o APK principal.
    • Atualização do gerenciamento de dependências.
      • Correção de problemas usando os escopos provided e package.

        Observação: esses escopos são incompatíveis com os pacotes ARchive do Android (AAR) e causam falha em um build com pacotes AAR.

      • Resolução de dependência modificada para comparar as dependências de um app em teste com as do app de teste. Se um artefato com a mesma versão for encontrado para os dois apps, ele não vai ser incluído no app de teste e será empacotado apenas quando ele estiver sendo testado. Se um artefato com uma versão diferente for encontrado para os dois apps, o build falhará.
    • Foi adicionado suporte para o qualificador de recurso anyDpi no mesclador de recursos.
    • Aprimoramento das avaliações e velocidades de sincronização do ambiente de desenvolvimento integrado para projetos com um grande número de módulos Android.

    Plug-in do Android para Gradle, revisão 1.0.1 (janeiro de 2015)

    Dependências:
    • Gradle 2.2.1 a 2.3.x

      Observação: esta versão do plug-in do Android para Gradle não é compatível com o Gradle 2.4 e versões mais recentes.

    • Build Tools 21.1.1 ou versões mais recentes
    Observações gerais:
    • Corrigido um problema de falha de build do Gradle ao acessar o módulo extractReleaseAnnotations (problema 81638).
    • Correção do problema com Disable transmitindo a configuração --no-optimize para o bytecode do Dalvik Executable (dex) (problema 82662).
    • Correção de problemas de combinação de manifesto ao importar bibliotecas com uma targetSdkVersion anterior a 16.
    • Corrigido um problema de ordem de densidade ao usar o Android Studio com JDK 8.

    Plug-in do Android para Gradle, revisão 1.0.0 (dezembro de 2014)

    Dependências:
    • Gradle 2.2.1 a 2.3.x

      Observação: esta versão do plug-in do Android para Gradle não tem suporte ao Gradle 2.4 e versões mais recentes.

    • Build Tools 21.1.1 ou versões mais recentes
    Observações gerais:
    • Versão inicial do plug-in.