NDK Build 用法
1、ndk-build的用法
Android NDKr4引入了一個新的、小巧的shell指令碼ndk-build,來簡化原始碼編譯。
該檔案位於NDK根目錄,進入你的工程根目錄或子目錄之後,在命令列下呼叫即可。例如:
cd $PROJECT
$NDK/ndk-build
NDK指向你的NDK的安裝目錄,PROJECT指向你的Android工程目錄。建議將ndk-build所在目錄加入PATH環境變數或設定alias。
2、ndk-build的選項
所有給ndk-build的選項都會直接傳給GNU Make,由make執行NDK的編譯指令碼。幾個常見呼叫方式如下:
ndk-build 編譯
ndk-build clean 清掉二進位制檔案
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。
3、Debug版本 Vs Release版本
在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之間切換而重新編譯所有檔案。
4、ndk-build的使用條件
總體來說,必須安裝GNU Make 3.81 以上版本的make才能正常使用ndk-build和NDK。
5、ndk-build的實質
ndk-build 其實就是對GNU Make的封裝,它的目的是呼叫正確的NDK編譯指令碼,它等價於 make -f $NDK/build/core/build-local.mk [引數]
相關文章
- Android Studio 已有專案新增NDK支援(mac/ndk-build)AndroidMacUI
- Android NDK開發(二) 使用ndk-build構建工具進行NDK開發AndroidUI
- NDK
- Andorid Studio NDK開發-使用NDK庫
- NDK學習筆記-NDK開發流程筆記
- Android NDK祕籍--初識NDK、JNI、Makefile/CMakeAndroid
- 三、Go語言基礎:go build命令用法及示例詳解GoUI
- android ndk整合Android
- Andorid Studio NDK 開發 – NDK 開發利器 gradle-experimentalGradle
- Android NDK初識Android
- android NDK c++ libraryAndroidC++
- Ndk 初步開發 In AndroidAndroid
- ndk 常見問題
- NDK版本 下載地址
- NDK51_OpenGL:FBO
- Android Studio NDK:三、打包SOAndroid
- NDK開發趟坑之旅
- android studio配置ndk開發Android
- Android Studio中NDK開發Android
- 【譯】Android NDK API 規範AndroidAPI
- DDK中"checked build"和"free build" 之區別UI
- android 開發淺談(JDK && NDK)AndroidJDK
- build libusb for AndroidUIAndroid
- Build mysql replicationUIMySql
- ubuntu Realsense buildUbuntuUI
- chrome devtools buildChromedevUI
- builder.Build()UI
- A. Build a ComputerUI
- Flutter雜症( flutter packages pub run build_runner build )FlutterPackageUI
- Qt for android編譯大坑之adb: failed to stat build-test-andoid5_12_8/android-build//build/QTAndroid編譯AIUI
- libusb android ndk編譯--編譯mipsAndroid編譯
- Android NDK開發之JNI基礎Android
- Gradle 使用技巧(二) - SO/NDK過濾Gradle
- Android Studio NDK開發-環境配置Android
- Android NDK開發Crash錯誤定位Android
- How to Build a Cybersecurity CareerUI
- webpack build報錯WebUI
- TeamCity : Build 基本配置UI
- Mac之Android Studio開發NDK入門MacAndroid