Android Studio 第一个JNi工程
来源:互联网 发布:java生成随机数的方法 编辑:程序博客网 时间:2024/06/01 09:49
利用AS创建第一个JNI工程
步骤:
1.下载AS。我安装的是AS 2.2.3.
下载方法很多,大家可自行下载。
2.下载NDK,配置环境变量。
1) 下载 AS内提供下载NDK的接口,File-->Settings--->Android SDK--->SDK Tools--->NDK 直接上图。
2)配置环境
A: 创建环境变量
变量名:NDK_ROOT(貌似大家都用这个)
变量值:C:\Users\h218072\android-sdks\ndk-bundle(你存放NDK的地方)
B:Path中添加NDK,可全局使用NDK的命令。
末尾添加%NDK_ROOT%;
C:验证NDK
在cmd中输入命令ndk-build。如果出现下图提示,说明环境配置成功。
3.下载JDK,配置环境变量。
1)下载JDK。下载方式很多,我用的是jdk1.7.0_17
2)JDK环境变量配置
A: 创建环境变量
变量名:JAVA_HOME(貌似大家都用这个)
变量值:C:\Program Files\Java\jdk1.7.0_17(你存放JDK的地方)
B:添加CLASSPATH。
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
C:Path中添加JDK,可全局使用JDK的命令。
末尾添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;;
D:验证JDK
在cmd中输入命令java -version。如果出现下图提示,说明环境配置成功。
4.配置AS下NDK环境
File--->Project Structure --->Android NDK location 如果你之前没有下载ndk,可点击download下载,如果你已经下载了NDK,可选择Select default NDK或者自行找到你保存的NDK
5.创建JNI文件,且编译生成.o文件
1)在MainActivity中添加如下代码,java中调用jni生成库文件。
public static native int calculate(int numa,int numb); static { System.loadLibrary("MyJni"); }2)打开AS自带的Terminal,生成.h文件
cd到app\src\main\java,输入命令javah -jni com.main.myjniapp.MainActivity 生成如图所以的.h文件
3)app右键--->new--->Folder--->JNI Folderapp下面会多出来一个CPP,其实它的正确路径是这样的MyJniApp\app\src\main\jni
然后将上面生成.h move到jni文件夹下面。
4)创建.c文件
cpp右键--->new--->C/C++ source file--->选择.c或者.cpp,名字为了统一,我依然写的同.h的文件名
创建的.c中添加实现代码
#include <com_main_myjniapp_MainActivity.h> JNIEXPORT jint JNICALL Java_com_main_myjniapp_MainActivity_calculate(JNIEnv *env, jclass cls, jint numa, jint numb) { return numa * numb; }5)生成.o文件
创建Android.mk 添加如下代码
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := MyJni LOCAL_SRC_FILES := com_main_myjniapp_MainActivith.c include $(BUILD_SHARED_LIBRARY)在AS自带的Terminal中cd到jni下面,运行ndk-build。完成后,在app\src\main\libs下面会找到libMyJni.so。
6.配置android工程调用NDK的环境。
1)添加显示调用jni计算结果的代码
private TextView Jni_text; Jni_text= (TextView) findViewById(R.id.Jni_text); Jni_text.setText("5*6="+calculate(5,6));
2)在gradle.properties中添加如下代码
Android.useDeprecatedNdk=true
3)在build.gradle中android()末尾添加如下代码
sourceSets { main { jni.srcDirs = [] jniLibs.srcDir 'src/main/libs' } }
6.编译且验证。
点击build--->Make project。如果没有error说明编译完成。
然后点击Run--->run app.在模拟器中验证结果
到这里我相信大家已经对As创建简单调用jni的流程有了清晰的理解。
- Android Studio 第一个JNi工程
- 第一个jni工程
- Android Studio第一个jni程序
- Android Studio 第一个JNI程序
- Android Studio开发JNI - 第一个JNI程序
- MAC环境下Android Studio的第一个JNI程序
- 使用Android Studio 创建第一个JNI Helloword
- android studio jni开发的第一个范例
- Android Studio开发JNI工程
- Android Studio开发JNI工程
- Android Studio开发JNI工程
- Android Studio开发JNI工程
- Android Studio开发JNI工程
- Android Studio开发JNI工程
- Android Studio开发JNI工程
- Android Studio开发JNI工程
- Android Studio开发JNI工程
- Android Studio开发JNI工程
- JAVA Pattern and Matcher
- Spring Boot中使用RabbitMQ
- Aidl 基础其二 Server和Client互相交互
- behaviac使用总结
- Spring Cloud构建微服务架构(四)分布式配置中心(续)
- Android Studio 第一个JNi工程
- Spring Cloud构建微服务架构(七)消息总线
- ubuntu Java环境配置
- Spring Cloud构建微服务架构(七)消息总线(续:Kafka)
- 【总结】CTR预估中GBDT与LR融合方案
- Spring Cloud源码分析(二)Ribbon
- springMVC 整合mockito单元测试学习
- git 创建远程仓库
- Spring Cloud源码分析(二)Ribbon(续)