Android 动态加载Jni方法
来源:互联网 发布:java log4j xml配置 编辑:程序博客网 时间:2024/05/19 00:13
用Androidstudio新建一个项目,在main目录下创建jni目录,创建一个Test.cpp c++文件。
·
extern "C" {jstring nativeGetHelloString(JNIEnv *env, jobject obj) { return env->NewStringUTF((char *) " This is calling from JNI suckers!");}static JNINativeMethod gMethods[]={ {"nativeGetHelloString", "()Ljava/lang/String;", (void *)nativeGetHelloString},};static const char* className="com/android/cgcxy/jnidynamicload/TestJni02";static int registerNativeMethods (JNIEnv *env){ jclass clazz; clazz = env->FindClass(className); if (clazz == NULL) { // LOGD("failed to load the class %s", className); return JNI_FALSE; } if(env->RegisterNatives(clazz, gMethods, sizeof(gMethods)/sizeof(gMethods[0])) < 0){ return JNI_FALSE; } return JNI_TRUE;}jint JNI_OnLoad(JavaVM* vm, void* reserved) { JNIEnv* env = NULL; jint result = -1; if (vm->GetEnv((void**) &env, JNI_VERSION_1_4) != JNI_OK) { // LOGE("ERROR: GetEnv failed\n"); goto bail; } if (registerNativeMethods(env) < 0) { // LOGE("ERROR: jnitest native registration failed\n"); goto bail; } result = JNI_VERSION_1_4; bail: return result;}}
编写.mk文件生成.so
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := demoLOCAL_SRC_FILES := Test.cppinclude $(BUILD_SHARED_LIBRARY)
阅读全文
0 0
- Android 动态加载Jni方法
- android jni 动态加载
- Android JNI 动态注册方法(JNI_OnLoad)
- Android JNI学习笔记——so文件动态加载
- [Android NDK]Android JNI开发例子 ---2 动态加载JNI lib
- JNI动态加载so文件
- JNI动态注册方法
- Android 动态注册JNI
- Android: JNI动态注册
- Android JNI动态注册
- Android 动态注册JNI
- Android Studio Jni开发(三)Native方法动态注册
- Android 4.4.2 动态添加JNI库方法记录 (一 JNI库层)
- Android之JNI动态注册native方法和JNI数据简单使用
- jni方法动态注册--C++
- 浅谈动态注册JNI方法
- Android Jni 用动态库的加载与卸载函数说明
- Android Jni 用动态库的加载与卸载函数说明
- Android Usb的研究
- 2017.06.02.最佳健康革^-*命(THE OPTIMAL HEALTH REVOLUTION).杜克 约翰逊博士
- [YTU]_2865( 结构体--日期计算)
- LeetCode 121. Best Time to Buy and Sell Stock
- jmeter功能元件
- Android 动态加载Jni方法
- 商品展示界面
- 表格格式转换工具
- Linux快速创建目录方法(制作文档)
- 蓝桥杯 BASIC-3 基础练习 字母图形
- Android Vibrator使用
- 二叉搜索树
- [YTU]_2866(结构体---点坐标结构体)
- [html5入门-28]css禁用鼠标点击事件