軟件介紹
Android NDK是一款提供給安卓應(yīng)用開發(fā)人員使用的NDK開發(fā)工具集,我們可以通過(guò)Android NDK免費(fèi)版提供的多種開發(fā)和編譯器來(lái)完成安卓應(yīng)用和游戲的開發(fā)工作。而且我們還可以使用這款軟件來(lái)對(duì)so和Java應(yīng)用進(jìn)行打包,提升了用戶們的應(yīng)用打包效率。
Android NDK軟件簡(jiǎn)介
在此之前,Android平臺(tái)的第三方應(yīng)用程序均是依靠基于Java的Dalvik特制虛擬機(jī)進(jìn)行開發(fā)的。原生SDK的公布可以讓開發(fā)者更加直接的接觸Android系統(tǒng)資源,并使用傳統(tǒng)的C或C++語(yǔ)言編寫程序,并在程序封包文件(.apks)中直接嵌入原生庫(kù)文件。
不過(guò),Google也表示,使用原生SDK編程相比Dalvik虛擬機(jī)也有一些劣勢(shì),比如程序更加復(fù)雜,兼容性難以保障,無(wú)法訪問(wèn)Framework API,Debug難度更大等。開發(fā)者需要自行斟酌使用。
眾所周知,Android程序運(yùn)行在Dalvik虛擬機(jī)中,NDK允許用戶使用類似C / C++之類的原生代碼語(yǔ)言執(zhí)行部分程序。
NDK包括了:
從C / C++生成原生代碼庫(kù)所需要的工具和build files。
將一致的原生庫(kù)嵌入可以在Android設(shè)備上部署的應(yīng)用程序包文件(application packages files ,即.apk文件)中。
支持所有未來(lái)Android平臺(tái)的一些列原生系統(tǒng)頭文件和庫(kù)
Android NDK是在SDK前面又加上了原生二字,即Native Development Kit,因此又被Google稱為NDK。
軟件功能
Android NDK全稱:Native Development Kit,即本地開發(fā)包。
1、NDK是一系列工具的集合。
NDK提供了一系列的工具,這些工具對(duì)開發(fā)者的幫助是巨大的。它們能幫助開發(fā)者快速開發(fā)C(或C++)的動(dòng)態(tài)庫(kù),并能自動(dòng)將so庫(kù)和java應(yīng)用一起打包成apk。
NDK集成了交叉編譯器,并提供了相應(yīng)的mk文件隔離CPU、平臺(tái)、ABI等差異,開發(fā)人員只需要簡(jiǎn)單修改mk文件(指出“哪些文件需要編譯”、“編譯特性要求”等),就可以創(chuàng)建出so庫(kù)。NDK可以自動(dòng)地將so和Java應(yīng)用一起打包,極大地減輕了開發(fā)人員的打包工作。
2、 NDK提供了一份穩(wěn)定、功能有限的API頭文件聲明。Google明確聲明該API是穩(wěn)定的,在后續(xù)所有版本中都穩(wěn)定支持當(dāng)前發(fā)布的API。從該版本的 NDK中看出,這些API支持的功能非常有限,包含有:C標(biāo)準(zhǔn)庫(kù)(libc)、標(biāo)準(zhǔn)數(shù)學(xué)庫(kù)(libm)、壓縮庫(kù)(libz)、Log庫(kù)(liblog)。
Android NDK使用方法
打開Eclipse,點(diǎn)Window->Preferences->Android->NDK,設(shè)置NDK路徑,例如Shamoo的是E:\android-ndk-r9c
新建一個(gè)Android工程,在工程上右鍵點(diǎn)擊Android Tools->Add Native Support...,然后給我們的.so文件取個(gè)名字,例如:my-ndk
這時(shí)候工程就會(huì)多一個(gè)jni的文件夾,jni下有Android.mk和my-ndk.cpp文件。Android.mk是NDK工程的Makefile,my-ndk.cpp就是NDK的源文件。
接下來(lái)仿著NDK的demo,Hello-JNI工程寫一下。使用Alt + '/'可以代碼提示!很爽!有木有?之前用CDT時(shí)候死活都按不出代碼提示,郁悶...
JNI接口的命名規(guī)范是:Java_ + 調(diào)用該方法的包名(包名的點(diǎn)用_代替) + _ + 調(diào)用該接口的類名 + _ + 方法名,對(duì)于實(shí)例方法,有兩個(gè)參數(shù)是必要的,一個(gè)JNI的環(huán)境指針JNIEnv *
完成了,然后運(yùn)行。運(yùn)行之前先編譯NDK,然后在編譯JAVA代碼。編譯也許會(huì)遇到Unable to launch cygpath. Is Cygwin on the path?如何解決?如下
工程右鍵,點(diǎn)Properties->C/C++ Build的Building Settings中去掉Use default build command,然后輸入${NDKRoot}/ndk-build.cmd
在C/C++ Build中點(diǎn)擊Environment,點(diǎn)Add...添加環(huán)境變量NDKROOT,值為NDK的根目錄
- 精選留言 來(lái)自甘肅隴南電信用戶 發(fā)表于: 2023-6-4
- 這個(gè)必須支持一下,太全了。
- 精選留言 來(lái)自西藏拉薩移動(dòng)用戶 發(fā)表于: 2023-2-25
- 用了很多年了,真心覺(jué)得它一直很出色,希望它能一直強(qiáng)大下去。
- 精選留言 來(lái)自福建廈門電信用戶 發(fā)表于: 2023-9-20
- 支持支持
- 精選留言 來(lái)自山東泰安電信用戶 發(fā)表于: 2023-2-16
- 超級(jí)棒!點(diǎn)一億個(gè)贊
- 精選留言 來(lái)自黑龍江伊春電信用戶 發(fā)表于: 2023-10-18
- 又到了更新軟件的時(shí)候