Android es trasllada a sistema de compilació Bazel

Els desenvolupadors de Google que estan darrere de el desenvolupament d'Android, van donar a conèixer mitjançant un anunci que està movent el Projecte de codi obert d'Android (AOSP) per utilitzar el sistema de compilació Bazel en lloc de l'actual sistema de compilació Soong, Ninja i Make.

La compatibilitat amb Bazel ja s'ha afegit a el repositori d'Android, però la transició a el nou sistema de compilació per defecte si s'estendrà a través de múltiples versions de plataforma perquè la migració sigui el més fàcil i transparent possible.

El 2020 i 2021, no s'esperen canvis significatius en els fluxos de treball de construcció de plataformes, i es mantindrà el suport per als sistemes de construcció existents.

Per permetre una migració gradual, alguns canvis per simplificar les compilacions d'Android ja estan inclosos en Bazel, com la capacitat d'analitzar i executar arxius de compilació amb format Ninja.

S'argumenta que per a la plataforma Android, Canviar a Bazel augmentarà la flexibilitat de configurar el procés de compilació, millorarà la introspecció / monitorització de el progrés de compilació i la connexió de dependències, implementarà compilacions repetibles, simplificarà scripts de compilació complexos, millorarà la integració amb diversos gestors de compilació i prova, i reduirà el temps de compilació.

La migració a Bazel permetrà que AOSP:

Proporcionar més flexibilitat per configurar la compilació AOSP (millor suport per a condicionals)
Permetre una major introspecció sobre el progrés i les dependències de la compilació AOSP
Habilitar compilacions AOSP correctes i reproduïbles (hermètiques)
Introduir un mecanisme de configuració que reduirà la complexitat de les compilacions de AOSP
Permetre una major integració de les activitats de construcció i prova
Combini tots aquests per impulsar millores significatives en el temps de construcció i l'experiència
Els beneficis d'aquesta migració a la comunitat de Bazel són:

Inversió significativa en curs a Bazel per donar suport a les compilacions de la plataforma Android
Expansió de l'ecosistema i la comunitat de Bazel per a incloure, inicialment, a desenes de milers de desenvolupadors de la plataforma Android i fabricants d'equips originals (OEM) de telèfons Android i proveïdors de xips.
Les regles de Bazel de Google per a la creació d'aplicacions d'Android han de ser de codi obert, s'utilitzaran en AOSP i seran mantingudes per Google en associació amb la comunitat d'Android / Bazel.
Millor compatibilitat amb Bazel per crear aplicacions d'Android
Millor suport de regles per a altres llenguatges utilitzats per construir la plataforma Android (Rust, Java, Python, Go, etc.)
Fort suport per a les versions de Bazel Long Term Support (LTS), que beneficia la comunitat ampliada de Bazel
Documentació millorada (tutorials i referència)

L'ecosistema de Bazel en Android ampliarà el nombre de participants involucrats en el desenvolupament, simplificarà l'aplicació per construir aplicacions d'Android (Inclòs Google té la intenció d'obrir el codi per construir scripts per les seves aplicacions d'Android), millorarà el suport per a diversos llenguatges de programació usats en Android (Rust, Java, Python, Go), proporcionarà recursos per crear versions de llarga durada i conduirà a una documentació millor i més àmplia.

Bazel és desenvolupat per enginyers de Google i s'utilitza per construir la majoria dels projectes interns de l'empresa. el projecte destaca per la seva alta velocitat de construcció, per a això s'utilitzen tècniques d'emmagatzematge en memòria cau i paral·lelització de el procés de construcció.

Les eines també garanteixen un muntatge repetible, És a dir el resultat de construir el projecte en la màquina de l'desenvolupador serà exactament el mateix que construir en sistemes de tercers, com a servidors d'integració contínua. La funcionalitat addicional s'implementa a través del mecanisme per connectar extensions.

A diferència de Make i Ninja, Bazel adopta un enfocament de nivell superior per crear regles de compilació que, en lloc de definir enllaços de comandament per als arxius que s'estan compilant, utilitza blocs preconstruïts més abstractes i defineix plataformes de destinació / compilació.

Els components de el projecte es descriuen a l'arxiu de text BUILD en forma d'un paquet de biblioteques, arxius executables i proves, sense detallar a nivell d'arxius individuals i comandaments per trucar a compilador.

En els arxius BUILD, totes les dependències han d'estar completament definides, sobre la base de les quals es prenen les decisions per reconstruir els components després de realitzar canvis (només es reconstrueixen els arxius modificats) i paral·lelitzar el procés de construcció.

font: https://developers.googleblog.com


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.