windows下eclipse搭建android_ndk開發環境


安裝cygwin:

由於NDK編譯代碼時必須要用到make和gcc,所以你必須先搭建一個linux環境, cygwin是一個在windows平台上運行的unix模擬環境,它對於學習unix/linux操作環境,或者從unix到windows的應用程序移植,非常有用。通過它,你就可以在不安裝linux的情況下使用NDK來編譯C、C++代碼了。下面我們一步一步的安裝cygwin吧。

首先要下載cygwin的安裝程序setup.exe,下載地址為:

http://www.cygwin.com

下載完成后雙擊運行setup.exe,可以看到向導界面如下:

 點擊下一步,此時讓你選擇安裝方式:

1)Install from Internet:直接從Internet上下載並立即安裝(安裝完成后,下載好的安裝文件並不會被刪除,而是仍然被保留,以便下次再安裝)。

2)Download Without Installing:只是將安裝文件下載到本地,但暫時不安裝。

3)Install from Local Directory:不下載安裝文件,直接從本地某個含有安裝文件的目錄進行安裝。

選擇第一項,點擊下一步:
 
 
 選擇要安裝的目錄,注意,最好不要放到有中文和空格的目錄里,似乎會造成安裝出問題,其它選項不用變,之后點下一步:
 上一步是選擇安裝cygwin的目錄,這個是選擇你下載的安裝包所在的目錄,默認是你運行setup.exe的目錄(就是你下載的可執行文件setup.exe所在的目錄),我放在了F:\download目錄下,然后點擊下一步,此時你共有三種連接方式選擇:
1)Direct Connection:直接連接。
2)Use IE5 Settings:使用IE的連接參數設置進行連接。
3)Use HTTP/FTP Proxy:使用HTTP或FTP代理服務器進行連接(需要輸入服務器地址、端口號)。
 
用戶可以  根據自己的網絡連接的實情情況進行選擇,一般正常情況下,均選擇第一種,也就是直接連接方式。然后再點擊“下一步”,這是選擇要下載的站點,我用的是 http://ftp.ntu.edu.tw,(也可以自己添加站點,在User URL中輸入你選擇的站點,然后點擊Add添加,在列表中選中添加的站點)然后點擊下一步:
 此時會出現一個要下載安裝的組件包列表:
點擊下一步,進入安裝過程:
安裝完成后點擊完成結束安裝。

下面測試一下cygwin是不是已經安裝好了:

       運行cygwin,在彈出的命令行窗口輸入:cygcheck -c cygwin命令,會打印出當前cygwin的版本和運行狀態,如果status是ok的話,則cygwin運行正常。然后依次輸入gcc –version,g++ --version,make –version,gdb –version進行測試,如果都打印出版本信息和一些描述信息,非常高興的告訴你,你的cygwin安裝完成了! 

下載Android NDK:

下載站點:

http://dl.google.com/android/ndk/android-ndk-r4-windows.zip

http://androidappdocs.appspot.com/sdk/ndk/index.html 

http://developer.android.com/sdk/ndk/overview.html

如果上面的站點下載不了,也可以到網上找一些下載站點,下載r4版本的android_ndk,下載后直接解壓即可。可以考慮和android SDK放在相同的目錄下,對以后的開發可能會帶來一些便利。

配置NDK環境變量

首先找到cygwin的安裝目錄,找到一個home/<你的用戶名>/.bash_profile文件,我的是C:/cygwin/home/Administrator/.bash_profile,(如果找不到,那就到網上去找解決辦法把,這種情況確實可能發生)打開bash_profile文件,添加如下內容(根據你的ndk的安裝目錄,我的是D盤android-ndk-r4):

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

export ANDROID_NDK_ROOT

ANDROID_NDK_ROOT這個名字是隨便取的,為了方面以后使用方便,選個簡短的名字,然后保存。打開cygwin,輸入cd $ANDROID_NDK_ROOT,如果輸出上面配置的/cygdrive/d/android-ndk-r4信息,則表明環境變量設置成功了。

安裝eclipse組件:

Android SDK 和 ADT就不介紹了,下面介紹一個新的組件——CDT。CDT是eclipse開發c++的組件包,這里聲明一下,使用NDK開發android是不需要CDT的。如果你安裝了CDT,會在以后review別人的c++ code時帶來一些方便。可以到CSDN上下載CDT的壓縮包,加壓后把對應的目錄下的文件拷貝到eclipse的對應目錄下就可以了。 

部署並運行第一個hello-jni例子

用NDK來編譯程序:

       現在我們用安裝好的NDK來編譯一個簡單的程序吧,我們選擇ndk自帶的例子hello-jni,我的位於D:/android-ndk-r4/samples/hello-jni(根據你具體的安裝位置而定),運行cygwin,輸入命令cd /cygdrive/d/android-ndk-r4/samples/hello-jni,進入到D:/android-ndk-r4/samples/hello-jni目錄。輸入$ANDROID_NDK_ROOT/ndk-build,執行成功后,它會自動生成一個libs目錄,把編譯生成的.so文件放在里面。($ANDROID_NDK_ROOT是調用我們之前配置好的環境變量,ndk-build是調用ndk的編譯程序),此時去hello-jni的libs目錄下看有沒有生成的.so文件,如果有,你的ndk就運行正常啦!

在eclipse中配置參數編譯源碼生成.so文件

1)導入hello-jni工程

2)這時你的工程可能會報錯,沒關系,工程右鍵選擇Build path->config Build path,如下圖:

 然后選擇builders->new,如下圖:

 

選擇program,配置如下圖:

 出現了添加界面,首先給編譯配置起個名字,如:C_Builder或者是默認的New_Builder,如上圖,

設置Location為<你cygwin安裝路徑>/bin/bash.exe程序,例如:C:/cygwin/bin/bash.exe;

設置Working Directory為<你cygwin安裝路徑>/bin目錄,例如:C:/cygwin/bin

設置Arguments為:

--login -c "cd /cygdrive/d/android-ndk-r4/samples/hello-jni && $ANDROID_NDK_ROOT/ndk-build"

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

接着配置refresh選項:

勾選Refresh resources upon completion

再配置Build Options選項,如下圖:

勾選上最后三項,之后點擊Specify Resources按鈕,選擇資源目錄,勾選你的項目目錄即可:

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

現在來測試一下是否可以自動編譯呢,打開項目jni目錄里的hello-jni.c文件把提示Hello from JNI!改成其他的文字:如:"Hello,My name is lusifer.",然后再模擬器中運行你的程序,如果模擬器中顯示了你最新修改的文字,那么你已經全部配置成功啦!

 

轉自:http://ygc87.blog.163.com/blog/static/2396065201221063030169/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM