O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Novos recursos na visualização do Android Studio

O Android Studio 4.1 foi lançado para o Canal estável. Faça o download aqui.

O Android Studio 4.2 está atualmente nos Canais Canary e Dev.

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 visualização do Android Studio, informe-nos. Seus relatórios de bugs ajudam a melhorar o Android Studio.

Android Studio 4.2

Rastreamento do sistema: melhorias nas métricas para memória e gráficos

No CPU Profiler, o recurso Rastreamento do sistema agora inclui novas métricas para analisar o desempenho do app.

Tabela de eventos

A tabela "Events" é uma nova guia no lado direito do painel Analysis. Essa tabela lista todos os eventos de rastreamento na linha de execução selecionada.

Tabela de eventos de rastreamento do sistema

Novos rastreamentos e grupos de rastreamentos

Agora, há mais dados disponíveis no Rastreamento do sistema para rastros de apps implantados em dispositivos com o Android 9 ou versões mais recentes.

BufferQueue (na seção "Display")

Essa nova faixa mostra a contagem de buffers da superfície BufferQueue (0, 1 ou 2) do app. Ela pode ajudar você a entender o estado dos buffers de imagem à medida que eles se movem entre os componentes gráficos do Android. Por exemplo, o valor 2 significa que o app está em buffer triplo no momento, o que pode resultar em latência extra de entrada.

Fila do buffer do Rastreamento do sistema

Frequência da CPU (na seção "CPU cores")

Além dos dados de programação da CPU, também incluímos a frequência da CPU por núcleo. Isso mostra como cada núcleo está funcionando e pode dar uma ideia de quais deles são os núcleos "grandes" ou "pequenos" em processadores modernos para dispositivos móveis.

Frequência da CPU de rastreamento do sistema

Process Memory (RSS)

A nova Process Memory (RSS) mostra a quantidade de memória física atualmente em uso pelo app.

Memória do processo de rastreamento do sistema (RSS)

Total

Essa é a quantidade total de memória física atualmente em uso pelo seu processo. Em sistemas baseados em Unix, isso é conhecido como "Tamanho do conjunto de residentes" e é a combinação de toda a memória usada por alocações anônimas protegidas pelo arquivo de troca, mapeamentos de arquivos carregados na memória de uma página por vez e alocações de memória compartilhadas, acessadas por vários processos e alocadas por uma variedade de mecanismos.

Para desenvolvedores do Windows, o "Tamanho do conjunto residente" é parecido com o "Tamanho do conjunto de trabalho".

Allocated

Esse contador rastreia a quantidade atual de memória física em uso pelas alocações normais de memória do processo. Essas alocações são anônimas (não protegidas por um arquivo específico) e privadas (não compartilhadas).

File Mappings

Esse contador rastreia a quantidade de memória física em uso por qualquer mapeamento de arquivo pertencente ao processo.

Shared

Esse contador rastreia a quantidade de memória física em uso para compartilhar memória entre esse processo e outros processos no sistema.

Retrace do R8 agora disponível nas ferramentas de linha de comando

Disponível na versão 4.0 das ferramentas de linha de comando, o retrace do R8 é uma ferramenta autônoma para receber o stack trace original de um stack trace ofuscado.

É possível fazer o download desse pacote com o SDK Manager, que instala o retrace do R8 em android_sdk/cmdline-tools. Como alternativa, faça o download do pacote de ferramentas de linha de comando autônoma.

Para informações de uso, consulte Retrace do R8 no guia do usuário.

Nova ação de atualização do Layout Inspector

Introduzido no Android Studio 4.0, o Layout Inspector foi projetado para inspeção em tempo real da pilha de IU do app em execução. No entanto, nem sempre você quer que o Layout Inspector reflita imediatamente o que está acontecendo no seu app, porque pode ser útil inspecionar um instantâneo do layout do app em um momento específico ou minimizar o impacto do desempenho das atualizações em tempo real no seu app.

Pausar atualizações em tempo real e atualizar a captura de tela no Layout Inspector.

Para carregar manualmente um instantâneo dos dados da IU do app, primeiro desative a opção Live Updates. Depois, clique no botão Refresh para capturar um novo instantâneo da pilha de IU para inspeção. O Layout Inspector agora lembra sua preferência para manter a opção Live Updates ativada ou desativada entre as sessões.

Compatibilidade do Plug-in do Android para Gradle com o Jetpack Compose

A partir do Plug-in do Android para Gradle 4.2 Canary 13, apenas o Jetpack Compose Compiler 1.0.0-alpha-04 e versões mais recentes serão compatíveis.

Fazer upgrade do Assistente para AGP

A partir do Android Studio 4.2 Canary 5, um assistente de upgrade para o Plug-in do Android para Gradle pode ajudar a atualizar a versão do AGP do seu projeto.

Caixa de diálogo do assistente de upgrade do Plug-in do Android para Gradle

Criado sobre a funcionalidade de upgrade do AGP atual, essa ferramenta orienta você sobre atualizações/refatorações de todo o projeto e inclui uma visualização das atualizações para ajudar a evitar possíveis alterações interruptivas antes de executar o upgrade do AGP.

Visualização das mudanças a serem realizadas pelo Assistente de upgrade

Compatibilidade com o Safe Args

Safe Args é um plug-in do Gradle que gera classes simples de objeto e criação para navegação segura e acesso a quaisquer argumentos associados. O Android Studio 4.2 Canary 9 e versões mais recentes incluem compatibilidade especial com o Safe Args, conforme descrito abaixo:

  • preenchimentos automáticos para Directions, Args e as várias classes de criação;
  • compatibilidade com plug-ins safe args do Java e Kotlin;
  • navegação da origem para XML.

Scanner de acessibilidade para o Layout Editor

O Android Studio agora se integra ao Android Accessibility Test Framework para ajudar você a encontrar problemas de acessibilidade nos seus layouts. Ao usar o Layout Editor, clique no botão Accessibility Scanner Botão do Scanner de acessibilidade para iniciar o verificador. A ferramenta também oferece correções sugeridas para alguns problemas comuns, como a falta de descrições de conteúdo.

O Scanner de acessibilidade está disponível no Canary 8.

Scanner de acessibilidade no Android Studio

Database Inspector

Melhorias no editor de consultas

O Database Inspector inclui algumas melhorias para ajudar você a criar e executar suas instruções SQL personalizadas. Ao abrir o inspetor e depois uma guia New query, você verá uma superfície de editor redimensionável maior para criar e formatar suas consultas, conforme mostrado abaixo.

Editor do DB Inspector

Além disso, agora fornecemos um histórico de suas consultas anteriores. Ao clicar no botão Show query history Exibir botão do histórico de consultas, você verá uma lista das consultas executadas anteriormente no banco de dados selecionado. Clique em uma consulta na lista para uma visualização de toda a consulta no editor e pressione Enter para copiá-la no editor. Em seguida, clique em Run para executar a instrução.

Executar comando no editor de consultas

Modo off-line

Nas versões anteriores do Android Studio, desconectar-se de um processo de app ao usar o Database Inspector resultava no fechamento do inspetor e dos dados. No Android Studio 4.2 Canary 8 e versões mais recentes, adicionamos a capacidade de continuar a inspecionar os bancos de dados do app após a desconexão de um processo para facilitar a depuração do seu app após uma falha.

Quando ocorre uma desconexão, o Database Inspector faz o download dos seus bancos de dados e os disponibiliza no modo off-line. Quando estiver off-line, é possível abrir tabelas e executar consultas.

Lembre-se de que, quando você se reconecta a um processo de app ativo, o Database Inspector retorna ao modo ativo e mostra apenas os dados que estão no dispositivo. Ou seja, os dados exibidos no modo off-line não são mantidos quando você se reconecta a um processo de app. Por isso, o Database Inspector não permite a edição ou a execução de instruções de modificação no modo off-line.

Nova configuração removable para módulos de recursos

O Plug-in do Android para Gradle 4.2 usa o bundletool 1.0.0, que introduz uma mudança de comportamento para apps que usam módulos de recursos: qualquer módulo de recurso especificado como dist:install-time que não esteja explicitamente marcado como dist:removable se tornará não removível por padrão. Essa nova configuração otimiza a fusão de módulos de tempo de instalação com o módulo base, potencialmente melhorando o desempenho do app em alguns apps.

Para mais informações sobre essa nova configuração, consulte a documentação da tag dist:removable na documentação do manifesto do módulo de recursos.

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

Plug-in do Android para Gradle 4.2

Mudança de comportamento para arquivos gradle.properties

A partir do AGP 4.2, não é mais possível substituir as propriedades Gradle de subprojetos. Em outras palavras, se você declarar uma propriedade em um arquivo gradle.properties em um subprojeto em vez do projeto raiz, ele será ignorado.

Como exemplo, em versões anteriores, o AGP leria valores de projectDir/gradle.properties, projectDir/app/gradle.properties, projectDir/library/gradle.properties etc. Para módulos de apps, se a mesma propriedade Gradle estiver presente em projectDir/gradle.properties e projectDir/app/gradle.properties, o valor de projectDir/app/gradle.properties terá precedência.

No AGP 4.2, esse comportamento foi mudado, e o AGP não carrega valores de gradle.properties em subprojetos (por exemplo, projectDir/app/gradle.properties). Essa mudança reflete o novo comportamento do Gradle e é compatível com o armazenamento em cache da configuração.

Para ver mais informações sobre como definir valores em arquivos gradle.properties, consulte os documentos do Gradle (em inglês).

Novo compilador de recursos do JVM

Um novo compilador de recursos JVM na ferramenta do Plug-in do Android para Gradle 4.2 substitui partes do compilador de recursos AAAPT2, possivelmente melhorando o desempenho do build, especialmente em máquinas Windows.

Começando com a versão Canary 7, o novo compilador de recursos do JVM é ativado por padrão.

A assinatura de v3 e v4 agora é compatível

O Plug-in do Android para Gradle 4.2 agora é compatível com os formatos de assinatura APK v3 e APK v4. Para ativar um ou ambos os formatos no seu build, adicione as seguintes propriedades ao arquivo build.gradle ou build.gradle.kts no nível do módulo:

Kotlin

// build.gradle.kts

android {
   ...
   signingConfigs {
      config {
          ...
          enableV3Signing(true)
          enableV4Signing(true)
      }
   }
}

Groovy

// build.gradle

android {
  ...
  signingConfigs {
    config {
        ...
        enableV3Signing true
        enableV4Signing true
    }
  }
}

A assinatura do APK v4 permite implantar rapidamente APKs grandes usando a instalação do APK incremental do ADB no Android 11. Essa nova sinalização cuida da etapa de assinatura do APK no processo de implantação.

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.2 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.

Compatibilidade com as novas ferramentas do Jetpack Compose na versão 4.2

O Android Studio agora também é compatível com visualização e teste de apps que usam o Jetpack Compose.

Visualização do Compose

Os seguintes parâmetros para métodos @Preview agora estão disponíveis:

  • showBackground: ative e desative um plano de fundo para sua visualização.
  • backgroundColor: defina uma cor que será usada apenas na superfície de visualização.
  • uiMode: esse novo parâmetro pode assumir qualquer uma das constantes Configuration.UI_* e permite que você altere o comportamento da visualização para, por exemplo, definir como o Modo noturno para ver como o tema reage.

Visualização interativa

Nesse modo, você pode interagir com os componentes da IU, clicar neles e ver como o estado muda. Essa é uma forma rápida para ver como a IU reage e visualizar as animações. Para ativá-la, basta clicar no ícone interativo e a visualização alternará os modos.

Para interromper, clique em Stop Interactive Preview na barra de ferramentas superior.

Implantar no dispositivo

Use esse recurso para implantar um snippet da IU em um dispositivo. Isso ajudará a testar pequenas partes do seu código no dispositivo sem precisar iniciar o app completo.

Clique no ícone de implantação no dispositivo ao lado da anotação @Preview, ou na parte superior da visualização, e o Android Studio implantará @Preview no dispositivo ou emulador conectado.

API Preview Data Sources

A nova API Data Sources permite gerar visualizações a partir dos seus dados. Se você tiver uma lista de dados existente ou uma lista de temas, essa API permitirá injetá-los como um parâmetro no método @Preview.

class HelloWorldProvider :
   CollectionPreviewParameterProvider<String>(
       listOf("Hello World", "Привет мир", "Olá Mundo", "Hola Mundo"))

@Preview
@Composable
fun HelloWorldPreview(
   @PreviewParameter(HelloWorldProvider::class) text: String
) {
   MaterialTheme {
       Text(text = text)
   }
}

Para ativar os recursos acima, o build.gradle do módulo precisa conter as seguintes configurações:

  android {
  …
  buildFeatures {
    compose true
  }
  composeOptions {
     kotlinCompilerExtensionVersion = "0.1.0-dev13"
     kotlinCompilerVersion = "1.3.70-dev-withExperimentalGoogleExtensions-20200424"
   }
}

Problemas conhecidos da visualização do Compose

androidx.ui.foundation.Dialog não é compatível com a visualização do Compose no momento.

Teste de instrumentação aprimorado

A partir do Android Studio 4.2 Canary 1, agora é possível executar testes de instrumentação em vários dispositivos em paralelo e investigar usando um painel de resultados de testes de instrumentação especializado. Usando esse painel, você pode determinar se os testes estão falhando devido ao nível da API ou às propriedades de hardware.

Painel de teste de instrumentação

Testar seu app em uma ampla variedade de níveis de API e formatos é uma das melhores maneiras de garantir que todos os usuários tenham uma ótima experiência ao usá-lo.

Para aproveitar esse recurso:

  1. Selecione Modify Device Set no menu suspenso do dispositivo de destino (no centro superior do ambiente de desenvolvimento integrado).

    Lista suspensa

  2. Selecione os dispositivos de destino e clique em OK.

    Caixa de diálogo

  3. Selecione Multiple Devices no menu suspenso do dispositivo de destino e execute seus testes.

    Selecione vários dispositivos na lista suspensa de dispositivos de destino

Para ver os resultados do teste no painel Run, acesse View > Tool Windows > Run.

O novo painel de resultados do teste permite filtrar os resultados do teste por status, dispositivo e nível da API. Além disso, é possível classificar cada coluna clicando no cabeçalho. Ao clicar em um teste individual, você verá os registros e as informações dele individualmente.

Apply Changes

Para aumentar a produtividade durante a iteração no seu app, fizemos as seguintes melhorias em "Apply Changes" para dispositivos que executam o Android 11 ou mais recente:

Compatibilidade com outras alterações de código

Para dispositivos com Android 11 ou versões mais recentes, agora você pode adicionar campos primitivos finais estáticos e implantar essas mudanças no app em execução ao clicar em Apply Code Changes ou Apply Changes and Restart Activity .

Agora você também pode adicionar recursos e implantar essas mudanças no seu app em execução nos dispositivos Android 11 clicando em Apply Changes and Restart Activity .

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

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

Native Memory Profiler: criação de perfil durante a inicialização do app desativada

A criação de perfil de memória nativa na inicialização do app está desativada. Essa opção será ativada em uma versão futura.

Como solução alternativa, você pode usar o criador de perfil de linha de comando autônomo Perfetto (em inglês) para capturar perfis de inicialização.

O Studio não inicia após a instalação do Canary 8

Depois de fazer upgrade do Android Studio para a versão 4.2 Canary 8, o ambiente de desenvolvimento integrado pode não iniciar para determinados usuários que definiram opções de VM personalizadas no arquivo .vmoptions. Para contornar esse problema, recomendamos que você comente opções personalizadas em .vmoptions usando o caractere "#". O arquivo .vmoptions pode ser encontrado nos seguintes locais:

Windows

C:\Users\YourUserName\AppData\[Local|Roaming]\Google\AndroidStudioPreview4.2\studio64.exe.vmoptions

macOS

~/Library/Application Support/Google/AndroidStudioPreview4.2/studio.vmoptions

Linux

~/.config/Google/AndroidStudioPreview4.2/studio64.vmoptions