android jni实例讲解

原创 2015年07月11日 10:41:19
以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

Android JNI开发流程(android开发艺术探索随笔)

今天来了兴趣想更搞下JNI,于是乎拿起任玉刚的Android开发艺术看了会,看起来挺简单的,但是做的时候各种问题。经过自己的努力,也算是弄好了。那么就来和大家分享下。 这篇博客的所用的是Ubuntu...
  • qq_21430549
  • qq_21430549
  • 2015年10月31日 19:18
  • 974

Android调用JNI的简单实例(附详细步骤)

最近想调用FFmepg库来做编解码的东西,首先就得学会使用JNI(JAVA Native Interface)调用。 下面做个简单的JNI调用实例,中间遇到的问题及解决过程省略一万字,查找到的资料也都...
  • EricFantastic
  • EricFantastic
  • 2015年10月21日 09:45
  • 4733

Android中JNI创建实例

参考文档: http://blog.sina.com.cn/s/blog_a11f64590101924l.html http://www.cnblogs.com/hoys/archive/2010/...
  • wikiday
  • wikiday
  • 2015年01月04日 22:18
  • 9047

Android Jni使用案例

Android上层和C/C++层通信可以通过JNI实现,具体做法有两种: 一:采用默认的本地函数注册流程   1). 编写带有native方法的Java类;     Gpio.java ...
  • visionliao
  • visionliao
  • 2016年05月26日 15:12
  • 1512

Android中关于JNI 的学习(零)简单的例子,简单地入门

1)创建Java类文件,并定义Native方法,如JniTest类。 2)利用javac生成class文件,然后回到src目录,利用javah生成C/C++头文件,在这里要注意,javah命令要在包的...
  • foolsheep
  • foolsheep
  • 2014年05月06日 13:12
  • 2154

eclipse下android JNI开发小实例

JNI是JavaNativeInterface的缩写,通过JNI可以方便我们在Android平台上进行C/C++编程。要用JNI首先必须安装Android的NDK,配置好NDK环境之后就可以在Ecli...
  • sky1203850702
  • sky1203850702
  • 2014年12月13日 10:51
  • 4205

(Linux平台)在Android中调用JNI

(需要使用NDK工具编译生成.so文件,所以请先下载NDK, 附地址: http://wear.techbrood.com/tools/sdk/ndk/index.html ,请选择对应平台下载) ...
  • u013403478
  • u013403478
  • 2016年07月29日 20:13
  • 792

Android--JNI编程详解

Android系统不允许一个纯粹使用C/C++的程序出现,它要求必须是通过Java代码嵌入Native C/C++——即通过JNI的方式来使用本地(Native)代码。因此JNI对Android底层开...
  • chaoyu168
  • chaoyu168
  • 2016年04月21日 15:55
  • 1955

android通过JNI控制LED

假设已经写了一个驱动程序,它是控制LED的亮灭的,并且创建了一个节点:/dev/leds,也就是通过open这个节点,可以read/write/ioctl 操作驱动程序实现LED灯的亮灭控制, ...
  • newairzhang
  • newairzhang
  • 2014年08月10日 13:24
  • 2977

QtAndroid详解(4):JNI调用Android系统功能(1)

在Qt中,通过 Qt JNI 类库调用 Android 系统功能,判断网络状态,获取SDK版本,获取各种资源目录(外部存储、数据、图片、音乐、视频等),获取当前应用信息……...
  • foruok
  • foruok
  • 2015年03月01日 08:00
  • 9041
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android jni实例讲解
举报原因:
原因补充:

(最多只允许输入30个字)