O Android Studio 4.1 foi lançado para o Canal estável. Faça o download aqui.
O Android Studio 4.2 está nos Canais Beta.
O Android Studio Arctic Fox | 2020.3.1 está nos Canais Canary e de Desenvolvedor.
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 (link em inglês).
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 Arctic Fox | 2020.3.1
Atualização do número da versão do Android Studio
Mudamos o sistema de numeração de versões do Android Studio para deixá-lo mais alinhado com o IntelliJ IDEA (link em inglês), o ambiente de desenvolvimento integrado com base no qual o Android Studio foi criado.
No sistema de numeração anterior, este seria o Android Studio 4.3 ou a versão 4.3.0.1. No novo sistema de numeração, ele passa a ser o Android Studio Arctic Fox | 2020.3.1 Canary 1 ou a versão 2020.3.1.1
Versão do IntelliJ | Nome antigo | Sistema de numeração antigo | Novo sistema de ano | Novo nome da versão |
---|---|---|---|---|
2020.3 | 4.3 Canary 1 | 4.3.0.1 | 2020.3.1.1 | Arctic Fox | 2020.3.1 Canary 1 |
Veja como o número da versão do Android Studio será determinado a partir de agora:
<Year of IntelliJ Version>.<IntelliJ major version>.<Studio major version>.<Studio minor/patch version>
- Os dois primeiros grupos de números representam a versão da plataforma IntelliJ em que uma determinada versão do Android Studio é baseada. Aqui, a versão é a 2020.3.
- O terceiro grupo de números representa a versão principal do Studio, começando em 1 e aumentando um número para cada versão principal subsequente.
- O quarto grupo de números representa a versão secundária/de patch do Studio, começando em 1 e aumentando um número para cada versão secundária subsequente.
- Também daremos, para cada versão principal, um nome baseado em nomes de animais e com iniciais em ordem alfabética de A a Z. O nome desta versão é Arctic Fox (raposa-do-ártico, em inglês).
Atualização do número da versão para o Plug-in do Android para Gradle
Estamos atualizando o número da versão do Plug-in do Android para Gradle (AGP, na sigla em inglês) para melhorar a integração com a ferramenta de compilação Gradle subjacente. Portanto, o AGP 7.0 será a próxima versão após o AGP 4.2.
Para ver mais detalhes, consulte as Mudanças do controle de versões nas notas da versão do AGP.
Editor C++: definir o ponto de execução no depurador
Na janela do editor de código C++, é possível definir um ponto de execução arbitrário ao executar seu app no depurador. Esse recurso é útil quando você quer sair de uma repetição ou forçar um caminho diferente com código ramificado.
Para usar esse recurso, defina um ponto de interrupção no seu código e execute o app no depurador. Quando o programa atingir esse ponto de interrupção, arraste a seta amarela até a linha do código que você quer executar em seguida e solte-a, ignorando qualquer instrução entre o ponto de interrupção e o novo ponto de execução.
A mudança do ponto de execução não altera o conteúdo da memória (pilha ou heap) nem qualquer outro estado do aplicativo. Por exemplo, as variáveis locais na pilha retêm os valores deles mesmo após mudanças nos pontos de execução.
Esse recurso está disponível para as ABIs arm64-v8a
, armeabi-v7a
e x86_64
, mas
não para a ABI x86
de 32 bits.
Ele é baseado na funcionalidade subjacente no editor de CLion do JetBrains. Para saber mais sobre esse recurso e as limitações dele, consulte esta postagem do blog (link em inglês) do JetBrains.
Compatibilidade com StateFlow
na vinculação de dados
Para apps Kotlin que usam corrotinas, agora você pode usar objetos
StateFlow
como uma fonte de vinculação de dados para notificar automaticamente a IU sobre
mudanças nos dados. As vinculações de dados vão reconhecer o ciclo de vida e
só serão acionadas quando a IU estiver visível na tela.
Para usar um objeto StateFlow
com sua classe de vinculação, é preciso especificar um
proprietário do ciclo de vida para definir o escopo do objeto StateFlow
e, no
layout, atribuir as propriedades e os métodos do componente ViewModel
para as
visualizações correspondentes usando expressões de vinculação, conforme mostrado no
exemplo a seguir:
class ViewModel() {
val username: StateFlow<String>
}
<TextView
android:id="@+id/name"
android:text="@{viewmodel.username}" />
Para um app Kotlin que usa o AndroidX, a compatibilidade com StateFlow
será
adicionada automaticamente na funcionalidade de vinculação de dados, incluindo as
dependências de corrotinas.
Para saber mais, consulte Trabalhar com objetos de dados observáveis.
Novo WorkManager Inspector
Em uma versão anterior do Android Studio, introduzimos o Database Inspector para ajudar os desenvolvedores a entender e depurar os bancos de dados SQLite do app deles. O Database Inspector foi criado em um framework de inspeção de apps projetado para oferecer compatibilidade com diferentes tipos de inspetores e diferentes aspectos do app.
No Arctic Fox Canary 3 e versões mais recentes, use o novo
WorkManager Inspector, que ajuda a visualizar, monitorar e depurar os
workers em segundo plano do app ao usar a biblioteca WorkManager
2.5.0-beta02
ou mais recente.
Agora o WorkManager Inspector e o
Database Inspector podem ser acessados selecionando View > Tool Windows > App Inspection
na barra de menus. Ao implantar um app usando o WorkManager 2.5.0-beta02
ou
mais recente em um dispositivo com a API de nível 26 ou mais recente, você verá
workers ativos na guia WorkManager Inspector, como mostrado abaixo.
Em seguida, selecione um worker da tabela para ver informações mais detalhadas, como uma descrição dele, como ele foi executado, os detalhes da cadeia de workers e o resultado da execução do worker.
Para ajudar a investigar problemas de workers que falham durante a execução, você pode interromper
um worker que está em execução ou na fila selecionando-o na tabela e
clicando em Cancel Selected Worker
na barra de ferramentas. Também é possível filtrar os workers na tabela pelas tags que você
atribuiu a eles usando o menu suspenso All tags.
Se você quiser uma representação visual de uma cadeia de workers, selecione um worker
na tabela e clique em Show Graph View
na barra de ferramentas. Em seguida, você pode selecionar qualquer worker na cadeia para ver os
detalhes dele ou, caso ele esteja na fila ou em execução no momento, interrompê-lo. Para retornar à
tabela, clique em Show List View
.
O Android Studio agora usa o executor de testes do Gradle
Para melhorar a consistência geral das execuções de teste, o Android Studio agora usa o Gradle para executar todos os testes de unidade por padrão. Em muitos casos, essa mudança não afetará seu fluxo de trabalho de testes no ambiente de desenvolvimento integrado.
Por exemplo, quando você clica no comando Run no menu de contexto (visível
ao clicar com o botão direito do mouse em uma classe de teste) ou na ação de gutter correspondente
,
por padrão, o Android Studio usa a configuração de execução do Gradle para executar os testes
de unidade.
No entanto, o Android Studio não reconhece mais as configurações de execução já existentes do Android JUnit. Por isso, você precisa migrar as configurações de execução do Android JUnit que podem ser salvas como arquivos de projeto para configurações de execução do Gradle.
Para criar uma configuração de teste do Gradle, selecione o modelo para Gradle seguindo as instruções em Criar uma nova configuração de execução/depuração. Quando você tiver criado uma nova configuração, ela aparecerá na caixa de diálogo Edit Configurations na seção "Gradle":
Se quiser inspecionar as configurações do Android JUnit que não são mais reconhecidas, você tem duas opções:
- Abra as configurações salvas manualmente em um editor de texto. Os locais desses
arquivos são especificados pelo usuário, mas eles costumam estar em
<my-app>/.idea/runConfigurations/
. Procure configurações temporárias em
<my-app>/.idea/workspace.xml
e procure no nó<component name="RunManager" ...>
. Exemplo:<component name="RunManager" selected="Gradle.PlantTest"> … <configuration name="PlantTest" type="AndroidJUnit" factoryName="Android JUnit" nameIsGenerated="true"> <module name="Sunflower.app" /> <useClassPathOnly /> <extension name="coverage"> <pattern> <option name="PATTERN" value="com.google.samples.apps.sunflower.data.*" /> <option name="ENABLED" value="true" /> </pattern> </extension> <option name="PACKAGE_NAME" value="com.google.samples.apps.sunflower.data" /> <option name="MAIN_CLASS_NAME" value="com.google.samples.apps.sunflower.data.PlantTest" /> <option name="METHOD_NAME" value="" /> <option name="TEST_OBJECT" value="class" /> <option name="PARAMETERS" value="" /> <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" /> <method v="2"> <option name="Android.Gradle.BeforeRunTask" enabled="true" /> </method> </configuration>
Plug-in do Android para Gradle 7.0
O cache de compilação do Plug-in do Android para Gradle foi removido
O cache de compilação do AGP foi removido no AGP 4.1. Introduzido no AGP 2.3 para complementar o cache de compilação do Gradle, o cache de compilação do AGP foi substituído inteiramente pelo do Gradle no AGP 4.1. Essa mudança não afeta o tempo de compilação.
No AGP 7.0, as propriedades android.enableBuildCache
e
android.buildCacheDir
e a tarefa cleanBuildCache
foram
removidas.
Usar o código-fonte Java 11 no seu projeto
Agora, é possível compilar até o código-fonte Java 11 no projeto do app, o que permite usar recursos de linguagem mais recentes, como métodos de interface privados, o operador losango para classes anônimas e a sintaxe de variáveis local para parâmetros lambda.
Para ativar esse recurso, defina compileOptions
como a versão Java desejada e
defina compileSdkVersion
como 30 ou mais:
Kotlin
// build.gradle.kts android { compileSdkVersion(30) compileOptions { sourceCompatibility(JavaVersion.VERSION_11) targetCompatibility(JavaVersion.VERSION_11) } kotlinOptions { jvmTarget = "11" } }
Groovy
// build.gradle android { compileSdkVersion 30 compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } // For Kotlin projects kotlinOptions { jvmTarget = "11" } }
Configurações de dependência removidas
No AGP 7.0 Canary 3, as seguintes configurações (ou escopos de dependência) foram removidas:
compile
Dependendo do caso de uso, foi substituído porapi
ouimplementation
.
Também se aplica a variantes *Compile, por exemplo:debugCompile
.provided
Foi substituído porcompileOnly
.
Também se aplica a variantes *Provided, por exemplo:releaseProvided
.apk
Foi substituído porruntimeOnly
.publish
Foi substituído porruntimeOnly
.
Na maioria dos casos, o Assistente de upgrade para AGP migrará seu projeto automaticamente para as novas configurações
Mudança do caminho de classe ao compilar com o Plug-in do Android para Gradle
Se você está compilando com o Plug-in do Android para Gradle, seu caminho de classe
de compilação pode mudar. Como o Plug-in do Android para Gradle agora usa as configurações
api/implementation
internamente, alguns artefatos podem ser removidos
do caminho de classe de compilação. Se você precisa de uma dependência do Plug-in do Android para Gradle
durante o tempo de compilação, adicione-a como uma dependência explícita.
Scanner de acessibilidade para o Layout Editor
O Android Studio agora se integra ao Android Accessibility Test Framework para
ajudar a encontrar problemas de acessibilidade nos seus layouts. Ao usar o Layout
Editor, clique no botão Accessibility Scanner 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.
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 ferramentas do Jetpack Compose na versão Arctic Fox | 2020.3.1
O Android Studio agora também é compatível com visualização e teste de apps que usam o Jetpack Compose.
Pré-lançamento 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ê mude 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"
}
}
Nova matriz de teste para vários dispositivos
A partir do Android Studio Arctic Fox, os testes de instrumentação podem ser executados em vários dispositivos em paralelo e analisados com um painel de resultados de teste 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.
Testar o app em uma ampla variedade de níveis da API e formatos é uma das melhores maneiras de garantir que todos os usuários tenham uma boa experiência ao usá-lo.
Para aproveitar esse recurso:
Escolha Select Multiple Devices no menu suspenso de dispositivo de destino (na parte central superior do ambiente de desenvolvimento integrado).
Selecione os dispositivos de destino e clique em OK.
Execute seus testes.
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, você verá os registros e as informações de cada dispositivo individualmente.
Problemas conhecidos do pré-lançamento do Compose
androidx.ui.foundation.Dialog
não é compatível com a visualização do Compose
no momento.
Problemas conhecidos do pré-lançamento do Arctic Fox
Esta seção descreve os problemas conhecidos do pré-lançamento do Arctic Fox no Android Studio.
Os patches de atualização não funcionam no Canary 2
Em máquinas Linux e macOS, os patches de atualização não estão funcionando com o Canary 2. Para fazer upgrade para a versão Canary 2, faça o download da versão completa e instale-a.
Android Studio 4.2
Esta seção fornece um resumo dos novos recursos e das mudanças na versão de pré-lançamento do Android Studio 4.2.
Configurar a assinatura de apps por variante
Agora, é possível ativar ou desativar a assinatura de apps no Plug-in do Android para Gradle por variante.
Este exemplo mostra como definir a assinatura de apps por variante usando o método
onVariants()
em Kotlin ou Groovy:
androidComponents {
onVariants(selector().withName("fooDebug"), {
signingConfig.enableV1Signing.set(false)
signingConfig.enableV2Signing.set(true)
})
Como otimizar os builds do Gradle para o JDK 11
Quando a ferramenta de compilação do Gradle é executada no Android Studio, ela usa a versão padrão do JDK definida no Studio. Em versões anteriores, o JDK 8 era usado por padrão. No entanto, na versão 4.2, o JDK 11 passou a ser o padrão. Essa atualização para o JDK 11 afeta a configuração padrão do coletor de lixo da JVM, já que o JDK 8 usa o coletor de lixo paralelo, enquanto o JDK 11 usa o coletor de lixo G1 (link em inglês).
Para potencialmente melhorar o desempenho do build, recomendamos
testar seus builds do Gradle com o coletor
de lixo paralelo. Em gradle.properties
, defina o seguinte:
org.gradle.jvmargs=-XX:+UseParallelGC
Se já houver outras opções definidas nesse campo, adicione uma nova opção:
org.gradle.jvmargs=-Xmx1536m -XX:+UseParallelGC
Para medir a velocidade do build com diferentes configurações, consulte Criar perfil para seu build.
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.
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 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.
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.
Process Memory (RSS)
A nova Process Memory (RSS) mostra a quantidade de memória física atualmente em uso pelo app.
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 particulares (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.
Assistente de upgrade 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.
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.
Compatibilidade com o Safe Args
Safe Args é um plug-in do Gradle que gera classes simples de objeto e builder 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
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.
Além disso, agora fornecemos um histórico de suas consultas anteriores. Ao clicar no botão
Show query history ,
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.
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, será 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 em alguns apps.
Para mais informações sobre essa nova configuração, consulte a documentação da
tag dist:removable
na página sobre o
manifesto do módulo de recursos.
Plug-in do Android para Gradle 4.2
Nova propriedade do Gradle: android.native.buildOutput
Para reduzir a sobrecarga na saída de build, o AGP 4.2 filtra mensagens
de builds nativos que usam CMake e ndk-build
,
exibindo apenas a saída do compilador C/C++ por padrão. Antes disso, uma linha de saída
era gerada para cada arquivo criado, resultando em uma grande quantidade de
mensagens informativas.
Se você quiser ver toda a saída nativa, defina a nova
propriedade do Gradle android.native.buildOutput
como verbose
.
É possível definir essa propriedade no arquivo gradle.properties
ou pela
linha de comando.
gradle.properties
android.native.buildOutput=verbose
Linha de comando
-Pandroid.native.buildOutput=verbose
O valor padrão dessa propriedade é quiet
.
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 do Gradle estivesse presente em
projectDir/gradle.properties
e
projectDir/app/gradle.properties
, o valor de
projectDir/app/gradle.properties
teria 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 (links em inglês).
Para ver mais informações sobre como definir valores em arquivos gradle.properties
, consulte os
documentos do Gradle (em inglês).
Versão 8 da linguagem Java como padrão
A partir da versão 4.2, o AGP usará o nível de linguagem Java 8 por padrão. O Java 8 oferece acesso a diversos recursos de linguagem mais recentes, incluindo expressões lambda, referências de método e métodos de interface estática. Para ver a lista completa de recursos compatíveis, consulte a documentação do Java 8.
Para manter o comportamento antigo, especifique o Java 7 explicitamente no arquivo
build.gradle.kts
ou build.gradle
do módulo:
Kotlin
// build.gradle.kts android { ... compileOptions { sourceCompatibility = JavaVersion.VERSION_1_7 targetCompatibility = JavaVersion.VERSION_1_7 } // For Kotlin projects, compile to Java 6 instead of 7 kotlinOptions { jvmTarget = "1.6" } }
Groovy
// build.gradle android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } // For Kotlin projects, compile to Java 6 instead of 7 kotlinOptions { jvmTarget = "1.6" } }
Novo compilador de recursos da JVM
Um novo compilador de recursos da 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.
Implantar em vários dispositivos
Para ajudar a simplificar o teste de apps em dispositivos e níveis de API diferentes, agora você pode implantar o app em vários dispositivos ou emuladores simultaneamente seguindo estas etapas:
Escolha Select Multiple Devices no menu suspenso de dispositivo de destino (na parte central superior do ambiente de desenvolvimento integrado).
Selecione os dispositivos de destino e clique em OK.
Execute seu app ou os testes.
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
.
Suspensão do uso da variável de ambiente ANDROID_SDK_HOME
A variável de ambiente ANDROID_SDK_HOME
teve o uso suspenso e foi
substituída por ANDROID_PREFS_ROOT
. Para ver mais informações, consulte Variáveis de ambiente do emulador.
Problemas conhecidos na visualização da versão 4.2
Esta seção descreve os problemas conhecidos na visualização do Android Studio 4.2.
Exceções de Lint em projetos Kotlin
Os projetos Kotlin que definem checkDependencies=true
podem encontrar exceções de ponteiro nulo
ou o seguinte erro:
Lint error: package fragment is not found for module
Para ver possíveis soluções alternativas, consulte Exceções de Lint em projetos Kotlin.
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 Perfetto, um criador de perfil autônomo de linha de comando (link 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