Androidソースコードはどのようにadbをコンパイルしますか?

1343 ワード

コンパイルシステムはUbuntu 16.04,64ビット、Androidソースバージョンは5.0である.2と4.4です.
 
コンパイルadbはまずソースコード全体をコンパイルする必要はなく、ダウンロードしたソースコードは直接adbをコンパイルすることができます.
 
次はコンパイルプロセスです.
1.端末cdからAndroidソースルートディレクトリへ
2.コンパイル環境の準備
 
# source ./build/envsetup.sh
# lunch        

 
3.コンパイルadb
いくつかの方法があります.
方法1:
# make -j8 adb

 
方法2:
# mmm system/core/adb/

 
 
方式3:
# cd system/core/adb/

# mm
 
最後に生成されたadbファイル:out/host/linux-x 86/bin/adb.
 
3種類のコンパイル方式の比較:
1行のコードにのみコメントを付け,3者の速度:方式1は1 m 17 s,方式2と方式3は2 sである.
方式1が最も遅いのはAndroidの山を巡るからだ.mkファイル、このプロセスはかなり時間がかかります...最後にadbを本当にコンパイルしました.
方式2と方式3の差は多くなく、いずれも速い.
 
推奨使用方法3:adbディレクトリの下なので、いつでもviでファイルを修正し、gitでファイルの修正状況を表示することができ、ソースコードルートディレクトリに戻りたい場合でもcrootで迅速に実現し、cd-はadbディレクトリに戻ることができます.
 
7.1.2のシステムは第1の方法しか使用できません.後の2つの方法でエラーが表示されます.
ninja: error: 'out/target/product/generic_arm64/obj/SHARED_LIBRARIES/libc++_intermediates/export_includes', needed by 'out/target/product/generic_arm64/obj/STATIC_LIBRARIES/libadbd_intermediates/import_includes', missing and no known rule to make it
make: *** [ninja_wrapper] Error 1

 
 
解決方法が分からないので、解決方法のある学生は伝言を歓迎します.