![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jni
renxhui
android 开发工程师
展开
-
Android JNI和NDK学习(四):JNI调用Java方法和变量
概述 今天继续学习JNI,前几篇学习了一些基本的内容,今天我们全部实践一下,这篇文章仅作为笔记,以防以后忘记 JNI访问Java对象的成员 先来看下需要用到的Api 获取jclass jclass GetObjectClass(JNIEnv *env, jobject obj); jobject:代表java的对象 函数返回一个class对象 获取jfieldID jfieldID GetFieldID(JNIEnv *env, jclass clazz, const char *name, cons原创 2020-06-05 16:30:27 · 604 阅读 · 1 评论 -
Android JNI和NDK学习(三):动态注册
概述 当执行java的native方法时,虚拟机怎么知道要调用so中那个方法呢?这个就需要注册,通过注册把java的方法和so的方法绑定在一起,这样就可以找到对应的方法了,此篇文章仅作为笔记,以防以后忘记 有俩种注册的方式即 静态注册和动态注册 静态注册 我们之前自动生成的项目就是静态注册的,我们看下代码 extern "C" JNIEXPORT jstring JNICALL Java_com_text_ndk1_MainActivity_stringFromJNI( JNIEnv *en原创 2020-06-03 17:25:54 · 166 阅读 · 0 评论 -
Android JNI和NDK学习(二):JNIEnv 和 JavaVM
概述 上篇学习了NDK相关知识,这篇继续学习JNI相关知识,这篇文章仅作为笔记,以防以后忘记 JNI的数据类型和类型描述符 在JNI开发中,java的数据类型并不能直接在JNI上直接使用,需要有一定的转化,比如java中的int在JNI中就是jint,下面我们来学习下数据类型 基本数据类型 Java数据类型 jni数据类型 描述 boolean jboolean 无符号char类型 byte jbyte 带符号8位整形 char jchar 无符号的16位整形 short jsh原创 2020-06-03 09:40:43 · 648 阅读 · 1 评论 -
Android JNI和NDK学习(一):NDK学习
概述 想要学习JNI和NDK,首先要知道JNI和NDK分别是什么,都有什么作用,这样才可以更好的学习和理解JNI和NDK,本篇文章主要作为学习笔记,以防以后忘记 JNI介绍 定义:JNI即 Java Native Interface java本地接口 作用:可以让java和其他类型语言(例如C和C++)进行交互 注意:JNI是属于java的,跟 android 没有关系 NDK 介绍 定义:NDK即 Native Development Kit 是一个android的一个开发工具包 作用:快速开发C/C++原创 2020-06-01 17:39:55 · 314 阅读 · 0 评论 -
Android JNI和NDK学习(基础篇):C++语言基础
概述 上篇学习了C语言,这篇继续学习C++,这篇是建立在C基础上的 真的是码字如蜗牛,写了好久才写这么多,作为笔记吧,防止以后忘记 先写一个Hello world 首先打开你的文本编辑器,输入一下内容 #include <iostream> using namespace std; int main() { cout << "Hello, world!!!!!" << endl; return 0; } 然后把文件保存为test.cpp,最后编译执行 L原创 2020-05-21 11:35:53 · 434 阅读 · 0 评论 -
Android JNI和NDK学习(基础篇):C语言基础
概述 C语言对于Android开发来说还是非常必要的,不管你是要阅读源码,还是想要学习NDK,音视频,性能优化等,都不可避免需要接触到C,而且C语言属于系统级的语言,操作系统内核都有C的身影,所以我今天学习一下C语言,本篇博客作为笔记,以防以后忘记 C简介 C语言最初适用于系统开发工作的,特别是组成操作系统的程序,由于C语言产生的代码运行速度与汇编编写的代码运行速度几乎相同,所以采用C语言作为系...原创 2020-04-20 15:08:37 · 585 阅读 · 0 评论 -
Android JNI和NDK学习(五):JNI调用数组
概述 今天我们继续学习JNI数组,此篇文章仅作为笔记,以防以后忘记 数组 JNI把java类型分为俩类,基本数据类型和引用数据类型,引用数据类型统一用jobject来表示,数组也一样,也分为基本数据类型和引用数据类型,引用数据类型为jobjectarray来表示 基本数据类型的数组 我们先来分析一下基本数据类型的数组相关的API Get< PrimitiveType >ArrayElements 返回一个基本数据类型的数组,其中PrimitiveType指的是基本数据类型,比如你要获取int的原创 2020-06-08 15:12:52 · 579 阅读 · 0 评论