關于在Android studio中進行NDK開發(fā)有不少文章,但是都是在比較低的Android studio上進行開發(fā)的。我用的是2.3版本的,照著博客上的抄下來各種莫名其妙的錯誤。google官網中對于ndk示例使用的是Cmake。如果你是新建的項目那么建議使用Cmake編譯。但是如果之前就使用了ndk build進行的編譯,那么就需要繼續(xù)使用ndk build了??上Ч倬W沒有給出如何在Android studio上使用ndk build。進過查找資料,終于搞好了。功能也比較簡單,就是通過JNI返回一個字符串。
Update:
上邊說錯了,google Sample里關于使用ndk build的示例在branch中。大家可以參考。
第一步:創(chuàng)建一個普通的工程
第二步:在需要進行JNI調用的model上右鍵創(chuàng)建一個jni文件夾。

第三步:創(chuàng)建一個包含native方法的java文件

第四步:使用javah生成頭文件(要先生成class文件)
javah命令模板配置??
詳細配置參考以上鏈接。下面是我的配置。需要說明的是在上面這個博文中還配置了ndk_build的命令模板,但是經過我的實驗雖然可以打包成功,但是生成的so文件在打包到apk中出現(xiàn)問題。導致動態(tài)庫加載不到。

配置好之后,右鍵MyNdk,執(zhí)行javah命令,生成.h文件。
第五步:將生成的.h文件剪切到jni目錄下,并創(chuàng)建一個對應的實現(xiàn)類(C++我也不懂,暫且這么叫吧)

如圖,MyLibrary.cpp就實現(xiàn)了.h文件。返回一個字符串。
第六步:編寫mk文件。
mk文件如上圖jni目錄下。文件內容:


第七步:編寫gradle.build文件(這一步很重要,和其他博文中的不一樣)
```
android {
externalNativeBuild {
ndkBuild {
path'src/main/jni/Android.mk'
}
}
compileSdkVersion25
buildToolsVersion"25.0.2"
......
}
```
可以看到,這里直接指定mk文件的位置。有點類似于CMake的使用方式。
第八步:
可以在java代碼中調用了。

環(huán)境配置:android studio 2.3

更多的用法可以參考官方的Demo:https://github.com/googlesamples/android-ndk/tree/master-ndkbuild
后期有時間會繼續(xù)跟新。