Android 編譯命令

基於 Android 9.0。
許多命令時間一長就記不清了,記錄一下。

Android 環境引入的命令

在shell中執行"source build/envsetup.sh"後,Android將增長一些命令到當前環境中。java

  • lunch:選擇編譯的產品類型,並存儲在當前環境中。android

    lunch <product_name>-<build_variant>
  • tapas:與 'lunch' 相似,能夠指定編譯的應用。shell

    tapas [<App1> <App2> ...] [arm|x86|mips|arm64|x86_64|mips64] [eng|userdebug|user]
  • printconfig:打印當前配置。
  • croot:切換到頂層目錄
  • m:從頂層目錄開始編譯。
  • mm:編譯當前目錄中的全部模塊,但不包含依賴的模塊。
  • mmm:編譯指定目錄的全部模塊,但不包含依賴的模塊。可使用下述方式限制編譯的模塊。api

    mmm dir/:target1,target2.
  • mma:編譯當前目錄中的全部模塊,包含依賴的模塊。
  • mmma:編譯指定目錄的全部模塊,包含依賴的模塊
  • provision:對設備進行固件升級,選項將被傳遞到 fastboot 中。
  • cgrep:在當前目錄的全部 C/C++ 文件中查找。
  • ggrep:在當前目錄的全部 Gradle 文件中查找。
  • jgrep:在當前目錄的全部 Java 文件中查找。
  • resgrep:在當前目錄的全部 res/*.xml 文件中查找。
  • mangrep:在當前目錄的全部 AndroidManifest.xml 文件中查找。
  • mgrep:在當前目錄的全部 Makefiles 文件中查找。
  • sepgrep:在當前目錄的全部 sepolicy 文件中查找。
  • sgrep:在當前目錄的全部文件中查找。
  • godir:切換到包含指定文件的目錄。

make相關命令

make 或 m 後面能夠跟隨不一樣的參數來指定編譯目標。服務器

  • droid:默認的 make 編譯目標。
  • all:編譯全部內容,包括不含droid標記的內容。編譯服務器會運行此命令,以確保項目中包含Android.mk文件的全部元素都會編譯。
  • checkbuild:編譯全部的模塊。
  • showcommands:顯示編譯步驟中實際的編譯指令。
  • PRODUCT-xxx-yyy:編譯指定的產品。
  • dump-products:顯示產品的編譯信息。
  • LOCAL_MODULE:編譯指定的模塊。例如,app

    make runtime
  • nothing:不編譯任何事情,只是解析和驗證編譯框架。
  • java:編譯項目中的全部java代碼。
  • native:編譯項目中的全部native代碼。
  • host:編譯host端代碼。
  • target:編譯target端代碼。
  • (java|native)-(host|target):按組合編譯限定代碼。
  • (host|target)-(java|native):按組合編譯限定代碼。
  • snod:快速從新編譯system鏡像。
  • vnod:快速從新編譯vendor鏡像。
  • pnod:快速從新編譯product鏡像。
  • update-api:更新SDK API。
  • otapackage:生成OTA升級包。
  • updatepackage:生成zip升級包。
  • docs:編譯文檔。
  • ndk-docs:生成ndk文檔。
  • sdk:編譯生成SDK。
  • ndk:編譯生成NDK。
  • ramdisk:編譯生成ramdisk。
  • systemtarball:生成system的tar包。
  • boottarball:生成boot的tar包。
  • userdatatarball:生成data的tar包。
  • systemimage:生成system.img鏡像。
  • bootimage:生成boot.img鏡像。
  • vbmetaimage:生成vbmeta.img鏡像。
  • userdateimage:生成userdata.img鏡像。
  • cacheimage:生成cache.img鏡像。
  • bptimage:生成partition-table.img鏡像。
  • vendorimage:生成vendor.img鏡像。
  • productimage:生成product.img鏡像。
  • apps_only:編譯不包含 user,userdebug,eng 標籤的應用程序。
  • dist:拷貝輸出到dist目錄。
  • dist_files:僅僅拷貝庫文件到dist目錄。
  • libandroid_runtime:編譯JNI相關內容。
  • framework:編譯java framework相關內容。
  • services:編譯系統服務相關內容。
  • cts:編譯CTS測試套件。
  • vts:編譯VTS測試套件。

make clean 相關命令

  • clean:清除當前配置編譯的全部文件,等同於rm -rf out/<configuration>/
  • **clean-$(LOCAL_MODULE):清理指定模塊的編譯結果。
  • clean-$(LOCAL_PACKAGE_NAME):清理指定包的編譯結果。
  • clobber:清除全部輸出,等同於rm -rf out/
  • dataclean:刪除當前配置上data目錄的全部文件。
  • clean-sdk:清理SDK編譯輸出。
  • installclean:清除與編譯類型相關的文件。在切換編譯目標是使用該命令能夠加快編譯。
相關文章
相關標籤/搜索