android jni实例讲解

以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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值