JNI和NDK學習(1)--搭建開發環境
NDK簡介
NDK的好處:
1. 程式碼的保護,由於apk的java層程式碼很容易被反編譯,而C/C++庫反匯難度較大。
2. 在NDK中呼叫第三方C/C++庫,因為大部分的開源庫都是用C/C++程式碼編寫的。
3. 便於移植,用C/C++寫得庫可以方便在其他的嵌入式平臺上再次使用。
Linux下NDK環境搭建
android的NDK開發需要在linux下進行: 因為需要把C/C++編寫的程式碼生成能在arm上執行的.so檔案,這就需要用到交叉編譯環境,而交叉編譯需要在linux系統下才能完成。安裝android-ndk
開發包,在google android 官網下載: 通過這個開發包的工具才能將android jni 的C/C++的程式碼編譯成庫android應用程式開發環境: 包括eclipse、java、 android sdk、 adt等。安裝完之後,需要將android-ndk的路勁加到環境變數PATH中:
sudo gedit /etc/environment
在environment的PATH環境變數中新增你的android-ndk
的安裝路勁,然後再讓這個更改的環境變數立即生效:
source /etc/environment
經過了上述步驟,在命令列下敲:
ndk-bulid
彈出如下的錯誤,而不是說ndk-build not found
,就說明ndk環境已經安裝成功了。
Windows下NDK環境搭建
在NDKr7開始,google的windos版NDK提供了一個ndk-build.cmd的指令碼,這樣就可以直接利用這個指令碼編譯,而不需要cygwin了。前面章節我介紹了NDK利用cygwin來進行配置(《NDK利用cygwin環境配置》),現在開始我們要與時俱進了,其實不同之處就是設定c/c++編譯器的不同了。
- 選擇你的android工程,右擊選擇Properties,彈出配置介面,之後再點選Builders,彈出專案的編譯編譯工具 列表,之後點選new,新新增一個編譯器,點選之後出現新增介面,選擇Program,點選ok。
- 出現了新增介面,我們先給編譯器設定名稱,如XXX_builder。
- 設定Location為<NDK安裝目錄>\ndk-build.cmd
-
設定Working Directory為${workspace_loc:/專案名稱}
截圖如下: -
切換到Refersh選項卡,給Refersh resources upon completion打上勾,選擇The entire resource選項。
截圖如下: -
切換到Build Options選項卡,勾選上最後三項。再點選Specify Resource按鈕,選擇你的android工程的jni目錄。
截圖如下: -
在編譯工具列表,我們最好將我們新建的編譯器置頂。選中點選Up按鈕置頂。避免重複編譯兩次