閱讀115 返回首頁    go 阿裏雲 go 技術社區[雲棲]


android 的NDK在Windwos環境搭建

NDK的Windwos環境搭建Eclipse版本是3.6以上的   

一、下載android NDK您可以下載NDK r4  for Windows或NDK r5  for Windows安裝包,下載地址:
地址:https://developer.android.com/sdk/ndk/index.html

2011122816360098.png 

下載後解壓縮到你的工作目錄,例如:E:\Android\tools\android-ndk-r7,結果如下圖:


2011122816365794.png 

Android NDK包含build、docs、samples、sources、GNUmakefile、ndk-build、ndk-gdb及readme等內容。samples下麵包含幾個實例開發演示項目,第一次接觸NDK開發,建議先從示例開始。下麵先看一下編譯環境配置。 
二、下載Cygwin 由於NDK開發大都涉及到C/C++在GCC環境下編譯、運行,所以在Windows環境下,需要模擬Linux模擬編譯環境,下載地址: 
https://www.cygwin.com/ 
下載setup.exe文件。 https://cygwin.com/setup.exe 
2011122816371536.png 

使用過程如下: 
第一步:運行setup程序,第一步圖略,直接點擊Next進入下一步。 
第二步:選擇安裝方式,第一次可以采用Direct Connection在線下載安裝,如有現成的離線包,可以選擇離線安裝(Install from Local Directory)。 

第三步:選擇安裝目錄,比如E:\Android\cygwin,注意此目錄是指Cygwin最終的安裝目錄,不是下載文件暫存目錄。 
第四步:設置本地包暫存路徑 
暫存目錄默認是放到setup.exe的同級目錄下,下載後名字類似E:\Android\Softs這樣格式。 
第五步:設置網絡連接方式 
第六步:選擇下載站點地址 
起初嚐試幾個看哪個速度快就用哪個地址(如果感覺不快就點取消,再次來過)。國內的話,我感覺163的速度不錯。

第七步:等待加載安裝項載入,選擇安裝項 
我們編譯NDK,在默認設置下,隻需選擇Devel(點擊列表中Devel,將後麵的Default改為Install,圖中箭頭所示),其它均為默認狀態。 

那四個單選按鈕是選擇下邊樹的樣式,默認就行,不用動。View默認是Category,建議改成full顯示全部包再查,省的一些包被隱藏掉。左下角那個複選框是是否隱藏過期包,默認打鉤,不用管它就行,下邊開始下載我們要安裝的包吧,為了避免全部下載,這裏列出了後麵開發NDK用得著的包:autoconf2.1、automake1.10、binutils、gcc-core、gcc-g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12個包

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

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


三、驗證Cygwin環境   
安裝完成後,運行cygwin, 
第一次使用時,會創建一些用戶環境文件, 
在彈出的命令行窗口輸入:cygcheck -c cygwin命令,會打印出當前cygwin的版本和運行狀態,如果status是ok的話,則cygwin運行正常。 
分別輸入:
make -v 
和, 
gcc -v 
如果檢測成功,會有make和gcc相關版本信息打印出來, 
四、編譯示例   
1、設置NDK路徑。 
在windows的係統環境變量中添加NDK的路徑。如:e/Andriod/tools/android-ndk-r7 

2、也可以不添加,每次打開目錄時,輸入該路徑即可。 /cygdrive/e/Andriod/tools/android-ndk-r7
2011122816402179.png 
四:用NDK來編譯程序 

    1、現在我們用安裝好的NDK來編譯一個NDK提供的示例的程序。
 
我們選擇ndk自帶的例子hello-jni,我的位於android-ndk-r7\samples\hello-jni(根據你具體的安裝位置而定),

    2、運行cygwin,輸入命令cd /cygdrive/e/android-ndk-r5/samples/hello-jni,進入到E:\android-ndk-r5\samples\hello-jni目錄。
2011122816420744.png 

3、輸入 ../ndk-build ,執行成功後,它會自動生成一個libs目錄,把編譯生成的.so文件放在裏麵。(ndk-build是調用ndk的編譯程序)
 錯誤: 
Android NDK: Host 'awk' tool is outdated。
找到目錄E:\Android\tools\android-ndk-r7\prebuilt\windows\bin\awk.exe:刪除awk。(為保險起見可先cp一份),重新ndk-build
成功編譯:
2011122816425754.png 

  4、此時去hello-jni的libs目錄下看有沒有生成的.so文件,如果有,你的ndk就運行正常啦!正常編譯完成後會在你的項目libs/armeabi目錄下生成對應的 .so文件。
 hello-jni目錄中多了一個libs目錄。打開目錄,發現到so文件。
2011122816433756.png 
導入示例s到Android項目 ndk自帶例子是無法直接導入的,需要使用方法如下(示例): 
1、在Eclipse中新建一個工程HelloJni。在eclipse中通過 Create project from existing source 方法建立起hello-jni項目。需要注意的是在選擇API level時需要選擇1.5或更高的版本。如圖所示:
2011122816442516.png 

2、導入成功後,目錄。 

3、運行該代碼
2011122816445111.png 

五:在eclipse中集成c/c++開發環境

    1、裝Eclipse的C/C++環境插件:CDT。

    首先登錄
 https://www.eclipse.org/cdt/downloads.php ,找到對應你Eclipse版本的CDT插件的在線安裝地址。

2011122816455385.png 
如圖,首先是一個Eclipse C/C++ IDE Indigo SR-1的下載鏈接,該鏈接是用於下載自帶集成了CDT插件的Eclipse開發環境,如果當前計算機上沒有安裝任一版本的Eclipse,則可以選擇下載安裝此版本Eclipse,則無需再另外安裝CDT。 
果已經安裝了Eclipse Indigo,則可以使用第二個連接“p2 software repository”在Eclipse的Help菜單下選擇Install New Software並複製如上所述鏈接進行在線安裝。 
    2、在線安裝。然後點Help菜單,找到Install New Software菜單 

    3、點擊Add按鈕,把取的地址填進去,出來插件列表後,選Select All,然後選擇下一步即可完成安裝。 
勾選Group items by category,會按分類出現供安裝的組件。此處可以不需要安裝所有的組件,推薦勾選CDT Main Features分類並勾選CDT Optional Features下的“C/C++ Development Platform”、“C/C++ DSF GDB Debugger Integration”、“C/C++ GCC Cross Compiler Support”、“C/C++ GNU Toolchain Build Support”、“C/C++ GNU Toolchain Debug Support”、“Eclipse Debugger for C/C++”、“Miscellaneous C/C++ Utilities”這些組件,其他組件可以在需要用的的時候再進行安裝.

3、離線安裝
如果在線安裝的方法由於網絡原因或者其他原因不能夠成功完成,則可以通過下載離線安裝包的方式進行安裝,首先需要通過如圖13-10中最下方的鏈接下載CDT安裝包,例如目前最新的8.0.1版本,下載到本地後,在如圖13-11所示的界麵中點擊地址欄右方的Add…按鈕,然後點擊Archive按鈕並定位到剛下載的cdt-master-8.0.1.zip壓縮包,再進行安裝即可。

4、安裝完成後,在eclispe中右擊新建一個項目,如果出現了c/c++項目,則表明你的CDT插件安裝成功啦!

2011122816463516.png 

六、使用Sequoyah插件來配置 
1、Sequoyah插件的官方下載點為https://www.eclipse.org/sequoyah/downloads/,在該網頁上同樣提供了用於在線安裝的update site地址以及安裝包的下載地址,需要注意的是在安裝界麵要確認Group items by category複選框處於未選中狀態,否則可能出現列表為空(There are no categorized items)的情況。全部勾選列出的安裝包並完成安裝。 
https://download.eclipse.org/sequoyah/updates/2.0/ 

2011122816545915.png 

Sequoyah安裝完成後,
 添加ndk路徑。 
在windows-》preferences。

2011122817103631.png 
 

右鍵點擊任意的 Android Project會發現在Android Tools中多出了一個“Add Native Support… ”選項

2011122816573089.png 
 
Add Native Support…點擊後會彈出一個簡單的設置界麵。
2011122817131068.png 
 
JNI編譯環境配置

對於jni項目,需要添加c編譯以及依賴庫。
右擊項目-》Properties。
編譯設置:
在彈出界麵中選擇c/c++Build。在builder setting選項卡的build command輸入 “bash <ndk路徑>/ndk-build" 。如下圖
2011122822250852.jpg 
依賴庫
  選擇Gennera-》paths and。。。-》includes選項卡,選擇GNU c。添加依賴路徑 
\android-ndk-r7\platforms\android-8\arch-arm\usr\include

2011122822263449.jpg 

最後更新:2017-04-03 22:15:47

  上一篇:go PC不會死,它隻會逐漸凋零…
  下一篇:go android手勢操作滑動效果觸摸屏事件處理