![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JNI、NDK
文章平均质量分 91
C/C++基础,图像处理、音视频处理、ffmpeg
阿烦大大@
学而不思则罔,思而不学则殆
展开
-
C基础-入门
C基础-入门不得不说学习C/C++将是一个噩梦般的过程,不过学习带来的成果也是不可估量的,下面我们使用jetbrins的clion开发工具,重学C/C++。环境配置CLion的安装这里就不多说了,这里提一下,mac如果安装了XCode就不需要配置什么了,如果是Windows系统,需要安装Cygwin,在下面红框处配置Cygwin环境即可。Hello World新建项目环境配置完成后,新建一个项目可以看到,左侧菜单栏有很多选项C++ Execuable:创建一个C++项目C++ Lib原创 2021-02-24 10:38:09 · 473 阅读 · 0 评论 -
MMKV的原理与实现(三)
MMKV的原理与实现(三)MMKV多线程设计1. C/C++中的线程:POSIX线程POSIX,全称为可移植性操作系统接口。它包括了系统应用程序接口(简称API)。该标准的目的是定义了标准的基于UNIX操作系统的系统接口和环境来支持源代码级的可移植性,致力于提供基于不同语言的规范。POSIX的线程标准,定义了创建和操纵线程的一套API。2. 基本使用#include <iostre...原创 2020-01-07 17:49:09 · 2131 阅读 · 0 评论 -
MMKV的原理与实现(二)
MMKV的原理与实现(二)上一篇讲了MMKV的存储原理以及protobuf编码的规则,并以一个整数的编码规则举例。今天我们就从 MMKV的源码来剖析它具体是怎么实现的。页上次简单的提了一下页的概念,在Linux中,数据都是以分页的形式保存的,32位系统中,一页就是1024个字节,MMKV在初始化文件的时候,给文件分配了一页的大小,后面根据修改后的数据大小再进行动态扩容,每次翻一倍。负数编码...原创 2019-12-28 15:50:34 · 2361 阅读 · 0 评论 -
MMKV的原理与实现(一)
MMKV的原理与实现(一)说到轻量级的数据持久化,大家最先想到的就是SharedPreferences(以下简称SP)了,SP存储方式为xml,直接使用I/O流进行文件的读写,这就形成了一个弊端:每次写入或修改都需要替换掉原来的数据,并将所有数据 重新写入文件。可想而知,如果一个sp文件的内容过多,那么再写入的时候会造成卡顿,甚至会有 ANR的风险。一、I/O1、先看一下SP的工作原理虚...原创 2019-12-25 17:49:12 · 5430 阅读 · 1 评论 -
JNI静态注册方式
静态注册实现首先在JAVA中声明一个本地方法: public class Register { public native String HelloWorld(); }编译java文件:在终端中执行以下命令: javac Register.java 将会生成一个Register.class的字节码文件编译头文件: javah Regist...原创 2019-11-21 15:09:58 · 320 阅读 · 0 评论 -
JNI与NDK基础入门
JNI简介一、简介1. 什么是JNI2. JNI定义二、NDK是什么1.定义2.特点三、JNI和NDK的关系1. NDK是Android中实现JNI的手段四、JNI动态注册和静态注册1. 静态注册2. 动态注册静态注册实现一、简介1. 什么是JNIJNi就是java调用本地方法的技术,最简单的来说,java运行一个程序需要要和不同的系统平台打交道,在windows里就是和windows平台底...原创 2019-11-21 15:08:13 · 493 阅读 · 0 评论