Android JNI开发笔记

来源:互联网 发布:js json对象元素个数 编辑:程序博客网 时间:2024/05/18 01:41

1、搭建JNI的开发环境(安装NDK、配置NDK的classpath、在eclipse中增 Android Native Development Tools……(ADT))

2、新建一个Android工程

3、在工程目录下新建一个jni目录

4、在Java代码中声明一个native方法

public native String helloFromC();

5、进入工程的src目录下,进入cmd窗口,运行 javah 报名.类名得到一个.h的头文件(eg:javah com.example.jnihellodemo.MainActivity得到com_example_jnihellodemo_MainActivity.h)

6、在头文件中会有对native方法的声明

JNIEXPORT jstring JNICALL Java_com_example_jnihellodemo_MainActivity_helloFromC  (JNIEnv *, jobject);

(返回值 Java_报名_类名_方法名)

7、在步骤3建立的JNI目录下新建一个c文件、实现6中的方法、以返回一个字符串为例

#include <jni.h>#include <stdio.h>#include <stdlib.h>#include <string.h>JNIEXPORT jstring JNICALL Java_com_example_jnihellodemo_MainActivity_helloFromC  (JNIEnv *env , jobject obj){return (*env)->NewStringUTF(env, "Hello from JNI ");}
8、在JNI目录下新建一个android.mk文件

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)#生成的模块名称LOCAL_MODULE    := JniHelloDemo#依赖的源文件LOCAL_SRC_FILES := JniHelloDemo.cinclude $(BUILD_SHARED_LIBRARY) 
9、8、在JNI目录下新建一个application.mk文件

APP_ABI := all
表示支持的平台、all表示支持所有的平台

10、在使用native方法的类中添加静态代码块加载.so文件

static{System.loadLibrary("JniHelloDemo");}

JniHelloDemo是android.mk中的LOCAL_MODULE (libJniHelloDemo.so去掉lin和.so)

11、进入工程文件目录下、打开cmd运行ndk-build命令生成对应的库文件

12、运行工程……

------------------------------------------------------------来一个分割线----------------------------------------------------------------------

其他:

1、javah

2、javap

3、eclipse环境配置

4、log打印









0 0
原创粉丝点击