摘要: 1.前言 在这里我以导入静态库(.a)为例进行分析,动态库(.so)是类似的。在导入前,各位要先编译好ffmpeg库,需要注意的是在编译的时候要开启交叉编译,目标平台为Android,其他平台的库(windows,linux)在Android平台使用不了,我这里编译的是armeabi-v7a架构的库 阅读全文
posted @ 2023-12-12 23:17 故乡的樱花开了 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 1.OpenGL 和OpenGL ES OpenGL(Open Graphics Library)是一种用于渲染2D和3D图形的跨平台编程接口。OpenGL提供了一套标准的函数和接口,使开发人员能够在各种操作系统上创建高性能的图形应用程序,这些操作系统包括Windows、Linux、macOS和一些 阅读全文
posted @ 2023-12-05 17:58 故乡的樱花开了 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 1.前言 前面两节,我们运用了kotlin提供的简单协程去实现了一套更易用的复合协程,这些基本上是以官方协程框架为范本进行设计和实现的。虽然我们还没有直接接触kotlin官方协程框架,但对它的绝大多数功能已经了如指掌了。本节,我们来探讨一下官方协程框架的更多功能,并将其运用到实际的生产当中,在这里, 阅读全文
posted @ 2023-12-01 11:34 故乡的樱花开了 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 1.定义 内部存储:内部存储位于Android手机系统的data/data/<包名>这个目录下,内部存储是私有的,主要用于存储系统和应用程序的某些数据,对于其他应用程序来说是不可见的,并且会随着应用程序的卸载而被删除。 外部存储:外部存储可以分为外部私有存储和外部公有存储。外部私有存储位于/stor 阅读全文
posted @ 2023-11-29 20:22 故乡的樱花开了 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 在进行业务开发时,我们通常会基于官方的协程框架(kotlinx.coroutines)来运用Kotlin协程优化异步逻辑,不过这个框架过于庞大和复杂,如果直接接触它容易被劝退。所以,为了我们在后续的学习中游刃有余,在使用官方给出的复合协程时能够胸有成竹,我们暂且抛开它,按照它的思路实现一个轻量版的协 阅读全文
posted @ 2023-11-27 17:36 故乡的樱花开了 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 一.协程的定义 最近看了一本有关kotlin协程的书籍,对协程又有了不一样的了解,所以准备写一个关于kotlin协程系列的文章。 言归正传,我们在学习一个新东西的时候,如果连这个东西"是什么"都回答不了,那么自然很难进入知识获取阶段的"为什么"和"怎么办"这两个后续环节了。因此,我们首先得知道协程的 阅读全文
posted @ 2023-11-23 20:48 故乡的樱花开了 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 一.前言 JNI中的数组类型分为基本类型数组和引用类型数组,他们的处理方式是不一样的。基本类型数组中的元素都是jni基本数据类型,可以直接访问;但是引用类型的数组中的元素是一个类的实例,不能直接访问,需要使用jni中的函数进行访问。 二.基本类型数组的交互 1.java层声明的native函数如下: 阅读全文
posted @ 2023-10-18 16:55 故乡的樱花开了 阅读(320) 评论(0) 推荐(0) 编辑
摘要: java中的字符串类型是String,对应的jni类型是jstring,由于jstring是引用类型,所以我们不能像基本数据类型那样去使用它,我们需要使用JNIEnv中的函数去处理jstring,下面介绍一些常用的字符串处理函数。 1.GetStringUTFChars() 作用:将jstring类 阅读全文
posted @ 2023-10-12 17:14 故乡的樱花开了 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 一.native层访问java层的成员变量 java层的成员变量可以分为实例变量和静态变量,不过他们的访问方法比较类似,可以分为以下三步: 获取java类对应的jclass对象 获取需要访问的成员变量的jfieldID 根据需要访问的变量的类型,调用setXXXField()/getXXXField 阅读全文
posted @ 2023-10-11 21:02 故乡的樱花开了 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 一.动态注册和静态注册 注册native方法有两种方式,动态注册和静态注册。静态注册是在编译时进行注册,而且在java中声明的native方法和c/c++中的本地方法的对应关系是恒定的;比如说在com.example.test包下的Test类中声明了一个stringFromJNI()的native方 阅读全文
posted @ 2023-09-14 15:51 故乡的樱花开了 阅读(586) 评论(0) 推荐(1) 编辑