关闭

android jni实例讲解

标签: JNINDKandroid
71人阅读 评论(0) 收藏 举报
以hello-jni.c为例      环境:NDK : android-ndk-r10

1、建立需要调用c、c++的本地java类
    声明需要调用的函数名等
package com.dl.jnitest;
public class NdkJniTest {
    public native String stringFromJNI();//c文件里面的函数,在本地声明
    static {
        System.loadLibrary("hello-jni");//hello-jni 为.c/.cpp的文件
    }

}

2、生成调用  头文件,拷贝至jni文件夹
    在.....  /JniTest/bin/classes 下  
     终端输入:javah -classpath . com.dl.jnitest.NdkJniTest
           将生成头文件 com_dl_jnitest_NdkJniTest.h

3、根据头文件完善c、c++文件函数  hello-jni
    在  /jni/  下建立文件 hello-jni.c文件
    
4、编写Android.mk文件,对C文件编译,编译工具:NDK会调用C编译器
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := hello-jni
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := hello-jni.c
LOCAL_C_INCLUDES :=$(JNI_H_INCLUDE)
LOCAL_LDLIBS    := -llog  #more...

LOCAL_SHARED_LIBRARIES := liblog libcutils

LOCAL_PRELINK_MODULE := false

include $(BUILD_SHARED_LIBRARY)

5、编写    Application.mk 指定具体平台 (可选)
        APP_ABI := armeabi-v7a
        APP_PLATFORM := android-8
6、生成.so共享库文件
        JniTest 目录下终端输入: ndk-build
        so文件 生成在   /JniTest/libs/armeabi   下
7、java文件调用

8、重新编译Eclipes,即可加载

附件为完整实例代码

http://download.csdn.net/detail/cooolboyish/8889389

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:73次
    • 积分:11
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档
    阅读排行
    评论排行