头文件实例

/* DO NOT EDIT THIS FILE - it is machine generated */#include /* Header for class com_lilacouyang_firstjni_JniMethod */#ifndef _Included_com_lilacouyang_firstjni_JniMethod#define _Included_com_lilacouyang_firstjni_JniMethod#ifdef __cplusplusextern "C" {#endif/* * Class:     com_lilacouyang_firstjni_JniMethod     // Native方法的类名称。 * Method:    getNativeString                       //  Native 方法名称 * Signature: ()Ljava/lang/String;                // 方法的标识,一个标识符,主要供在 JNI 操作 java对象的方法使用的。                                                 // Signature一般是两部分构成,一个方法的参数,另一个是返回类型。                                                // 方法参数在括号里面,返回类型在后面 */JNIEXPORT jstring JNICALL Java_com_lilacouyang_firstjni_JniMethod_getNativeString  (JNIEnv *, jclass);/*  * Class:     com_nedu_jni_helloword_HeaderFile  * Method:    doInt  * Signature: (DFZ[C)I  */  JNIEXPORT jint JNICALL Java_com_nedu_jni_helloword_HeaderFile_doInt__DFZ_3C    (JNIEnv *, jclass, jdouble, jfloat, jboolean, jcharArray);  #ifdef __cplusplus}#endif#endif

基本类型对应关系

基本类型对应关系

规则

  1. 方法参数或者返回值为java中的对象时,必须以“L”加上其路径,不过此路径必须以“/”分开,自定义的对象也使用本规则,不在包中时直接“L”加上类名称。
  2. 方法参数或者返回值为数组时类型前加上[,例如[I表示int[],[[[D表示 double[][][],即几维数组就加几个[。
  3. 方法组成分析:
    JNIEXPORT jstring JNICALL Java_com_lilacouyang_firstjni_JniMethod_getNativeString
    (JNIEnv *, jclass)
  4. JNIEXPORT 和 JNICALL:JNI 的关键字,表示此函数是要被 JNI 调用的;
  5. jstring:方法的返回类型;
  6. Java:为 JNI 中标识此方法来源于 java 的标识头;
  7. com_lilacouyang_firstjni_JniMethod_getNativeString:方法所在类的包名+类名+方法名
  8. (JNIEnv *, jclass):参数,它们有一个共同的特点,包含 JNIEnv *――它是一个接口指针,
    用于定位函数表中的函数!在 JNI 规范中一般称 为 “Interface Pointer”。
    JNI 中的操作过程是面向过程的!后面的jobject 是 一个指向该类的指针,
    类似与 C 语言中的 this。这个第二个参数是变化的,当该方法为类的实例方法时为 jobject;
    当该方法为类方法(即静态方法)时该参数为 jclass,指向该类的 class。

更多相关文章

  1. Android(安卓)一张图理解getWidth和getMeasuredWidth
  2. 淘宝客商品查询接口
  3. Android(安卓)instrumentation原理
  4. android 微型服务器
  5. Starting an Activity(开始活动)
  6. Android: ViewDragHelper tutorial
  7. 仿照DatePickerFragment实现的TimePickerFragment
  8. 探索FragmentTransaction#commit()抛出IllegalStateException
  9. Android学习笔记-Android初级 (二)

随机推荐

  1. Android启动流程、app启动原理
  2. android 使用MediaCodec 编解码总结(最全)
  3. 【Android】通知的实现
  4. Android上下TabHost设置及Did you forget
  5. android中调用指定浏览器
  6. 解析Android消息处理机制 ——HandlerThr
  7. Android(安卓)的网络编程(7)-检测网络是
  8. Android下拉刷新上拉加载控件,对所有View
  9. Android 直连SQL
  10. Android:反编译查看源码