- 軟件大?。?50MB
- 軟件語言:簡體中文
- 軟件類型:國產(chǎn)軟件
- 軟件類別:編程工具
- 更新時間:2016-03-16
- 軟件授權(quán):免費(fèi)版
- 官方網(wǎng)站:http://www.android.com
- 運(yùn)行環(huán)境:XP/Win7/Win8/Win10
- 標(biāo)簽:Android NDK ndk
567MB/簡體中文/8
238KB/簡體中文/7.5
Klevgrand Kleverb(音頻混響算法插件) v1.0.2 最新版
13.0MB/簡體中文/7.5
16.69MB/簡體中文/7.5
96.1MB/簡體中文/7.5
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是用來給安卓手機(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)頭文件和庫。
在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
根據(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