O dia de hoje marca o lançamento da primeira versão Canário do Android Studio 4.3, juntamente com o plug-in do Android para Gradle (AGP) versão 7.0.0-alpha01. Com esse lançamento, estamos ajustando a numeração da versão para nosso plug-in Gradle, dissociando-o do esquema de controle de versões do Android Studio e pulando dois números inteiros. Nesta postagem do blog, explicaremos os motivos dessa mudança e faremos uma prévia de algumas mudanças importantes que estamos fazendo nas novas APIs e DSL do plug-in do Android para Gradle em incubação.
Novo esquema de controle de versões Com o AGP 7.0.0, estamos adotando os princípios do controle de versões semântico . Isso significa que apenas as mudanças de versões principais afetarão a compatibilidade com a API. Pretendemos lançar uma versão principal por ano, assim que a Gradle introduzir sua própria versão principal anual.
Além disso, no caso de uma alteração interruptiva, garantiremos que a API removida seja marcada com @Deprecated com aproximadamente um ano de antecedência e que sua substituição seja disponibilizada ao mesmo tempo. Isso dará aos desenvolvedores cerca de um ano para migrar e testar plug-ins com a nova API antes que a antiga seja removida.
O alinhamento à versão do Gradle é também o motivo pelo qual estamos pulando as versões 5 e 6 e passando diretamente para o AGP 7.0.0. Esse alinhamento indica que o AGP 7.x deve funcionar com as APIs do Gradle 7.x. Embora ele também possa ser executado no Gradle 8.x, isso não é garantido e dependerá da remoção, na versão 8.x, de APIs das quais o AGP depende.
Com essa mudança, o número da versão do AGP será dissociado do número da versão do Android Studio. No entanto, continuaremos lançando o Android Studio e o plug-in do Android para Gradle juntos, por enquanto.
A compatibilidade entre o Android Studio e o plug-in do Android para Gradle continua inalterada. Como regra geral, os projetos que usam versões estáveis do AGP podem ser abertos com versões mais recentes do Android Studio.
Requisito do Java 11 Ainda é possível usar a linguagem de programação Java versão 8 com o AGP 7.0.0-alpha01, mas estamos mudando a versão mínima exigida da linguagem de programação Java para o Java 11, a partir do AGP 7.0.0-alpha02. Estamos anunciando isso logo no início da programação da versão Canário e muitos meses antes da versão estável para que os desenvolvedores tenham tempo para se prepararem.
APIs em incubação e mudanças importantes em APIs Essa versão do AGP também introduz algumas mudanças em APIs. Como lembrete, várias APIs que foram introduzidas no AGP 4.1 foram marcadas como em incubação e estavam sujeitas a mudanças. Na verdade, no AGP 4.2, algumas dessas APIs foram modificadas. As APIs atualmente em incubação não seguem o ciclo de suspensão de uso que explicamos acima.
Segue um resumo de algumas mudanças importantes nas APIs.
Os blocos onVariants, onProperties e onVariantProperties foram removidos da versão 4.2 Beta. Essas APIs foram substituídas por beforeVariants e onVariants no novo bloco androidComponents . Opcionalmente, beforeVariants e onVariants podem usar um VariantSelector para reduzir o número de variantes no qual a callback será executada, com base no tipo, nome ou variação do build, usando withBuildType, withName e withFlavor. O lambda recebido por onVariants e beforeVariants é executado depois que o AGP calcula as combinações de variantes em afterEvaluate. As propriedades de aninhamento dentro de onVariants foram removidas. APIs similares foram adicionadas a androidComponents para permitir blocos separados para UnitTests (beforeUnitTest e unitTest) e AndroidTests (beforeAndroidTest e androidTest) em vez de aninhar os testes dentro das variantes. Duas classes utilizadas tanto pela forma antiga de registrar ações para variantes quanto pela forma nova foram renomeadas. Variant agora é VariantBuilder, e ela é utilizada em beforeVariants. VariantProperties agora é Variant, e ela é passada para o novo bloco onVariants. Vamos dar uma olhada em algumas dessas mudanças. Segue uma amostra de bloco onVariants direcionada ao build de lançamento. O bloco onVariants é alterado para beforeVariants e usa um seletor de variante neste exemplo.
```
android {
…
//onVariants.withName("release") {
// ...
//}
…
}
androidComponents {
val release = selector().withBuildType(“release”)
beforeVariants(release) { variant ->
...
}
}
```
Da mesma forma, o bloco onVariantProperties é alterado para onVariants.
```
android {
...
//onVariantProperties {
// ...
//}
…
}
androidComponents.onVariants { variant ->
...
}
```
Observe que essa personalização geralmente é feita em um plug-in e não deve ser posicionada em build.gradle. Estamos deixando de usar funções com receptores, que eram adequadas à sintaxe do DSL, mas não são necessárias no código do plug-in.
Planejamos tornar essas APIs estáveis com o AGP 7.0.0, e todos os autores de plug-ins devem migrar para o novo androidComponents. Se você quiser evitar ter que lidar com essas mudanças, use apenas APIs estáveis nos plug-ins e não dependa de APIs marcadas como em incubação.
Caso deseje saber mais sobre outras mudanças dessa versão, não deixe de dar uma olhada nas notas da versão.
Java é marca registrada da Oracle e/ou de suas afiliadas.
Um comentário :
No universo fascinante das apostas esportivas e cassinos online, a plataforma Portal Cocatrel https://www.portalcocatrel.com/ destaca-se como um destino vibrante e confiável para os entusiastas do jogo. Com uma variedade de opções que vão desde apostas esportivas tradicionais até uma ampla gama de jogos de cassino, o Portal Cocatrel oferece uma experiência completa e envolvente para aqueles que buscam emoções no mundo virtual.
Postar um comentário