Android NDKr4引入了一個新的、小巧的shell腳本ndk-build,來簡化源碼編譯。android
該文件位於NDK根目錄,進入你的工程根目錄或子目錄以後,在命令行下調用便可。例如:shell
cd $PROJECTapp
$NDK/ndk-build工具
NDK指向你的NDK的安裝目錄,PROJECT指向你的Android工程目錄。建議將ndk-build所在目錄加入PATH環境變量或設置alias。ui
全部給ndk-build的選項都會直接傳給GNU Make,由make運行NDK的編譯腳本。幾個常見調用方式以下:.net
ndk-build 編譯命令行
ndk-build clean 清掉二進制文件debug
ndk-build NDK_DEBUG=1 編譯爲可調試版的二進制文件調試
ndk-build NDK_DEBUG=0 編譯爲release版日誌
ndk-build V=1 執行ndk-build且打印出它所執行的詳細編譯命令。
ndk-build -B 強制從新編譯
ndk-build -B V=1 -B 和 V=1 的組合
ndk-build NDK_LOG=1 打印出內部的NDK日誌信息(用於調試NDK本身)
ndk-build NDK_APP_APPLICATION_MK=<文件路徑> 用這裏指定的路徑尋找Application.mk文件
ndk-build -C <project路徑> 先cd進入<project路徑>,而後執行ndk-build。
在NDKr5中,ndk-build作了一些改進,使得在release和debug之間切換更容易了。即經過 NDK_DEBUG 變量:
ndk-build NDK_DEBUG=1 編譯出的共享庫帶調試信息,是debug版本
ndk-build NDK_DEBUG=0 編譯出的共享庫不帶調試信息,是release版本
若是沒有指定NDK_DEBUG,則會從 AndroidManifest.xml中獲取(查看 <application> 元素是否有 android:debuggable="true")。
注意:若是你的SDK是SDKr8或更高,徹底不須要修改AndroidManifest.xml。由於若是你想編譯出debug版安裝包(在命令行下執行 ant debug或用ADT),SDK的工具會自動選擇用NDK_DEBUG=1編譯出的共享庫。NDK編譯出的debug版和release版的object文件存放在不一樣的目錄(例如 obj/local/<abi>/objs 和 obj/local/<abi>/objs-debug),避免了在release和debug之間切換而從新編譯全部文件。
整體來講,必須安裝GNU Make 3.81 以上版本的make才能正常使用ndk-build和NDK。
ndk-build 其實就是對GNU Make的封裝,它的目的是調用正確的NDK編譯腳本,它等價於 make -f $NDK/build/core/build-local.mk [參數]