Eclipse 和Android studio ndk配置生成.h工具和生成.so文件,javap查詢類方法的簽名查詢,添加c代碼提示的選擇

Eclipse:

1:配置生成頭文件.h

  1. 如圖所示,點擊External ToolsConfigurations...                                                                                                                                                     
  2. 雙擊Program,生成New_configuration                                                                                                                                                     

  3. 按下面步驟添加javah的設置。-classpath ${project_loc}/bin/classes  -d ${project_loc}/jni -jni ${java_type_name}                                  

  4. 設置自動Refresh                                                                                                                                                                                     
  5. 設置javah在收藏夾顯示                                                                                                                                                                          

 

2:配置生成so

  1. 同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

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