MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化 / 反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今,在 iOS ...
MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化 / 反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今,在 iOS ...
@cuixbo 互相学习
kotlin<第九篇>:协程的异常处理一、组合上下文中的元素 CoroutineContext 是一组用于定义协程行为的元素。它由如下几项组成: 可以使用 + 运算符组合上下文: 二、协程上下文的继承 对于新建的...
(1)不安全的并发访问 我们使用线程在解决并发问题的时候总是会遇到线程安全的问题,而Java平台上的Kotlin协程实现免不了存在并发调度的情况,因此线程安全同样值得留意。 ...
(1)基本用法 Channel实际上是一个并发安全的队列,它可以用来连接协程,实现不同协程的通信。生产者/消费者模式 (send - channel - receive) C...
Flow: 是一种类似于序列的冷流,flow构建器中的代码直到流被收集的时候才运行。流的连续性:流的每次单独收集都是按顺序执行的,除非使用特殊操作符。从上游到下游每个过渡操作...
1、下载并安装vscode 2、下载并安装语言包 3、下载并安装“C/C++ for Visual Studio Code”插件(必备的插件,如果不安装,代码无法跳转,也没有...
一、Java基础 二、Android基础 三、高级UI PhotoView:图片展示,支持缩放、移动https://github.com/Baseflow/PhotoView...
使用 json-server 需要遵守一定的规范。数据查询要使用 GET新增数据要使用 POST删除数据要使用 DELETE修改数据使用 PUT 和 PATCH 一、json...
一、依赖 二、xml静态注册 start up 初始化类: 在AndroidManifest中静态注册 在xml文件夹中创建multi_window.xml 二、动态注册 初...
【1】依赖 【2】新建初始化类 SdkInitializer 需要我们自己新建,目的是初始化指定SDK。Initializer 是start up 依赖中的类,不需要自己定义...
1、官网地址 2、linux下载ffmpeg 3、FFmpeg ./configure编译参数汇总 解压 ffmpeg-snapshot.tar.bz2 之后,在根目录下有配...
shell 是一种脚本语言。脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译)shell 既是应用程序 ...
Android.bp文件是Android系统的一种编译配置文件,是用来代替原来的Android.mk文件的。 【1】字符串表示 【2】mk和bp模块对应表 【3】mk和bp ...
【1】 设置cmake最小版本 【2】指定项目 【3】导入库目录 相当于 -I,如果C/C++中没有指定头文件的具体路径,在cmake中用include_directorie...
Application.mk中定义一些全局(整个项目)的配置,配置相对较少,比较简单。 下面是基本配置: 【1】APP_OPTIM 【2】APP_DEBUG 可以在AS中手动...
【1】ndkBuild配置 在模块下的 build.gradle 中配置 ndkBuild,确认CPU架构以及Android.mk路径。 【2】将源码编译成动态库 编译之后,...
一、Makefile命令规则 假设有一个Test.cpp文件,代码如下: 我们可以使用gcc或g++来 预处理、汇编、编译、链接,也可以利用Makefile来执行这些命令。 ...
【第一步】 编写C++代码 Test.cpp 【第二步】 生成so库 在AS中配置好cmake环境,将 Test.cpp 放入工程,编译出 so 库。(第一章节有详细介绍) ...
1、wingw环境配置 【1】下载wingw MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceFo...
JNI是一种本地编程接口。它允许运行在JAVA虚拟机中的JAVA代码和用其他编程语言,诸如C语言、C++、汇编,写的应用和库之间的交互操作。Gradle 3.0之前,AS可以...