アンドロイド8.0ビルドプロセス

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は宋が提供するandroidmkAndroid.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、作る:コンパイル
---------------------

おすすめ

転載: www.cnblogs.com/bluestorm/p/11027754.html