android ndk環(huán)境搭建詳細(xì)步驟

本文主內(nèi)容:
1、Android NDK 安裝
2、安裝Cygwin與使用NDK編譯
3、在Eclipse中集成C/C++開發(fā)環(huán)境CDT
4、安裝Sequoyah插件
5、JNI編譯環(huán)境配置
本文建立在已經(jīng)完成Android開發(fā)環(huán)境搭建的基礎(chǔ)上。其基礎(chǔ)環(huán)境至少需要包含以下內(nèi)容:
1、JDK
2、Eclipse
3、Android SDK and ADT
可以參考我之前的“Android開發(fā)環(huán)境搭建”。
一、Android NDK 安裝與配置下載Android NDK。下載地址:http://developer.android.com/tools/sdk/ndk/index.html
下載后解壓縮到你的工作目錄,例如:D:\Java\android-ndk-r8,結(jié)果如下圖:
注意:samples下面包含幾個(gè)實(shí)例開發(fā)演示項(xiàng)目,第一次接觸NDK開發(fā),建議先從示例開始。
docs內(nèi)是技術(shù)文檔,英語能力強(qiáng)的可以研究研究。
二、安裝Cygwin與使用NDK編譯由于NDK開發(fā)大都涉及到C/C++在GCC環(huán)境下編譯、運(yùn)行,所以在Windows環(huán)境下,需要用Cygwin模擬Linux編譯環(huán)境。
下載:
Cygwin的下載地址:http://www.cygwin.com/
點(diǎn)擊右上角的“setup.exe”即可下載。
安裝:
第一步:運(yùn)行setup.exe程序,直接點(diǎn)擊Next進(jìn)入下一步。
第二步:選擇安裝方式。第一次可以采用Direct Connection在線下載安裝,如有現(xiàn)成的離線包,可以選擇離線安裝(Install from Local Directory)。
第三步:選擇安裝目錄。比如D:\Java\Cygwin,注意此目錄是指Cygwin最終的安裝目錄,不是下載文件暫存目錄。
第四步:設(shè)置本地包暫存路徑。暫存目錄默認(rèn)是放到setup.exe的同級目錄下,建議放到指定的文件夾,如D:\Cygwin_install_file。安裝完成后把這個(gè)文件夾打包備份,以后再配置時(shí)不用重新下載。
第五步:設(shè)置網(wǎng)絡(luò)連接方式。這個(gè)目前河蟹沒爬過來,選第一個(gè)即可。
第六步:選擇下載站點(diǎn)地址。據(jù)說國內(nèi)163站點(diǎn)的速度不錯(cuò),我也是用的這個(gè)。
第七步:等待加載安裝項(xiàng)載入,選擇安裝項(xiàng)。點(diǎn)擊Devel-Default,使之變成Devel-Install,展開后可以看到其下的子項(xiàng)被選中了(網(wǎng)上多數(shù)教程都說選中某12個(gè)包,找起來太坑爹了,直接全下載了吧,全選多了150M左右)。此界面其他設(shè)置都不用動(dòng)。
第八步:等待下載完成。下載完成時(shí)間決定于你選擇的安裝包數(shù)量及網(wǎng)絡(luò)連接速度,安裝我安裝的版本,約983M,下載完成后會(huì)自動(dòng)安裝到上文設(shè)置的安裝目錄,安裝也要時(shí)間的,總時(shí)間較長,去吃個(gè)飯沒啥問題。
提醒:第四步的備份建議,盡量去做。如果有備份,第二步中選擇離線安裝。
驗(yàn)證:
運(yùn)行安裝目錄下的“Cygwin.bat”,第一次運(yùn)行時(shí),它會(huì)自動(dòng)創(chuàng)建用戶信息,用戶信息存放在“.\Cygwin\home”中。
在運(yùn)行“Cygwin.bat”打開的命令行窗口輸入:“cygcheck -c cygwin”命令,會(huì)打印出當(dāng)前Cygwin的版本和運(yùn)行狀態(tài),如果status是ok的話,則cygwin運(yùn)行正常。
分別輸入:“make –v”和,“gcc –v”命令如果檢測成功,會(huì)有make和gcc相關(guān)版本信息打印出來。
設(shè)置NDK路徑:
在windows的系統(tǒng)環(huán)境變量中添加NDK的路徑。使用“/cygdrive/d/Java/android-ndk-r8”這種Linux風(fēng)格路徑,如果使用Windows下的“D:\Java\android-ndk-r8”,Cygwin在編譯時(shí)會(huì)發(fā)出警告。
運(yùn)行Cygwin命令行,可以直接使用此環(huán)境變量,當(dāng)然也可以手動(dòng)的cd到該目錄:
使用NDK編譯程序:
現(xiàn)在我們用安裝好的NDK來編譯一個(gè)NDK提供的sample程序hello-jni(我的目錄位于:D:\Java\android-ndk-r8\samples\hello-jni)。
第一步:運(yùn)行Cygwin,配置環(huán)境變量后可輸入“cd $ndk/samples/hello-jni/”,未配置則輸入命令“cd /cygdrive/d/java/android-ndk-r8/samples/hello-jni”,進(jìn)入到“hello-jni”工程目錄。
第二步:編譯。輸入命令“$ndk/ndk-build”命令即可編譯。ndk-build是調(diào)用ndk的編譯程序。
關(guān)于下面的錯(cuò)誤,我沒遇到,但是前人有總結(jié),記錄如下:
錯(cuò)誤:Android NDK: Host 'awk' tool is outdated。
解決方法:打開目錄“D:\Java\android-ndk-r8\prebuilt\windows\bin\”,刪除awk.exe(為保險(xiǎn)起見請先備份)。
第三步:到”…/hello-jni/libs/armeabi“目錄下看有沒有生成的.so文件,如果有,你的ndk就運(yùn)行正常啦!
導(dǎo)入NDK的hello-jni示例到Eclipse中:
第一步:在Eclipse中新建一個(gè)Android工程HelloJni。在Create Android Project時(shí)勾選“Create project from existing source”,Location中填“D:\Java\android-ndk-r8\samples\hello-jni” (注意:在選擇API level時(shí)需要選擇1.5或更高的版本)。
第二步:直接以Android Aplication運(yùn)行。這里要注意,你之前在使用NDK編譯程序時(shí)要把這個(gè)hello-jni編譯過并產(chǎn)生了.so文件,此處才能運(yùn)行起來。
CDT的安裝可以使我們在一個(gè)工程中,同時(shí)開發(fā)基于C/C++的Native代碼和基于Java語言的殼,之后的配置還可以使得一次編譯兩部分代碼。
下載:
下載地址:http://www.eclipse.org/cdt/downloads.php
說明:
Eclipse C/C++ IDE Indigo SR2:是帶CDT的Eclipse開發(fā)環(huán)境。
p2 software repository:在線安裝的地址。(似乎被河蟹爬了)
cdt-master-8.0.2.zip:這個(gè)是CDT的離線安裝包。(推薦使用這個(gè),保留離線包,復(fù)用)
離線安裝:
Eclipse -> Help -> Install New Software,點(diǎn)擊add。Name:隨意,建議使用好記的“CDT_版本”。Location:點(diǎn)擊Archive,定位到下載的“cdt-master-8.0.2.zip”文件。
錯(cuò)誤:
如果Location的下面出現(xiàn)“Duplicate location”錯(cuò)誤,請到Window -> preferences -> Install/Update -> Avaliable Software Site中找到該條,remove之。
驗(yàn)證:
安裝完成后,在Eclispe中新建一個(gè)項(xiàng)目,如果出現(xiàn)了C/C++項(xiàng)目,則表明CDT插件安裝成功了。
Sequoyah插件用于設(shè)置Android工程對Native開發(fā)的支持。
官方網(wǎng)址:http://www.eclipse.org/sequoyah/downloads/
在線安裝:
官網(wǎng)提供了用于在線安裝的Update Site地址以及安裝包的下載地址。貌似安裝包才1M多,在線安裝也沒被河蟹爬過,直接在線安裝了。勾選全部列出的可安裝項(xiàng)并完成安裝。
Location:http://download.eclipse.org/sequoyah/updates/2.0/
注意:
在安裝界面不要勾選“Group items by category”復(fù)選框,默認(rèn)是勾選的,出現(xiàn)了列表為空(There are no categorized items)的情況。
配置:
安裝完Sequoyah插件后,為Android配置NDK路徑。
在“window –> preferences ->Android -> 本機(jī)開發(fā)”中添加NDK的路徑。
驗(yàn)證:
右鍵之前建立的“HelloJni”項(xiàng)目,在“Android Tools”選項(xiàng)中包含“Add Native Support…”選項(xiàng)即成功。
五、JNI編譯環(huán)境配置仍舊以之前建立的“HelloJni”為例,到目前為止,如果我們修改“/HelloJni/jni/hello-jni.c”文件,動(dòng)態(tài)鏈接庫libhello-jni.so文件卻不會(huì)被重新編譯生成。這是因?yàn)槲覀儧]有給JNI項(xiàng)目添加它需要的編譯配置和依賴庫?,F(xiàn)在我們來配置它。
第一步:轉(zhuǎn)換工程。點(diǎn)擊“文件 -> 新建 -> 其他”(快捷鍵:Ctrl+N)。選擇“C/C++”下的“Convert to a C/C++ Project(Adds C/C++ Nature)”。進(jìn)入“下一步”。
第二步:選中你剛才建的“HelloJni”工程,下面左邊選“Makefile project”右邊選“Cygwin GCC”。確定后提示的“透視圖”不清楚是什么,點(diǎn)擊“是”即可。
第三步:在“HelloJni”工程上右鍵,選擇“屬性”。配置“C/C++ Build”和“C/C++ General ->Paths and Symbols”。
C/C++ Build:點(diǎn)擊“C/C++ Build”,在右邊的“Builder Settings”中去掉默認(rèn)勾選的“Use default build command”復(fù)選框。設(shè)置Build command為“bash D:\Java\android-ndk-r8\ndk-build”。
C/C++ General ->Paths and Symbols:在Includes下add新的GNU C依賴路徑。此“HelloJni”工程需要“D:\Java\android-ndk-r8\platforms\android-8\arch-arm\usr\include”即可,以后根據(jù)不同項(xiàng)目選擇不同的依賴庫。
驗(yàn)證:
將“/HelloJni/jni/hello-jni.c”中的字符串“Hello from JNI !”如改為“Hello JNI from Baron!”,運(yùn)行后在模擬器上輸出的字符串改變即說明配置成功。
相關(guān)文章
WebStorm如何調(diào)試Vue項(xiàng)目? webstorm配置vue開發(fā)環(huán)境指南
WebStorm 支持多種調(diào)試工具,包括瀏覽器的開發(fā)者工具,但本文主要講解的是使用 WebStorm 自帶的調(diào)試功能2025-04-15VSCode和webstorm怎么設(shè)置綠色護(hù)眼背景? 綠豆沙背景色的設(shè)置方法
護(hù)眼色一定程度能保護(hù)眼睛,緩解疲勞,VSCode和webstorm這兩款常用的軟件怎么設(shè)置護(hù)眼色呢?詳細(xì)請看下文介紹2025-04-15WebStorm常用插件以及實(shí)用設(shè)置分享
WebStorm本身已經(jīng)足夠強(qiáng)大,但一些優(yōu)秀的插件能錦上添花,顯著提升開發(fā)效率,詳細(xì)請看下文介紹2025-04-15如何安裝配置WebStorm? WebStorm安裝與使用全方位指南
WebStorm軟件在前端和后端開發(fā)領(lǐng)域都備受青睞,很多朋友不知道該怎么下載安裝,下面我們就來看看詳細(xì)的安裝配置教程2025-04-15Webstorm怎么配置? Webstorm入門之軟件配置教程
WebStorm是一款功能強(qiáng)大的集成開發(fā)環(huán)境(IDE),支持各種前端開發(fā)技術(shù),今天我們就來看看Webstorm的配置教程2025-04-15Webstorm怎么設(shè)置字體大小/背景顏色/背景圖片?
WebStorm 允許您自定義界面顏色,以創(chuàng)建更個(gè)性化和美觀的工作空間,今天我們就來看看Webstorm改變字體大小、背景顏色、設(shè)置背景圖片的方法2025-04-15- VScode上安裝PlatformIO插件能成功安裝,嘗試卸載VScode并刪除插件,這些錯(cuò)誤仍然存在,下面我們就來看看這個(gè)問題的解決辦法2025-04-03
提升代碼搜索效率! VSCode里DeepSeek插件安裝與配置指南
今天我們將向大家介紹如何在Visual Studio Code中安裝并配置 DeepSeek 插件,幫助你更高效地進(jìn)行代碼搜索2025-04-07提升你的編程效率! VSCode的初級使用教程超詳細(xì)版
VSCode是一款免費(fèi)且開源的代碼編輯器,因其強(qiáng)大的功能和良好的用戶體驗(yàn)而廣受歡迎,本文將詳細(xì)介紹 VSCode 的基本使用方法,并通過插圖幫助你更好地理解2025-04-03- 今天我們來聊聊如何安裝和配置VS Code,讓它成為你編程路上的得力助手,這個(gè)過程其實(shí)很簡單,只要跟著我的步驟走,你絕對能搞定2025-04-03