最近項(xiàng)目需求少,學(xué)習(xí)一下NDK開發(fā)誓斥,下面是對(duì)NDK開發(fā)的初步探索综看,Android Studio版本3.0.1。
1.創(chuàng)建一個(gè)工程岖食,記得要勾選Include C++ support红碑,如圖1所示:
工程創(chuàng)建好后,在app線的build.gradle文件中可以看到有兩處不同,如圖2箭頭所示:
CMake是一款外部構(gòu)建工具析珊,可與 Gradle 搭配使用來(lái)構(gòu)建原生庫(kù)羡鸥,用以取代ndk-build。更多內(nèi)容請(qǐng)移至:向您的項(xiàng)目添加 C 和 C++ 代碼忠寻。
2.在src/main文件夾下多出一個(gè)cpp文件夾且文件夾下有有個(gè)native-lib.cpp文件惧浴,如圖3所示,打開native-lib.cpp文件奕剃,如圖4所示衷旅。
圖4中的方法有改動(dòng),不是應(yīng)用自動(dòng)生成的模板纵朋,第一行中的extern "C" JNIEXPORT是默認(rèn)的柿顶,jstring是函數(shù)的返回值,JNICALL也是默認(rèn)操软。第二行是函數(shù)名嘁锯,它的命名規(guī)范是以Java開頭,其次com.bjhl.plugins.ndk.util是NativeUtil所在的包名聂薪,NativeUtil是Native所在方法的類名家乘,最后stringFromJNI方法名,和Native方法名對(duì)應(yīng)藏澳。NativeUtil類如圖5所示:
下面介紹一下GetMethodID方法的參數(shù)仁锯,如圖9所示,GetMethodID方法有3個(gè)參數(shù)翔悠,第一個(gè)是要操作的jcalss對(duì)象业崖,第二個(gè)是這個(gè)對(duì)象的構(gòu)造方法,第3個(gè)參數(shù)代表的是構(gòu)造方法中要傳入的參數(shù)類型凉驻。詳情請(qǐng)至JNI中java類型的簡(jiǎn)寫 - hubingforever的日志 - 網(wǎng)易博客
項(xiàng)目源碼:GitHub - xiaschina/NDKDemo