JNI native方法注册的两种方式

本文详细介绍了NDK作为原生开发工具集的优势,如代码复用、性能提升和防止逆向工程。同时,讲解了JNI在Java和C/C++交互中的作用,它是JVM的一部分,实现跨平台兼容。文中还对比了JNI的静态注册(通过Javah生成头文件并实现)和动态注册(在cpp文件中实现JNI_OnLoad方法并注册 native 方法)两种方法,为开发者提供了全面的指南。
摘要由CSDN通过智能技术生成

NDK native develop kit 原生开发工具集

优点:复用、提高性能、防逆向

缺点:开发复杂

JNI java native interface 

用于java 和 c/c++的交互,jni是jvm的一部分,可以在所有java虚拟机中运行,实现跨平台复用

JNI native方法注册的两种方式

静态注册(jvm实现):

1、编写带有native方法的Java类

2、使用Javah命令生成.h头文件

3、编写代码实现头文件中的方法 

动态注册(开发者实现):

1、在cpp文件中实现JNI_OnLoad方法

2、定义JNINativeMethod数组,用于关联c/c++方法和java方法,JNINativeMethod包含3个参数:java函数名、java参数描述、c/c++函数指针

3、在JNI_OnLoad方法中调用RegisterNatives方法,传入JNINativeMethod数组进行注册

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值