系统JNI调用和使用
5.3 JNI调用
5.3.1 Android JNI知识简介
5.3.2 载入.SO中的JNI函数的方法
5.3.3 如何使用JNI函数
5.3.1 Android JNI知识简介
JNI知识简介
Java Native Interface (JNI)标准是java平台的一部分,它允许
Java代码和其他语言写的代码进行交互。 JNI 是本地编程接口,在 Java 虚拟机 (VM) 内部运行的 Java
代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用
程序和库进行交互操作
JNI 在android 的作用
弥补java不能直接调用驱动的方法的缺点
实现java调用C/C++或者反向调用,在android起着承上启下的作
用
5.3.2 载入.SO中的JNI函数的方法
JAVA应用程序必须靠Dalvik虚拟机来执行,在执行过
程中,在Java类需要调用JNI函数前,VM必须先载入
JNI函数所在的库(*.so)
载入库的两种方法(时机) 需要调用JNI函数时,在java中通过 System.loadLibrary(
库名)调用相应库函数JNI_OnLoad()
在android系统启动过程中, 执行JNI_OnLoad()函数注册
5.3.3 如何使用JNI函数
C/C++
JNI函数的声明(JNINativeMethod) 在JNI_OnLoad() 函数中,通过
jniRegisterNativeMethods(…, “java 类名”, …)
注册到java runtime中 Java中声明JNI函数为native 函数
private/public/protected native 返回值 函数名()
使用方法与一般函数一致
相关文章
- 四、系统调用
- docker搭建yapi接口文档系统、Idea中上传接口、在线调用
- 基于FMEA保证汽车电控系统的可靠性
- 跟踪分析Linux内核5.0系统调用处理过程
- 《安富莱嵌入式周报》第301期:ThreadX老大离开微软推出PX5 RTOS第5代系统,支持回流焊的自焊接PCB板设计,单色屏实现多级灰度播放视频效果
- 守护Linux系统:守护进程之安全护卫(守护进程linux)
- Linux系统常用调用:掌握系统运行的关键(linux常用系统调用)
- 深入Linux系统:查看系统状态的步骤(查看linux系统状态)
- 在Linux系统中运行可执行文件(linux中可执行文件)
- java跨系统调用esb接口,json形式,rest接口详解编程语言
- Linux系统中快速安装VNC服务(linuxvnc安装)
- 虚拟机中安装Linux系统的方法(vm虚拟机安装linux)
- 系统智能化:可视对讲Linux架构(可视对讲linux)
- Linux系统下FTP服务的开通与配置(linuxftp开通)
- UNTANGLE NG FIREWALL 13.0.0,基于 DEBIAN 的网关系统
- U盘系统安装盘制作工具 Rufus 3.13 Build 1728 Beta发布
- 安装Linux系统,快速体验QQ社交乐趣(linux系统安装qq)
- Linux系统调用:开启程序的精准通道(linux什么是系统调用)
- Linux系统中进程调度原理深度剖析(linux进程调度原理)
- 嵌入式系统中C语言实现Linux串口通信(clinux串口通信)
- 【探究Linux系统下的编码格式】(查看linux编码格式)
- Linux分支系统:探索开源世界的不同之处(linux的分支)
- Linux系统关闭防火墙高效保护(关闭linux的防火墙)
- Linux系统发展史:各分支的对比(linux的分支)
- Linux内核Waitid系统调用本地提权漏洞(CVE-2017-5123)的分析与利用
- 深入剖析Linux系统的名称命名规则(linuxname)
- 探索Linux堆栈信息:分析系统调用信息(linux堆栈信息)
- Linux系统调用指南(linux的系统调用表)
- Java调用Linux库实现跨系统功能(java调用linux库)
- 深入探究:Linux系统调用的实现方式(linux系统调用的实现)
- 如何用Linux系统释放内存空间(linux 内存释放命令)
- 剖析深入剖析Linux系统调用之原理(linux系统调用原理)
- Linux 上提高系统性能的增强方法(linux 增加系统调用)
- 使用Oracle 冗余架构来提高系统可用性(oracle冗余架构)
- 服务开启Redis远程调用实现互联网系统的集成(开启redis对外)
- Oracle 10添加新实例实现快速增强系统性能(oracle10添加实例)
- 预告:交互系统会话引擎SuperScript的设计与实现|硬创公开课
- linux系统调用与标准库调用的区别详细解析
- js如何判断不同系统的浏览器类型
- python使用ctypes模块调用windowsapi获取系统版本示例