jni
renxhui
android 开发工程师
展开
-
Android JNI和NDK学习(四):JNI调用Java方法和变量
概述今天继续学习JNI,前几篇学习了一些基本的内容,今天我们全部实践一下,这篇文章仅作为笔记,以防以后忘记JNI访问Java对象的成员先来看下需要用到的Api获取jclassjclass GetObjectClass(JNIEnv *env, jobject obj);jobject:代表java的对象函数返回一个class对象获取jfieldIDjfieldID GetFieldID(JNIEnv *env, jclass clazz, const char *name, cons原创 2020-06-05 16:30:27 · 633 阅读 · 1 评论 -
Android JNI和NDK学习(三):动态注册
概述当执行java的native方法时,虚拟机怎么知道要调用so中那个方法呢?这个就需要注册,通过注册把java的方法和so的方法绑定在一起,这样就可以找到对应的方法了,此篇文章仅作为笔记,以防以后忘记有俩种注册的方式即 静态注册和动态注册静态注册我们之前自动生成的项目就是静态注册的,我们看下代码extern "C" JNIEXPORT jstring JNICALLJava_com_text_ndk1_MainActivity_stringFromJNI( JNIEnv *en原创 2020-06-03 17:25:54 · 194 阅读 · 0 评论 -
Android JNI和NDK学习(二):JNIEnv 和 JavaVM
概述上篇学习了NDK相关知识,这篇继续学习JNI相关知识,这篇文章仅作为笔记,以防以后忘记JNI的数据类型和类型描述符在JNI开发中,java的数据类型并不能直接在JNI上直接使用,需要有一定的转化,比如java中的int在JNI中就是jint,下面我们来学习下数据类型基本数据类型Java数据类型jni数据类型描述booleanjboolean无符号char类型bytejbyte带符号8位整形charjchar无符号的16位整形shortjsh原创 2020-06-03 09:40:43 · 698 阅读 · 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 · 347 阅读 · 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 · 444 阅读 · 0 评论 -
Android JNI和NDK学习(基础篇):C语言基础
概述C语言对于Android开发来说还是非常必要的,不管你是要阅读源码,还是想要学习NDK,音视频,性能优化等,都不可避免需要接触到C,而且C语言属于系统级的语言,操作系统内核都有C的身影,所以我今天学习一下C语言,本篇博客作为笔记,以防以后忘记C简介C语言最初适用于系统开发工作的,特别是组成操作系统的程序,由于C语言产生的代码运行速度与汇编编写的代码运行速度几乎相同,所以采用C语言作为系...原创 2020-04-20 15:08:37 · 594 阅读 · 0 评论 -
Android JNI和NDK学习(五):JNI调用数组
概述今天我们继续学习JNI数组,此篇文章仅作为笔记,以防以后忘记数组JNI把java类型分为俩类,基本数据类型和引用数据类型,引用数据类型统一用jobject来表示,数组也一样,也分为基本数据类型和引用数据类型,引用数据类型为jobjectarray来表示基本数据类型的数组我们先来分析一下基本数据类型的数组相关的APIGet< PrimitiveType >ArrayElements返回一个基本数据类型的数组,其中PrimitiveType指的是基本数据类型,比如你要获取int的原创 2020-06-08 15:12:52 · 584 阅读 · 0 评论