Android muda para o sistema de compilação Bazel

Desenvolvedores do Google que estão por trás do desenvolvimento do Android, deram saber por meio de um comunicado que o Projeto está avançando Android de código aberto (AOSP) para usar o sistema de compilação do Bazel em vez do atual sistema de compilação Soong, Ninja e Make.

O suporte Bazel já foi adicionado ao repositório AndroidMas a transição para o novo sistema de compilação por padrão se se espalhará por várias versões plataforma para tornar a migração o mais fácil e transparente possível.

Em 2020 e 2021, não são esperadas mudanças significativas em fluxos de trabalho de construção de plataforma, e o suporte para sistemas de construção existentes será mantido.

Para permitir a migração gradual, algumas mudanças para simplificar as compilações do Android já estão incluídos no Bazel, como a capacidade de analisar e executar arquivos de compilação no formato Ninja.

Argumenta-se que para a plataforma Android, mudar para o Bazel aumentará a flexibilidade de configuração do processo de compilação, Ele irá melhorar a introspecção / monitoramento do progresso de construção e conexão de dependências, implementar construções repetíveis, simplificar scripts de construção complexos, melhorar a integração com vários manipuladores de construção e teste e reduzir o tempo de construção.

A migração para o Bazel permitirá que o AOSP:

Fornece mais flexibilidade para configurar a compilação AOSP (melhor suporte para condicionais)
Permitir mais introspecção sobre o progresso e dependências da compilação AOSP
Habilite compilações AOSP corretas e jogáveis ​​(à prova d'água)
Introduzir um mecanismo de configuração que reduzirá a complexidade das compilações AOSP
Permitir maior integração das atividades de construção e teste
Combine tudo isso para gerar tempo de construção significativo e melhorias de experiência
Os benefícios dessa migração para a comunidade Bazel são:

Investimento significativo em andamento no Bazel para dar suporte às compilações da plataforma Android
Ecossistema Bazel e expansão da comunidade para incluir inicialmente dezenas de milhares de desenvolvedores de plataformas Android e fabricantes de equipamentos originais (OEMs) e fornecedores de chips para telefones Android.
As regras do Bazel do Google para a criação de aplicativos Android serão de código aberto, usado no AOSP e mantido pelo Google em parceria com a comunidade Android / Bazel.
Melhor compatibilidade do Bazel para a criação de aplicativos Android
Melhor suporte a regras para outras linguagens usadas para construir a plataforma Android (Rust, Java, Python, Go, etc.)
Forte suporte para versões do Bazel Long Term Support (LTS), beneficiando a comunidade expandida do Bazel
Documentação aprimorada (tutoriais e referência)

O ecossistema de O Bazel no Android vai expandir o número de participantes envolvidos em desenvolvimento, irá simplificar o aplicativo para construir aplicativos Android (incluindo o Google pretende abrir código para construir scripts para seus aplicativos Android), vai melhorar o suporte para várias linguagens de programação usadas no Android (Rust, Java, Python, Go), vai fornecer recursos para a criação de versões de longa duração e irá conduzir a uma documentação melhor e mais extensa.

O Bazel é desenvolvido por engenheiros do Google e é usado para construir a maioria dos projetos internos da empresa. O projeto destaca-se pela alta velocidade de construção, para o qual são utilizadas técnicas de cache e paralelização do processo de construção.

As ferramentas também garantir montagem repetívelEm outras palavras, o resultado de construir o projeto na máquina do desenvolvedor será exatamente o mesmo que construir em sistemas de terceiros, como servidores de integração contínua. Funcionalidades adicionais são implementadas por meio do mecanismo de conexão de extensões.

Ao contrário de Make e Ninja, o Bazel adota uma abordagem de nível superior para criar regras de compilação que, em vez de definir ligações de comando para os arquivos que estão sendo compilados, usam blocos pré-construídos mais abstratos e definem plataformas de destino / construção.

Os componentes do projeto são descritos no arquivo de texto BUILD na forma de um pacote de bibliotecas, executáveis ​​e testes, sem detalhamento ao nível dos arquivos e comandos individuais para chamar o compilador.

Em arquivos BUILD, todas as dependências devem ser totalmente definidas, com base no qual as decisões são tomadas para reconstruir componentes após fazer alterações (apenas os arquivos modificados são reconstruídos) e paralelizar o processo de construção.

fonte: https://developers.googleblog.com


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.