最近更新|軟件分類|軟件專題|軟件排行|手機(jī)版|軟件發(fā)布Android NDK (安卓開發(fā)工具) R10D 簡體中文版
您的位置:首頁>編程開發(fā) > 編程工具>Android NDK (安卓開發(fā)工具) R10D 簡體中文版

Android NDK (安卓開發(fā)工具) R10D 簡體中文版

網(wǎng)友評分:

相關(guān)軟件

軟件介紹

Android NDK是安卓原生開發(fā)工具集合。幫助開發(fā)者快速開發(fā)C(或C++)的動態(tài)庫,并能自動將so和java應(yīng)用一起打包成apk。NDK集成了交叉編譯器,并提供了相應(yīng)的mk文件隔離平臺、CPU、API等差異,開發(fā)人員只需要簡單修改mk文件(指出“哪些文件需要編譯”、“編譯特性要求”等),就可以創(chuàng)建出so。NDK可以自動地將so和Java應(yīng)用一起打包,極大地減輕了開發(fā)人員的打包工作。

NDK是什么:

NDK是用來給安卓手機(jī)開發(fā)軟件用的,但是和SDK不同的是它用的是C語言,而SDK用的是Java語言。

NDK開發(fā)的軟件在安卓的環(huán)境里是直接運(yùn)行的,一般只能在特定的CPU指令集的機(jī)器上運(yùn)行,而且C語言可以直接和硬件對話,因此一般用它開給手機(jī)開發(fā)驅(qū)動或底層應(yīng)用;而SDK開發(fā)出的軟件在安卓上靠Dalvik虛擬機(jī)來運(yùn)行,所以如果沒有特殊的需要或署專門針對某個硬件去開發(fā),那就一般用SDK

Android NDK 特點(diǎn)

使用原生SDK編程相比Dalvik虛擬機(jī)也有一些劣勢,比如程序更加復(fù)雜,兼容性難以保障,無法訪問Framework API,Debug難度更大等。開發(fā)者需要自行斟酌使用。

眾所周知,Android程序運(yùn)行在Dalvik虛擬機(jī)中,NDK允許用戶使用類似C / C++之類的原生代碼語言執(zhí)行部分程序。

NDK包括了:

從C / C++生成原生代碼庫所需要的工具和build files。

將一致的原生庫嵌入可以在Android設(shè)備上部署的應(yīng)用程序包文件(application packages files ,即.apk文件)中。

支持所有未來Android平臺的一些列原生系統(tǒng)頭文件和庫。

Android NDK安裝

在Linux上,尤其是Debian/Ubuntu上進(jìn)行安裝,非常順利,不會有什么問題。但是在Windows平臺進(jìn)行安裝,就不那么輕松了,根據(jù)Google的建議,我們需要安裝cygwin,而且特別提醒一定在安裝時,注意把make和gcc包含進(jìn)去。

首次安裝時,會遇到的問題。由于沒有經(jīng)驗,第一次安裝,統(tǒng)統(tǒng)采用默認(rèn)設(shè)置,由此遇到的第一個問題:

your C compiler doesn't seem to work:

gcc.exe:/temp/android-4068-test.c: No such file or directory

gcc.exe: no input files

Android NDK

根據(jù)錯誤信息,可以推定應(yīng)該是安裝cygwin時沒有進(jìn)行正確的設(shè)置,要選擇上make和gcc的 包選項,

為了以防萬一,遺漏掉依賴的包,干脆把Devel包從default變?yōu)閕nstall,這樣這個包下所有內(nèi)容一律安裝。

安裝好NDK之后,最好花上幾分鐘讀一讀/docs目錄下文檔。特別是要完整閱讀OVERVIEW.TXT,讀完以后你就可以明白NDK的初衷以及如何使用它了。

把native source放在/sources/,當(dāng)然也可以建立鏈接。

創(chuàng)建/sources//Android.mk,描述native sources。

創(chuàng)建/apps//Application.mk,描述Android applicaiton和navite sources。

在NDK路徑的最頂極目錄里執(zhí)行make命令來build native code : make APP

最后,使用SDK工具,以通常的方式編譯應(yīng)用,SDK的build工具會將共享庫打包進(jìn)apk的文件。

旦安裝完NDK之后,就可以使用這些命令,從NDK的根目錄下build共享庫了:make APP=hello-jni 這將會編譯/sources/samples/hello-jni/hello-jni.c,并輸出共享庫到/apps/hello-jni /project/libs/armeabi/libhello-jni.so.由于實際工作中,我們很少會把工程放在/apps下,因此下面將嘗試如何 將應(yīng)用和ndk分開來放置。

拷貝/apps/hello-jni/project,重命名為my-hello-jni,然后使用”Import from Existing Source”,創(chuàng)建名稱為my-hello-jni的android工程。在/apps下新建文件夾my-hello-jni,并從hello-jni 下拷貝Application.mk到新文件夾下,打開該文件,修改APP_PROJECT_PATH為正確的路徑,注意這里的路徑應(yīng)該是cygwin下 的路徑,例如我的路徑是:/cygdrive/e/workspace/my-hello-jni。

完成之后,到ndk的根路徑下,執(zhí)行make APP=my-hello-jni,然后即可成功看到結(jié)果:

Android NDK: Building for application 'my-hello-jni'

Compile thumb : hello-jni <= sources/samples/hello-jni/hello-jni.c

SharedLibrary : libhello-jni.so

Install : libhello-jni.so => /cygdrive/e/worskspace/my-hello-jni/libs/armeabi

  • 下載地址

點(diǎn)擊報錯軟件無法下載或下載后無法使用,請點(diǎn)擊報錯,謝謝!