多语言展示
当前在线:1823今日阅读:27今日分享:41

android中如何使用jni调用c代码

利用安卓的jni调用c代码,实现helloword输出
工具/原料
1

eclipse adt

2

android-ndk-r8c-windows

3

cdt

方法/步骤
1

步骤一:在java中定义一个c方法的接口 ,相当于在java代码中定义了一个接口 接口的实现方法是C语言实现的。public native String hello();

2

步骤二:   实现C代码   方法名 严格按照jni的规范#include #include  jstring Java_com_yys_helloworldformc_MainActivity_hello(JNIEnv* env,jobject obj){    // 2 步 实现C代码    // 返回一个java String 类型的字符串    //jstring     (*NewStringUTF)(JNIEnv*, const char*);    //(*env) 相当于 JNINativeInterface* JNIEnv    //*(*env)  相当于 JNINativeInterface    ///return (**env).NewStringUTF(env,"helloworldfromc");    return  (*env)->NewStringUTF(env,"helloworldfromc");}

3

步骤三:   创建android.mk   告诉编译器 如何把c代码打包成函数库   LOCAL_PATH := $(call my-dir)       include $(CLEAR_VARS)   # 对应打包成函数库的名字   LOCAL_MODULE    := hello   # 对应c代码的文件   LOCAL_SRC_FILES := Hello.c    include $(BUILD_SHARED_LIBRARY)

4

步骤四:    把c代码 打包成函数库  用到了安装的环境 到相应目录下使用ndk-build打包

5

步骤五:    在java代码中 引入库函数 static{        System.loadLibrary("hello");// 注意事项 去掉前面的lib 后面的.so             }

6

步骤六:使用方法。

注意事项

方法名 严格按照jni的规范 jstring Java_com_example_helloworldformc_MainActivity_helloWorldFromC(JNIEnv* env,jobject obj)

推荐信息