web-dev-qa-db-fra.com

comment fonctionne la version Android soong/Android.bp?

Google a introduit Soong Build System en remplacement de l’ancien système de makefile . Avez-vous une idée de la façon dont cela fonctionne? S'il vous plaît, parlez-moi de Android.bp 

6
Deadpool

Seuls les Googlers peuvent probablement expliquer, une documentation de base est ici:

https://Android.googlesource.com/platform/build/soong/

Essayez également de rechercher des groupes Google:

https://groups.google.com/forum/#!topic/Android-building/0Hy7kLwlBBk

Notez que dans Oreo, les fichiers Android.mk continuent de fonctionner et peuvent dépendre des fichiers Android.bp. Toutefois, les fichiers Android.bp ne peuvent pas dépendre des fichiers Android.mk. Apparemment, de plus en plus de systèmes de construction seront convertis en Android.bp au fil du temps, nous espérons que Google fera un meilleur travail avec la documentation.

4
satur9nine
  1. ninja est le nouvel outil de construction pour aosp, qui utilise * .ninja pour fonctionner;
  2. pour l'héritage Android.mk, kati est utilisé pour transformer Androd.mk en * .ninja;
  3. google utilise maintenant le fichier Android.bp pour décrire les détails de la compilation du module, qui est également transformé en * .ninja par blueprint/soong;
  4. après tout, Android.mk est réécrit sur Android.bp, kati sera supprimé et nous aurons blueprint/soong/ninja uniquement;

comme cela link explique.

6
oscarthecat

Le système de construction Soong équivaut à l'ancien système "Android Make Build System". Soong est donc une collection de programmes, qui sont des recettes "comment construire des centaines de modules Android" avec beaucoup de petits outils.

Ninja est un processus permettant de gérer réellement le manifeste de construction final (Build.ninja), créé par Blueprint ou Kati (traduire Android.mk en Android.bp).

Blueprint ressemble à GNU Make Grammar, également appelé "framework for build system". il est fait par la langue Go, donc il fournit mieux le multi-traitement. Blueprint traduit "manifeste écrit" (*. Bp) en manifeste final (build.ninja) au format ninja.

1
KJK