JNI开发基础系列-JNI方法动态注册
来源:互联网 发布:网络延迟检测 编辑:程序博客网 时间:2024/05/28 06:04
JNI方法动态注册
java中创建FileUtils.java
package com.cool.ndktest2;/** * Created by cool on 2017/8/17. */public class FileUtils { public native void diff(String path,String pattrn,int num);}
c中
//// Created by cool on 2017/8/16.//#include "com_cool_ndktest2_MainActivity.h"#include <string.h>#include <android/log.h>#include "add.h"#include <assert.h>#define TAG "399"#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,TAG,__VA_ARGS__)# define NELEM(x) ((int) (sizeof(x) / sizeof((x)[0])))JNIEXPORT void JNICALL native_diff (JNIEnv *env, jclass clazz, jstring path, jstring pattern_Path, jint file_num){ LOGE("JNI begin 动态注册的方法 ");}static const JNINativeMethod gMethods[] = { { "diff","(Ljava/lang/String;Ljava/lang/String;I)V",(void*)native_diff }};static int registerNatives(JNIEnv* engv){ LOGE("registerNatives begin"); jclass clazz; clazz = (*engv) -> FindClass(engv, "com/cool/ndktest2/FileUtils"); if (clazz == NULL) { LOGE("clazz is null"); return JNI_FALSE; } if ((*engv) ->RegisterNatives(engv, clazz, gMethods, NELEM(gMethods)) < 0) { LOGE("RegisterNatives error"); return JNI_FALSE; } return JNI_TRUE;}JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved){ LOGE("jni_OnLoad begin"); JNIEnv* env = NULL; jint result = -1; if ((*vm)->GetEnv(vm,(void**) &env, JNI_VERSION_1_4) != JNI_OK) { LOGE("ERROR: GetEnv failed\n"); return -1; } assert(env != NULL); registerNatives(env); return JNI_VERSION_1_4;}
阅读全文
0 0
- JNI开发基础系列-JNI方法动态注册
- JNI动态注册方法
- jni方法动态注册--C++
- 浅谈动态注册JNI方法
- JNI开发基础系列--JNI一些基本概念
- JNI开发基础系列--开启JNI线程
- 安卓 jni 开发之 native 方法的动态注册
- Android Studio Jni开发(三)Native方法动态注册
- [JNI学习]---JNI动态注册
- JNI开发基础系列--链接第三方动态库
- 安卓实战开发之JNI从小白到伪老白深入了解JNI动态注册native方法及JNI数据使用
- JNI动态注册native方法及JNI数据使用
- android NDK开发 静态/动态注册 jni
- Android开发值JNI函数动态注册
- Android JNI 动态注册方法(JNI_OnLoad)
- 静态注册JNI和动态注册JNI
- 静态注册JNI和动态注册JNI
- 动态注册JNI
- 数据结构编程笔记五:第二章 线性表 静态链表的实现
- ionic回到页面顶部
- JavaScript中的求和(递归)
- Git学习-->如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器?
- nodejs之Buffer
- JNI开发基础系列-JNI方法动态注册
- C# Conditional的使用
- Python3学习(15)--惰性函数
- tensorflow之MNIST手写字符集训练可视化
- Centos 6.9 Install SFTP
- 利用aio+epoll简单改写sendfile
- pseudoinverse matrix
- 奇淫技巧____查看本网段内正在使用的IP以及ip定位
- [py]for else案例