JNI程序规范和指南6——异常
in 个人博客 on JNI
在本地代码中调用JNI函数时,我们已经处理过很多可能存在错误的情况。本文将介绍本地代码如何发现并处理这些错误。
in 个人博客 on JNI
在本地代码中调用JNI函数时,我们已经处理过很多可能存在错误的情况。本文将介绍本地代码如何发现并处理这些错误。
in 垃圾桶
考虑了很久,其实也没有多久,很早之前就打消了读博的想法,只是一直没有跟导师说,给自己留了一条后路。
in 个人博客 on PAPER
在互联网视频应用中,用户感知的体验质量(QoE)是至关重要,因为它会影响内容提供商和分发系统的收入。鉴于网络中很少提供优化此类措施的支持,瓶颈可能出现在分发系统的任何地方。因此,客户端中健壮的码率自适应算法对于确保良好的用户体验至关重要。先前的研究表明了最新的商业解决方案的关键局限性,并提出了一系列启发式解决方案。尽管提出了一些建议,但在以下方面仍然明显缺乏共识:(1)如何最好地设计这种客户端码率自适应逻辑(例如,使用估计带宽与缓冲区占用率);(2)在不同的网络环境下特定类别的方法表现如何(例如,高吞吐量可变性);(3)实际中,如何平衡不同的QoE目标(例如,启动延迟与缓冲)。为此,本文做出了三个关键的技术贡献。首先,为了给这个空间带来一些严谨性,我们开发了一种合理的控制理论模型来分析各种方法。其次,我们提出了一种新颖的模型预测控制算法,该算法可以有效结合吞吐量和缓冲区占用信息,从而优于传统方法。第三,实现了一个播放器实例,并使用真实的trace来验证我们的算法。
in 个人博客 on JNI
JNI以不透明引用(opaque references)的方式提供了一些实例和数组类型(jobject
, jclass
, jstring
, jarray
等)以供本地方法使用。本地代码不能直接访问不透明引用所指向的内容,而只能借助JNI方法去访问这些数据结构,这样开发者就不用考虑JVM中的对象的存储方式。这样的话,必须要了解JNI中的几种引用:
in 个人博客 on JNI
上一篇文章介绍了JNI如何访问基本类型和引用类型数据,本文将继续介绍如何访问任意对象的字段和方法。在本地代码中调用Java中实现的方法,也就是常说的回调函数callback。
本文会介绍如何使用JNI函数访问对象的字段和调用回调函数,后面也会介绍如何使用缓存来使得对象操作更加简便和有效率。在文章的最后,还会讨论以下Java调用C/C++方法,C/C++访问Java对象字段和调用callback的性能。
in 个人博客 on JNI
一个开发者在Java和本地代码交互的过程中最常见的问题是Java的数据类型是如何映射到C/C++中去的。在上一章的例子中我们没有给本地方法传递参数,本地方法也没有返回结果。但是实际中,大多数程序是需要传递参数给本地方法以及从本地方法中获取返回值的。本文将介绍如何在Java和C/C++之间交换参数。
in 个人博客 on JNI
本文通过一个简单的例子来介绍如何使用JNI:一个Java程序调用C代码输出hello world。
in 个人博客 on JNI
JNI是Java平台提供的一个强大的功能,使得Java应用可以重用C和C++写的本地代码(native code)。这系列文章既是编程指南,也是JNI手册,本书包含三个部分:
in 个人博客 on JNI
最近在做一些播放器相关的工作,其中Android端使用FFmpeg库,需要通过JNI来调用,查看了不少文档,觉得Java Native Interface-Programmer’s Guide and Specification一书讲得很清楚,所以想自己总结一下这本书的内容,以便日后查看。这个系列的每一篇文章对应着书的一个章节。
in 个人博客
偶然在msys2中使用git clone一个加密的仓库…