Android ndk r4b開發環境搭建
說明:本文以Mac系統為例,所以準備的軟體都需要是適合Mac版本的.
Android SDK:android-sdk-mac_86
Android NDK: android-ndk-r4b-darwin-x86
Eclipse
ADT
CDT
ANT
搭建Android SDK開發環境
Android SDK還發環境搭建步驟:
1:Jdk安裝,要求1.5以上.一般的Mac OS中已經預裝了jdk,我的是jdk 1.6.用"java -version"在terminal可以檢視.
2:eclipse IDE安裝.需要去Eclipse官網下載,我下載的是eclipse 3.5.2.解壓到合適的路徑,不需要編譯安裝,直接執行目錄下的
3:android sdk安裝.到Android.同eclipse一樣,只需要解壓到合適目錄.同時需要將該目錄下的tools路徑加到PATH中.編輯~/.bash_profile,新增:PATH=${PATH}:/{your-android-sdk}/tools.
4:安裝Android Developer Tools.開啟Eclipse,點選Help選單,找到Install New Sofeware,在Add Site中新增一個location為:,然後會出現Android DDMS,和Android Development Tools,選擇並
5:開啟terminal,使用"android list targets"發現沒有可以sdk target.需要在eclipse的window選單裡面開啟Android SDK And AVD Manager視窗,找到avilable packages,選中相關的packages.如下圖所示.
6:等待下載.完成之後可以在Install packages中找到自己已經安裝的包.如下圖所示.
7:使用"android create avd --name sdk_2_2_version --target 8"
現在可以編寫HelloWorld來測試環境了,這裡筆者在搭建SDK開發環境時將Eclipse和android sdk都放置在了”/Developer/Android/”目錄下,如下圖所示.
搭建Android ndk開發環境
從上面的圖片大家可以看到,我們實際上也將Android NDK安裝到了同一個目錄下,NDK的安裝很簡單,就是將下載的包進行解壓到指定位置即可,解壓之後我們一般需要配置環境變數,這裡我們將環境變數的配置放在最後一起來配置.
設定環境變數
執行命令” pico .bash_profile”來開啟或建立.bash_profile檔案,然後輸入如下圖的程式碼.
安”control+x”退出,並輸入”Y”表示確認儲存,然後退出(必須退出重新開啟才行),其中我們將sdk的tools目錄和ndk的安裝目錄都加入了環境變數,方便我們使用,同時設定了ANDROID_NDK_ROOT和ANDROID_SDK_ROOT目錄.
到這裡我們就完成了NDK的環境搭建,android ndk r4開始我們並不需要使用” build/host-setup.sh”命令了,接下來我們將介紹如何使用ndk來編譯.這裡需要注意的是對於ndk提供的例子沒有放置在apps目錄下面了,而是放置在samples中,為了相容,同時也支援將專案檔案放置在apps目錄下面.下面我們來看如何編譯,執行和調式.
編譯Hello-Jni工程
進入ndk下面的” samples/hello-jni/”目錄,然後使用命令” ndk-build”即開始編譯,出現如下圖所示,則表示成功.如果不成功,可能是環境沒有設定正確,請檢查並重新設定.
執行Hello-Jni專案
下面我們首先生成apk檔案,生成apk檔案需要使用ant,由於Mac系統預裝了ant所以我們少一步,沒有安裝的安裝一下便可,注意安裝之後還是要將ant目錄下買了的bin目錄加入環境變數才行.
現在使用” cd ../”命令返回hello-jni目錄的上一個目錄,然後使用” android update project --path hello-jni”命令來更新hello-jni工程,就是生成一個build.xml檔案來編譯生成apk檔案.在更新了工程之後,需要進入工程的根目錄,使用cd hello-jni命令即可,下面進入最關鍵的一步,編譯apk檔案,使用”ant debug”命令即可,如果出現如圖所示,則表示編譯成功.
現在你可以在” samples/hello-jni/bin”中找到一個生成的apk檔案,現在可以連結手機或者模擬器來進行測試了.
調式Hello-jni工程
在android ndk r4開始我們可以使用gdb來對jni程式碼進行單步除錯了,關於gdb除錯我們就不多說了,網上去搜索吧,這裡我們看一下如何來除錯.
進入” samples/hello-jni/”目錄,然後執行”ndk-gdb”命令,這時,你的手機或者模擬器的hello-jni工程是否已經啟動了,這時終端也進入了gdb除錯介面,如下圖所示.,注意要在xml中設定debug為true才能進行除錯哦.
在Eclipse中整合NDK開發
因為大多數人在些程式碼時可能使用的是記事本,,有好的IDE為什麼不用呢?那這裡我們就使用Eclipse來編寫ndk程式,在開始之前我們需要進行一些必要的配置.
1:安裝CDT,使得Eclipse具有編輯C++程式的功能.
2:我們推薦大家可以安裝anyedit外掛
3:新建一個ndk的工程,這裡我們就使用hello-jni為例來演示即可,就不在單獨新建了,將hello-jni匯入到Eclipse中.然後按照如下步驟操作:
右擊專案,選擇“properties”
在左邊的列表中選擇“Builders”
在右側,點選“New…”按鈕
在列表框,選擇“Program”作為配置型別;點選“OK”按鈕,進入下一個配置對話方塊。
命名name為“NDK Builder”
選擇Location為“/bin/bash”,如果是windows使用cygwin則填寫” c:/cygwin/bin/bash.exe”其中表明cygwin安裝於c:/cygwin中,這個路徑可以根據自己的情況更改.
“Working Directory”為“/bin”,同樣如果在windows上使用cygwin則填寫” c:/cygwin/bin”.
“Arguments”為:
--login -c "cd $ANDROID_NDK_ROOT/samples/hello-jni && ndk-build"
確保在login前有兩個連線號,-c後面的引號。ANDROID_NDK_ROOT為NDK的安裝路徑….整個介面操作之後如下圖所示.
接著開啟“refresh”的tab面板:
選中“Refresh resources upon completion”
選擇“Specific resources”
點選“Specify resources”按鈕,選擇你專案的lib目錄
選中“Recursively include sub-folders”
操作完成之後如下圖所示.
接著開啟“Build Options”的tab面板:
選中“Allocate Console”
選中“Launch in background”
選中“Run the builder After a Clean”
選中“Run the builder During manual builds”
選中“Run the builder During auto builds”
選中“Specify working set of relevant resources”
點選“Specify Resources”按鈕,選擇你專案的JNI目錄,幷包含所有的檔案。
完成之後如下圖所示.
點選“OK”按鈕。完成配置,這時當我們在Ecisplse中改動一下C++程式碼,Eclipse都回自動呼叫ndk來編譯,並在控制檯輸出編譯資訊,如下圖所示.然後自動更新生成的so檔案.