Android NDK eclipse+cdt+cgywin 環境搭建

一、下載android NDK


下載地址:http://developer.android.com/sdk/ndk/index.html

我這裏下載的是android-ndk-r8-windows.zip

下載後解壓縮到你的工作目錄,例如:D:\


Android NDK包含build、docs、samples、sources、GNUmakefile、ndk-build、ndk-gdb及readme等內容。其中samples下面包含幾個實例開發演示項目,第一次接觸NDK開發,建議先從示例開始。docs中有ndk開發的文檔,各個文檔的功能描述參見 http://developer.android.com/tools/sdk/ndk/overview.html#docs


二、下載Cygwin


Android NDK 目前還不支持在windows系統下直接進行交叉編譯,因此需要在windows下安裝linux的模擬器環境Cygwin

下載地址:http://www.cygwin.com/

下載後是個setup.exe文件,使用過程如下:

第一步:運行setup程序,第一步圖略,直接點擊Next進入下一步。

第二步:選擇安裝方式,第一次可以採用Direct Connection在線下載安裝,如有現成的離線包,可以選擇離線安裝(Install from Local Directory)。

第三步:選擇安裝目錄,比如C:\Cygwin,注意此目錄是指Cygwin最終的安裝目錄,不是下載文件暫存目錄。

 

第四步:設置本地包暫存路徑

暫存目錄默認是放到setup.exe的同級目錄下,下載後名字類似ftp%3a%2f%2fcygwin.mirrors.pair.com%2f這樣格式。

第五步:設置網絡連接方式

 

第六步:選擇下載站點地址

起初嘗試幾個看哪個速度快就用哪個地址(如果感覺不快就點取消,再次來過)。

 

第七步:等待加載安裝項載入,選擇安裝項

我們編譯NDK,在默認設置下,只需選擇Devel(點擊列表中Devel,將後面的Default改爲Install,圖中箭頭所示),其它均爲默認狀態。

第八步:等待下載完成

下載完成時間決定於你選擇的安裝包數量及網絡連接速度,比如按照本文默認的選擇方式,可能需要4-5個小時,下載後壓縮包約750M,下載完成後會自動安裝到上文設置的安裝目錄。

提醒:第一次下載完成後,最好把下載的包目錄做個備份,下次安裝同樣的環境可以直接使用離線安裝方式(第二步中選擇本地安裝)。


三、驗證Cygwin環境

安裝完成後,先運行Cygwin一次(Cygwin.bat),以便創建一些用戶環境文件,分別輸入:

make -v 和 gcc -v

如果檢測成功,會有make和gcc相關版本信息打印出來,如下圖。


四、配置NDK路徑設置

可以在cygwin中通過vim修改,也可以在windows安裝目錄中修改 home\<你的用戶名>\.bash_profile 文件中最後添加環境變量

ANDROID_NDK_ROOT=/cygdrive/d/android-ndk-r8

export ANDROID_NDK_ROOT

其中ANDROID_NDK_ROOT=/cygdrive/<你的盤符>/<android ndk 目錄> ,"ANDROID_NDK_ROOT"這個名字隨便起,以後經常用不要太長。

重啓cygwin,輸入:

cd $NDK

可進入ndk對應目錄說明設置OK。


五、編譯演示工程

現在就可以編譯相關NDK工程了(一些用c/c++寫的程序),編譯方法如下:

1、在cygwin命令行下,進入android項目工作目錄:

cd $NDK

2、依次進入samples\hello-jni目錄,(完整路徑示例: E:\Andriod\develop\android-ndk-r4\samples\hello-jni)

3、運行

$NDK/ndk-build

注意:該命令$NDK和/ndk-build是連接到一起的,中間沒有空格,實際使用時是打入完整的$NDK/ndk-build,不要只打ndk-build。

4、正常編譯完成後會在你的項目libs/armeabi目錄下生成對應的 .so文件。

六、導入靜態目標庫到Android項目

編譯完成後會得到*.so靜態目標庫後,就可以導入工程環境Eclipse Android項目中使用,注意,NDK編程並非一定要把這個目標庫導入Android項目使用,除了本步驟描述的使用方法之外,還有Android源碼直接修改、編譯,然後燒錄到測試機的開發方式,那樣可以實現應用程序默認安裝、權限開機提升等等更“徹底”的功能。綜合一下:

本步驟演示屬於NDK目標庫+Andriod APK樣式,此外還有Android源碼直接開發、直接編譯方式(確切一點已經淡化Android所謂的工程概念了,當然源碼開發目前似乎還無法直接在Windows下進行,好像必須使用Linux家族系統進行,天緣稍後文章會有所涉及)

使用方法如下(示例):

1、在Eclipse中新建一個工程HelloJni,HelloJni.java中的代碼可參考NDK對應 sample下的演示代碼(android-ndk-r4\samples\hello-jni\tests\src\com\example \HelloJni)調用方法。

2、將NDK編譯項目目錄下的jni和libs文件夾拷貝到新建工程目錄下

注意這兩個文件夾要和工程中的src和res文件在同一目錄下。然後進入Eclipse中刷新工程(會看到多出兩個文件夾)。

3、運行Eclipse項目,就可以在虛擬機上看到hello-jni.c函數中輸出字符串。

4、後續您可以試着修改庫源程序或項目JAVA程序來熟悉NDK整個開發過程。


六、下載CDT插件

下載地址:http://www.eclipse.org/downloads/download.php?file=/tools/cdt/releases/indigo/dist/cdt-master-8.0.2.zip

加壓縮後將裏面的features和plugins文件夾複製到eclipse目錄下,覆蓋原文件。

重啓eclipse 進入window-->preferences, 出現C/C++選項,說明安裝成功。 如圖:



7、配置C/C++的編譯器

1、  打開eclipse,導入ndk自帶的hello-jni例子,右鍵單擊項目名稱,點擊Properties,彈出配置界面,之後再點擊Builders,彈出項目的編譯工具列表,之後點擊New,新添加一個編譯器,點擊後出現添加界面,選擇Program,點擊OK

2、  出現了添加界面,首先給編譯配置起個名字,如:C_Builder

設置Location爲<你cygwin安裝路徑>\bin\bash.exe程序,例如:E:\cygwin\bin\bash.exe,設置Working  Directory爲<你cygwin安裝路徑>\bin目錄,例如:E:\cygwin\bin

設置Arguments爲

--login -c "cd /cygdrive/e/android-ndk-r5/samples/hello-jni && $NDK/ndk-build"(不能改動的,--login –c 是神馬意思我也不懂)

上面的配置中/cygdrive/e/android-ndk-r5/samples/hello-jni是你當前要編譯的程序的目錄,$NDK是之前配置  的ndk的環境變量,這兩個根據你具體的安裝目錄進行配置,其他的不用變,Arguments這串參數實際是  給bash.exe命令行程序傳參數,進入要編譯的程序目錄,然後運行ndk-build編譯程序

3、 接着切換到Refresh選項卡,給Refresh resources upon completion打上鉤

4、  然後切換到Build Options選項卡,勾選上最後三項

5、  之後點擊Specify Resources按鈕,選擇資源目錄,勾選你的項目目錄即可

6、  最後點擊Finish,點擊OK一路把剛纔的配置都保存下來,注意:如果你配置的編譯器在其它編譯器下邊,記得一定要點Up按鈕,把它排到第一位,否則C代碼的編譯晚於Java代碼的編譯,會造成你的C代碼要編譯兩次才能看到最新的修改




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章