The Android Developer Challenge is back! Submit your idea before December 2.

Notas da versão do Android Studio

O Android Studio é o ambiente de desenvolvimento integrado (IDE, na sigla em inglês) oficial para desenvolvimento no Android e conta com tudo o que você precisa para criar apps Android.

Para instalar a versão mais recente, clique em Help > Check for updates (no Mac, Android Studio > Check for updates).

Você também pode fazer o download do Android Studio neste link.

Se você encontrar problemas no Android Studio, verifique a página Problemas conhecidos ou Resolver problemas.

Para ver as notícias mais recentes sobre as versões, inclusive uma lista das principais correções em cada versão de pré-lançamento, consulte as atualizações da versão (link em inglês).

Para ver informações sobre o que há de novo no plug-in do Android para Gradle, acesse as notas da versão.

3.4 (abril de 2019)

O Android Studio 3.4 é uma versão principal que inclui vários novos recursos e melhorias.

3.4.2 (julho de 2019)

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

3.4.1 (maio de 2019)

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

Problemas conhecidos da 3.4.0

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

  • Ao usar a Data Binding Library, LiveDataListener.onChanged() pode falhar com uma NPE. Uma correção para esse problema 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 (link em inglês).

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 (link em inglês).

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

Para mais informações 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 compilação, configurações de assinatura e variáveis de compilação.

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. Veja descrições de algumas das seções novas e atualizadas da PSD abaixo.

Variables

A nova seção de variáveis da PSD permite criar e gerenciar variáveis de compilação, 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 compilação que já existem nos scripts de compilação do Gradle do projeto.
  • Adicione novas variáveis de compilação em um nível do projeto ou do módulo diretamente da PSD.

Modules

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

Dependencies

Inspecione e visualize cada dependência no gráfico de dependências 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 primeiro 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 quer adicionar.

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

Build Variants

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

Suggestions

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

Novo Resource Manager

O Resource Manager é uma nova janela de ferramentas para importar, criar, gerenciar e usar recursos no seu app. Para abrir a janela de ferramentas, selecione 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 VectorDrawable: 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 alterar 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.

Verificar IDs de compilação ao criar perfis e depurar APKs

Quando você fornece arquivos de símbolos de depuração para as bibliotecas compartilhadas .so dentro do seu APK, o Android Studio verifica se o ID da compilação dos arquivos de símbolos fornecidos coincide com o ID da compilação das bibliotecas .so dentro do APK.

Se você compilar as bibliotecas nativas do seu APK com um ID de compilação, o Android Studio verificará 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 de compilação, fornecer 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 da compilação (link em inglês). O R8 foi introduzido no plug-in do Android para Gradle 3.3.0 e agora está ativado por padrão para os projetos de biblioteca Android e aplicativo usando o plug-in 3.4.0 ou posterior.

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

Antes do R8, o ProGuard era um passo de compilação diferente de dexação e simplificação.

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

Com R8, simplificação, redução, ofuscação, otimizanção e dexação são todos executados em uma única etapa de compilação.

O R8 foi projetado para funcionar com as regras existentes do ProGuard. Desse modo e provavelmente, nenhuma ação é necessária para se beneficiar do R8. No entanto, como é uma tecnologia diferente do ProGuard e foi projetada especificamente para projetos Android, a redução e a otimização podem ter como resultado a remoção de códigos que o ProGuard talvez não tenha. Assim, nessa situação improvável, talvez seja necessário adicionar outras regras para manter esse código no resultado da compilação.

Se você tiver problemas ao usar o R8, leia as Perguntas frequentes de compatibilidade do R8 (link em inglês) para verificar se há uma solução para o problema. Se nenhuma solução tiver sido documentada, informe um bug (link em inglês). 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
    

Agora todos os tipos de argumentos compatíveis com o componente Navigation são também compatíveis com o Navigation Editor. Para mais informações sobre tipos compatíveis, consulte Transmitir dados entre destinos.

Melhorias no 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 seguintes atualizações:

  • Uma nova seção Declared Attributes lista os atributos especificados pelo arquivo de layout e permite que você adicione novos atributos rapidamente.
  • Agora, o painel Attributes também apresenta indicadores ao lado de cada atributo. Esses indicadores serão exibidos 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 vermelhos 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 de intent 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 de intent 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 de 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 vários novos recursos e melhorias.

3.3.2 (março de 2019)

Essa é uma atualização secundária que inclui várias correções de bugs e melhorias no desempenho. Para ver uma lista das correções de bugs mais importantes, leia a postagem correspondente no blog Atualizações de versão (link 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 IDE principal do Android Studio foi atualizado com melhorias da versão 2018.2.2 do IntelliJ IDEA.

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

Para mais informações sobre as novidades no plug-in do Android para Gradle, consulte as notas da versão.

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

Para ver mais informações, 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 as quais uma instalação correspondente não é encontrada. A caixa de diálogo Delete Unused Android Studio Directories exibe os locais, tamanhos e horários da última modificação desses diretórios não usados e fornece uma opção para excluí-los.

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 ajudam a agilizar a criação de novos projetos do Android Studio.

Para mais informações, 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 (link em inglês), especialmente 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 aplicativo durante a criação de perfil, o Memory Profiler analisa as alocações de memória periodicamente por padrão. Se quiser, você pode alterar 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 posterior.

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 encontrar 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 ao fazer uma gravação da CPU e, em seguida, retornará à 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 IU principal e no RenderThread. Esses dados podem ser úteis ao investigar afunilamentos que causam instabilidade de IU e baixas frame rates. Por exemplo, cada frame que demora mais do que os 16 ms necessários para manter uma frame rate eficiente é exibido 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 trace, procure informações sobre cada frame na linha do tempo para a gravação na seção chamada FRAMES, como 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 do fragmento.

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

Anteriormente, o Network Profiler exibia 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 exibir o texto formatado e no link View Source para exibir o texto bruto.

Para mais informações, 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 aceito anteriormente todos os contratos de licença relacionados usando o SDK Manager.

Para mais informações, consulte Download automático de pacotes ausentes com o Gradle.

Suporte para Clang-Tidy

O Android Studio agora é compatível com a análise de código estático usando o Clang-Tidy para projetos que incluem código nativo. Para ativar a compatibilidade com o Clang-Tidy, atualize seu NDK para r18 ou posterior.

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 será exibida na seção Option do último painel à direita. Para ativar outras verificações (link em inglês), adicione-as à lista e clique em Apply.

Para configurar o Clang-Tidy com opções adicionais (link 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 Customize C++ Support:

  • Exceptions Support (-fexceptions)
  • Runtime Type Information Support (-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, adicione este código ao arquivo build.gradle do seu módulo:

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

Para mais informações sobre como configurar o CMake no build.gradle, consulte Configurar o Gradle manualmente.

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

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

Os Android App Bundles agora são compatíveis com Instant Apps

O Android Studio agora permite criar Android App Bundles com compatibilidade total com o 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 incluí-las 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 compatibilidade com 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 recurso dinâmico ativado por Instant selecionando File > New > New Module na barra de menus e, em seguida, selecionando Instant Dynamic Feature Module na caixa de diálogo Create New Module. Tenha em mente que a criação desse módulo também ativa instantaneamente o módulo base do app.

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 da compilação é 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. Se seu projeto usar diversas variantes de compilação, agora você poderá otimizar as sincronizações, limitando-as apenas à variante selecionada no momento.

Você precisa usar o Android Studio 3.3 ou posterior com o plug-in do Android para Gradle 3.3.0 ou posterior para ativar essa otimização. Quando você atende a esses requisitos, o IDE solicita 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.

Para mais informações, consulte Ativar sincronização de projeto de variante única.

Fornecer feedback rápido

Se você optou por compartilhar estatísticas de uso para ajudar a melhorar o Android Studio, estes dois novos ícones serão exibidos na barra de status na parte inferior da janela do IDE:

Basta clicar no ícone que melhor representa sua experiência atual com o IDE. Quando você fizer isso, o IDE enviará estatísticas para ajudar a equipe do Android Studio a entender melhor sua opinião. Em alguns casos, como ao indicar uma experiência negativa com o IDE, você terá a oportunidade de fornecer outro feedback.

Se ainda não tiver feito isso, ative as estatísticas de uso de compartilhamento. Para fazer isso, 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 vários recursos novos 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 de navegação, 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 a falha do IntelliSense e de outros recursos do CLion.
    • Adicionar um SliceProvider estava causando erros de compilação em projetos que não usam bibliotecas androidx.*.
    • Alguns testes de unidade do Kotlin não estavam sendo executados.
    • Um problema com vinculação de dados estava causando uma PsiInvalidElementAccessException.
    • Elementos <merge>, às vezes, causavam falha do Layout Editor.

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 posteriores do Kotlin, no entanto, incluem a correção.

  • Normalmente, não é necessário especificar a versão das ferramentas de compilação. Porém, quando usar o plug-in do Android Gradle 3.2.0 com o renderscriptSupportModeEnabled definido como true, você precisará incluir o seguinte código no arquivo build.gradle cada módulo:

    android.buildToolsVersion "28.0.3"

Assistente "What's New"

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 a compatibilidade com o Jetpack. Para saber mais, consulte a documentação do Jetpack.

O novo Navigation Editor integra-se 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. Esse 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, selecione 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 Android Support Libraries para uma nova biblioteca de extensões do Android usando o namespace androidx. Para mais informações, 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 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 compilação do Android Studio também converterá essas dependências do projeto automaticamente.

O plug-in do Android para Gradle fornece as seguintes sinalizações globais que podem ser definidas no arquivo gradle.properties:

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

As duas sinalizações serão definidas como true quando você usar o comando Migrate to AndroidX.

Se você quiser começar a usar as bibliotecas do AndroidX imediatamente e não precisar converter bibliotecas de terceiros, defina a sinalização android.useAndroidX como true e a 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 veiculação de apps do Google Play, chamado de Dynamic Delivery, usa seu pacote de apps para gerar e disponibilizar APKs otimizados para a configuração de dispositivo de cada usuário, para que eles façam o download apenas do código e dos recursos necessários à execução do app. Não é mais preciso criar, assinar e gerenciar vários APKs, e os usuários fazem downloads menores e mais otimizados.

Além disso, é possível adicionar módulos de recursos dinâmicos ao projeto do app e incluí-los no pacote de apps. Com a Dynamic Delivery, seus usuários poderão fazer o download dos recursos dinâmicos do app e instalá-los 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 ajudar a 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 de primeiros passos 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 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 IDE.

Quando você gravar um trace de método ou capturar um despejo de heap, o IDE adicionará esses dados (com a atividade de rede do seu app) como uma entrada separada à sessão atual, e você poderá alternar facilmente entre as gravações para comparar dados.

System Trace

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 trace é criada no systrace e é útil para investigar problemas no nível do sistema, como instabilidade de IU.

Ao usar essa configuração de trace, 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 posterior, agora será possível inspecionar as alocações de memória para o código JNI do app usando o Memory Profiler.

Enquanto seu 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 despejo de heap de memória

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

Para importar, seu arquivo .hprof, clique em Start new profiler session no painel Sessions do Profiler e, em seguida, selecione Load from file. Em seguida, você poderá inspecionar os dados no Memory Profiler como faria com qualquer outro despejo de heap.

Para salvar dados de despejo de heap 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 aparece, salve o arquivo com a extensão de nome de arquivo .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 uma configuração de gravação da CPU a ser usada no menu suspenso.
  4. Implante seu app em um dispositivo com Android 8.0 (API de nível 26) ou versão posterior selecionando Run > Profile.

Exportar traces da CPU

Depois de gravar a atividade da CPU com o CPU Profiler, é possível exportar os dados como um arquivo .trace para compartilhá-los com outras pessoas ou inspecioná-los posteriormente.

Faça o seguinte para exportar traces 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 trace da CPU

Agora é possível importar e inspecionar arquivos .trace criados com a API Debug ou o CPU Profiler. Atualmente, não é possível importar gravações do System Trace.

Para importar o arquivo de trace, clique em Start new profiler session no painel Sessions e, em seguida, 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 da linha de execução indica apenas onde os dados de trace estão disponíveis para cada linha de execução, e não os estados reais delas (por exemplo, em execução, em espera ou em repouso).

Gravar a atividade da CPU usando a API Debug

Agora, no CPU Profiler, você pode iniciar e parar a gravação da atividade da CPU pela instrumentação do app com a API Debug. Depois de implantar o app em um dispositivo, o Profiler iniciará automaticamente a gravação da atividade da CPU quando o app chamar startMethodTracing(String tracePath). Além disso, ele 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 exibe uma visualização do uso de energia estimado do seu app, bem como eventos do sistema que afetam o uso de energia, como wakelocks, alarmes e tarefas.

O Energy Profiler é exibido como uma nova linha na parte inferior 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 posterior.

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.

Para ver a pilha de chamadas e outros detalhes de um evento do sistema, como um wakelock, selecione-o no painel de eventos. Para ir para 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 compilações de linha de comando, adicione o seguinte código 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 avisarão você se uma ação primária não for atribuída a um Slice.

Novo destino 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 gravado, além de avisar caso ele seja 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.

Códigos de problemas mais detectáveis

Os códigos de problemas agora são exibidos 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 por meio de lintOptions no build.gradle.

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

Data Binding 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 compilação. 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. Para começar a usar a versão de pré-lançamento do R8, inclua o seguinte código no arquivo gradle.properties do seu projeto:

android.enableR8 = true
    

Alteração de ABIs padrão para vários APKs

Ao criar vários APKs voltados para ABIs diferentes, 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, será preciso usar o NDK r16b ou anterior e especificar as ABIs no arquivo build.gradle, como mostrado abaixo:

    splits {
        abi {
            include 'armeabi', 'mips', 'mips64'
            ...
        }
    }
    

Melhoria de recursos do editor para arquivos de compilação 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 ajudar você a editar os scripts de compilação do CMake, como estes:

  • Destaque de sintaxe e preenchimento de código: o IDE 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 Control (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 compilação do CMake.
  • Refatoração segura: as ferramentas integradas de refatoração do IDE agora também verificam se você está renomeando ou excluindo os arquivos usados como referências nos scripts de compilação 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 compiladas 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 IDE 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 posterior. Agora, esteja você implantando em um dispositivo ou criando um APK para lançamento, o plug-in do Android para Gradle ativa a multidexação nativa para todos os módulos com definição minSdkVersion=21 ou posterior.

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 arquivo build.gradle, como mostrado aqui:

      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 passo a passo para ajudar a configurar e usar um dispositivo por meio da 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 do 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 mais informações sobre o que há de novo e o que foi alterado 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 artefatos kotlin-stdlib-jdk* artifacts, em vez de com kotlin-stdlib-jre*, que estão obsoletos.
  • 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 Data Binding Compiler dependia de uma versão antiga do 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.
  • Compilações configuradas 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, as compilações 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 suspensão de uso da configuração de dependência compile foi atualizado com uma orientação mais adequada sobre as configurações de implementation e de api. Para mais 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 IDE 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 mais 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, junções, 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 reescreve 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 reescreve 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 escolha 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 Control (Command no Mac) enquanto clica na entidade.

Para mais informações 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 você usa para observar objetos LiveData.

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

  • Você pode ver um novo compilador incremental para suas classes de vinculação de dados. Para ver 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
  • Melhoria na geração de código (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 alteração no código ou no fluxo de trabalho de desenvolvimento para ter esses benefícios, a menos que tenha desativado manualmente o compilador D8 anteriormente. Se você definir android.enableD8 como false em seu gradle.properties, exclua esse sinalizador ou configure-o como true:

android.enableD8=true
    

Para 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 compilação.

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

É possível desabilitar a simplificação incremental especificando o seguinte no arquivo gradle.properties do 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 mais detalhes sobre como usar a nova janela simplificada do Build, consulte Monitorar o processo de compilação.

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

A sincronização com Gradle e os processos de indexação de IDE 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 grandes projetos C++, deve 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 para projetos grandes.

  • Melhoria no desempenho ao compilar e sincronizar com o CMake por meio da 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 posteriores.

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 de Kotlin.

Para cada projeto em que você quer executar o lint, o repositório Maven do Google deve 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 posteriores.

Ferramentas de desempenho

Exemplos de processos C++ nativos com o CPU Profiler

O CPU Profiler agora inclui uma configuração padrão para gravar traces 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 posterior e selecione Sampled (Native) no menu suspenso de configurações de gravação do CPU Profiler. Depois disso, grave e inspecione um trace como faria normalmente.

Você pode alterar 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 traces de CPU, resultados de alocação de memória e despejos de heap

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

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 Control + 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 mais informações sobre a filtragem por método, classe ou nome do pacote, consulte Gravar e inspecionar traces do método.

Guia "Request" no Network Profiler

O Network Profiler agora inclui uma guia Request que fornece detalhes sobre solicitações 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ê poderá selecionar uma das seguintes guias para ver mais detalhes 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 solicitação, você pode inspecionar o tamanho, o tipo, o status e a duração da transmissão.
  • Thread View: exibe a atividade de rede de cada uma das linhas de execução de CPU do app. Essa visualização permite que você inspecione quais linhas de execução do app são responsáveis por cada solicitação 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 fazer adições com um comando Favorite
  • Melhoria na pesquisa de visualizações e layouts
  • 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 superior 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 abrirá 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 posterior, o Instant Run pode implantar alterações nos recursos sem causar uma reinicialização do app. Isso é possível porque os recursos estão em um APK dividido.

Emulator

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

As principais melhorias incluem o seguinte:

  • Inicialização rápida de snapshots 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 Visualização do desenvolvedor 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. Comandos que estavam anteriormente sob este 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 através do Device Monitor agora é fornecida por ferramentas novas e aprimoradas.

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 tem disponíveis.

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, poderá 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 Cancel 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 erros 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 compilação 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 de compilação 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 variantes que você está compilando.
  • Tempos de compilação incrementais mais rápidos ao aplicar alterações simples no código ou nos recursos.

Esta versão também inclui o seguinte:

Para mais informações sobre o que foi alterado, 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.

Compatibilidade com o Kotlin

Conforme anunciado no Google I/O 2017, a linguagem de programação Kotlin agora é oficialmente compatível com o Android. Portanto, com esta versão, o Android Studio inclui compatibilidade com a linguagem Kotlin para desenvolvimento do Android.

É possível incorporar o Kotlin no 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 a melhor compatibilidade da linguagem Java 8 incorporada 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, visualizar 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 superior da janela, mostra eventos de toque, pressionamentos de tecla e mudanças de atividades, para que você tenha mais contexto para entender outros eventos de desempenho na linha do tempo.

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

CPU Profiler

O CPU Profiler ajuda você a analisar o uso da linha de execução da CPU do app pelo acionamento de um trace de CPU instrumentada ou de amostra. Em seguida, você pode solucionar problemas de desempenho da CPU usando vários modos de visualização de dados e filtros.

Para mais informações, consulte o Guia do CPU Profiler.

Memory Profiler

O Memory Profiler ajuda a identificar vazamentos e desligamento 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 despejo de heap, forçar coletas de lixo e rastrear alocações de memória.

Para mais informações, 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 mais informações, consulte o Guia do Network Profiler.

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

O Android Studio agora permite que você crie perfis e depure qualquer APK sem ter que criá-lo a partir de 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 visualizar 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.

Compatibilidade com o Instant Apps

A nova compatibilidade com Instant Apps Android permite que você crie Instant Apps no seu projeto usando dois novos tipos de módulos: Instant App e Feature. Eles exigem a instalação do SDK de desenvolvimento de Instant Apps.

O Android Studio também inclui uma nova ação de refatoração modular para ajudar você a compatibilizar o Instant Apps em um projeto 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 exibida, selecione o módulo para onde as classes precisam ir e clique em OK.

Quando estiver pronto para testar o Instant App, você poderá criar e executar o módulo Instant App em um dispositivo conectado especificando o URL do Instant App 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 compatível com drawables de vetor e permite que você crie ícones na tela de início adaptáveis para o Android 8.0 enquanto simultaneamente 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.

Para mais informações, leia sobre Ícones adaptáveis.

Compatibilidade com 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 experimentar fontes para download, verifique se o dispositivo ou emulador está executando o Google Play Services v11.2.63 ou posterior. Para 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 os novos recursos a seguir:

  • Adicione testes de URL para cada mapeamento de URL para ter certeza de que seus filtros de intent lidam com 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 apropriada compatível com o Google Smart Lock e adicione a tag asset_statements <meta-data> correspondente ao seu arquivo de manifesto.

Validador de filtro de intent de URL

O Android Studio agora é compatível com 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 lado do elemento <intent-filter>. 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 passar a definição do filtro de intent, um erro de lint será exibido. Esse erro ainda permite que você crie variantes de depuração, mas isso quebrará as compilações da versão.

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.
  • Melhoria 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 da IU 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 posterior.
    • Nova IU para criar redes: selecione várias visualizações e 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 seus layouts de app, incluindo o agrupamento de propriedades em categorias comuns e a 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 mapeamento do ProGuard que adicionam recursos ao DEX Viewer, incluindo estes:
    • Nós em negrito para indicar que eles não devem 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 superior 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 mais informações, consulte Analisar sua compilação 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 DEX afeta diretamente o tempo de criação do seu app, o tamanho do arquivo .dex e o desempenho do tempo 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 fazer um teste, defina o seguinte no arquivo gradle.properties do seu projeto:

android.enableD8=true
    

Para mais informações, consulte a postagem do blog sobre o compilador D8 (link 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, especialmente ao usar um sistema de integração contínua (CI, na sigla em inglês).

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

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 é mais compatível com Windows de 32 bits. Optamos por nos concentrar em outras plataformas porque poucos desenvolvedores estão usando essa plataforma. Se você estiver usando o Windows de 32 bits e planejar a depuração do código nativo, continue usando o Android Studio 2.3.
  • Atualização do IDE 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.
  • Adição de 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 bugs, 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 compatibilidade com o Google Play nas imagens do sistema
  • Correções de bugs de compilações do NDK ao usar R14+ do NDK

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 corretamente com o Instant Run. Consulte o problema #235879 (links em inglês).

Novo

  • O Android Studio agora pode converter arquivos PNG, BMP, JPG e GIFs estáticos em formato WebP. O WebP é um formato de arquivo de imagem do Google que oferece compactação com perdas (como JPEG) e transparência (como PNG), mas pode oferecer melhor compactação do que JPEG ou PNG. Para mais informações, consulte Converter imagens para WebP no Android Studio.
  • O novo App Links Assistant simplifica o processo de adição de links de Apps Android a seu app em um assistente passo a passo. Android App Links são URLs de HTTP que direcionam os usuários diretamente para um conteúdo específico no seu app Android.
  • O Layout Editor agora inclui suporte para dois novos recursos do ConstraintLayout:
    • Defina um tamanho de visualização com base em uma proporção.
    • Crie grupos lineares compactados, distribuídos e ponderados com cadeias de restrições.
    Para mais informações, consulte Criar uma IU responsiva com o ConstraintLayout.
  • O Layout Editor também permite criar uma lista de atributos favoritos para que você não precise clicar em View all attributes para acessar os atributos mais usados.
  • Ao adicionar um ícone de material usando a caixa de diálogo Vector Import (File > New > Vector Asset), você pode filtrar a lista de ícones disponíveis por categoria ou por nome de ícone. Para mais informações, consulte Como adicionar um ícone de material.
  • Anotações novas e atualizadas. A nova anotação @RestrictTo para métodos, classes e pacotes permite restringir uma API. A anotação atualizada @VisibleForTesting agora tem um argumento opcional otherwise que permite designar a visibilidade que um método precisa ter, caso não seja necessário torná-lo visível para o teste. O lint usa a opção otherwise para impor a visibilidade pretendida do método.
  • A nova combatibilidade com o valor de referência de lint permite que você use um snapshot do conjunto atual de avisos do seu projeto como um valor de referência para futuras execuções de inspeção, para que apenas novos problemas sejam relatados. O snapshot do valor de referência permite que você comece a usar o lint para reprovar a compilação por novos problemas, sem ter que voltar e resolver todos os problemas existentes primeiro.
  • Novas verificações de lint, incluindo as seguintes:
    • Verificações SDK_INT obsoletas: o Android Studio remove o código obsoleto que verifica as versões do SDK.
    • Validação do Object Animator: o Lint analisa seu código para certificar-se de que seu ObjectAnimator chama métodos válidos de referência com as assinaturas corretas e verifica se esses métodos são anotados com @Keep para evitar que o ProGuard os renomeie ou remova durante as compilações de versão.
    • Cópia de decorador de itens desnecessários: versões mais antigas da biblioteca RecyclerView não incluíam uma classe de decorador de divisor, mas uma delas era fornecida como uma amostra nas demonstrações de suporte. Versões recentes da biblioteca têm uma classe de decorador de divisão. O lint procura a amostra antiga e sugere substituí-la pela nova.
    • Vazamento do WifiManager: antes do Android 7.0 (API de nível 24), a inicialização do WifiManager com Context.getSystemService() poderia causar um vazamento de memória se o contexto não fosse o contexto do app. O lint procura por essas inicializações e, se não conseguir determinar se o contexto é do app, sugere que você use Context.getApplicationContext() para ter o contexto apropriado para a inicialização.
    • Melhoria no prefixo de recurso: a verificação de lint resourcePrefix tinha muitas limitações. Agora você pode configurar seu projeto com um prefixo, como android { resourcePrefix 'my_lib' }, e o lint garante que todos os seus recursos estejam usando esse prefixo. Você pode usar variações do nome para estilos e temas. Por exemplo, para o prefixo my_lib, você pode ter temas chamados MyLibTheme, myLibAttr, my_lib_layout e assim por diante.
    • Alternar para WebP: essa verificação identifica imagens que podem ser convertidas para o formato WebP com base na configuração minSdkVersion do projeto. Uma rápida correção associada pode converter automaticamente as imagens ou você pode converter imagens para WebP manualmente.
    • WebP inseguro: se o projeto já inclui imagens de WebP, essa verificação faz uma análise para garantir que a configuração de minSdkVersion seja alta o suficiente para aceitar as imagens incluídas. Para mais informações sobre a compatibilidade com a WebP no Android e no Android Studio, consulte Quais navegadores oferecem compatibilidade nativa a WebP? e Criar imagens WebP usando o Android Studio.

Alterações

  • Um botão separado para enviar alterações com o Instant Run: depois de implantar o app, clique em Apply Changes para enviar rapidamente alterações incrementais para o app em execução usando Instant Run. Os botões Run e Debug sempre estarão disponíveis quando você quiser enviar as alterações de forma confiável e forçar a reinicialização do app.
    • O Instant Run é compatível apenas com a implantação do app em um dispositivo de destino com o Android 5.0 (API de nível 21) ou posterior.
    • O Instant Run não está mais desativado para projetos vinculados a projetos nativos externos usando o CMake ou o ndk-build. No entanto, você só pode usar o Instant Run para enviar alterações incrementais para o código Java, não para o código nativo.
    • Cold swaps (que você pode forçar para um app em execução clicando em Run ) são agora mais confiáveis. Forçar um cold swap também corrige o problema em que as alterações nas notificações e nas IUs de widget não eram atualizadas no dispositivo de destino.
    • Inclui otimizações que agilizam a inicialização de apps. Essas otimizações podem afetar a criação de perfil, portanto, você precisa desativar o Instant Run temporariamente sempre que criar um perfil no app.
  • Os botões AVD Manager e SDK Manager agora estão na barra de navegação simples, bem como na barra de ferramentas completa. Para usar a barra de navegação simples, clique em View para abrir o menu e, em seguida, verifique se Navigation Bar está selecionada e se a Toolbar não está selecionada.

  • O depurador "híbrido" foi renomeado para depurador "Dual".
  • Na caixa de diálogo Run/Debug Configurations, em "Defaults" no painel esquerdo, os seguintes nomes de configuração de execução foram alterados sem alterações de comportamento:
    • JUnit foi alterado para Android JUnit. Se você tiver um projeto que usa o JUnit, ele passará a usar as configurações de execução do Android JUnit na primeira vez que você abrir o projeto com o Android Studio. Uma caixa de diálogo aparece para informar sobre a alteração de nome.
    • Android Tests foi alterado para Android Instrumented Tests.
  • O GPU Debugger foi removido do Android Studio a partir da versão 2.3. Uma versão independente e de código aberto da ferramenta agora está disponível no GitHub.
  • A opção "Run/Debug" não está mais disponível quando você clica com o botão direito do mouse em um script *.gradle build.
  • Todos os modelos agora usam o ConstraintLayout como layout padrão.
  • A paleta de widgets do Layout Editor foi reformulada.

Esta versão também inclui várias correções de bugs. Veja todas as correções de bugs no 2.3.0.

Problema conhecido: alguns fabricantes de dispositivos bloqueiam o início automático de apps depois da instalação no dispositivo. Ao implantar o app em um dispositivo físico usando o Android Studio 2.3, essa restrição interrompe o comportamento pretendido do Instant Run e gera a seguinte saída de erro: Error: Not found; no service started. Para evitar esse problema, use o emulador ou ative a inicialização automática para o app nas configurações do dispositivo. O procedimento para fazer isso é diferente para cada dispositivo, portanto, verifique as instruções do fabricante. Por exemplo, alguns dispositivos afetados da Asus precisam autorizar apps usando o gerenciador de início automático. Para saber mais sobre isso, consulte o Problema #235879 (link em inglês).

2.2 (setembro de 2016)

2.2.3 (dezembro de 2016)

Esta é uma atualização secundária do Android Studio 2.2. Ela inclui correções de bugs focadas em Gradle, no IDE principal e lint.

Principais alterações da compilação:

  • Reversão da versão do ProGuard. Devido a um problema de correção descoberto no ProGuard 5.3.1, revertemos para o ProGuard 5.2.1 (link em inglês). Trabalhamos em conjunto com a equipe do ProGuard para conseguir uma correção rápida e esperamos avançar para o ProGuard 5.3.2 no Android Studio 2.3 Canary 3.
  • Correção de bug para o funcionamento incorreto de aaptOptions IgnoreAssetsPattern (problema 224167, link em inglês).
  • Correção de bug para o download automático do Gradle na biblioteca de layout de restrição (problema 212128, link em inglês).
  • Correção de bug para um problema do compilador JDK8/Kotlin + dx (problema 227729, link em inglês).

Veja todas as correções de bugs no 2.2.3.

2.2.2 (outubro de 2016)

Esta é uma atualização secundária do Android Studio 2.2. Tem várias pequenas alterações e correções de erros, incluindo estas:

  • Ao relatar problemas no Instant Run por meio do IDE, o relatório agora também inclui a saída do logcat para eventos InstantRun. Para que possamos melhorar o Instant Run, ative a geração de registros extra e informe todos os problemas.
  • Várias pequenas correções de bugs para Gradle.
  • Uma correção para problemas na geração de vários APKs.

2.2.1 (outubro de 2016)

Esta é uma atualização secundária do Android Studio 2.2. Inclui várias correções de bugs e um novo recurso para habilitar a geração de registros extra para que possamos solucionar problemas do Instant Run. Para nos ajudar a melhorar o Instant Run, ative a geração de registros extra e informe todos os problemas.

Novo

  • Layout Editor totalmente novo, com ferramentas customizadas compatíveis com o ConstraintLayout.
  • O novo Layout Inspector permite examinar snapshots da hierarquia de layout enquanto o app está sendo executado no emulador ou em um dispositivo.
  • Nova janela Assistant para você integrar os serviços do Firebase ao seu app.
  • Nova ferramenta APK Analyzer para que você possa inspecionar o conteúdo do seu app empacotado.
  • Nova ferramenta Espresso Test Recorder (atualmente em Beta) para ajudar você a criar testes de interface do usuário, gravando suas próprias interações.
  • Novo cache de compilação, atualmente experimental, para acelerar o desempenho da compilação (link em inglês).
  • Nova integração de compilação C/C++ com o CMake e o ndk-build. Compile e crie código nativo novo ou existente em bibliotecas empacotadas no seu APK e depure usando o lldb. Para novos projetos, o Android Studio usa o CMake por padrão, mas também é compatível com o ndk-build para projetos existentes. Para saber como incluir código nativo no app Android, leia Adicionar código C e C++ ao projeto. Para aprender como depurar código nativo com o lldb, consulte Depurar código nativo.
  • Novo Samples Browser, para que você possa pesquisar facilmente códigos de amostra do Google Android no Android Studio para iniciar o desenvolvimento de apps.
  • Novo Merged Manifest Viewer para ajudar você a diagnosticar como o arquivo de manifesto se integra às dependências do app nas variantes de compilação do projeto.
  • A janela Run agora contém mensagens de registro do app em execução. Observe que você pode configurar a tela do monitor do logcat, mas não a janela Run.
  • Novos recursos do Android Emulator:
    • Adição de novos controles de Virtual Sensors e Cellular > Signal Strength.
    • Adição de uma opção LTE ao controle de Cellular > Network type.
    • Adição de deslizamentos verticais simulados para percorrer os menus verticais com a roda do mouse.
  • Novos recursos de configuração de Run/Debug:
    • A guia Debugger dos modelos Android App e Android Tests agora contém várias novas opções para depuração com LLDB.
    • A guia Profiling dos modelos Android App e Android Tests agora contém uma opção Capture GPU Commands para ativar o rastreamento da GPU. Você pode exibir traces de GPU no GPU Debugger (um recurso Beta).
    • O modelo do Android Tests agora tem uma opção Firebase Test Lab Device Matrix para o Deployment Target.
    • O modelo de Native Application ficou obsoleto. Se você usar esse modelo em um projeto, o Android Studio o converterá automaticamente no modelo do app Android.
    • O modelo de Android Application foi renomeado para Android App.
  • Melhoria nos recursos de instalação, configuração, desempenho e interface do usuário no GPU Debugger (atualmente em versão Beta).
  • O Android Studio agora vem com o OpenJDK 8. Os projetos existentes ainda usam o JDK especificado em File > Project Structure > SDK Location. Você pode alternar para usar o novo JDK incluído, clicando em File > Project Structure > SDK Location e marcando a caixa de seleção Use embedded JDK.
  • Foram adicionados novos menus e botões de ajuda na interface do usuário para facilitar a localização da documentação on-line.

Alterações

  • Atualização do codebase do IDE do IntelliJ 15 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 alterações não estavam sendo implantadas ou o app falhava:
    • Alguns recursos não foram implantados no seu app em execução (bug: #213454, link em inglês).
    • 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, link em inglês).
    • As alterações 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, link em inglês).
    • Alterações em drawables não refletidas até que a reconstrução completa seja executada para KitKat (bug: #21530, link em inglês).
    • As alterações de recursos não são refletidas com o Instant Run quando os sourceSets personalizados contêm caminhos aninhados (bug: #219145, link em inglês).
    • Hot e warm swap não funcionam se a classe alterada contiver anotações com valor enum (bug: #209047, link em inglês).
    • Alterações nos dados de anotação não são refletidas com o Instant Run (bug: #210089, link em inglês).
    • O Instant Run não seleciona alterações de código se você fizer alterações fora do IDE (bug: #213205, link em inglês).
    • A sessão de Instant Run não é confiável devido a um token de segurança incompatível (bug: #211989{, link em inglês).
    • Cold swap falha para dispositivos não compatíveis para executar run-as (bug: #210875, link em inglês).
    • Falha do app após a reinicialização do Instant Run (bug: #219744, link em inglês).
    • ClassNotFoundException observada ao alternar de Instant Run para Instant Debug (bug: #215805, link em inglês).
  • Melhor desempenho para sincronização Gradle no IDE, especialmente para projetos grandes.
  • Melhoria nos tempos de compilação para compilações completas e incrementais com o novo código de empacotamento do app.
  • Melhoria no desempenho e nos recursos do compilador Jack, incluindo suporte para processadores de anotação e dexação no processo. Para saber mais, leia as Notas da versão do plug-in do Android para Gradle 2.2.0.
  • Adição de uma amostra atualizada do AccelerometerPlay para que você possa testar o controle do Accelerometer do emulador. Selecione File > New > Import Sample para importar o projeto.
  • Remoção da propriedade Scale AVD do AVD Manager.
  • As opções da linha de comando -port e -ports do Android Emulator agora informam quais portas e número de série a instância do emulador está usando e avisa se há algum problema com os valores apresentados.
  • Melhoria da caixa de diálogo Create New Class e dos modelos de arquivo correspondentes. Observação: se você personalizou anteriormente os modelos de arquivo AnnotationType, Class, Enum, Interface ou Singleton, precisará modificar seus modelos para estar em conformidade com os novos modelos ou não poderá usar os novos campos na caixa de diálogo Create New Class.
  • Melhoria da interface do usuário do Vector Asset Studio e compatibilidade com arquivos Adobe Photoshop Document (PSD).
  • Melhoria na interface do usuário do Image Asset Studio.
  • Melhoria do seletor de recursos do Theme Editor.
  • Correção de vazamentos de memória e redução do uso geral de memória no Android Studio.
  • Adição de um botão Background no SDK Manager para que você possa voltar ao trabalho e instalar seus pacotes em segundo plano.
  • Melhoria nos Recursos de acessibilidade, incluindo compatibilidade com leitores de tela e navegação por teclado.
  • Melhoria no Code Analysis inclui verificações de qualidade de código para uso da linguagem Java 8 e mais análise de arquivos cruzados.
  • Vários ícones da barra de ferramentas foram alterados.

2.1 (abril de 2016)

As principais alterações nesta atualização são compatíveis com o desenvolvimento do Android N Preview.

2.1.3 (agosto de 2016)

Esta atualização adiciona compatibilidade com o Gradle 2.14.1, que inclui melhorias de desempenho, novos recursos e uma correção de segurança importante. Para mais detalhes, veja as notas da versão do Gradle.

Por padrão, novos projetos no Android Studio 2.1.3 usam o Gradle 2.14.1. Para projetos existentes, o IDE solicita a atualização 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 posterior.

2.1.2 (junho de 2016)

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

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

2.1.1 (maio de 2016)

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

A plataforma Android N adiciona suporte para recursos da linguagem Java 8, que exigem um novo compilador experimental chamado Jack. A versão mais recente do Jack é atualmente compatível apenas no Android Studio 2.1. Portanto, se quiser usar os recursos de linguagem do Java 8, será preciso usar o Android Studio 2.1 para compilar 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 esteja agora estável, o compilador Jack ainda é experimental e você precisa ativá-lo com a propriedade jackOptions no seu arquivo build.gradle.

Além das alterações para compatibilizar com o N Preview, o Android Studio 2.1 inclui pequenas correções de bugs e as seguintes melhorias:

  • O depurador C++ compatível com 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 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 o N Developer Preview, use o Android Studio 2.1 Preview. O Android Studio 2.0 não é compatível com todos os recursos necessários para segmentar o N Preview. Para saber mais, leia sobre como configurar corretamente seu ambiente de desenvolvedor para o N Preview.

Instant Run:

  • O Android Studio agora implanta compilações limpas mais rápido do que nunca. Além disso, as alterações de código incremental para o emulador ou dispositivo físico são quase instantâneas. Revise suas atualizações sem reimplantar uma nova compilação de depuração ou, em muitos casos, sem reiniciar o app.
  • O Instant Run é compatível com as seguintes alterações em um app em execução:
    • Alterações na implementação de um método de instância ou método estático existente.
    • Alterações em um recurso de app existente
    • As alterações no código estrutural, como uma assinatura de método ou um campo estático, exigem um dispositivo de destino em execução no API de nível 21 ou posterior.
  • Leia a documentação para saber mais sobre o Instant Run.

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

Novas adições ao Lint:

  • Inspeção de instruções switch usando inteiros anotados @IntDef para garantir que todas as constantes sejam tratadas. Para adicionar rapidamente quaisquer instruções ausentes, use o menu suspenso de ações de intenção e selecione Add Missing @IntDef Constants.
  • Sinalizadores para tentativas incorretas de usar interpolação de strings para inserir números de versão no arquivo build.gradle.
  • Sinalizações para classes anônimas que estendem a classe Fragment.
  • Sinalizadores de código nativo em locais não seguros, como as pastas res/ e asset/. Essa sinalização incentiva o armazenamento de código nativo na pasta libs/, que é então empacotada com segurança na pasta data/app-lib/ do app no momento da instalação. AOSP: #169950
  • Sinalizações para chamadas não seguras para Runtime.load() e System.load(). AOSP: #179980
  • Encontre e remova quaisquer recursos não utilizados selecionando Refactor > Remove Unused Resources na barra de menus. A detecção de recursos não utilizados é agora compatível com recursos referenciados apenas por recursos não utilizados, referências em arquivos brutos, como referências de imagens .html, e atributos tools:keep e tools:discard usados pelo redutor de recursos Gradle, considerando conjuntos de origem inativos (como recursos usados em outras variações de compilação) e lidar adequadamente com importações de campo estático.
  • Verifica se referências implícitas da API são compatíveis com todas as plataformas segmentadas por minSdkVersion.
  • Sinaliza o uso indevido de RecyclerView e Parcelable.
  • @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, é compatível com uma ampla variedade de dispositivos virtuais e apresenta uma grande melhora na interface de usuário. Para saber mais sobre o novo emulador, leia as notas da versão do SDK Tools.
  • Melhorias no Android Virtual Device Manager:
    • 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.
  • Adição da integração do Cloud Test Lab 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.
  • Adição de 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.
  • Adição do teste de indexação de apps do Google. Adicione compatibilidade com 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 aplicativo, tudo no Android Studio. Consulte Compatibilidade com 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. Veja 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 verificar 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 (link em inglês)
  • O editor de XML é agora compatível com o preenchimento de código para expressões de vinculação de dados.

Versões mais antigas