AndroidのビルドシステムAndroid.bp、青写真と宋
http://note.qidong.name/2017/08/android-blueprint/
ツールチェーンの関係
Android.mk、Android.bp、宋、青写真、忍者、最後にそれらの間の関係は何ですか?簡単な方法でこれらの概念間の関係を次の式。
Android.bp --> Blueprint --> Soong --> Ninja
Makefile or Android.mk --> kati --> Ninja
(Android.mk --> Soong --> Blueprint --> Android.bp)
青写真はAndroid.bpツールは宋の一部で解析し、生成されます。宋は、具体的内容の意味を説明するには、Androidのビルド、ファイルの構文解析の青写真だけ形、そして宋のために設計されたツールです。
Android.mkは宋が提供するandroidmk
Android.bp変換が、唯一のシンプルな構成に。現在のコンパイルは、まだ使用し、オレオの流れカティは、変換を行います。
Android.mk、Android.bpの両方を既存の、それぞれ、ニンジャに変換されます。Android.mk他のMakefileから、それが生成されますout/build-<product_name>.ninja
ファイルを。Android.bpから、それが生成されますout/soong/build.ninja
。また、また、より小さな生成out/combined-<product_name>.ninja
実行エントリとして、両者の組み合わせを担当したファイルを、。
最後に、忍者の直接制御ファイルは、実際のソースコンパイラツールです。
アンドロイド8.0コンパイルの予備的な分析
https://blog.csdn.net/wear_/article/details/88543353
概要
、実際には、コンパイルされたスクリプトを見て、コンパイルの過程を知っているし、コンパイル時に生成さをログに記録するには、比較的高速な方法です。
コンパイル時に生成されたファイルがコンパイルし、コンパイルしたファイルは、コアのビルド/コアに配置されて、生成されたファイルアウト/宋。
コンパイル時には、最初は、この世代アウト/宋/ build.ninjaルールベース、android.bpアウト/宋/ build.ninja.dにすべてのファイルを収集します。コレクションはビルドaosp_arm.jinjaファイルをした後Android.mkが発生しました。
宋BPさらにファイルを生成する処理は、/宋/ Android-aosp_arm.mkをbuild.ninjaを備えながら、インストールスクリプトファイルはコンパイルされたモジュールは、対応する位置にモジュールを実装する責任があります。
.minibootstrap / build.ninjaと.bootstrap / build.ninjaアウト/宋ディレクトリ内の2つのディレクトリの2つのファイルがあります。.minibootstrap / build.ninja青写真は、主.bootstrap / build.ninjaをコンパイルして生成するために使用されます。.bootstrap / build.ninjaは主に宋のツールとアウト/宋/ build.ninjaファイルを生成しました。
---------------------
Android8.0.0-R4ビルドシステム
https://blog.csdn.net/nwpushuai/article/details/79372837
I.概要
1.1コンパイラシステムの変更
依存Makefileの団体がファイルが忍者Android.mkファイルに変換し、徐々に7.0カティ宋(オプション正式に、真USE_SOONG =を開く必要が使用されていない)を導入するために最初から、システムを構築する前にアンドロイド7.0からは、Androidのビルドシステムは、変更されました忍者ファイルコンパイラシステム管理を使用して。
8.0からは、アンドロイドAndroid.mkは純粋にプロファイルAndroid.mk、Android.bpとは異なり、ブランチ、ループフロー制御などが含まれていない、あるいは、Android.bp前に文書ファイルを導入しました。コンパイルアンドロイドプロジェクトの選択では、など、忍者に変換方法を設定して解釈され、宋が作成された、Android.bpは忍者ファイルに変換管理されます。
一方、宋もAndroid.bp Android.mkファイルに変換手動androidmk長寿コマンドをコンパイルします。
1.2コードの場所
ビルド/カティ/プラットフォームにおけるカティ位置もコンパイルckatiが来ます
ビルドで宋の位置/宋、それと同時に、アクションの/青写真を構築するには、それらの間の系統的関係は次のように:
Android.bp - >青写真 - >宋 - >忍者
MakefileのかAndroid.mk - >カティ - >忍者
青写真はAndroid.bpツールは宋の一部で解析し、生成されます。宋は、青写真の形がちょうど宋コンテンツの意味を説明し、ファイルを解析し、設計されたAndroidのコンパイラ用に設計されたツールです。
使用してコンパイル/ディレクトリを、行く/ prebuilts言語を行く青写真を移動して、宋は、すべての新しい7.0動作環境の始めから、プロジェクトに書かれています。
1.3 Androidの忍者組織
コンパイル時には、android.bpアウト\宋の\ build.ninja.dにすべてのファイルを収集し、これにより、ルールベースの\宋の\ build.ninjaを生成します。
Android.mkのすべてによって生成さBuild-aosp_arm.ninjaファイル。整理combined-aosp_arm.ninja二つのファイルによって。
builddir =アウト
アウト含める/ build-aosp_arm.ninja
/宋/ build.ninjaを含めます
/ combined-aosp_arm.ninjaを構築:偽アウト/宋/ build.ninja
最初にすべてのファイルがbuild-aosp-arm.ninja MKファイルを生成し収集し、その後、すべてbpのファイル生成build.ninjaを集めてコンパイルログインしてください。
アウト/宋/ .bootstrap / binに/アウトsoong_build /宋/ build.ninja
/ build-aosp_arm-cleanspec.ninjaが欠落しているから、再生...
/ build-aosp_arm.ninjaが欠落しているから、再生...
[894分の1]から/宋/ Android-aosp_arm.mkを含みます...
テストがあることを示した後に、インストール・スクリプト・モジュールは、対応する位置にモジュールを装着するための責任があるの後、BP文書宋プロセスはさらに同時にbuild.ninjaを生成するステップを含む/ Android-aosp_arm.mk /宋後、このファイルはコンパイルされます。例えば、我々はベンダーに関連する治療を扱っているvndkは、このディレクトリで行われます。
.minibootstrap / build.ninjaと.bootstrap / build.ninjaアウト/宋ディレクトリ内の2つのディレクトリの2つのファイルがあります。.minibootstrap / build.ninja青写真は、主.bootstrap / build.ninjaをコンパイルして生成するために使用されます。.bootstrap / build.ninjaは主に宋のツールとアウト/宋/ build.ninjaファイルを生成しました。
第二に、ビルドプロセスは
、次のようにステップをコンパイルします。
1、ソースのビルド/ envsetup.sh:LOADコマンド
2、昼食:選択プラットフォームのコンパイラオプション
3、作る:コンパイル
---------------------