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

android JNI 实例代码

2013-03-21 21:15 549 查看
1:新建一个工程。

2:增加一个JNI类:

package com.lxm.app;

// 增加一个本地函数

public class JNI {

static {

// 加载动态库

System.loadLibrary("hello");

}

public native int add(int a,int b);

}

3:在主activity里面增加:

JNI testJNI =new JNI();

int c=testJNI.add(5,6);

Toast.makeText(this,String.valueOf(c), Toast.LENGTH_LONG).show();

4:

现在进行处理生成动态库:

命令行进入到工程目录的

D:\android\app\testjni\src>javah -classpath . -jni com.lxm.app.JNI

然后输入命令:

javah -classpath . -jni com.lxm.app.JNI

生成出来JNI的本地头文件

com_lxm_app_JNI.h

5:现在就是实现JNI类的本地函数int add(int a,int b);

6:在com_lxm_app_JNI.h的同目录下创建一个test.c 和Android.mk

具体内容为:test.c

#include <string.h>

#include <jni.h>

#include "com_lxm_app_JNI.h"

JNIEXPORT jint JNICALL Java_com_lxm_app_JNI_add

(JNIEnv *Env, jobject thzi, jint a , jint b)

{

return a+b;

}

Android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := hello

LOCAL_SRC_FILES := test.c

include $(BUILD_SHARED_LIBRARY)

7:打开Cygwin.bat进入到test.c的目录下,输入

$ $NDK/ndk-build

显示如下:

Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver

Gdbsetup : libs/armeabi/gdb.setup

Compile thumb : hello <= test.c

SharedLibrary : libhello.so

Install : libhello.so => libs/armeabi/libhello.so

说明生成出来库文件了。

将libs整个文件夹加入到工程里面。

这时候则可以运行此apk应用,看到效果了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: