A Visualização do desenvolvedor para Android 11 já está disponível. Teste e compartilhe seu feedback.

Novos recursos na versão de pré-lançamento do Android Studio

O Android Studio 3.5 foi lançado para o Canal Stable. Faça o download aqui.

Atualmente, o Android Studio 4.0 está nos Canais Canary e Dev. O Android Studio 3.6 está no Canal Beta.

Para ver as notícias mais recentes sobre as versões, incluindo uma lista das principais correções em cada uma, consulte também as Atualizações de versão.

Se você encontrar algum problema ao usar uma versão de pré-lançamento do Android Studio, informe-nos. Seus relatórios de bugs ajudam a melhorar o Android Studio.

Android Studio 4.0

Esta seção fornece um resumo dos novos recursos e mudanças no Android Studio 4.0.

Upgrades na IU do CPU Profiler

Upgrades de IU de rastreamento do sistema

Com base no seu feedback, a IU do CPU Profiler foi revisada para fornecer um fluxo de trabalho mais intuitivo. As principais mudanças incluem:

  • Os registros da CPU agora são separados da linha do tempo do principal criador de perfil para facilitar a análise. Os dados registrados são organizados em grupos no lado esquerdo da janela Profiler. Você pode mover os grupos para cima e para baixo para reorganizar a lista clicando no ícone de opções ícone de opções no criador de perfil no canto superior direito da janela ou arrastando e soltando itens individuais dentro de um grupo.
  • Para facilitar a análise lado a lado, agora você pode ver toda a atividade de linha de execução na linha do tempo da atividade (incluindo métodos, funções e eventos).
  • As guias das análises Flame Chart, Top Down e Bottom Up agora estão na coluna direita. No grupo Threads, as linhas de execução são automaticamente expandidas para os registros de rastreamento do sistema e recolhidas por padrão para outros tipos de gravação. Clique duas vezes nos nomes das linhas de execução para expandi-las ou recolhê-las.
  • A IU de rastreamento do sistema, como mostrado na captura de tela acima, também foi aprimorada. Por exemplo, os eventos agora são coloridos de forma exclusiva para facilitar a diferenciação.

Esse recurso ainda está em andamento. Por isso, continue enviando feedback.

Remoção do recurso de processamento de anotações separado

A possibilidade de separar o processamento de anotações em uma tarefa dedicada foi removida. Essa opção era usada para manter a compilação Java incremental quando processadores de anotações não incrementais eram usados em projetos somente Java. A opção era ativada configurando android.enableSeparateAnnotationProcessing como true no arquivo gradle.properties, o que não funciona mais.

Em vez disso, você precisa passar a usar processadores de anotações incrementais para melhorar o desempenho da versão.

Janela Build Speed

Ao usar o Android Studio 4.0 Canary 3 com o Plug-in do Android para Gradle 4.0.0-alpha03 e mais recentes, a janela Build Speed ajuda você a entender e diagnosticar problemas no processo de compilação, como otimizações desativadas e tarefas configuradas incorretamente. Ao usar o Android Studio 4.0 Canary 3 e o Plug-in do Android para Gradle 4.0.0-alpha03 e mais recentes, você pode abrir a janela Build Speed da seguinte forma:

  1. Crie seu app selecionando Build > Make Project na barra de menus, caso ainda não tenha feito isso.
  2. Selecione View > Tool Windows > Build na barra de menus.
  3. Na janela Build, abra a janela Build Speed de uma das seguintes maneiras:
    • Depois que o Android Studio concluir a compilação do seu projeto, clique na guia Build Speed.
    • Depois que o Android Studio concluir a compilação do seu projeto, clique no link no lado direito da janela Build Output.

A janela Build Speed organiza possíveis problemas de compilação em uma árvore à esquerda. Inspecione e clique em cada problema para investigar os detalhes no painel à direita. Quando o Android Studio analisa sua compilação, ele computa o conjunto de tarefas que determinou a duração dela e fornece uma visualização para ajudar você a entender o impacto de cada tarefa. Você também pode ver detalhes sobre os avisos expandindo o nó Warnings.

Gráfico Build Speed

Quais tarefas determinam a duração da compilação?

O Gradle determina a execução de tarefas por interdependências de tarefas, estrutura do projeto e carga de CPU e executa as tarefas de forma sequencial ou em paralelo. Para determinada versão, a janela Build Speed destaca o conjunto de tarefas executadas em sequência que determinaram a duração da compilação atual. Solucionar as ineficiências nessas tarefas destacadas é o melhor ponto de partida para reduzir o tempo de compilação total.

Lembre-se de que você poderá ver um conjunto diferente de tarefas determinando a duração de cada compilação que executar. Por exemplo, se você fizer mudanças na configuração, executar uma compilação com um conjunto diferente de tarefas (como uma compilação incremental) ou com restrições diferentes (como carga maior sobre a CPU), a janela Build Speed poderá destacar um conjunto diferente de tarefas que mais afetaram a duração dessa compilação. Devido a essa variabilidade, convém usar a janela Build Speed em várias versões para reduzir de forma consistente a duração da compilação.

Multi Preview

A Multi Preview é uma ferramenta visual para ver simultaneamente layouts em diferentes dispositivos e configurações, o que pode ajudar a detectar possíveis problemas nos seus layouts.

Você pode acessar esse recurso clicando na guia Multi Preview no canto superior direito da janela do IDE:

Botão

Você pode escolher entre dois conjuntos de configurações diferentes: dispositivos Pixel e localidades de projeto. Para alternar entre esses conjuntos de configurações, selecione no menu suspenso na parte superior da janela "Multi Preview":

Demonstração da Multi Preview

Live Layout Inspector

Depure seu layout com o Live Layout Inspector atualizado, que fornece informações completas e em tempo real sobre a IU do seu aplicativo durante a implantação em um dispositivo.

Para abrir uma janela do Layout Inspector, vá para View > Tools Windows > Layout Inspector. Além dos mesmos recursos do Layout Inspector existente, o Live Layout Inspector também inclui:

  • Hierarquia de layout dinâmica: se atualiza à medida que as visualizações do dispositivo mudam.

Hierarquia de layout dinâmica

  • Pilha de resolução de valores de propriedades: investiga onde um valor de propriedade de recurso se origina no código-fonte e navega até o local seguindo os hiperlinks do painel Properties.

Pilha de resolução de valores de propriedades

  • Visualização em 3D: veja a hierarquia de visualização do seu aplicativo no tempo de execução com a visualização 3D avançada. Para usar esse recurso, na janela Live Layout Inspector, clique no layout e gire-o.

Layout Inspector: visualização em 3D

Você pode usar o Live Layout Inspector somente ao implantar seu aplicativo em dispositivos que executam a API de nível 29 ou mais recentes. Para ativar o recurso, navegue até File > Settings > Experimental e marque a caixa ao lado de Enable Live Layout Inspector.

Compatibilidade com o Jetpack Compose

O kit de ferramentas Jetpack Compose traz uma abordagem moderna para criar a IU do seu app. O kit de ferramentas também oferece todos os benefícios do Kotlin, como ajudar a escrever um código conciso e idiomático que seja totalmente interoperável com o Java.

Use a versão mais recente do Android Studio 4.0 para ter a melhor experiência de desenvolvimento com o Jetpack Compose. Isso porque ao usar o Android Studio para desenvolver seu app com o Jetpack Compose, você pode aproveitar os recursos do editor inteligente, como os modelos em New Project e a visualização imediata da IU do Compose.

Para saber mais e começar a usar, acesse a visão geral do Jetpack Compose.

Simplificação da biblioteca do Java 8 no D8 e R8

O Android Studio agora é compatível com o uso de diversas APIs da linguagem Java 8 sem a necessidade de um nível mínimo de API para seu app.

Por meio de um processo chamado desugaring (simplificação), o compilador DEX, D8, no Android Studio 3.0 e mais recentes, já fornecia compatibilidade significativa com recursos da linguagem Java 8, como expressões lambda, métodos de interface padrão e try-with-resources, entre outros. No Android Studio 4.0, o mecanismo de simplificação foi estendido para ser capaz de simplificar APIs de linguagem Java. Isso significa que agora você pode incluir APIs de linguagem padrão que estavam disponíveis apenas em versões recentes do Android (como java.util.streams) em apps compatíveis com versões mais antigas do Android.

O seguinte conjunto de APIs é compatível com esta versão:

  • Fluxos sequenciais (java.util.stream)
  • Um subconjunto de java.time
  • java.util.function
  • Adições recentes a java.util.{Map,Collection,Comparator}
  • Recursos opcionais (java.util.Optional, java.util.OptionalInt e java.util.OptionalDouble) e algumas outras novas classes úteis com as APIs acima
  • Algumas adições a java.util.concurrent.atomic (novos métodos em AtomicInteger, AtomicLong e AtomicReference)
  • ConcurrentHashMap (com correções de bugs para o Android 5.0)

Para oferecer compatibilidade com essas APIs de linguagem, o D8 compila um arquivo DEX de biblioteca separado que contém uma implementação das APIs ausentes e as inclui no seu app. O processo de simplificação reescreve o código do seu app para usar essa biblioteca no momento da execução.

Para ativar a compatibilidade com essas APIs de linguagem, inclua o seguinte no arquivo build.gradle do seu módulo:

android {
      defaultConfig {
        // Required when setting minSdkVersion to 20 or lower
        multiDexEnabled true
      }

      compileOptions {
        // Flag to enable support for the new language APIs
        coreLibraryDesugaringEnabled true
        // Sets Java compatibility to Java 8
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
      }
    }

    dependencies {
      coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.4'
    }
    

Informe-nos se você tiver problemas ou se tiver outras APIs a que queira oferecer compatibilidade preenchendo informações de bugs no bug tracker (link em inglês).

Compatibilidade com arquivos de script DSL do Kotlin

O Plug-in do Android para Gradle agora é compatível com arquivos de script de versão DSL do Kotlin (*.kts). Quando usados com o Android Studio, alguns recursos IDE, como a caixa de diálogo "Project Structure" e correções rápidas de scripts de compilação, agora também têm compatibilidade com a leitura e gravação em arquivos de script de compilação do Kotlin.

Recursos do editor inteligente para regras do ProGuard

Agora, o Android Studio oferece recursos de edição inteligente quando você abre arquivos de regras do ProGuard, como destaque de sintaxe, preenchimento de código e verificação de erros. O editor também se integra ao projeto do Android Studio para fornecer o preenchimento completo de símbolos a todas as classes, métodos e campos, além de incluir navegação rápida e refatoração.

Recursos do editor inteligente para editar arquivos de regras do ProGuard

Novo editor de movimento

O Android Studio agora inclui um editor de design visual para o tipo de layout MotionLayout, facilitando a criação e a visualização de animações.

O editor de movimento fornece uma interface simples para processar elementos da biblioteca MotionLayout, que serve como base para a animação em apps para Android. Nas versões anteriores, a criação e a mudança desses elementos precisavam da edição manual de restrições em arquivos de recurso XML. Agora, o editor de movimento pode gerar esse XML para você, oferecendo compatibilidade com estados de início e fim, frames-chave, transições e linhas do tempo.

Para começar a usar o editor de movimento:

  1. Crie um ConstraintLayout.
  2. Clique com o botão direito do mouse na visualização no Layout Editor.
  3. Clique em Convert to MotionLayout, conforme mostrado abaixo.

Depois que o Android Studio converte o ConstraintLayout para MotionLayout, um arquivo Motion Scene também é adicionado ao diretório que contém o XML.

O MotionLayout se torna seu layout raiz e aparece na IU do editor de movimento. O layout já inclui um ConstraintSet inicial, um ConstraintSet final e uma transição do início ao fim.

Você pode usar o gráfico de visão geral para selecionar ConstraintSet ou Transition, bem como componentes do painel de seleção.

Em seguida, você pode editar as restrições e os atributos do ConstraintSet inicial ou final da mesma forma que editaria ConstraintLayout.

Se você quiser criar mais elementos para seu gráfico, poderá usar os ícones de criação para adicionar rapidamente gestos ConstraintSet, Transition ou OnClick/OnSwipe.

Para adicionar um frame-chave, clique na seta Transition:

Em seguida, no painel de linha do tempo Transition, clique no canto superior direito e selecione KeyPosition:

Essa ação abre uma caixa de diálogo em que você pode definir atributos para o frame-chave.

Você também pode adicionar gerenciadores OnClick e OnSwipe à transição no painel de atributos.

Essa ação abre uma caixa de diálogo em que você pode definir atributos do clique, como componentes de destino e direção de arraste.

O editor de movimento é compatível com a visualização de animações na superfície de design. Quando uma animação for selecionada, clique em Play acima da linha do tempo para visualizar a animação.

Novidades no Plug-in do Android para Gradle 4.0.0

Esta seção descreve novos recursos e mudanças de comportamento no Plug-in do Android para Gradle 4.0.0.

Novas opções para ativar ou desativar recursos de compilação

O Plug-in do Android para Gradle 4.0.0-alpha05 apresenta uma nova maneira de controlar quais recursos de compilação você quer ativar e desativar, como "View Binding", "Data Binding" e "Jetpack Compose". Quando novos recursos são adicionados, eles ficam desativados por padrão. Você pode usar o bloco buildFeatures para ativar apenas os recursos que quiser, e isso ajuda a otimizar o desempenho de compilação do projeto. Você pode definir as opções para cada módulo no arquivo build.gradle do módulo da seguinte maneira:

    android {
        // The default value for each feature is shown below. You can change the value to
        // override the default behavior.
        buildFeatures {
            // Determines whether to enable support for Jetpack Compose.
            compose = false
            // Determines whether to generate a BuildConfig class.
            buildConfig = true
            // Determines whether to support View Binding.
            // Note that the viewBinding.enabled property is now deprecated.
            viewBinding = false
            // Determines whether to support Data Binding.
            // Note that the dataBinding.enabled property is now deprecated.
            dataBinding = false
            // Determines whether to generate binder classes for your AIDL files.
            aidl = true
            // Determines whether to support RenderScript.
            renderScript = true
            // Determines whether to support injecting custom variables into the module’s R class.
            resValues = true
            // Determines whether to support shader AOT compilation.
            shaders = true
        }
    }
    

Também pode especificar a configuração padrão para esses recursos em todos os módulos de um projeto incluindo uma ou mais das seguintes opções no arquivo gradle.properties do seu projeto, como mostrado abaixo. Lembre-se de que também é possível usar o bloco buildFeatures no arquivo build.gradle de cada módulo para substituir essas configurações padrão do projeto.

android.defaults.buildfeatures.buildconfig=true
    android.defaults.buildfeatures.aidl=true
    android.defaults.buildfeatures.renderscript=true
    android.defaults.buildfeatures.resvalues=true
    android.defaults.buildfeatures.shaders=true
    

Dependências de recurso sobre recurso

Nas versões anteriores do Plug-in do Android para Gradle, todos os módulos de recursos dinâmicos podiam depender apenas do módulo básico do app. Ao usar o Plug-in do Android para Gradle 4.0.0, você pode incluir um módulo de recurso que dependa de outro módulo de recurso. Ou seja, um recurso :video pode depender do recurso :camera, que depende do módulo base, como mostrado na figura abaixo.

Dependências de recurso sobre recurso

O recurso dinâmico :video depende do recurso :camera, que depende do módulo base :app.

Isso significa que, quando o app solicita o download de um módulo de recurso dinâmico, ele também faz o download de outros módulos de recursos de que depende. Depois de criar módulos de recursos dinâmicos para seu app, você pode declarar uma dependência de recursos no arquivo build.gradle do módulo. Por exemplo, o módulo :video declara uma dependência de :camera da seguinte maneira:

// In the build.gradle file of the ':video' module.
    dependencies {
        // All dynamic feature modules must declare a dependency
        // on the base module.
        implementation project(':app')
        // Declares that this module also depends on the 'camera'
        // dynamic feature module.
        implementation project(':camera')
        ...
    }
    

Além disso, ative o recurso de dependência de recurso sobre recurso no Android Studio (para oferecer compatibilidade com o recurso ao editar a configuração de execução, por exemplo) clicando em Help > Edit Custom VM Options na barra de menus e incluindo o seguinte:

-Drundebug.feature.on.feature=true
    

Os Plug-ins do Android para Gradle "feature" e "instantapp" foram removidos

O Plug-in do Android para Gradle 3.6.0 suspendeu o uso dos plug-ins Feature (com.android.feature) e Instant App (com.android.instantapp) em favor do uso do plug-in Dynamic Feature (com.android.dynamic-feature) para compilar e empacotar seus apps instantâneos usando o Android App Bundles.

No Plug-in do Android para Gradle 4.0.0-alpha01 e mais recentes, esses plug-ins suspensos foram totalmente removidos. Para usar o Plug-in do Android para Gradle mais recente, você precisa migrar seu app instantâneo para o Android App Bundles. Ao migrar seus apps instantâneos, você pode aproveitar os benefícios dos pacotes de apps e simplificar o design modular do seu aplicativo.

Modelos dinâmicos do Kotlin para Android

O Android Studio agora inclui modelos dinâmicos do Android para suas classes Kotlin. Por exemplo, agora você pode digitar toast e pressionar a tecla Tab para inserir rapidamente um Toast. Para ver uma lista completa dos modelos dinâmicos disponíveis, clique em File > Settings na barra de menus (ou Android Studio > Preferences no macOS) e navegue até Editor > Live Templates.

Assistente de fragmento e novos modelos de fragmento

Um novo assistente de fragmento do Android e novos modelos de fragmento agora estão disponíveis quando você acessa File > New > Fragment > Gallery ou clica em Create new destination no editor de navegação.

O assistente da galeria de fragmentos.

O assistente da galeria de fragmentos.

Problemas conhecidos da versão 4.0 de pré-lançamento

Esta seção descreve os problemas conhecidos no Android Studio 4.0 de pré-lançamento.

Os botões Run, Debug e Profile estão ausentes da barra de ferramentas

Se você personalizou o grupo de botões de ação Run/Debug, por exemplo, modificando as opções em Appearance & Behavior > Menus and Toolbars na janela Settings ou Preferences, esses botões de ação podem desaparecer da barra de ferramentas após a reinicialização do ambiente de desenvolvimento integrado. Esse é um problema conhecido na versão do IntelliJ em que o Android Studio 4.0 é compilado (consulte o problema IDEA-228450, em inglês).

Para resolver esse problema, reverta as personalizações feitas nesses botões da seguinte maneira:

  1. Selecione File > Settings (ou Android Studio > Preferences no macOS).
  2. Na parte esquerda da janela, navegue até Appearance & Behavior > Menus and Toolbars.
  3. No lado direito da janela, navegue até Main Toolbar > Toolbar Run Actions e selecione Run/Debug.
  4. Próximo à parte superior da janela, clique em Revert e selecione Restore Run/Debug.
  5. Clique em OK. Agora você verá os botões que estavam ausentes na barra de ferramentas.

Patches indisponíveis para o Canary 5

Nenhum patch do Android Studio 4.0 Canary 5 está disponível para versões do Android Studio 4.0 Canary lançadas anteriormente. Para instalar o Android Studio 4.0 Canary 5, faça o download na página de downloads do Android Studio.

Profilers e Live Layout Inspector no Canary 5

A partir do Android Studio 4.0 Canary 5, o Live Layout Inspector e os Profilers não funcionarão corretamente no Windows, causando a seguinte mensagem de erro:

    transfer error: couldn't create file: Read-only file system.
    

Para corrigir esse problema, faça upgrade para o Android Studio 4.0 Canary 7 ou mais recente.

Repositório Maven do Kotlin ausente

Se você estiver usando o Android Studio 4.0 Canary 4 ou versão anterior, talvez veja a seguinte mensagem de erro:

Application build has failed with an error (Could not find org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25)
    

Para resolver esse problema, atualize para o Android Studio 4.0 Canary 5 ou mais recente.

Android Studio 3.6

Esta seção fornece um resumo dos novos recursos e mudanças no Android Studio 3.6.

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

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

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

Quando você ativa essa opção, o Android Studio pula a criação da lista de tarefas durante a sincronização, o que permite que a sincronização do Gradle seja concluída mais rapidamente e melhora a capacidade de resposta da IU. Lembre-se de que, quando o IDE pula a criação da lista de tarefas, as listas de tarefas no painel do Gradle ficam vazias e o preenchimento automático do nome da tarefa nos arquivos de compilação não funciona.

Anexar origens do APK exclusivas do Kotlin ao Profiler

Agora é possível anexar origens de APK externas exclusivas do Kotlin quando você cria perfis e depura APKs pré-compilados.

Siga o guia do usuário para anexar arquivos Java (.java), mas selecione os arquivos de origem do Kotlin (.kt).

Visualização dividida em editores de design

Editores de design, como o Layout Editor e o Navigation Editor, agora fornecem uma visualização dividida que permite que você veja as visualizações Design e Code da sua IU ao mesmo tempo. Para ativar a visualização dividida, clique no ícone Split ícone de visualização dividida no canto superior direito da janela do editor.

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

Detecção de vazamento no Memory Profiler

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

Os tipos de dados mostrados pelo filtro incluem o seguinte:

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

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

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

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

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

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

Aplicar mudanças

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

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

Importar um APK atualizado

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

Atualizações do NDK

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

Compatibilidade com o Kotlin

Os seguintes recursos do NDK no Android Studio, anteriormente compatíveis com Java, agora também são compatíveis com Kotlin:

  • Navegue de uma declaração JNI para a função de implementação correspondente em C/C++. Para visualizar esse mapeamento, passe o cursor sobre o marcador de item C ou C++ próximo ao número da linha no arquivo de código-fonte gerenciado.
  • Crie automaticamente uma função de implementação de stub para uma declaração JNI. Defina a declaração JNI primeiro e, em seguida, digite “jni” ou o nome do método no arquivo C/C++ a ser ativado.

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

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

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

Outras melhorias do JNI

  • Cosméticas

    • Dicas de tipo para os valores de parâmetro e retorno são mostradas nas funções de implementação do JNI.
    • Nomes de funções JNI errados podem ser dobrados.

  • Compatibilidade com RegisterNatives

    • Preenchimento automático do nome da declaração do método, de tipos de parâmetros e tipo de retorno.

    • Renomeia a refatoração do nome da declaração do método.

    • Verifica assinatura de funções JNI vinculadas.

  • Mais ajuda para função JNI

    • Compatibilidade com preenchimento automático, inspeção, navegação e renomeação de refatoração para literais de string em:
      • FindClass
      • GetMethodID e GetStaticMethodID
      • GetFieldID e GetStaticFieldID
    • Várias inspeções para os seguintes itens:
      • Call[Static]<type>Method
      • CallNonvirtual<type>Method
      • Get[Static]<type>Field
      • NewObject

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

As atualizações a seguir estão disponíveis quando você usa a versão de pré-lançamento mais recente do Plug-in do Android para Gradle.

Compatibilidade com o plug-in Maven Publish

O Plug-in do Android para Gradle 3.6-alpha07 e versões mais recentes incluem compatibilidade com o plug-in Maven Publish para Gradle (link em inglês), que permite a publicação de artefatos de compilação em um repositório Apache Maven. O Plug-in do Android para Gradle cria um componente para cada artefato de variante de compilação no módulo do aplicativo ou da biblioteca usado para personalizar uma publicação para um repositório Maven.

Os componentes que o plug-in do Android cria dependem de o módulo usar o plug-in do aplicativo ou da biblioteca, conforme descrito na tabela abaixo.

Plug-in do Android para Gradle Artefato de publicação Nome do componente
com.android.library AAR components.variant
com.android.application Um ZIP de APKs e arquivos de mapeamento ProGuard ou R8 disponíveis components.variant_apk
com.android.application Um Android App Bundle (AAB) components.variant_aab

A amostra de código a seguir cria uma publicação para as variantes de compilação de lançamento e depuração de uma biblioteca AAR. Cada publicação aplica o componente correspondente e personaliza os atributos do POM gerado, como as coordenadas do Maven.

// Because the components are created only during the afterEvaluate phase, you must
    // configure your publications using the afterEvaluate() lifecycle method.
    afterEvaluate {
        publishing {
            publications {
                // Creates a Maven publication called "release".
                release(MavenPublication) {
                    // Applies the component for the release build variant.
                    from components.release

                    // You can then customize attributes of the publication as shown below.
                    groupId = 'com.example.MyLibrary'
                    artifactId = 'final'
                    version = '1.0'
                }
                // Creates a Maven publication called “debug”.
                debug(MavenPublication) {
                    // Applies the component for the debug build variant.
                    from components.debug

                    groupId = 'com.example.MyLibrary'
                    artifactId = 'final-debug'
                    version = '1.0'
                }
            }
        }
    

Para criar uma publicação que publique seu app como um arquivo ZIP de APKs ou um Android App Bundle (AAB), basta usar o componente adequado, como mostrado abaixo.

afterEvaluate {
        publishing {
            publications {
                paidRelease(MavenPublication) {
                  // The following applies a component to this publication
                  // which results in publishing an app bundle.
                  from components.paidRelease_aab

                  groupId = 'com.example.MyApp'
                  artifactId = 'paid-release-aab'
                  version = '1.0'
                }
                paidDebug(MavenPublication) {
                  // The following applies a component to this publication
                  // which results in publishing APKs in a ZIP file.
                  from components.paidDebug_apk

                  groupId = 'com.example.MyApp'
                  artifactId = 'paid-debug-apks'
                  version = '1.0'
                }
            }
        }
    

Depois de criar publicações, o plug-in Maven Publish cria tarefas de publicação que podem ser usadas para publicar seu artefato nos repositórios que você especificar.

Nova ferramenta de empacotamento padrão

Ao usar o Plug-in do Android para Gradle 3.6.0-alpha09 ou mais recente para criar a versão de depuração do seu app, o plug-in usa uma nova ferramenta de empacotamento, chamada zipflinger, para criar seu APK. Essa nova ferramenta trará melhorias de velocidade de compilação. No entanto, se você tiver problemas, informe um bug. Também é possível voltar para o uso da ferramenta de empacotamento antiga incluindo o seguinte no seu arquivo gradle.properties:

android.useNewApkCreator=false
    

Refatorar a opção de menu para ativar compatibilidade com Instant Apps

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

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

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

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

Ao inspecionar arquivos DEX, o APK Analyzer oferece compatibilidade com a classe desofuscadora e o bytecode de método. Para desofuscar o bytecode, faça o seguinte:

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

Vinculação de visualizações

A vinculação de visualizações fornece segurança no momento da compilação ao fazer referência a visualizações no seu código. Agora você pode substituir findViewById() pela referência de classe de vinculação gerada automaticamente.

Para começar a usar a vinculação de visualizações, inclua o seguinte no arquivo build.gradle de cada módulo:

android {
        viewBinding.enabled = true
    }
    

Para saber mais, leia a documentação de Vinculação de visualizações. Se você tiver algum feedback ou se encontrar algum problema, relate um bug.

Downloads do SDK recuperáveis

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

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

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

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

IntelliJ IDEA 2019.2

O ambiente de desenvolvimento integrado principal do Android Studio foi atualizado com as melhorias da versão 2019.2 do IntelliJ IDEA, como a janela da ferramenta Services.

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

Novo local para alternar o modo off-line do Gradle

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

Problemas conhecidos da versão 3.6 de pré-lançamento

Esta seção descreve os problemas conhecidos na versão do Android Studio 3.6 de pré-lançamento.

Texto pequeno da IU no Chrome OS

No Chrome OS, o texto pode parecer muito menor do que nas versões anteriores. Para contornar esse problema, faça o seguinte:

  1. Abra a janela Settings clicando em File > Settings (no Mac, Android Studio > Preferences).
  2. Navegue até Appearance & Behavior > Appearance.
  3. Selecione Use custom font.
  4. Aumente o tamanho da fonte.
  5. Na janela Settings, navegue até Editor > Font.
  6. Aumente o tamanho da fonte.
  7. Clique em OK.