Sollyu

  • 捐赠
  • 关于
  1. 首页
  2. 原创文章
  3. 正文

使用宏定义来减少JNI的繁琐

2014年12月4日 4917点热度 0人点赞 0条评论

说明

相信写过cocos2d-x的朋友,或者写过jni的朋友,一定会对jni中的函数命名方式感到很头疼,每次定义一个native函数时问要写个函数名半天,还有就是在更换包名的时候,更是麻烦。

今天这里就给大家说一个比较简单的方法,使用宏定义来简化jni函数名,具体方法如下

宏定义

/* 定义Jni的包名 */
#define PACKAGE_NAME_FUNCTION   com_sollyu_game_AntiCrack

/* 定义宏定义中用到的临时宏 */
#define JNI_FUNCTION_TEMP_2(CLASS, FUNC) Java_##CLASS##_##FUNC  
#define JNI_FUNCTION_TEMP_1(CLASS, FUNC) JNI_FUNCTION_TEMP_2(CLASS, FUNC)  
/* 真正用到的宏定义 */
#define JNI_FUNCTION(FUNCTION_NAME) JNI_FUNCTION_TEMP_1(PACKAGE_NAME_FUNCTION, FUNCTION_NAME) 

使用说明

/*
 * Class:     com_sollyu_game_AntiCrack
 * Method:    init
 * Signature: (Landroid/content/Context;)V
 * 该方法的原型: Java_com_sollyu_game_AntiCrack_init(JNIEnv *, jobject, jobject activity_context);
 */
JNIEXPORT void JNICALL JNI_FUNCTION(init)(JNIEnv *, jobject, jobject activity_context);

Java代码

使用宏定义来减少JNI的繁琐

调用方法

和原来的jni函数调用一样,只不过是精简了定义的繁琐和更换包名的繁琐

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: define JNI 宏定义
最后更新:2014年12月4日

sollyu

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2021 sollyu.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

苏ICP备15007531号