仅仅要涉及JNI开发都涉及到Android.mk编写,它也是一种makefile语言. 以上一篇博客中提供的project为例! <1> : 信息打印 : 既然是一种简易语言那么首先应该知道可以打印脚本信息的语法部分:一个是基本信息类型,一个是警告,错误类型 $(info TEXT......) 这 ...
分类:
移动开发 时间:
2017-07-13 10:34:56
阅读次数:
263
前言 本文记录一个Java层与JNI层參数与数据交互的应用程序开发过程。为实现一个功能完整的带Java与JNI的应用程序打下基础。本文如果读者已搭建好Android的Eclipse与NDK开发环境,包含通过ADB连接手机的配置。 1. 构建主要的Android应用程序 1.1 引导界面配置 打开Ec ...
分类:
移动开发 时间:
2017-06-12 20:41:31
阅读次数:
203
问题: 想在Jni层创建 udp socket 与服务端通信,可是没有成功。最后发现居然是创建socket失败(代码例如以下) // create socket g_sd = socket(AF_INET, SOCK_DGRAM, 0); if (-1 == g_sd) { perror("sock ...
分类:
移动开发 时间:
2017-05-28 11:52:15
阅读次数:
231
一.访问静态字段 Java层的field和method,不管它是public,还是package、private和protected,从 JNI都可以访问到,Java面向语言的封装性不见了。 静态字段和非静态的字段访问方式不同,jni规范提供了一系列带static标示的访问静态字段的函数: 访问流程 ...
分类:
移动开发 时间:
2017-05-23 19:47:12
阅读次数:
299
一.数据类型映射概述 从我们开始jni编程起,就不可能避开函数的参数与返回值的问题。java语言的数据类型和c/c++有很多不同的地方,所以我们必须考虑当在java层调用c/c++函数时,怎么正确的把java的参数传给c/c++函数,怎么正确的从c/c++函数获取正确的函数返回值;反之,当我们在c/ ...
分类:
移动开发 时间:
2017-05-23 19:45:46
阅读次数:
360
一.JNI引用类型 JNI支持三种类型的 opaque reference:local references, global references,和weak global references,下面我们将逐一探讨。 local references 大部分JNI 函数都会创建LocalRef,如N ...
分类:
移动开发 时间:
2017-05-23 19:40:18
阅读次数:
262
在Java的编程中,我们经常会遇到各种的异常,也会处理各种的异常。处理异常在java中非常简单,我们通常会使用try-catch-finally来处理,也可以使用throw简单抛出一个异常。那么在jni编程的时候我们又是如何处理异常的呢? 异常处理流程 jni规范已经给我们做好了所有需要做的事情。回 ...
分类:
移动开发 时间:
2017-05-23 19:35:42
阅读次数:
282
Android JNI开发中用到了OpenCV,由于想通过JNI实现,就没有去用Android层的Lib引用。可是操作中发如今.cpp文件中include的时候发现“#include <opencv.hpp>”(opencv.hpp在opencv2以下)报了个警告说“fatal error: ope ...
分类:
系统相关 时间:
2017-05-21 16:52:02
阅读次数:
309
AndroidJNI 通过C++调用JAVA 1. JNIEnv对象 对于本地函数 JNIEXPORT void JNICALL Java_video1_TestNative_sayHello(JNIEnv * env, jobject obj) { cout<<"Hello Native Test ...
分类:
移动开发 时间:
2017-05-18 14:46:54
阅读次数:
318
第五章、JNI机制4.1 JNI概述 由前面基础知识可知,Android的应用层由Java语言编写,Framework框架层则是由Java代码与C/C++语言实现,之所以由两种不同的语言组合开发框架层,是由于Java代码是与硬件环境彻底“隔离”的跨平台语言,Java代码无法直接操作硬件。比方:And ...
分类:
移动开发 时间:
2017-05-17 10:09:33
阅读次数:
765