Android passe au système de construction Bazel

Développeurs Google qui sont à l'origine du développement d'Android, ont donné savoir à travers une annonce que le projet bouge Open source Android (AOSP) pour utiliser le système de construction Bazel au lieu du système de compilation actuel Soong, Ninja et Make.

Le support Bazel a déjà été ajouté au référentiel Androidmais la transition au nouveau système de construction par défaut se se répandra sur plusieurs versions plate-forme pour rendre la migration aussi simple et transparente que possible.

En 2020 et 2021, aucun changement significatif n'est attendu dans les flux de travail de construction de plates-formes, et le soutien des systèmes de construction existants sera maintenu.

Pour permettre une migration progressive, quelques changements pour simplifier les versions d'Android sont déjà inclus dans Bazel, comme la possibilité d'analyser et d'exécuter des fichiers de construction au format Ninja.

On fait valoir que pour la plate-forme Android, le passage à Bazel augmentera la flexibilité de configuration du processus de construction, Il améliorera l'introspection / surveillance de la progression de la construction et la connexion des dépendances, implémentera des constructions répétables, simplifiera les scripts de construction complexes, améliorera l'intégration avec divers gestionnaires de construction et de test et réduira le temps de construction.

La migration vers Bazel permettra à AOSP de:

Fournit plus de flexibilité pour configurer la compilation AOSP (meilleure prise en charge des conditions)
Permettre plus d'introspection sur la progression et les dépendances de la construction AOSP
Activer des versions AOSP correctes et jouables (étanches)
Introduire un mécanisme de configuration qui réduira la complexité des builds AOSP
Permettre une intégration plus poussée des activités de construction et de test
Combinez tous ces éléments pour augmenter considérablement le temps de construction et l'expérience des améliorations
Les avantages de cette migration vers la communauté Bazel sont:

Un investissement important en cours dans Bazel pour prendre en charge les versions de plate-forme Android
Écosystème de Bazel et expansion de la communauté pour inclure initialement des dizaines de milliers de développeurs de plates-formes Android et de fabricants d'équipement d'origine (OEM) de téléphones Android et de fournisseurs de puces.
Les règles Bazel de Google pour la création d'applications Android seront open source, utilisées dans AOSP et maintenues par Google en partenariat avec la communauté Android / Bazel.
Meilleure compatibilité Bazel pour la création d'applications Android
Meilleure prise en charge des règles pour d'autres langages utilisés pour construire la plate-forme Android (Rust, Java, Python, Go, etc.)
Prise en charge solide des versions Bazel Long Term Support (LTS), au profit de la communauté élargie de Bazel
Amélioration de la documentation (tutoriels et références)

L'écosystème de Bazel sur Android augmentera le nombre de participants impliqués dans le développement, simplifiera l'application pour créer des applications Android (y compris Google a l'intention d'ouvrir du code pour créer des scripts pour ses applications Android), il améliorera la prise en charge de divers langages de programmation utilisés dans Android (Rust, Java, Python, Go), il fournira des ressources pour créer des versions longues conduire à une documentation meilleure et plus complète.

Bazel est développé par des ingénieurs de Google et est utilisé pour construire la plupart des projets internes de l'entreprise. Le projet se distingue par sa vitesse de construction élevée, pour lesquels les techniques de mise en cache et la parallélisation du processus de construction sont utilisées.

Les outils aussi assurer un assemblage reproductibleEn d'autres termes, le résultat de la construction du projet sur la machine du développeur sera exactement le même que celui de la construction sur des systèmes tiers, tels que des serveurs d'intégration continue. Des fonctionnalités supplémentaires sont implémentées via le mécanisme de connexion des extensions.

Contrairement à Make et Ninja, Bazel adopte une approche de plus haut niveau pour créer des règles de compilation qui, au lieu de définir des liaisons de commande pour les fichiers en cours de compilation, utilisent des blocs prédéfinis plus abstraits et définissent des plates-formes cible / de construction.

Les composantes du projet sont décrits dans le fichier texte BUILD sous la forme d'un package de bibliothèques, d'exécutables et de tests, sans détailler au niveau des fichiers individuels et des commandes pour appeler le compilateur.

Dans les fichiers BUILD, toutes les dépendances doivent être entièrement définies, sur la base desquelles les décisions sont prises pour reconstruire les composants après avoir apporté des modifications (seuls les fichiers modifiés sont reconstruits) et paralléliser le processus de construction.

source: https://developers.googleblog.com


Le contenu de l'article adhère à nos principes de éthique éditoriale. Pour signaler une erreur, cliquez sur c'est par ici !.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.