JNI与底层调用01

2016-05-24  本文已影响0人  吸水的海绵

交叉编译

交叉编译的原理

交叉编译的工具链

常见工具

NDK目录结构

使用jni

  1. 在项目根目录下创建jni文件夹

  2. 在jni文件中创建一个c文件

  3. 在java代码中,创建一个本地方法helloFromC

     public native String helloFromC();
    
  4. 在jni中定义函数实现这个方法,函数名必须为

     jstring Java_com_itheima_helloworld1_MainActivity_helloFromC(JNIEnv* env, jobject obj)
    
  5. 返回一个字符串,用c定义一个字符串

     char* cstr = "hello from c";
    
  6. 把c的字符串转换成java的字符串

     jstring jstr = (*env)->NewStringUTF(env, cstr);
     return jstr;
    
  7. 在jni中创建Android.mk文件

  8. 在c文件中添加<jni.h>头文件

  9. 在jni文件夹下执行ndk-build.cmd指令

  10. java代码中加载so类库,调用本地方法

常见错误

javah

*1.7:在src目录下执行javah 包名.类名
*1.6:在bin/classes目录下执行

javap

上一篇 下一篇

猜你喜欢

热点阅读