![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JNI/NDK入门指南
JNI/NDK入门指南
IT先森
Android界的大牛忒多了,我大胆的估摸一下有生之年我是达不到那个高度了!但是怎么着我也要在这浩瀚的博客世界留下我的痕迹才行!
展开
-
JNI/NDK入门指南之开篇
JNI/NDK入门指南之开篇 对于Android开发者,是否有过这么一个场景当你天天使用者Android SDK提供的API接口时,你会有好奇过Android底层是怎么实现的呢,可能当你翻阅Android源码时看到JNI看到C/C++就退缩了。对于Java开发者,是否想进一步利用本地语言的特色譬如C/C++。对于上述两种场景,那么JNI都是无法跨越的坎,在这个系列里面我...原创 2020-07-04 15:44:52 · 2512 阅读 · 3 评论 -
JNI/NDK入门指南之调用Java构造方法和父类实例方法
JNI/NDK入门指南之调用Java构造方法和父类实例方法前言 在前面的章节我们学习了JNI/NDK入门指南之C/C++通过JNI访问Java实例属性和类静态属性和JNI/NDK入门指南之C/C++通过JNI访问Java实例方法和类静态方法,其中都有讲到调用构造函数来实例化一个对象,但是都没有详细介绍过,只是讲了一个大概的用法。在本章我们将深入挖掘,分别介绍一下初始化一个对象的两种方...原创 2020-07-05 22:30:34 · 1648 阅读 · 2 评论 -
JNI/NDK入门指南之正确姿势了解,使用,管理,缓存JNI引用
JNI/NDK入门指南之正确姿势了解JNI引用 前言 对于本篇我是写了删,删了又写,当然不是我纠结于我的文笔不好。而是因为本章涉及的知识面比较广,而我如果由于个人原因不能将JNI中的引用讲得透彻明白甚至误导了读者的话,那就是最大的罪过了!但是又不得不写,因为如果想真正的将JNI用于实战而不是仅仅的了解,那么JNI的引用是逃脱不了的。所以我只能硬着头皮上了,力求讲明白,如果有...原创 2020-07-04 16:56:53 · 1546 阅读 · 5 评论 -
JNI/NDK入门指南之JNI多线程回调Java方法
JNI/NDK入门指南之JNI多线程回调Java方法背景 假设现在有这么一个业务需求,我们需要通过JNI在本地方法中干一件耗时操作,干完以后再通知Java层。这个实现逻辑非常简单,就是我们可以在本地方法中开启一个线程做函数操作,然后通过JNI回调Java方法。好了,架构已经定下来了,那么我们一步步实现。在实现过程中我也会将错误思路和实现代码提供出来,让大家正确的写法更加刻骨...原创 2020-07-04 16:50:22 · 6378 阅读 · 7 评论 -
JNI/NDK入门指南之JNI异常处理
JNI/NDK入门指南之JNI异常处理 任何人都犯错误,连我们的好人强东哥都是如此,当然我们程序员也在这个行列之内了,哈哈(不是各位读者想象的那个错啊)。在Java...原创 2020-07-04 16:45:32 · 2346 阅读 · 5 评论 -
JNI/NDK入门指南之C/C++通过JNI访问Java实例方法和类静态方法
JNI/NDK入门指南之C/C++通过JNI访问Java实例方法和类静态方法 在前面的章节JNI/NDK入门指南之C/C++通过JNI访问Java实例属性和类静态属性中讲解了C/C++通过JNI对Java实例属性和静态属性的访问。今天我们继续向JNI的知识海洋进军讲解C/C++通过JNI访问Java通过JNI访问Java实例方法和类静态方法的处理。本章内容有点多哦,所以读者务必上好厕所,搬个...原创 2020-07-04 16:39:14 · 2175 阅读 · 7 评论 -
JNI/NDK入门指南之C/C++通过JNI访问Java实例属性和类静态属性
JNI/NDK入门指南之C/C++通过JNI访问Java实例属性和类静态属性原创 2020-07-04 16:36:29 · 2862 阅读 · 4 评论 -
JNI/NDK入门指南之JNI访问数组
JNI/NDK入门指南之JNI访问数组 在前面的章节JNI/NDK入门指南之JNI字符串处理中讲解了JNI对字符串的处理流程。今天我们继续向JNI的知识海洋进军讲解JNI对数组的处理。本章内容有点多哦! 前言JNI 中的数组分为基本类型数组和对象数组,它们的处理方式是不一样的,基本类型数组中的所有元素都是 JNI的基本数据类型,可以直接访问。而对象数组中的所有元素...原创 2020-07-04 16:33:53 · 4003 阅读 · 8 评论 -
JNI/NDK入门指南之JNI字符串处理
JNI/NDK开发指南之JNI字符串处理 在前面的章节JNI/NDK开发指南之JNI数据类型,描述符详解中我们了解了JNI能处理的基本类型,细心的读者会发现这其中不包括字符串。那么今天我们要重点讲解的就是JNI中对字符串的处理了。...原创 2020-07-03 21:11:24 · 2673 阅读 · 6 评论 -
JNI/NDK入门指南之JNI动/静态注册全分析
JNI/NDK开发指南之JNI动/静态注册全分析 在前面的章节里面我们主要讲解了JNI开发中的一些基本语法知识,并且在JNI/NDK开发指南之Eclipse集成NDK开发环境并使用中简单通过一个实例说明了NDK开发JNI流程。那么读者朋友们,是否有过这么一个疑问JNI中的虚拟机怎么知道我们使用Java中的Native方法时,具体调用到JNI Native中的那个函数呢。这个就是本篇...原创 2020-07-04 16:28:42 · 1790 阅读 · 13 评论 -
JNI/NDK入门指南之Eclipse集成NDK开发环境并使用
JNI/NDK开发指南之Eclipse集成NDK开发环境并使用 在前面的章节里面,我们已经了解了JNI开发所需要掌握的相关基本知识。那么在本篇文章里面将要介绍Eclipse集成NDK开发环境。 配置使用步骤 这里我会以一个简单的Android中使用JNI开发的列子来说明,怎么在Eclipse中集成NDK开发环境并使用之。1.Eclipse配置NDK开发环境 在前面的章...原创 2020-07-04 16:26:45 · 1102 阅读 · 4 评论 -
JNI/NDK入门指南之javah和javap的使用和集成
JNI/NDK开发指南之javah和javap的使用和集成 在前面的章节JNI/NDK开发指南之JNI数据类型,描述符详解中我们详细的讲解了数据类型,描述符等相关的概念。如果是刚开始接触JNI的话,读者看到那些概念都会懵逼了,哇开发一个JNI的端咋这么多需要记忆的概念,描述符啊,数据类型啊,签名啊?其实JDK的开发工具为我们提供了一些快捷的工具如javah和javap,这两个...原创 2020-07-04 16:20:54 · 1779 阅读 · 7 评论 -
JNI/NDK入门指南之jobject和jclass
JNI/NDK开发指南之jobject和jclass 在前面的章节JNI/NDK开发指南之JavaVM和JNIEnv中,我们详细介绍了一番JavaVM和JNIEnv,那么今天的篇章里面分别介绍一番jobject和jclass两个概念。细说jobject和jclass在JNI开发中JNI,实例引用(jobject)和类引用(jclass)让人觉得很困惑,至少我刚开始学习的时候...原创 2020-07-04 15:59:34 · 4667 阅读 · 9 评论 -
JNI/NDK入门指南之JavaVM和JNIEnv
JNI/NDK开发指南之JavaVM和JNIEnv 在前面的章节JNI数据类型,描述符详解中,我们详解了JNI数据类型和描述符的一些概念,那么在今天我们将要熟悉掌握JNI的开发中另外两个关键点JavaVM和JniEnv。细说JavaVMJavaVM,英文全称是Java virtual machine,用咋中国话来说就是Java虚拟机。一个JVM中只有一个JavaVM对象...原创 2020-07-04 15:47:14 · 5855 阅读 · 4 评论 -
JNI/NDK入门指南之JNI数据类型,描述符详解
JNI数据类型,描述符详解 通过前面的章节正确姿势了解Android中JNI/NDK,我想读者朋友们一定对JNI/NDK的基本概念印象深刻了吗,那么接下来就要开始我们的JNI编程学习了。学编程的东西,一般法则先学习它的最基础数据类型,同理JNI也是如此。既然JNI是用来C/C++和Java通信的,那么JNI为之定义了一系列基本数据类型和引用数据类型用来与Java交...原创 2020-07-04 15:55:43 · 3008 阅读 · 6 评论 -
JNI/NDK入门指南之正确姿势了解JNI和NDK
你真的了解Android中JNI/NDK吗? 随着Android生态的发展,越来越多的行业开始使用Android操作系统,这就造就了对Android设备的应用性能和安全要求越来越高,随之而来的对JNI/NDK开发的需求也越来越大。虽然网上或者很多书籍都有关于此方面的讲解,但是都是上来直奔主题说怎么使用JNI/NDK,而没有将啥是JNI和NDK讲解清楚。所以导致很...原创 2020-07-04 15:45:26 · 2964 阅读 · 6 评论 -
JNI/NDK入门指南之C/C++结构体和Java对象转换方式二
C/C++结构体和Java对象之间通过Jni相互转换方式二 在前面的篇章C/C++结构体和Java对象之间通过Jni相互转换方式一中已经介绍了一种方法,可能有些对Android源码或者Jni比较熟悉的读者会说,在源码里面很少会用到前面的方法,而是通过Jni里面的jfieldID和jmethodID直接操作Java对象来进行相转换。下面开启本篇介绍之旅,方式二介绍。...原创 2020-07-09 15:57:01 · 3161 阅读 · 8 评论 -
JNI/NDK入门指南之C/C++结构体和Java对象转换方式一
C/C++结构体和Java对象之间通过Jni相互转换方式一 在Jni的开发过程中,会经常遇到有将C/C++结构体和Java对象之间相互转换的一些需求。那么接下来,在本文的篇章中我讲会将具体讲解两种方式,并且这两种方式在实际工作中会经常使用到。下面正式开始我们的本篇介绍之旅,介绍其中的一种。 一.方法介绍 第一种方法使用的是ByteBuffer作为...原创 2020-07-09 15:55:02 · 3788 阅读 · 6 评论 -
JNI/NDK入门指南之Android下JNI开发
Android下JNI开发 对于开发Android下App的码农们来说jni是一个相对应用得比较少的玩意(相对于Android系统来说),正好最近这一阵子公司的项目比较轻松有一定的空闲时间,就利用起来整理了一下Android下Jni开发常用到的知识点和一些比较重要的用法,发话不多说直接进入主题。 在这里,对于Jn...原创 2020-08-29 10:46:48 · 1506 阅读 · 2 评论