摘要: 转自:http://www.yxkfw.com/?p=7223 1. 在Eclipse中创建项目:TestJNI 2. 新创建一个class:TestJNI.java package com.wwj.jni; public class TestJNI { public native boolean 阅读全文
posted @ 2016-12-10 15:45 brave-sailor 阅读(1726) 评论(0) 推荐(0)
摘要: ndroid JNI 提供了很强大的支持,不仅可以采用基本类型做为参数和返回值,同时也支持自定义对象做为参数和返回值,以下举例说明。 一、定义作为输入和返回的自定义类 (仅提供两个简单类型和一个打印函数) 二. 定义和JNI通信的java封装 功能:测试输入参数和返回值都为自定义对象的本地方法,同时 阅读全文
posted @ 2016-12-10 11:15 brave-sailor 阅读(1801) 评论(0) 推荐(0)
摘要: 1.c中的jstring数据类型就是java传入的String对象,经过jni函数的转化就能成为c的char*。 Java 类型 本地c类型 说明 boolean jboolean 无符号 8 位 byte jbyte 无符号 8 位 char jchar 无符号 16 位 short jshort 阅读全文
posted @ 2016-12-10 11:05 brave-sailor 阅读(1378) 评论(0) 推荐(0)
摘要: Android开发中,经常会在Java代码与Jni层之间传递数组(byte[]),一个典型的应用是Java层把需要发送给客户端的数据流传递到Jni层,由Jni层的Socket代码发送出去,当然,Jni层也需要把从Socket接收到的数据流返回给Java层。我简单地总结了一下,从Java层到Jni层, 阅读全文
posted @ 2016-12-10 11:04 brave-sailor 阅读(495) 评论(0) 推荐(0)
摘要: 介绍Java如何将数据传递给C和C回调Java的方法。 java传递数据给C,在C代码中进行处理数据,处理完数据后返回给java。C的回调是Java传递数据给C,C需要用到Java中的某个方法,就需要调用java的方法。 Android中使用JNI七个步骤: 1.创建一个android工程 2.Java代码中写声明native 方法 public native String helloF... 阅读全文
posted @ 2016-12-10 10:35 brave-sailor 阅读(886) 评论(0) 推荐(0)
摘要: 转自:http://www.yxkfw.com/?p=7223 1. 在Eclipse中创建项目:TestJNI 2. 新创建一个class:TestJNI.java package com.wwj.jni; public class TestJNI { public native boolean 阅读全文
posted @ 2016-12-10 09:57 brave-sailor 阅读(237) 评论(0) 推荐(0)
摘要: 转自:http://www.shaoqun.com/a/105310.aspx 在Android中调用动态库文件(*.so)都是通过jni的方式,而且往往在apk或jar包中调用so文件时,都要将对应so文件打包进apk或jar包,工程目录下图: 以上方式的存在的问题: 1、缺少灵活性比较类似静态加 阅读全文
posted @ 2016-12-10 09:55 brave-sailor 阅读(592) 评论(0) 推荐(0)
摘要: 1、 使用NDK去编译官方的FFmpeg原版的话,还得自己实现JNI层与Java层,工程量比较大。所以移植FFmpeg到Android平台时,可以移植一些已经实现JNI与JAVA层的开源项目,毕竟软件行业从来都是站在巨人肩膀上发展的。 2、移植havlenapetr/FFMpeg havlenape 阅读全文
posted @ 2016-12-10 09:33 brave-sailor 阅读(479) 评论(0) 推荐(0)
摘要: 1、 在Android的Java层实现文件的读写操作是非常简单的,可以参看之前写的博文:http://blog.csdn.net/conowen/article/details/7296121 在JNI层实现文件的读写操作的话,就要使用到Linux的读写函数了。 2、打开文件 [cpp] view 阅读全文
posted @ 2016-12-10 09:32 brave-sailor 阅读(1097) 评论(0) 推荐(0)
摘要: 1、JNINativeMethod 结构体的官方定义 [cpp] view plain copy print? typedef struct { const char* name; const char* signature; void* fnPtr; } JNINativeMethod; [cpp 阅读全文
posted @ 2016-12-10 09:31 brave-sailor 阅读(393) 评论(0) 推荐(0)
摘要: 在Java中有两类数据类型:primitive types,如,int, float, char;另一种为reference types,如,类,实例,数组。 注意:数组,不管是对象数组还是基本类型数组,都作为reference types存在,有专门的JNI方法取数组中每个元素。 1、void j 阅读全文
posted @ 2016-12-10 09:30 brave-sailor 阅读(661) 评论(0) 推荐(0)
摘要: 1、Android NDK简介 NDK全称为native development kit本地语言(C&C++)开发包。而对应的是经常接触的Android-SDK,(software development kit)软件开发包(只支持Java语言开发)。 简单来说利用NDK,可以开发纯C&C++的代码 阅读全文
posted @ 2016-12-10 09:29 brave-sailor 阅读(1694) 评论(0) 推荐(0)
摘要: 1、JNI简介 JNI全称为Java Native Interface(Java本地调用)。从Java1.1开始,JNI成为java平台的一部分,它允许Java代码和其他语言写的代码(如C&C++)进行交互。并非从Android发布才引入JNI的概念的。 2、JNI与NDK 简单来说,Android的NDK提供了一些交叉编译工具链和Android自带的库,这些Androi... 阅读全文
posted @ 2016-12-10 09:28 brave-sailor 阅读(561) 评论(0) 推荐(0)