11 2018 档案

摘要:1. 简介 Invocation API允许软件提供商在原生程序中内嵌Java虚拟机。因此可以不需要链接任何Java虚拟机代码来提供Java-enabled的应用程序。 以下代码演示如何使用: 创建虚拟机 JNI_CreateJavaVM() 函数载入和初始化一个Java虚拟机。调用该函数的线程被视 阅读全文
posted @ 2018-11-27 18:01 灰色飘零 阅读(1449) 评论(0) 推荐(1) 编辑
摘要:一、String Operations(字符串操作) 1. NewString 利用 Unicode 字符数组构造新的 java.lang.String 对象。 参数: env:JNI 接口指针。 unicodeChars:指向 Unicode 字符串的指针。 len:Unicode 字符串的长度。 阅读全文
posted @ 2018-11-27 17:34 灰色飘零 阅读(451) 评论(0) 推荐(0) 编辑
摘要:一、Accessing Static Fields(访问静态域) 1. GetStaticFieldID 返回类的静态域的域 ID。域由其名称和签名指定。GetStatic<type>Field 和 SetStatic<type>Field 访问器函数系列使用域 ID 检索静态域。 GetStati 阅读全文
posted @ 2018-11-19 22:38 灰色飘零 阅读(713) 评论(0) 推荐(2) 编辑
摘要:一、GetMethodID 返回类或接口实例(非静态)方法的方法 ID。方法可在某个 clazz 的超类中定义,也可从 clazz继承。该方法由其名称和签名决定。 GetMethodID() 可使未初始化的类初始化。 要获得构造函数的方法 ID,应将 <init> 作为方法名,同时将 void (V 阅读全文
posted @ 2018-11-19 22:15 灰色飘零 阅读(861) 评论(0) 推荐(2) 编辑
摘要:一、GetFieldID 返回类的实例(非静态)域的域 ID。该域由其名称及签名指定。访问器函数的Get<type>Field 及 Set<type>Field 系列使用域 ID 检索对象域。 GetFieldID() 将未初始化的类初始化。 GetFieldID() 不能用于获取数组的长度域。应使 阅读全文
posted @ 2018-11-19 22:07 灰色飘零 阅读(532) 评论(0) 推荐(2) 编辑
摘要:一、AllocObject 分配新 Java 对象而不调用该对象的任何构造函数。返回该对象的引用。 clazz 参数务必不要引用数组类。 参数: env:JNI 接口指针。 clazz:Java 类对象。 返回值: 返回 Java 对象。如果无法构造该对象,则返回NULL。 抛出: Instanti 阅读全文
posted @ 2018-11-19 21:57 灰色飘零 阅读(1061) 评论(0) 推荐(2) 编辑
摘要:1. NewGlobalRef(创建全局引用) 创建 obj 参数所引用对象的新全局引用。obj 参数既可以是全局引用,也可以是局部引用。全局引用通过调用 DeleteGlobalRef() 来显式撤消。 参数: env:JNI 接口指针。 obj:全局或局部引用。 返回值: 返回全局引用。如果系统 阅读全文
posted @ 2018-11-15 21:16 灰色飘零 阅读(677) 评论(0) 推荐(2) 编辑
摘要:本文我们来总结一下JNI 提供的功能列表及相关的函数表。 注意:请注意使用术语“必须”来描述对JNI程序员的限制。例如,当您看到某个JNI函数必须接收非NULL对象时,您有责任确保不将NULL传递给该JNI函数。因此,JNI实现不需要在该JNI函数中执行NULL指针检查。 一、接口方法表 可以通过J 阅读全文
posted @ 2018-11-15 10:50 灰色飘零 阅读(819) 评论(0) 推荐(2) 编辑
摘要:一、安装Git与yasm 二、下载和配置 SDK、NDK SDK一般开发时肯定都有的,NDK一般是不默认下载的, 不建议使用SDK Manager下载的NDK,存在一些问题, 建议去官网下载。 接着是配置环境变量: 设置修改下:.bashrc文件,把SDK和NDK配置上: 然后source .bas 阅读全文
posted @ 2018-11-13 21:08 灰色飘零 阅读(1572) 评论(0) 推荐(2) 编辑
摘要:本文我们来讨论一下JNI如何将Java类型映射到本机C类型。 一、基本数据类型 如下图表整理了Java基本类型和native对应的关系: 二、引用类型 JNI 包含许多与不同类型的Java对象相对应的引用类型。JNI引用类型按层次结构组织,如图所示: 在C中,所有其他JNI引用类型都定义为与jobj 阅读全文
posted @ 2018-11-10 21:57 灰色飘零 阅读(796) 评论(0) 推荐(3) 编辑
摘要:本章我们重点说明以下JNI设计的问题,本章中提到的大多数设计问题都与native方法有关。至于调用相关的API的设计,我们会在后面进行介绍。 一、JNI接口函数和指针 native 代码通过调用JNI函数来访问Java VM功能。JNI函数可通过接口指针获得。接口指针是指向指针的指针。该指针指向一个 阅读全文
posted @ 2018-11-10 20:00 灰色飘零 阅读(1149) 评论(0) 推荐(4) 编辑
摘要:JNI 即 Java Native Interface 是 native 编程接口,它允许在Java虚拟机(VM)内运行Java代码与其他编程语言(主要是C和C++)编写的应用程序和库进行交互操作。 JNI最重要的好处是它对底层Java VM的实现没有任何限制。因此,Java VM供应商可以添加对J 阅读全文
posted @ 2018-11-09 23:06 灰色飘零 阅读(1677) 评论(0) 推荐(2) 编辑
摘要:Google表示,为保证用户数据和设备的安全,针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使 阅读全文
posted @ 2018-11-07 12:01 灰色飘零 阅读(26287) 评论(0) 推荐(3) 编辑
摘要:一、C/C++多线程操作说明 C/C++多线程基本操作如下: 1. 线程的建立结束 2. 线程的互斥和同步 3. 使用信号量控制线程 4. 线程的基本属性配置 在C/C++代码编写时,使用多线程机制,首先需要做的事情就是声明引用,具体如下: #include "pthread.h" 二、线程基本操作 阅读全文
posted @ 2018-11-05 13:09 灰色飘零 阅读(10029) 评论(0) 推荐(2) 编辑
摘要:一、说明 queue 是一种队列适配器,专门设计用于FIFO中操作(先进先出),元素从一端插入容器并从另一端提取。 相关API地址为:http://www.cplusplus.com/reference/queue/queue/ 二、使用方法 在C++中只要#include<queue>即可使用队列 阅读全文
posted @ 2018-11-03 12:39 灰色飘零 阅读(1983) 评论(0) 推荐(2) 编辑

点击右上角即可分享
微信分享提示