文章分类 - JNI/NDK
摘要:前言 最近有个想进阶Android,学习NDK编程的小伙伴问我说看了不少网上的视频教程,大多数的主题都是讲JNI的方法签名、JNI线程绑定、JNI调用Java方法等主要的内容。 自己在练习的过程中发现如果需要重复利用一个C或者C++的对象时就不知道怎么处理了。其实这就是Java对象如何保存Nativ
阅读全文
摘要:预告 后续可能会推更一个FFmpeg系列的入门博客,大概涉及到FFmpeg解封装、FFmpeg编解码、FFmpeg进行音频重采样、使用FFMpeg将mp3转码成aac、使用FFmpeg合并拼接音视频等。 另外如果有时间可能也会更新几篇关于ffplay的文章,敬请关注。 本文将作为JNI系列的一个结尾
阅读全文
摘要:前言 本文所要介绍的异常处理是指通过JNI调用java层方法时产生的异常处理,并不是指JNI调用Native层函数时产生的异常处理,如果童鞋们想要了解Native层的异常处理可以参考笔者之前的文章《C++之异常处理》 按照java的经验,当发生异常而又没有捕获时,异常后面的代码就得不到继续执行的机会
阅读全文
摘要:导读 在《JNI之动态注册与静态注册》 一文中,我们介绍了JNI函数动态注册的同时也介绍了JNI中的属性描述符和函数描述符。对这两个概念还不熟悉的童鞋们需要再温习一下。 在今天的文章中我们主要介绍在JNI中如何访问java层对象的属性以及调用java层对象的成员方法等相关知识。 访问java成员属性
阅读全文
摘要:导读 在前面《JNI之访问java属性和方法》 一文中我们介绍了在JNI方法中访问java类对象的属性和方法,试想一下如果每次调用JNI方法都经过查找类,查找方法id,最后完成调用,这里是否有性能问题呢? 而且FindClass/GetMethodID/GetFieldID这些函数本身就含有一些性能
阅读全文
摘要:导读 我们知道通过Java通过JNI可以调用C/C代码,C/C也可以通过JNI调用java代码,那么JNI是怎么将Java方法与Native的方法对应起来的呢? JVM查找Native方法有两种方式: 1、按照JNI规范的命名规则进行查找,这种方式叫静态注册。 2、调用JNI提供的RegisterN
阅读全文
摘要:字符串和数组是JNI中常见的引用数据类型,本文将介绍符串和数组在JNI中的常见处理方式。 JNI中字符串的处理 1、Java字符串与原生字符串转换 当从java层传递一个字符串过来之后,它的类型是jstring,同样如果需要返回一个字符串给java层,它的类型也是jstring。jstring代表着
阅读全文
摘要:导读 在前面的几篇文章中,笔者介绍了C++中的指针、引用、智能指针、多线程、类型转换、异常处理等相关知识点,如果想要熟练掌握,并能在实际项目中运用,光是看肯定是毫无用处,纸上谈兵永远比不上脚踏实地的实在。。。 以下是前几篇文章的回顾: C++之RVO返回值优化 C++之const关键字 C++之指针
阅读全文