Android Studio 詳盡的NDK開發流程

NDK全稱Native Development Kit(本地開發工具集,),NDK是一系列工具集,可以幫助開發者在Android平臺上面進行c/c++的開發,并能自動將.so打包金apk中。關于NDK的環境配置大家自行google解決,本文介紹初步的開發流程。

一、創建項目并配置

1.新建Android項目,并在自己需要加載so文件的類或者自己新創建一個java類,在這里我先創建了一個類

2.HelloJni。生成C/C++代碼的存放路徑:如圖,選中app目錄,創建完成后會在main文件夾下創建一個jni目錄。

3.build.gradle配置

4.如果報錯可根據提示在gradle.properties中設置android.useDeprecatedNdk=true

二、native方法聲明與.h文件的生成

如下:在類文件中聲明native方法

c文件.h的聲明文件可以根據規則自己寫,這樣比較麻煩并且容易出錯,所以我們還是通過javah命令創建,將目錄切換到/app運行命令? 如果報錯如下圖,那是說明你的類文件沒有編譯成class文件,才會出現錯誤。解決的辦法有多種,這里我是在HelloJni類中添加main方法之后運行一次即可。

javah -d src/main/jni/ -classpath build/intermediates/classes/debug/ com.allen.ndkdemo.jnis.HelloJni

-d src/main/jni ?是命令創建的.h文件的存放路徑

-classpath build/intermediates/classes/debug/ com.allen.ndkdemo.jnis.HelloJni ?創建.h文件所需要的java編譯后的文件路徑

執行javah命令之后會在src/main/jni 目錄下生成頭文件com_allen_ndkdemo_jnis_HelloJni.h ?到此頭文件成功創建

三、C/C++代碼的編寫

.h 文件只是一個聲明文件,真正我們需要操作的代碼文件應該是.c文件,所有在jni目錄下創建同名的.c文件并引入聲明文件,并在代碼中返回一個字符創。如圖所示:

四、生成so文件配置及ndk-build

下面我們需要在jni目錄下添加 Application.mk文件、Android.mk文件,添加完文件之后,將目錄切換到 src/main/jni下執行ndk-build命令

Application.mk文件

Android.mk文件

ndk-build命令之后的文件目錄:


五、so文件的加載與使用

HelloJni.java中加載類庫??

static{

? ? ? ? System.loadLibrary("hello");

}

其他地方直接調用即:HelloJni.getkey();

大家有問題歡迎添加 QQ:452144286 ?隨時為你解答,謝謝!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容