NDK開發(fā)常用命令
一,NDK概述
Android Native Development Kit (NDK)是一套工具,用來編譯native代碼(c/c++),該工具配置好了相關的交叉編譯環(huán)境和工具鏈,只需要你簡單地編寫幾個.mk文件即可將你的c/c++代碼編譯為Android的java工程/Android手機可以識別、加載和運行的庫或者應用程序。
?
二,常用ndk-build編譯命令(選項)
ndk-build是NDK中的腳本(在命令行中可以認為是一個可執(zhí)行的命令)可用于編譯采用NDK基于Make的編譯系統(tǒng)的項目。
?
1,ndk-build 編譯native代碼生成.so
?
例如:命令行中輸入ndk-build編譯串口通信native代碼生成.so庫
?
C:\Users\lza>cd E:/Project/SerialPortProject/android-serialport-api-master/android-serialport-api/project/jni
?
C:\Users\lza>E:
?
E:\Project\SerialPortProject\android-serialport-api-master\android-serialport-api\project\jni>ndk-build
?
運行以上命令后,在jni的同級目錄中生成了一個obj文件夾,里面存放的就是剛剛生成的.so庫;
?
2,ndk-build clean 移除之前生成的所有.so庫(二進制文件)。
?
E:\Project\SerialPortProject\android-serialport-api-master\android-serialport-api\project\jni>ndk-build clean
?
3,ndk-build V=1 ???啟動編譯,并顯示編譯命令。且打印出它所執(zhí)行的詳細編譯命令。
?
4,ndk-build -B 強制執(zhí)行完整的重新編譯。
?
5,ndk-build -B V=1 ?-B 和 V=1 的組合
?
強制執(zhí)行完整的重新編譯,并顯示編譯命令。
?
6,ndk-build NDK_LOG=1
?
顯示內(nèi)部NDK 日志消息(用于調(diào)試NDK 本身)。
?
7,ndk-build NDK_DEBUG=1 強制執(zhí)行編譯為debug版的.so庫(二進制文件)
?
8,ndk-build NDK_DEBUG=0 強制執(zhí)行編譯為release版.so庫(二進制文件)
?
9,ndk-build NDK_APPLICATION_MK= <file>
?
使用NDK_APPLICATION_MK變量指向的特定Application.mk文件進行編譯。
?
10,ndk-build APP_BUILD_SCRIPT= ./Android.mk
?
指定NDK編譯使用的Android.mk文件
?
11,ndk-build NDK_OUT= <file>
?
指定編譯生成的文件的存放位置
?
12,ndk-build -C <project> 相當于1中的cd <project> ndk-build 其實就是免去1中的 cd 切換目錄的操作;
?
編譯位于<project>的項目路徑的原生代碼。如果不想在終端通過cd切換到該路徑,此選項會非常有用。
?
三,ndk-build 實際操作
運行ndk-build命令(腳本)相當于運行以下命令:
?
$GNUMAKE -f <ndk>/build/core/build-local.mk
?
<parameters>
?
$GNUMAKE指向GNU Make 3.81或更高版本,<ndk>則指向NDK安裝目錄??梢愿鶕?jù)這項信息從其他shell腳本(甚至是你自己的Make文件)中調(diào)用ndk-build。
?
四,ndk-build編譯需要的條件
需要安裝GNU Make 3.81 或更高版本才能使用ndk-build 或NDK。
?
注意:要使用ndk-build命令必須先配置環(huán)境變量;關于環(huán)境變量和jdk一樣;
?
五,Androidstudio NDK開發(fā)相關的概念:
Android 原生開發(fā)套件(NDK):這套工具使您能在Android 應用中使用C 和C++ 代碼。
?
CMake:一款外部編譯工具,可與Gradle 搭配使用來編譯原生庫。如果你只計劃使用ndk-build,則不需要此組件。
?
LLDB:Android Studio 用于調(diào)試原生代碼的調(diào)試程序。