安卓开发ndk的编译顺序 和 jni的简单调用

原创 2016年05月30日 14:26:13


1. 首先需要下载ndk 并且 配置ndk 环境变量  就是把 ndk-build.cmd的文件路径放到path 的环境变量中


2 创建 jni 文件夹 里面创建 Android.mk记事本文件 内容是

LOCAL_PATH := $(call my-dir) (不用管)
include $(CLEAR_VARS)  (不用管)
LOCAL_MODULE    := 生成的lib名字 
LOCAL_SRC_FILES := c/c++代码文件名 同目录下的
include $(BUILD_SHARED_LIBRARY)  (不用管)


3 进入cmd  cd 到你创建jni 的目录那里  如果d://so/jni  就cd到d://so文件夹就行了 


4  使用  ndk-build 命令  编译 c/c++ 文件  如果成功的话 会生成 libs obj 两个目录,  libs里面的为我们需要 .so文件



以上编译的步骤就完成了!


下面是使用.so 


1在代码中调用 .so  必须要创建 jni.java


jni 代码 和 cpp文件中的代码 是一一对应的 下面是个读取文件时间filetime 转换成 时间戳 的例子!



 这个是java 代码 





c代码


编写c代码时一定要注意编码问题! 注意!否则会编译失败!


可以理解为 java代码 是个接口 c代码 是实现 只不过这个对应比较麻烦 


可以看到 参数多了几个, 方法名 和参数 都变了  这都是有规律的变化 具体的代码  看这两个文件的关系 摸索出规律来 改代码就行了


对参数不懂的可以看 jni.h 里面的东西!相当于是个大类库!



最后 jni 就像普通 java  类一样,直接在别的地方调用就行了 









相关文章推荐

安卓JNI/NDK开发3(进阶 在C代码中调用java方法)

在C代码中调用java方法的步骤:C代码中调用java的方法,非常类似于java中的反射调用一:获得字节码// jclass (*FindClass)(JNIEnv*, const char...

Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法实现边缘检测代码(2)

这篇博客是接新浪博客的。。不知新浪博客哪根筋出问题了,后面的内容一直写不上去。现转自csdn博客。新浪博客地址:http://blog.sina.com.cn/s/blog_74b409aa0102v...

Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法 边缘检测 范例代码

Android开发环境配置,Android配置使用NDK(native development kit),通过NDK编译本地 C++ 代码, 使用opencv进行Android开发。 边缘检测 范例...

简单实现Android NDK编译jni调用动态库开发

做开发也有点时间了,之前就一直没有接触过jni相关的知识,换了一家公司跟硬件打交道的不得不学习起来,几经波折终于有点心得,所以特别分享一下!...

安卓NDK开发之快速熟悉JNI参数的回调

前言:在上一节中我们介绍了通过java传递参数给JNI,今天我们熟悉一下JNI的回调,java访问jni,然后通过类反射的方式拿到java的方法,来实现回调。...

安卓NDK开发之快速熟悉JNI参数的传递

前言:看过我的JNI系列开发的博客,相信你对JNI的一些基本用法熟悉了,今天我就带领大家在AS上快速熟悉一下JNI参数的传递!...

EasyDarwin安卓直播之EasyPusher NDK开发:JNI回调函数的实现

最近在做开发时涉及到JNI回调,今日便研究了一下,这个跟调用Java层的代码不同,这个是直接通过setCallback的方式去做的。做此记录:先看一下加载so库的代码,我就直接在Activity中使用...

安卓JNI/NDK开发1(开发前了解)

JNI什么是JNI (java native interface) java本地语言接口为什么要用JNI 市场有需求 C代码运行效率高(运行效率要求比较高的场合,如大型游戏) C代码流...

Jni_Ndk开发最简单的例子

  • 2013年11月18日 22:12
  • 1.25MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:安卓开发ndk的编译顺序 和 jni的简单调用
举报原因:
原因补充:

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