windows下eclipse搭建android_ndk開發環境

安裝cygwin:html

因爲NDK編譯代碼時必需要用到make和gcc,因此你必須先搭建一個linux環境, cygwin是一個在windows平臺上運行的unix模擬環境,它對於學習unix/linux操做環境,或者從unix到windows的應用程序移植,很是有用。經過它,你就能夠在不安裝linux的狀況下使用NDK來編譯C、C++代碼了。下面咱們一步一步的安裝cygwin吧。linux

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

http://www.cygwin.comc++

下載完成後雙擊運行setup.exe,能夠看到嚮導界面以下:windows

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

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

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

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

選擇第一項,點擊下一步:
 
 
 選擇要安裝的目錄,注意,最好不要放到有中文和空格的目錄裏,彷佛會形成安裝出問題,其它選項不用變,以後點下一步:
 上一步是選擇安裝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是否是已經安裝好了:eclipse

       運行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/

相關文章
相關標籤/搜索