JNI-编程指南
yu-Knight
雄关漫道真如铁,而今迈步从头越!
多年Android开发经验。
熟悉HTML、CSS、JS、JAVA、Kotlin、PHP等常用开发语言。
展开
-
JNI编程指南-第十一章 JNI设计思想概述
第十一章JNI设计思想概述 本章是JNI设计思想的一个概述,在讲的过程中,如果有必要的话,还会对底层实现技术的原理做说明。本章也可以看作是JNIEnv指针、局部和全局引用、字段和方法ID等这些JNI主要技术的规范。有些地方我们可能还会提到一些技术是怎么样去实现的,但我们不会专注于具体的实现方式,主要还是讨论一些实现策略。 11.1 设计目标 JNI最重要的设计目标就是在翻译 2015-09-01 12:28:28 · 710 阅读 · 0 评论 -
JNI编程指南-简介
第一章 简介 JNI是JAVA平台的一个重要特征,使用它我们可以重用以前用C/C++写的大量代码。本书既是一个编程指南也是一个JNI手册。本书共包括三部分:1、 第二章通过一个简单的例子介绍了JNI。它的对象是对JNI不熟悉的初学者。2、 3~10章对JNI的特征进行了系统的介绍。我们会举大量的例子来说明JNI的各个特征,这些特征都是JNI中重要且常用的。3、 11~翻译 2015-09-01 10:19:31 · 1229 阅读 · 0 评论 -
JNI编程指南-第三章 基本类型、字符串、数组
第一章 基本类型、字符串、数组 开发者使用JNI时最常问到的是JAVA和C/C++之间如何传递数据,以及数据类型之间如何互相映射。本章我们从整数等基本类型和数组、字符串等普通的对象类型开始讲述。至于如何传递任意对象,我们将在下一章中进行讲述。 3.1 一个简单的本地方法 JAVA端源代码如下:class Prompt { //native method翻译 2015-09-01 10:26:42 · 763 阅读 · 0 评论 -
JNI编程指南-第八章 多彩的JNI招数
第八章 多彩的JNI招数 我们已经讨论了JNI在写本地代码和向本地应用程序中集成JVM时的特征。本章接下来的部分分介绍其它的JNI特征。 8.1 JNI和线程 JVM可以做到在相同的地址空间内执行多个线程。由于多个线程可能会在同时共享资源,所以,增加了程序的复杂性。要完全理解本章的东西,你需要对多线程编程比较熟悉,知道怎么样在JAVA中用多线程访问共享资源。翻译 2015-09-01 11:41:35 · 495 阅读 · 0 评论 -
JNI编程指南-第十章 使用JNI时容易出错的地方
第十章使用JNI时容易出错的地方 本章总结了JNI实际应用中容易出错的一些情况供JNI程序员参考。 10.1 错误检查 编写本地方法时最常见的错误就是忘记检查是否发生了异常。我承认,JNI里面的异常检查确实比较麻烦,但是,这很重要。 10.2 向JNI函数传递非法参数 JNI不会检查参数是否正确,如果你自己不保证参数的正确有效,那么出现什么样的错误是未知翻译 2015-09-01 12:25:01 · 730 阅读 · 0 评论 -
JNI编程指南-第九章 使用己有的本地库
第九章使用己有的本地库 JNI的一个使用方式就是编写一些本地方法来使用己有的本地库。本章介绍了一种生成一个包含一系列本地函数的类库的经典的方式。本章首先用一对一映射这种(one-to-one mapping)最直接的方式来写封装类.接下来,我们会介绍一种叫做共享stubs(shared stubs)的技术来简化编写封装类的任务。然后,在本章的最后,我们会讨论怎么样使用peer cl翻译 2015-09-01 12:16:26 · 591 阅读 · 0 评论 -
JNI编程指南-第七章 调用接口(invocationinterface)
第七章调用接口(invocationinterface) 本章讲述如何把一个JVM嵌入到你的本地程序当中去。一个JVM可以看作就是一个本地库。本地程序可以链接这个库,然后通过“调用接口”(invocationinterface)来加载JVM。实际上,JDK中标准的启动器也就是一段简单的链接了JVM的C代码。启动器解析命令、加载JVM、并通过“调用接口”(invocation inter翻译 2015-09-01 10:50:28 · 816 阅读 · 0 评论 -
JNI编程指南-第四章 字段和方法
第四章 字段和方法 现在,你知道了如何通过JNI来访问JVM中的基本类型数据和字符串、数组这样的引用类型数据,下一步就是学习怎么样和JVM中任意对象的字段和方法进行交互。比如从本地代码中调用JAVA中的方法,也就是通常说的来自本地方法中的callbacks(回调)。我们从进行字段访问和方法回调时需要的JNI函数开始讲解。本章的稍后部分我们会讨论怎么样通过一些cache(缓存)技术来优化翻译 2015-09-01 10:32:55 · 533 阅读 · 0 评论 -
JNI编程指南-第五章 全局引用和本地引用
第五章全局引用和本地引用 JNI提供了一些实例和数组类型(jobject、jclass、jstring、jarray等)作为不透明的引用供本地代码使用。本地代码永远不会直接操作引用指向的VM内部的数据内容。要进行这些操作,必须通过使用JNI操作一个不引用来间接操作数据内容。因为只操作引用,你不必担心特定JVM中对象的存储方式等信息。这样的话,你有必要了解一下JNI中的几种不同的引用:翻译 2015-09-01 10:36:52 · 530 阅读 · 0 评论 -
JNI编程指南-第二章 开始(HelloWorld)
第一章 开始 本章通过一个简单的例子来示例如何使用JNI。我们写一个JAVA程序,并用它调用一个C函数来打印“Hello World!”。 2.1 概述 图2.1演示了如何使用JAVA程序调用C函数来打印“Hello World!”。这个过程包含下面几步:1、 创建一个类(HelloWorld.java)声明本地方法。2、 使用javac编译源文件Hollo翻译 2015-09-01 10:23:35 · 575 阅读 · 0 评论 -
JNI编程指南-第六章 异常
第六章 异常 很多情况下,本地代码做JNI调用后都要检查是否有错误发生,本章讲的就是怎么样检查错误和处理错误。我重点放在JNI函数调用引发的错误上面。如果一个本地方法中调用了一个JNI函数,它必须遵守下面几个步骤来检查和处理这个JNI函数调用时可能引发的错误。至于其它可能的错误,比如本地代码中调用了一个可能引发错误的系统方法,那只需要按照该系统方法的标准文档中规定的来处理就可以了。翻译 2015-09-01 10:47:51 · 605 阅读 · 0 评论