1 回答

TA貢獻2016條經(jīng)驗 獲得超9個贊
1、新建一個Android工程,這一步就不多說了;
2、在AndroidStudio中配置NDK路徑,方法是:
(1)先下載NDK并安裝(這句基本是廢話);
(2)點菜單欄的File->ProjectStructure…->在打開的窗口中左側(cè)選中SDKLocation->在右側(cè)Android NDK Location中填入NDK目錄所在路徑
3、編譯生成.class文件,方法是:
點菜單欄的Build->Make Project
這時,在工程的app/build/intermediates下就會生成classes文件夾,打開classes目錄下的debug目錄就會看到以你的包名命名的各級文件夾,最里邊文件夾下有你的Java類對應(yīng)的.class文件;
4、確定你要引用本地方法的類:
其實你也可以先生成jni目錄,再去創(chuàng)建這個類,但是先Google顯然建議先創(chuàng)建要引用C代碼的Java類,因為AndroidStudio可以根據(jù)你在java類中定義的native方法的名稱來自動生成.h頭文件。
比如你想在MainActivity中引用本地方法,那么你先用
static {
System.loadLibrary("myNativeLib");
}
來聲明本地代碼庫,然后定義幾個natvie方法,比如
public native String getStringFromNative();
5、使用javah命令行生成jni目錄及對應(yīng)的頭文件:
我用的是AndroidStudio 2.1.1,在主界面最下邊就能找到Terminal,點一下就能打開系統(tǒng)的命令行工具,并且已經(jīng)為你自動cd到當前工程所在目錄
6、配置build.gradle文件
這里的build.gradle是指app模塊下的build.gradle,不是整個工程的build.gradle文件。在模塊的build.gradle的defaultConfig下加入以下idk配置:
ndk {
moduleName"myNativeLib"
ldLibs "log", "z", "m"
abiFilters "armeabi", "armeabi-v7a", "x86"
}
7、配置local.properties文件
打開工程目錄下的local.properties,感覺這一步是自動配置的,或者說在你一開始在AndroidStudio中指定NDK目錄時已經(jīng)自動生成了。我的AndroidStudio在打開local.properties已經(jīng)有了
ndk.dir=/Develop/Android/android-ndk-r10e
這一行,所以就不用配了;
8、配置gradle.properties
打開工程目錄下的gradle.properties文件(注意不是build.gradle,而是gradle.properties),在文件的最后一行加入
android.useDeprecatedNdk=true
這句的作用是允許我們使用已經(jīng)過時的NDK版本,不知道AndroidStudio要求使用哪個版本的NDK才不會報錯,總之只要配置了這一句就可以使用比較舊的NDK版本了,我用的r10;
至此我們在AndroidStudio中就完成了NDK環(huán)境的配置,接下來就可以寫Native代碼了;
9、寫一個.c文件測試一下是否運行正常
(1)在我們之前生成src/main/jni目錄下新建一個.c文件,方法是在jni文件夾上點鼠標右鍵,選擇New->C/C++ Source File,然后在彈出的對話框中填入.c或.cpp文件的文件名就可以了,比如說mail.c
- 1 回答
- 0 關(guān)注
- 980 瀏覽
添加回答
舉報