1. 程式人生 > >JNI和NDK學習(1)--搭建開發環境

JNI和NDK學習(1)--搭建開發環境

文章轉自我的Github Blog CommonQ's Blog

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++編譯器的不同了。

  1. 選擇你的android工程,右擊選擇Properties,彈出配置介面,之後再點選Builders,彈出專案的編譯編譯工具 列表,之後點選new,新新增一個編譯器,點選之後出現新增介面,選擇Program,點選ok。
  2. 出現了新增介面,我們先給編譯器設定名稱,如XXX_builder。
  3. 設定Location為<NDK安裝目錄>\ndk-build.cmd
  4. 設定Working Directory為${workspace_loc:/專案名稱}
    截圖如下: 

  5. 切換到Refersh選項卡,給Refersh resources upon completion打上勾,選擇The entire resource選項。
    截圖如下: 

  6. 切換到Build Options選項卡,勾選上最後三項。再點選Specify Resource按鈕,選擇你的android工程的jni目錄。
    截圖如下: 

  7. 在編譯工具列表,我們最好將我們新建的編譯器置頂。選中點選Up按鈕置頂。避免重複編譯兩次