Android JNI
文章平均质量分 73
介绍Android中常用的JNI知识。
Mobile-AI
这个作者很懒,什么都没留下…
展开
-
JNI(五) pthread子线程操作
pthread.h可以在NDK环境里创建子线程,并对线程能够做出互斥所、等待、销毁等控制。1. 开启和销毁线程开启线程pthread_t pthread;pthread_create(&pthread, NULL, threadFunc, (void *) "");pthread_create函数能够创建线程,运行了这个函数线程就会运行起来,执行第三个参数所代表的函数参数1 pthread_t* pthread 线程句柄参数2 pthread_attr_t const* 线程的一些属原创 2021-03-24 23:31:09 · 583 阅读 · 0 评论 -
JNI(四) 反射调用Android API
1. 字段描述符JNI字段描述符是一种对函数返回值和参数的编码。这种编码叫做JNI字段描述符(JavaNative Interface FieldDescriptors)。JNI方法描述符,主要就是在括号里放置参数,在括号后面放置返回类型,如下:(参数描述符)返回类型一个数组int[],就需要表示为这样"[I"。如果多个数组double[][][]就需要表示为这样 “[[[D”。也就是说每一个方括号开始,就表示一个数组维数。多个方框后面,就是数组的类型。如果以一个L开头的描述符,就是类描述符,原创 2021-03-24 23:30:46 · 715 阅读 · 0 评论 -
JNI(三) 日志打印
1. 导入log头文件添加logger.h文件,在文件中导入 log.h 头文件 #include<android/log.h>2. CmakeLists添加库find_library( # Sets the name of the path variable. log-lib # Specifies the name of the NDK library that # you want CMake原创 2021-03-24 23:30:11 · 508 阅读 · 0 评论 -
JNI(二) 基础-原理
在计算机系统中,每一种编程语言都有一个执行环境(Runtime),执行环境用来解释执行语言中的语句。Java语言的执行环境是Java虚拟机(JVM),JVM其实是主机环境中的一个进程,每个JVM虚拟机都在本地环境中有一个JavaVM结构体,该结构体在创建Java虚拟机时被返回,在JNI环境中创建JVM的函数为JNI_CreateJavaVM。jint JNI_CreateJavaVM(JavaVM**, JNIEnv**, void*);1. JavaVMJavaVM是Java虚拟机在JNI层的代原创 2021-03-24 23:29:45 · 205 阅读 · 0 评论 -
JNI(一) 基础-导读
1. 导读JNI能为我们做什么, 什么时候我们要用到JNI?JNI 的用途为 Java 开辟了另一扇大门,所有能在C 上面实现的,都能拿过来给Android平台上使用。譬如以下一些优秀成熟 C库:音视频播放库。高斯模糊库。OpenCV 人脸识别,车牌号码识别。OpenSSL 加密库。我们可以通过JNI给Android应用提供一些高级能力,给应用插上高效的翅膀。在Android 平台,通过NDK开发C、C++动态库,JNI封装接口给Java层调用。2. NDK2.1 什么是NDKND原创 2021-03-24 23:29:15 · 121 阅读 · 0 评论