使用NDK進行JNI編程與實踐二:優化Android studio來進行ndk-build開發

一、 引入:
在JNI開發中,使用javah和ndk-build組合來進行JNI開發的過程比較麻煩,這裏介紹一下使用高版本的gradle優化JNI開發,我的環境如下:
Android studio:3.5;
gradle:5.4.1;
可在任意工程的File->Project Structure查看:
在這裏插入圖片描述
二、 優化,引入Link C++ Project With Gradle:

  1. 點擊file,選擇Link C++ Project With Gradle:
    在這裏插入圖片描述
  2. 在彈框中選擇ndk-build,並在Project Path中選擇Android.mk的路徑:
    在這裏插入圖片描述
    配置好了之後,我們就可以直接使用Android studio的Make Project來編譯工程了,在編譯java文件的過程中也會把jni下面的文件給編譯了,不需要我們再通過cmd去執行ndk-build指令來編譯so庫了,並且,編譯完成之後,不會生成libs和obj等文件夾,生成的so會直接打包到apk中當中,非常方便,我們可以在build目錄中找到這些庫;
    另外一個特點是,打開了這個支持以後,我們能夠在進行C/C++代碼編寫的時候自動提示,非常方便,大大提高了效率:
    在這裏插入圖片描述
    三、 兼容第三方庫:
    我們自己編寫的JNI庫是可以直接通過這種方式打包到apk中,但是如果遇到需要加載第三方庫到apk中是,是否可行呢?經過測試,也只需要在app的build.gradle裏面指定libs路徑就行了:
   sourceSets {
        main {
            jni.srcDirs = ['src/main/jni', 'src/main/jni/']
            jniLibs.srcDirs = ['libs']
        }
    }

第三方庫和自己編寫的JNI庫完全可以一起編譯進apk中,並不衝突。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章