欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

AndroidJNI简单介绍

时间:2023-06-11
JNI

JNI : java native interface,实现JAVA和本地语言的相互互调

JNI作用:

C 可以操作硬件,使用JNI可以是java操作硬件C 直接运行在底层,C被编译为机器码,效率高C 开源项目,opencv:视觉库 ffmpeg --> 使用JAVA访问C优秀的开源项目安全考虑 交叉编译

平台
cpu : x86(pc)、arm(android最多)、 mips
操作系统 : windows、linux、mac os、unix

NDK : native develop kit,交叉编译工具

NDK目录

docs >> 文档samples >> 样例platforms >> 不同androidAdi版本,每个版本都有不同cpu架构的文件夹include >> android做jni开发相关的头文件lib >> google编译好的jni开发可能用到的函数库toolchains >> 交叉编译工具链bulid/tools .sh >> linux的批处理命令,通过这些命令调用交叉编译工具ndk-build.cmd >> 通过这个命令开启交叉编译,需配置环境变量

JNI目录 C源代码

jstring Java_包名_类名_方法名(JNIEnv* env, jobject thiz)

Android.mk
告诉编译器.c的源代码的位置,要生成的文件名,要创建的文件类型。Application.mk
要编译出来的文件支持的平台。

Java代码

public native String hello(); // java本地方法System.loadLibarary("hello"); // 加载.so文件

// 生成C调用JAVA的方法签名、进入到bin/classes目录下javap -s org.grass.Stu// JAVA native 方法,生成头文件、进入到项目src目录下。按C函数的命名规则生成javah org.grass.Stu

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。