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应用,看到效果了。
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应用,看到效果了。
相关文章推荐
- Android-NDK开发之基础--Android JNI实例代码(四)-- JNI中的异常处理实例代码
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- Android JNI实例代码(一)
- Android JNI实例代码(一)
- Android-NDK开发之基础--Android JNI实例代码(二)-- 获取/设置类的域或者说属性字段
- Android JNI实例代码(二)
- Android-NDK开发之基础--Android JNI实例代码(三)-- 在JNI中构造和实例化Java类
- Android JNI简单实例(android 调用C/C++代码)
- Android JNI实例代码(二)
- Android JNI简单实例(android 调用C/C++代码)
- Android JNI的实例代码流程图
- Cocos2d-x游戏开发之Cocos2dx通过JNI调用Android的Java代码(webView实例)
- Android-NDK开发之基础--Android JNI实例代码(四)-- JNI中的异常处理实例代码
- Android JNI实例代码(一)
- Android JNI实例代码(一)
- Android JNI简单实例(android 调用C/C++代码)
- Android-NDK开发之基础--Android JNI实例代码(四)-- JNI中的异常处理实例代码
- Android-NDK开发之基础--Android JNI实例代码(三)-- 在JNI中构造和实例化Java类
- Android JNI简单实例(Android java调用C/C++代码)
- Android-NDK开发之基础--Android JNI实例代码(二)-- 获取/设置类的域或者说属性字段