android 最新 NDK r8 在window下開發環境搭建

android 最新 NDK r8 在window下開發環境搭建 安裝配置與使用 詳細圖文講解,完整實際配置過程記錄(原創)php

一直想搞NDK開發卻一直給其餘事情耽擱了,參考了些網上的資料今天終於把環境搭建起來了,把過程記錄下來分享給你們。html

內容目錄:android

1.默認基礎環境ios

2.NDK下載與配置windows

3.安裝Cygwinbash

4.用NDK編譯網絡

5.安裝CDT插件eclipse

6.安裝Sequoyah插件學習

7.JNI編譯環境配置網站

畫了一個思惟導圖讓你們一目瞭然配置過程

 

-----------------------------------------------

1、默認基礎環境爲已經完成Android開發環境的搭建

本人的環境是 jdk1.6.0_07 、Eclipse3.6(Helios)、Android SDK 、 ADT 能夠正常開發android應用。

要先建立android虛擬機,可以跑一個android應用起來再跑ndk的

 

2、Android NDK 下載與配置

下載Android NDK:http://developer.android.com/tools/sdk/ndk/index.html

最近google的網站打開都很慢 有時候還可能打不開,須要有點耐心。

選擇Windowsandroid-ndk-r8c-windows.zip233787657 bytes (104MB)

下載後解壓縮到你的工做目錄,例如:E:\android\android-ndk-r8,

samples文件夾下面包含12個實例開發演示項目,是學習的好資源。

 

3、安裝Cygwin

 

C/C++的編譯環境須要Linux的gcc,因此在Windows環境下用Cygwin來模擬Linux

下載地址:http://cygwin.com/install.html

隨便點擊一個 setup.exe 的鏈接便可下載,這個只是個下載的引導程序,實際內容到下一步才下載,有0.97GB須要的時間比較長的。

1.運行setup.exe程序,直接點擊Next進入下一步。

 

2.選擇安裝方式。第一次能夠採用Direct Connection在線下載安裝,若有現成的離線包,能夠選擇離線安裝(Install from Local Directory)。

 

3.選擇安裝目錄。好比D:\Cygwin,注意此目錄是指Cygwin這個虛擬機的安裝目錄,不是下載文件暫存目錄,也不是NDK的目錄。

 

4.設置本地包暫存路徑。暫存目錄默認是放到setup.exe的同級目錄下 個人是http%3a%2f%2fmirrors.163.com%2fcygwin%2f,能夠備份下來。

 

 

注:第一次安裝會彈出個警告框,不要管他,點擊確認就能夠了。 

 

5.設置網絡鏈接方式。選第一個便可。

 

6.選擇下載站點地址,直接選第一個163的站點就能夠了,這個我下載的速度最高能夠達到185k。

 

7.出現加載安裝項後,點擊Devel-Default,變成Devel-Install,其餘設置都不用動,下一步下載。

 

 

8.等待下載完成,大約須要一個小時左右。下載完成後再點擊下一步安裝,安裝也須要很長時間。

 

 

9.運行安裝目錄(D:\Cygwin)下的「Cygwin.bat」,輸入:「cygcheck -c cygwin」命令,會打印出當前Cygwin的版本和運行狀態,若是status是ok的話,則cygwin運行正常。

 

10.輸入:「make –v」和,「gcc –v」命令若是檢測成功,會有make和gcc相關版本信息打印出來。

11.設置NDK路徑,在windows的系統環境變量中添加NDK的路徑。

使用「/cygdrive/e/android/android-ndk-r8」這種Linux風格路徑,若是使用Windows下的「E:\android\android-ndk-r8」,Cygwin在編譯時會發出警告。

 

12.運行Cygwin命令行,能夠直接使用$ndk環境變量,不用每次都手動輸入目錄

 

 

4、使用NDK編譯程序:

 

1)編譯NDK提供的sample程序hello-jni(E:\android\android-ndk-r8\samples\hello-jni)。

1.運行Cygwin,輸入「cd $ndk/samples/hello-jni/」,進入到「hello-jni」工程目錄。

2.輸入「$ndk/ndk-build」編譯。ndk-build是調用ndk的編譯程序。

  

3.用ls命令查看libs/armeabi/下是否生成了so文件,有libhello-jni.so說明ndk運行正常。

$ ls libs/armeabi/

gdb.setup  gdbserver  libhello-jni.so

也能夠到E:\android\android-ndk-r8\samples\hello-jni\libs\armeabi目錄下看有沒有生成的.so文件。

 

 

2)導入NDK的hello-jni示例到Eclipse中

1.在Eclipse中新建一個Android工程HelloJni。

在Create Android Project時勾選「Create project from existing source」,Location中填E:\android\android-ndk-r8\samples\hello-jni

 

 

2.直接以Android Aplication運行com.example.hellojni.HelloJni項目。要先有.so文件才能運行起來。

 

 

5、在Eclipse中集成C/C++開發環境CDT

CDT插件能夠在一個工程中同時開發基於C/C++的Native代碼和基於Java的代碼,加上Sequoyah插件能夠一次編譯兩部分代碼。

下載地址:http://www.eclipse.org/cdt/downloads.php

不一樣eclipse版本要下載對應的包,不然安裝不了。

Help-->About Eclipse 下能夠看到本身用的版本,個人是 Version: Helios Service Release 2 即Helios版本

http://www.eclipse.org/downloads/download.php?file=/tools/cdt/releases/helios/dist/cdt-master-7.0.2.zip

cdt-master-7.0.2.zip:這個是CDT的離線安裝包。(因爲文件比較大推薦使用離線包,7.0.2的54.8M,8.1.1的103MB)

安裝:Eclipse -> Help -> Install New Software,點擊add。

Name:CDT_版本。

Location:點擊Archive,定位到下載的「cdt-master-7.0.2.zip」文件。

若是Location的下面出現「Duplicate location」錯誤,請到Window -> preferences -> Install/Update -> Avaliable Software Site中找到remove掉。

若是出現缺乏eclipse包說明你下載的版本和eclipse版本不匹配,從新下載匹配的從新安裝就能夠了。

 

另外須要重啓eclipse後才生效。

安裝完成重啓後,在Eclispe中新建一個項目,若是出現了C/C++項目,則代表CDT插件安裝成功了。

 

6、安裝Sequoyah插件(必須先安裝CDT以後才能安裝這個,能夠直接安裝最新版2.0的)

Sequoyah插件用於設置Android工程對Native開發的支持。

官方網址:http://www.eclipse.org/sequoyah/downloads/

打開上面網址就能夠看到具體的安裝說明了

Location:http://download.eclipse.org/sequoyah/updates/2.0/

 

For Helios SR2 Sequoyah version: http://download.eclipse.org/sequoyah/updates/1.0.2/ 

注:只是安裝1.0.2的沒有出來「本機開發」的配置因此無法用,本人從新安裝了2.0的能夠了,這個應該直接安裝最新版2.0的就能夠了。

在安裝界面不要勾選「Group items by category」複選框,選中出現了列表爲空(There are no categorized items)的狀況。

 

在「window –> preferences ->Android -> 本機開發」中添加NDK的路徑。

 

這個插件安裝後也須要重啓eclipse的

重啓後右鍵以前創建的「HelloJni」項目,在「Android Tools」選項中包含「Add Native Support…」選項即成功。

 

7、JNI編譯環境配置

如今修改「/HelloJni/jni/hello-jni.c」文件,動態連接庫libhello-jni.so文件不會被從新編譯生成。

須要給JNI項目添加編譯配置和依賴庫後才行。

1.轉換工程:新建項目,選擇「C/C++」下的「Convert to a C/C++ Project(Adds C/C++ Nature)」。進入「下一步」。

2.選中你剛纔建的「HelloJni」工程,下面左邊選「Makefile project」右邊選「Cygwin GCC」,點擊Finish建立項目。

 

 

3.在「HelloJni」工程上右鍵,選擇「屬性」。配置「C/C++ Build」:點擊「C/C++ Build」,在右邊的「Builder Settings」中去掉默認勾選的「Use default build command」複選框。

設置Build command爲「bash E:\android\android-ndk-r8\ndk-build」。

 

4.配置依賴庫:C/C++ General ->  Paths and Symbols:在Includes下add新的GNU,C依賴路徑。

「HelloJni」工程須要「E:\android\android-ndk-r8\platforms\android-8\arch-arm\usr\include」便可,之後根據不一樣項目選擇不一樣的依賴庫。 

 

5.將「/HelloJni/jni/hello-jni.c」中的字符串「Hello from JNI !」,改成「Hello JNI from ZDZ!」

 

6.運行後在模擬器上輸出的字符串爲「Hello JNI from ZDZ!」即說明配置成功。 

 

到如今你能夠在一個工程中同時開發基於C/C++的Native代碼和基於Java的代碼,開發NDK應用和開發普通android應用感受不到什麼差異了。

 

歡迎你們評論討論,若有不清楚的能夠在評論裏面提出來,將會更新補充清楚,已經補充了部分cygwin安裝過程的截圖和注意事項。

有空再整理一篇用NDK移植ffmpeg的文章。

相關文章
相關標籤/搜索