Veja a seguir os novos recursos do Android Studio Dolphin.
Novidades no Compose
Veja a seguir os novos recursos e melhorias para o Jetpack Compose no Android Studio.
Coordenação de animações no Compose
Caso suas animações sejam descritas em uma visualização de composição, agora você pode usar a visualização de animação para inspecionar e coordenar todas de uma só vez. Também é possível congelar uma animação específica.
Anotações de várias visualizações do Compose
Agora, é possível definir uma classe de anotação que inclui várias definições de visualização e usar essa nova anotação para gerar essas visualizações de uma só vez. Use essa nova anotação para ver vários dispositivos, fontes e temas ao mesmo tempo, sem repetir essas definições para cada elemento combinável.
Contagens de recomposição do Compose no Layout Inspector
Ao depurar os layouts do Compose, é importante saber quando os elementos de composição fazem ou não a recomposição para entender se a IU foi implementada da forma correta. Por exemplo, se a recomposição acontece muitas vezes, o app pode estar fazendo mais trabalho do que o necessário. Por outro lado, os componentes que não são recompostos conforme o esperado podem ter comportamentos inesperados.
O Layout Inspector agora permite conferir quando os elementos de composição discretos na hierarquia
de layout são recompostos ou ignorados. Essas informações são mostradas
em tempo real enquanto você interage com seu app. Para começar, confirme se o app está
usando o Compose 1.2.0-alpha03
ou uma versão mais recente. Em seguida, implante seu app
normalmente.
Abra a janela Layout Inspector e conecte-se ao processo do app. Em Component Tree, duas colunas novas vão aparecer ao lado da hierarquia de layout. A primeira coluna mostra o número de composições para cada nó. Já a segunda coluna mostra o número de elementos ignorados de cada nó. Você também pode encontrar informações parecidas no painel Attributes ao selecionar um elemento combinável na Component Tree ou em Layout Display.
Para redefinir a contagem, clique em Reset, próximo à parte de cima do painel Component Tree. A redefinição da contagem ajuda a entender quais elementos foram recompostos ou ignorados em uma interação específica com o app.
Atualização do assistente de pareamento do emulador do Wear OS
A partir do Android Studio Dolphin Canary 3, o assistente de pareamento do emulador do Wear OS apresenta recursos aprimorados que facilitam o gerenciamento e a conexão com emuladores do Wear. Agora, você pode fazer o seguinte:
- ver os dispositivos Wear no Gerenciador de dispositivos;
- parear vários dispositivos Wear com um único smartphone virtual ou físico;
- reconectar automaticamente os dispositivos que já foram pareados antes durante a inicialização. O Android Studio agora lembra e faz o pareamento com o último dispositivo configurado.
Para usar esses novos recursos, confirme se os emuladores do smartphone têm o nível 30 da API ou mais recente e se a Google Play Store está instalada. Além disso, confira se o nível da API dos emuladores do Wear é 28 ou mais recente. Para fazer upgrade para imagens do sistema mais recentes nos seus dispositivos emulados, acesse Tools > SDK Manager.
Para ver mais informações, consulte a seção Usar o assistente de pareamento do emulador do Wear OS.
Atualização da barra de ferramentas do emulador do Wear OS
No Android Studio Dolphin Canary 2, a barra de ferramentas do emulador agora tem botões que simulam os botões físicos e ações comuns do dispositivo nos emuladores do Wear com o nível 28 ou mais recente da API. Os novos botões são: Botão 1, Botão 2, (disponível apenas no nível 30 da API ou mais recente), o botão com o desenho de mão, e o botão de inclinação. Aqui estão algumas das ações que você pode realizar usando os novos botões no emulador do Wear:
- Para configurar seu dispositivo no modo ambiente, clique no botão com o desenho de mão.
- Para retornar à última tela em que o dispositivo estava antes do modo ambiente, clique no botão de inclinação.
Para ver mais informações, consulte Realizar ações comuns no emulador.
Novas configurações de execução no Wear OS
Novas configurações de execução foram adicionadas para agilizar a execução e depuração em plataformas específicas do Wear OS, como mostradores de relógio, Blocos e complicações. Você pode criar essas novas configurações na caixa de diálogo Run/Debug Configurations ao executar seu aplicativo.
Para ver mais informações, consulte Configurações de execução/depuração do Wear OS.
Novidades no Logcat
O Logcat foi atualizado para facilitar a análise, a consulta e o rastreamento de registros.
Novo formatador
O Logcat agora formata os registros para verificar informações úteis com mais facilidade, como tags e mensagens, e identificar diferentes tipos de registros, como avisos e erros.
Criar várias janelas no Logcat
Agora você pode criar várias guias no Logcat, para alternar facilmente entre diferentes dispositivos ou consultas. Clique e arraste para reorganizar as guias e, para mudar o nome, clique com o botão direito em uma delas.
Além disso, para facilitar a comparação entre dois conjuntos de registros, agora é possível dividir a visualização de uma guia ao clicar com o botão direito na visualização de registro e selecionar Split Right ou Split Down. Para fechar uma divisão, clique com o botão direito do mouse e selecione Close. Cada divisão permite que você defina uma conexão de dispositivo, opções de visualização e consulta.
Alternar entre predefinições de visualização
O Logcat agora permite que você alterne rapidamente entre os modos de visualização Standard, Compact e Custom ao clicar em . Cada modo de visualização oferece uma configuração padrão diferente para mostrar mais ou menos informações, como carimbos de data/hora, tags e IDs dos processos (PID, na sigla em inglês). Você também pode personalizar cada um desses modos de visualização padrão, bem como um modo de visualização personalizado, selecionando Modify View.
Nova pesquisa de chave-valor
Na versão anterior do Logcat, você tinha a opção de usar a pesquisa de strings com suporte às expressões regulares ou criar um novo filtro ao preencher vários campos usando a IU do Logcat. A primeira opção deixou a pesquisa mais complexa, e a segunda opção tornou o compartilhamento e a configuração de consultas mais difíceis. Agora simplificamos a experiência com a introdução de pesquisas de chave-valor no campo de consulta principal.
Esse novo sistema pesquisa fornece o que você quer consultar com mais precisão e não depende de expressões regulares. Ele também pode recuperar consultas anteriores do histórico e compartilhar essas consultas com outras pessoas. Além disso, você ainda tem a opção de usar as expressões regulares e excluir registros com base nas chaves-valor. Veja alguns exemplos de como usar o novo sistema de consulta. No entanto, você também pode começar a digitar no campo de consulta para ver sugestões:
- PIDs do projeto de app local:
package:mine
- Valores específicos:
package:<package-ID>
tag:<tag>
level:[VERBOSE | INFO | ASSERT |DEBUG | WARN | ERROR ]
- Exclua um valor específico colocando
-
antes da chave:-tag:<exclude-tag>
- Use expressões regulares com uma determinada chave, colocando
~
depois dela:tag~:<regular-expression-tag>
- Combine os dois com a tag de exclusão:
-tag~:<exclude-regular-expression-tag>
Também é possível ver um histórico clicando em no campo de consulta e selecionando uma das opções no menu suspenso. Para adicionar uma consulta como favorita e deixá-la no topo da lista em todos os projetos do Studio, clique em no final do campo de consulta.
Rastrear registros em falhas ou reinicializações do app
O novo Logcat agora facilita o rastreamento de registros no seu app
em falhas e reinicializações. Assim, você não perde registros importantes nesses eventos.
Quando o Logcat observa que o processo do app foi interrompido e reiniciado, você vê
uma mensagem na saída, como PROCESS ENDED
e PROCESS STARTED
, conforme mostrado
abaixo:
Além disso, a reiniciação do Logcat preserva a configuração da sessão, como divisões de guia, filtros e opções de visualização, para que você possa retornar a ela sem problemas.
Dispositivos gerenciados pelo Gradle
Para melhorar a consistência, a performance e a confiabilidade ao usar Dispositivos virtuais Android nos seus testes de instrumentação automatizados, estamos lançando dispositivos gerenciados pelo Gradle. Esse recurso, disponível para o nível 27 da API e mais recentes, permite configurar dispositivos de teste virtuais nos arquivos do Gradle do projeto. O sistema de compilação usa as configurações para gerenciar totalmente (criar, implantar e excluir) esses dispositivos ao executar testes automatizados.
Esse recurso concede visibilidade ao Gradle, não apenas para os testes que você está executando, mas também para o ciclo de vida dos dispositivos, melhorando a qualidade da sua experiência de testes porque:
- processa problemas relacionados ao dispositivo para garantir que seus testes sejam executados;
- usa snapshots do emulador para melhorar o tempo de inicialização do dispositivo e o uso de memória, além de restaurar dispositivos para um estado limpo entre os testes;
- armazena em cache os resultados de testes e executa novamente apenas aqueles que provavelmente vão fornecer resultados diferentes;
- oferece um ambiente consistente para executar os testes entre execuções locais e remotas.
Além disso, os dispositivos gerenciados pelo Gradle apresentam um novo tipo de dispositivo emulador, chamado dispositivo de teste automatizado (ATD, na sigla em inglês), que é otimizado para melhorar a performance durante testes de instrumentação. Combinado com o suporte à fragmentação de testes, é possível dividir o conjunto de testes em várias instâncias ATD para reduzir o tempo total de execução. Para saber mais sobre dispositivos gerenciados pelo Gradle e recursos associados, consulte Ajustar testes com dispositivos gerenciados pelo Gradle.
Suporte ao R8 usando arquivos de mapeamento com base nos deslocamentos de instruções DEX
Ao otimizar as informações da linha, o R8 agora pode codificar os dados em objetos de informações de depuração compartilhados em tabelas de linha com base nos deslocamentos de instruções. Isso reduz bastante a sobrecarga das informações da linha. Dessa forma, as linhas nos métodos não são mais consecutivas, mas podem mudar em intervalos, dependendo do tamanho das instruções. Algumas ferramentas não consideram essa codificação compartilhada.
Além disso, as VMs do Android a partir do O (API de nível 26) podem mostrar deslocamentos de instruções em stack traces, se o método não tem informações do número da linha. Ao compilar com o minSdk 26 ou mais recente e sem informações sobre os arquivos de origem, o R8 remove todos os dados do número da linha.
Os lambdas sem estado não são mais simplificados como Singletons
Os lambdas sem estado não são mais alocados como Singletons durante a simplificação. A representação como Singleton aumenta a sobrecarga de tamanho do código devido ao campo adicionado e ao inicializador de classe, bem como a sobrecarga de inicialização devido à inicialização da classe estática. Agora, os lambdas sem estado são alocados em sites de uso da mesma forma que lambdas com estado (lambdas com capturas).
O R8 evita a lentidão da verificação no momento da execução no Android
Para eliminar problemas de desempenho em ambientes de execução do Android (Dalvik e ART), o R8 (não D8) agora introduz stubs de biblioteca e delineia chamadas para métodos de biblioteca das classes e dos métodos de biblioteca que podem não existir no momento da execução. Dessa forma, muitos problemas de verificação são eliminados, e a performance do ambiente de execução é melhorada. Esse recurso está sempre ativo.
Suporte às APIs do JDK-11 com a simplificação das APIs do Java 8 ou versão mais recente
Ao usar a dependência coreLibraryDesugaring, agora há suporte para uma
biblioteca de implementação baseada no JDK-11. Consulte o
registro de alterações
do desugar_jdk_libs
para ver mais informações.
Versões de patch
Esta é uma lista das versões de patch do Android Studio Dolphin.
Android Studio Dolphin | 2021.3.1 Patch 1 (outubro de 2022)
Com a versão Patch 1, o Android Studio Dolphin agora oferece suporte ao plug-in do Kotlin 1.7.20. Esta atualização secundária também inclui estas correções de bugs:
Problemas corrigidos | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Plug-in do Android para Gradle |
|
||||||||||||
Dexer (D8) |
|
||||||||||||
Importar/Sincronizar |
|
||||||||||||
Recursos |
|
||||||||||||
Redutor (R8) |
|