西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)Android → C++開發(fā)安卓、windows下搭建Android NDK開發(fā)環(huán)境

C++開發(fā)安卓、windows下搭建Android NDK開發(fā)環(huán)境

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2013/12/10 8:46:19字體大。A-A+

作者:西西點擊:981次評論:0次標(biāo)簽: NDK

Android NDK R9d官方最新版
  • 類型:編程控件大。496.9M語言:中文 評分:1.8
  • 標(biāo)簽:
立即下載

1. NDK(Native Development Kit)

1.1 NDK簡介

Android NDK是一套允許開發(fā)人員使用本地代碼(如C/C++)進行Android APP功能開發(fā)的工具,通過這個工具,我們可以把用C/C++代碼編譯成可以直接運行在Android平臺上的本地代碼,這些本地代碼以動態(tài)鏈接庫( *.so )的形式存在,也正因為這樣,我們可以通過復(fù)用這些動態(tài)鏈接庫從而復(fù)用本地代碼。

那么,通過NDK這個開發(fā)工具包,那么我們是否可以將一個APK完全使用C/C++來編寫呢?

答案是不可以的。眾所周知,Android應(yīng)用程序是運行在Dalvik虛擬機上的。而NDK只開發(fā)了部分接口,所以NDK只是允許開發(fā)人員通過C/C++實現(xiàn)Android APP的部分功能。由于Android系統(tǒng)本身就是Linux核心,NDK只是負責(zé)把這些本地代碼編寫成可以運行在linux上的動態(tài)鏈接庫,從而繞過了Dalvik虛擬機,直接運行在Android平臺上了。

1.2 NDK下載

1.2.1 下載說明

下載地址:http://innovatechautomation.com/soft/66623.html
http://developer.android.com/tools/sdk/ndk/index.html#Downloads

截至2013-12-9為止,也就是我寫這篇博客的時候,最新版本為:r9

在同一個平臺中,下載包有兩個,我們選擇下載android-ndk-r9b-windows-x86

1.2.2 下載項區(qū)別

NDK支持三大平臺(windows, Mac, Linux),下面我以windows作為例子進行講解一下下載項中的Package的區(qū)別,如圖:

從圖中,我們可以看到,每個平臺,都有兩個相應(yīng)的下載包,分別是android-ndk-r9b-windows-x86.zip和android-ndk-r9b-windows-x86-legacy-toolchains.zip,那么這兩個包有什么區(qū)別呢?

官網(wǎng)的解釋是這樣子的:第一個下載包,也就是圖中的android-ndk-r9b-windows-x86.zip,包含了所有平臺默認的工具鏈,如果你不想使用當(dāng)前默認推薦的工具鏈,那么可以下載第二個?赡苤苯舆@么說會有點空,下面一起看下下面這張圖:

從圖中我們知道了legacy包只有一個工具鏈包,而非legacy包中含有各種默認的已經(jīng)制定好的工具,同時包含有例子,文檔等等。

1.3 NDK安裝說明

1) 直接把下載到的安裝包解壓到你想要放的路徑;

2) 配置環(huán)境變量

I. 新建一個系統(tǒng)環(huán)境變量,變量名為ANDROID_NDK_ROOT, 變量值為你的NDK所在的路徑,比如我的就是D:\DevTools\JAVA\adt-bundle-windows\android-ndk-r9b

II. 在系統(tǒng)變量 Path 的最前面添加%ANDROID_NDK_ROOT%\;

 

1.4 NDK 安裝驗證

完成上面的步驟之后,NDK的安裝到此就完成了,下面我們來驗證一下NDK安裝成功與否.

1) 打開cmd.exe,在里面輸入ndk-build -version,輸出以下內(nèi)容,表示安裝成功。

1.5 NDK 的使用說明

根據(jù)官方文檔的說明,從 r7 版本之后,NDK中就多出了一個 ndk-build.cmd,讓我們可以直接在windows下運行啦,如果沒有特別需求的話,我們再也不用花費一大堆時間去下載安裝Cygwin啦……

下面我們以官方給的Project hello-jni 作為例子來講解吧。

1) 進入到hello-jni目錄下或者它的任意父目錄,當(dāng)前我就直接進入到 hello-jni 目錄下吧;

2) 直接輸入命令ndk-build進行本地代碼編譯,輸出以下內(nèi)容,表示成功編譯成動態(tài)鏈接庫,同時我們在hello-jni\obj\local\armeabi路徑下可以看到編譯好的libhello-jni.so;

 

編譯成功后,我們來嘗試一下,看看剛才編譯成功的動態(tài)鏈接庫是否能夠使用。

1) 執(zhí)行前面博文中我們講解過的adb update project命令升級該項目,為該項目添加上build.xml等文件,不懂的可以直接查看前面的博文《Android學(xué)習(xí)第二天-android常用命令》,下面我直接在機子上執(zhí)行以下命令:

android update project -p . -t 1

輸出以下結(jié)果表示Update成功。


2) 直接執(zhí)行命令ant debug進行編譯打包成apk(這里需要預(yù)先搭建好ANT的環(huán)境,如果沒有搭建的話可以參考博文:http://my.oschina.net/xiahuawuyu/blog/71296)

3) 開啟模擬器

4) 直接執(zhí)行命令安裝bin目錄下的APK到模擬器中adb install HelloJni-debug.apk以下是執(zhí)行結(jié)果:

 

2. Eclipse中使用NDK

2.1 Eclipse CDT (C/C++ Development Tooling)

2.1.1 CDT介紹

CDT是C/C++在Eclipse平臺下的開發(fā)工具.它提供的功能包括:C/C++編輯器(一些基本的功能:語法高亮顯示,代碼編輯等),C/C++調(diào)試器,C/C++ Launcher,剖析器,內(nèi)容提示,Makefile生成器等。

2.1.2 CDT 下載與安裝

2.1.2.1 CDT 安裝前說明

如果大家下載的是谷歌提供的ADT 綁定版,那么它已經(jīng)默認安裝好了相應(yīng)的CDT了,可以忽略該章不閱讀,具體我們還可以通過 Help-> About ADT 進行查看相關(guān)信息,如圖:

2.1.2.2 CDT 下載

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

該地址上下載的是離線安裝包,由于安裝包比較大,所以也建議采取這種方式。

注意:不同eclipse版本要下載對應(yīng)的包,否則安裝不了

那么我們應(yīng)該怎么知道我們的eclipse版本呢?

同樣通過Help -> About Eclipse 打開相關(guān)信息,如圖:

從圖中,我們可以知道自己的Eclipse版本,比如我的是Indigo,然后就到下載地址上根據(jù)版本下載相應(yīng)的即可,比如我下載的是就是 cdt-master-8.0.2.zip

2.1.2.3 CDT 安裝

1) 通過 Help -> Install New Software打開一個對話框,點擊按鈕 add。

2) 在彈出來的對話框中,建議給Name的值為:CDT_版本號;然后點擊Archive按鈕,定位到我們下載到的CDT離線安裝包

3) 等待安裝完成后,重啟eclipse后生效

4) 安裝完成重啟后,在Eclispe中新建一個項目,如果出現(xiàn)了C/C++項目,則表明CDT插件安裝成功了

2.1.2.4 CDT 安裝問題解決

1) 如果Location的下面出現(xiàn)“Duplicate location”錯誤,請到Window -> preferences -> Install/Update -> Avaliable Software Site中找到remove掉。

2) 如果出現(xiàn)缺少eclipse包說明你下載的版本和eclipse版本不匹配,重新下載匹配的重新安裝就可以了。

2.2 Sequoyah

2.2.1 Sequpyah 簡介

Sequoyah插件用于設(shè)置Android工程對Native開發(fā)的支持,如果安裝的是ADT 綁定版的同學(xué),可以直接閱讀 章節(jié)2.2.4 NDK的配置

2.2.2 Sequoyah 下載

下載地址:http://www.eclipse.org/sequoyah/downloads/index.php#latest

我們可以從上面的地址中下載離線安裝包,具體的安裝方法跟上文中的CDT離線安裝方法相同,再次不做重復(fù)說明。

2.2.3 Sequoyah 在線安裝

由于Sequoyah本身并不是太大,在線安裝速度也比較快,所以建議在線安裝,下面我們來說明一下在線安裝的方法

1) 通過 Help -> Install New Software打開一個對話框,點擊按鈕 add,具體不截圖啦,跟CDT中安裝的第一步一樣。

2) 在彈出的窗口中,Name 輸入Sequoyah,Location直接輸入http://download.eclipse.org/sequoyah/updates/2.0/ ,如圖:

注意:在安裝界面不要勾選“Group items by category”復(fù)選框,默認是勾選的,出現(xiàn)了列表為空(There are no categorized items)的情況,如圖:

2.2.4 NDK的配置

我們以NDK中給出的例子hello-gl2為例子進行講解:

1) 通過Preference -> Android -> NDK ,點擊Browser按鈕,定位到我們NDK安裝的根目錄,如圖:

2.3 Eclipse中NDK使用說明

1) 首先我們應(yīng)該導(dǎo)入項目,右鍵,選擇Import

2) 由于例子不是一個Eclipse項目,所以我們必須如圖中那般選擇 ,讓Eclipse根據(jù)已有的安卓代碼進行項目構(gòu)建, 點擊Next

3) 定位到我們要導(dǎo)入的項目,并且勾上復(fù)制到工作空間中,讓例子中搞定代碼保持原來的樣子作為備份,而我們操作的是復(fù) 制到工作區(qū)間中的代碼。

4) 對我們引入的項目右鍵,選擇Android Tools -> Add Native Support

5) 因為demo中已經(jīng)為我們寫好了cpp文件,所以直接跟他一樣名字,點擊確定。

6) 如圖,點擊右上角的按鈕進入Perspective C/C++

如果找不到改按鈕,我們還可以通過Windows -> Open Perspective -> Other... ,選擇C/C++ 即可打開

7) 點擊工具欄中的錘子按鈕進行編譯

8) 等待控制臺輸出以下內(nèi)容,說明動態(tài)鏈接庫已經(jīng)編譯完成了,同時我們還能夠在obj\local\armeabi看到編譯好了的動態(tài)鏈接庫。

9) 注意:改項目想要直接運行的話會出錯,具體解決方法可以參考:http://hi.baidu.com/huareal/item/f00ad3cf8d35ebd7ee183b83,根據(jù)該文章修改后,我們發(fā)現(xiàn)就可以正常運行了,這也說明了我們在Eclipse中的NDK相關(guān)設(shè)置配置成功了

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    第 1 樓 重慶電信 網(wǎng)友 客人 發(fā)表于: 2014/8/1 14:23:52
    博文很給力呀~~Thanks

    支持( 0 ) 蓋樓(回復(fù))

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)