Android ndk另一种注册方式
不使用Java_com_xxx方式调用ndk的方式,这种方法的优点是灵活,可配置,不必限制在Java_com_xxx命名依赖中。
步骤如下:
第1步,在JNI初始化方法中调用自定义注册方法,并判断成功与否通知Java端。
jint JNI_OnLoad(JavaVM* vm, void* reserved) {
JNIEnv* env = NULL;
sVm = vm; if (vm->GetEnv((void**) &env, JNI_VERSION_1_4) == JNI_OK)
return JNI_ERR;
if (注册方法(env) == JNI_OK)
return JNI_VERSION_1_4; return JNI_ERR;
}
第2步,在cpp或c文件(位置任意)中声明JNINativeMethod 方法数组
static JNINativeMethod methods[] = {
"nativeInit", "()V", (void*) xxx_init, //这样就可以映射到java的nativeInit方法了
"", "", (void *) xxx
};
其中 JNINativeMethod 的定义在 jni.h 中,结构如下:
typedef struct {
const char * name;
const char * signature;
void * fnptr;
}JNINativeMethod;
第3步,最后通过方法注入到java的jni接口中
jint custom_register_all_jni_methods(JNIEnv *env) {
return jniRegisterNativeMethods(env, "com/xxx/xxx", methods, sizeof(methods) / sizeof(methods[]));
}
com/xxx/xxx为所对应的java接口类名
Android ndk另一种注册方式的更多相关文章
- Android中BroadcastReceiver的两种注册方式(静态和动态)详解
今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式. BroadcastReceiver也就是"广播接收者"的意思,顾名思义,它就是用来 ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider
ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制.并且此种方式忽略了底层的数据存储实现,Cont ...
- [Android]Android数据的四种存储方式
存储方式 Android提供以下四种存储方式: SharePreference SQLite File ContentProvider Android系统中数据基本都是私有的,一般存放在“data/d ...
- [转][Android]Android数据的四种存储方式
android.database.sqlite类 SQLiteQueryBuilder java.lang.Object android.database.sqlite.SQLiteQueryBuil ...
- AndroidStudio NDK环境3种搭建方式
AndroidStudio NDK环境3种搭建方式 转载. https://blog.csdn.net/zhang_jun_ling/article/details/85621427 一.前言 ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览
Android数据的四种存储方式SharedPreferences.SQLite.Content Provider和File (一) —— 总览 作为一个完成的应用程序,数据存储操作是必不可少的. ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences
除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite
SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是: NULL: 空值 INTEGER: 整数 REAL: 浮点数 TEXT: 字符串 BLOB: 大数据 在SQLite中, ...
- MVC-AOP思想-Filter 三种注册方式
在ASP.NET MVC框架中,为我们提供了四种类型的Filter类型包括:IAuthorizationFilter.IActionFilter.IResultFilter.IExceptionFil ...
随机推荐
- OC基础--继承
继承的基本概念: 现实生活中的继承: 人类是一个基类(也称做父类),通常情况下所有人类所共同具备的特性,如有手有脚能吃能喝 按照生活常规,我们继续给人类来细分的时候,我们可以分为学生类 工人类等,学生 ...
- HalconMFC(三)之打开图像_简单处理
在VS2010中配置完halcon之后就得写个最简单的程序满足一下咱们的自信心呀! 第一步,新建MFC程序 最好是按照下面这么设置然后点击"完成",就不会报错 第二步,导出C++代 ...
- 百度前端技术学院2015JavaScript基础部分-BOM
5.1 任务描述 实现以下函数 // 判断是否为IE浏览器,返回-1或者版本号 function isIE() { // your implement } // 设置cookie function s ...
- hibernate开发(1)
1 什么是ORM OR-mapping 是 object relational mapping 对象关系映射,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.解决了不同数据库s ...
- Gnu/Linux的学习探索
1.Gnu/Linux是一个基于POSIX和UNIX的多用户多任务 支持多线程多CPU的类UNIX的操作系统. 继承了UNIX以网络为核心的设计思想 是性能稳定的多用户网络操作系统. 1991年10月 ...
- JS刷新父窗口的几种方式
浮层内嵌iframe及frame集合窗口,刷新父页面的多种方法 <script language=JavaScript> parent.location.reload(); ...
- prompt弹框返回输入的文本
演示网址链接http://www.w3school.com.cn/jsref/met_win_prompt.asp <html> <head> <script type= ...
- Bat文件, Services
创建Bat文件自启动Windows Service; Services: sc stop/delete/query/find "service name"; Service Fol ...
- asp.net中的GridView控件的部分知识点
<PagerTemplate> <br /> <asp:Label ID="lblPage" runat="server" Tex ...
- JAVAWEB学习总结 HTTPSERVLETRESPONSE对象(二)
一.HttpServletResponse常见应用--生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类 步骤: 1. 在内存中创建一张图片 2.得到图片 ...