您的位置:首页 > 移动开发 > Android开发

Android JNI开发笔记

2016-02-21 19:20 411 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/songlin0859/article/details/50709062

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.c

include $(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打印









内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: