Eclipse:
1:配置生成頭文件.h
- 如圖所示,點擊External ToolsConfigurations...
-
雙擊Program,生成New_configuration
-
按下面步驟添加javah的設置。-classpath ${project_loc}/bin/classes -d ${project_loc}/jni -jni ${java_type_name}
- 設置自動Refresh
- 設置javah在收藏夾顯示
2:配置生成so
- 同javah的操作一樣,如下圖顯示:
3:javap查詢類方法的簽名
android studio 3.2.0:
確保已經安裝了NDK
1:創建自己的項目
2:創建JNI的類
2.1配置生成.h頭文件 Tools,選擇setting-->Tools-->External Tools--> 點擊綠色加號,配置下面的設置
Program:$JDKPath$\bin\javah.exe
Arguments:-classpath . -jni -d $ModuleFileDir$\src\main\jni $FileClass$
Working directory:$ModuleFileDir$\src\main\Java
註釋:
-classpath classes 指明類所在的位置
-jni com.jni.jnitest.JNITest 類的絕對路徑
2.2創建native的方法
2.2.1 選擇native的文件,點擊javah生成.h文件
3:在jni目錄創建cpp,Android.mk,Application.mk 三個文件
3.1.1cpp內容是把.h的內容複製就可以
3.1.2 Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := JniLib
LOCAL_SRC_FILES =: JniLib.cpp i
nclude $(BUILD_SHARED_LIBRARY)
3.1.3Application.mk
APP_MODULES := JniLib
APP_ABI := all
4:生成.so文件
4.1修改appxia 的 build.gradle文件,添加要生成so的類型
ndk{ moduleName "JniLib"
// abiFilters "armeabi", "armeabi-v7a", "x86" //輸出指定的三種abi體系下的so庫
}
sourceSets.main{
jni.srcDirs = []
jniLibs.srcDir "src/main/libs"
}
4:配置ndk-build 的工具,和javah一樣
Program中的語句是ndk-build.cmd的路徑,每個人都不一樣,我的是這個:
D:\Android\sdk\android-ndk-r14b\ndk-build.cmd
Working directory:指的是存放的目錄這個大家都是一樣的
$ProjectFileDir$\app\src\main
選中JNI類右鍵->New->External Tools->ndk-build,結果如圖:
5:javap查詢設置
Program中的語句是javap.exe的路徑,每個人都不一樣,我的是這個:
D:\Java\jdk1.8.0_131\bin\javap.exe
Arguments:-classpath $OutputPath$ -s $FileClass$
Working directory:指的是存放的目錄這個大家都是一樣的
D:\Java\jdk1.8.0_131\bin
選中JNI類右鍵->New->External Tools->javap,結果如圖:
6:C,C++寫代碼的提示
6.1選中項目的app,右擊Link C++ project with Gradle
6.2編譯方式有兩種:CMake和ndk-build,其中ndk-build是傳統方式,AndroidStudio默認推薦CMake方式,也許這是以後的主流方式,所以我們選擇默認的CMake.
6.3在app的build.gradle 添加path