自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (258)
  • 收藏
  • 关注

原创 【Netty】零拷贝案例 ( transferTo | transferFrom )

一、 案例需求 、 二、 传统 BIO 拷贝案例 、 三、 零拷贝案例 服务器端 、 四、 零拷贝案例 客户端 、 五、 零拷贝案例 运行与分析 、

2020-05-31 23:31:12 2535

原创 【Netty】mmap 和 sendFile 零拷贝原理

一、 零拷贝 简介、 二、 传统 BIO 数据拷贝分析 ( 4拷贝 4切换 )、 三、 mmap 内存映射 ( 3拷贝 4切换 )、 四、 sendFile 函数 ( Linux 2.1 优化 ) ( 3拷贝2切换 )、 五、 sendFile 函数 ( Linux 2.4 优化 ) ( 2拷贝 2切换 )、

2020-05-30 20:58:51 2637 1

原创 【Netty】NIO 网络编程 聊天室案例

一、 NIO 聊天室需求 二、 NIO 聊天室 服务器端 代码分析 三、 NIO 聊天室 客户端 代码分析 四、 NIO 聊天室 服务器端 完整代码 五、 NIO 聊天室 客户端 完整代码 六、 NIO 聊天室 运行

2020-05-30 10:17:25 743

原创 【Android】Handler 机制 ( Handler | Message | Looper | MessageQueue )

I . Handler 机制简介II . Handler 机制 Handler Message Looper MessageQueue 四组件对应关系III . Handler ( 消息处理者 )IV . Looper ( 消息遍历者 )V . Looper 子线程VI . Handler 发送 消息 种类VII . Handler 机制总结

2020-05-29 10:22:22 673

原创 【Netty】NIO 网络通信 SelectionKey 常用 API 简介

I . SelectionKey 简介II . SelectionKey 事件简介III . SelectionKey 常用 API 简介

2020-05-28 20:32:02 800

原创 【Netty】NIO 选择器 ( Selector ) 通道 ( Channel ) 缓冲区 ( Buffer ) 网络通信案例

I . NIO 通信 服务器端 流程说明 II . NIO 通信 服务器端代码 III . NIO 通信 客户端 流程说明 IV . NIO 通信 客户端代码 V . NIO 通信 示例运行

2020-05-28 14:23:54 1525 2

原创 【Netty】NIO 选择器 ( Selector ) 简介

I . 选择器 ( Selector ) II . 选择器 ( Selector ) 与 NIO 特性 III . 选择器 ( Selector ) API 简介 IV . SelectionKey 简介 V . 选择器 ( Selector ) 工作流程

2020-05-27 22:26:48 1049

原创 【Netty】NIO 缓冲区 ( Buffer ) 分散 Scattering 与 聚合 Gathering 操作

文章目录缓冲区 ( Buffer ) 分散 Scattering 与 聚合 Gathering 概念缓冲区 ( Buffer ) 分散 Scattering 概念缓冲区 ( Buffer ) 分散 Scattering 示例 ( 客户端 )缓冲区 ( Buffer ) 分散 Scattering 与 聚合 Gathering 概念1 . 分散 Scattering 对应缓冲区写入 : 通道 ( Channel ) 向 缓冲区数组 中写出数据 , 按照索引从第 0 个缓冲区 ( Buffer

2020-05-27 12:45:43 657

原创 【Netty】NIO 缓冲区 ( Buffer ) ( 缓冲区读写类型 | 只读缓冲区 | 映射字节缓冲区 )

I . 缓冲区 ( Buffer ) 存取类型II . 只读缓冲区 ( ReadOnlyBuffer )III . 映射字节缓冲区 ( MappedByteBuffer )

2020-05-27 09:25:59 877

原创 【Netty】NIO 通道 ( Channel ) 组件

I . 通道 ( Channel ) 概念简介II . 通道 ( Channel ) 常用类III . 常用的 通道 ( Channel ) 之 套接字通道 ( SocketChannel )IV . 常用的 通道 ( Channel ) 之 文件通道 ( FileChannel )V . 文件通道 ( FileChannel ) 写出文件 示例代码VI . 文件通道 ( FileChannel ) 读取文件 示例代码VII . 文件通道 ( FileChannel ) 使用 缓冲区 拷贝文件

2020-05-26 20:33:58 920

原创 【Netty】NIO 缓冲区 ( Buffer ) 组件

I . NIO 三大核心组件 对应关系II . 缓冲区 ( Buffer ) 类III . 缓冲区 ( Buffer ) 机制IV . 缓冲区 ( Buffer ) 机制 示例解析V . 缓冲区 ( Buffer ) 提供的方法VI . 字节缓冲区 ( ByteBuffer ) 提供的方法

2020-05-25 13:58:54 691

原创 【Netty】NIO 简介 ( NIO 模型 | NIO 三大组件 | 选择器 Selector | 通道 Channel | 缓冲区 Buffer | NIO 组件分配 | 缓冲区示例 )

I . NIO 模型II . NIO 三大组件交互流程III . NIO 缓冲区IV . NIO 与 BIO 对比V . NIO 线程分配VI . 缓冲区 ( Buffer ) 示例

2020-05-24 13:13:11 698

原创 【Netty】IO 模型简介 ( Netty 特点 | Netty 应用场景 | Java 三种 IO 模型 | BIO 模型 )

I . Netty 简介II . Netty 应用场景III . Java I/O 模型IV . BIO 概念V . BIO 开发流程VI . BIO 实例VII . BIO 模型实例分析

2020-05-22 23:59:54 1607

原创 【计算理论】下推自动机 PDA ( 上下文无关语言 CFL 的 泵引理 | 泵引理反证示例 | 自动机扩展 )

I . 上下文无关语言 ( CFL ) 的 泵引理 ( Pumping Lemma )II . 上下文无关语言 ( CFL ) 的 泵引理 ( Pumping Lemma ) 示例III . 自动机扩展

2020-05-22 13:28:10 7715 6

原创 【计算理论】上下文无关语法 ( CFG ) 转为 下推自动机 ( PDA )

I . 上下文无关语法 ( CFG ) 转为 下推自动机 ( PDA )II . 下推自动机 ( PDA ) 三个状态III . 下推自动机 ( PDA ) q_{start}qstart状态IV . 下推自动机 ( PDA ) q_{loop}qloop状态V . 下推自动机 ( PDA ) q_{accept}q accept状态VI . 下推自动机 ( PDA ) 指令分解VII . 最终转换成的 下推自动机 ( PDA ) 结果

2020-05-21 21:22:48 6327 4

原创 【计算理论】下推自动机 PDA ( 设计下推自动机 | 上下文无关语法 CFG 等价于 下推自动机 PDA )

I . 下推自动机 设计II . 上下文无关语法 ( CFG ) 等价于 下推自动机 ( PDA )

2020-05-20 22:05:27 3680 1

原创 【计算理论】下推自动机 PDA 及 计算示例

I . 下推自动机II . 下推自动机 计算过程III . 下推自动机 计算结果IV . 下推自动机 计算示例

2020-05-20 16:20:10 10488 4

原创 【计算理论】上下文无关语法 CFG ( CFG 设计示例 | CFG 歧义性 | Chomsky 范式 | 上下文无关语法 转为 Chomsky 范式 )

I . 上下文无关语法 设计 示例II . 上下文无关语法 的歧义性III . Chomsky 范式IV . 上下文无关语法 转为 Chomsky 范式V . 上下文无关语法 转为 Chomsky 范式 示例

2020-05-19 21:17:17 4067

原创 【计算理论】上下文无关语法 ( 代数表达式 | 代数表达式示例 | 确定性有限自动机 DFA 转为 上下文无关语法 )

I . 代数表达式 语法II . 代数表达式 语法 示例III . 设计 上下文无关语法IV . 确定性有限自动机 DFA 转为 上下文无关语法

2020-05-18 23:40:20 1503

原创 【计算理论】上下文无关语法 ( 语法组成 | 规则 | 语法 | 语法示例 | 约定的简写形式 | 语法分析树 )

I . 语法组成II . 规则III . 语法IV . 语法示例V . 语法简写形式VI . 语法分析树VII . 代数表达式 语法

2020-05-18 18:40:46 1879 1

原创 【计算理论】Pumping 引理 ( 四个等价概念 | 自动机界限 | Pumping 引理简介 | Pumping 引理证明正则表达式 | Pumping 引理示例分析 )

I . 四个等价概念II . 自动机界限III . Pumping 引理IV . Pumping 引理 示例V . 证明 语言 不是正则语言 步骤VI . 证明 语言 不是正则语言 示例

2020-05-17 23:52:05 3363 2

原创 【计算理论】正则语言 ( 推广型的非确定性有限自动机 GNFA | 删除状态 | 确定性有限自动机 转为 正则表达式 )

文章目录推广型的非确定性有限自动机 ( GNFA ) 引入推广型的非确定性有限自动机 ( GNFA ) 删除状态确定性有限自动机 ( DFA ) 转为 正则表达式确定性有限自动机 ( DFA ) 转为 正则表达式 ( 1 ) 添加开始状态 SSS 和结束状态 TTT确定性有限自动机 ( DFA ) 转为 正则表达式 ( 2 ) 删除 状态 222 删除方法确定性有限自动机 ( DFA ) 转为 正则表达式 ( 2 ) 删除 状态 222 信息梳理确定性有限自动机 ( DFA ) 转为 正则表达式 ( 2 )

2020-05-17 17:08:11 2462 1

原创 【计算理论】正则语言 ( 正则表达式原子定义 | 正则表达式递归定义 | 正则表达式语言原子定义 | 正则表达式语言结构归纳 | 正则表达式语言示例 | 根据正则表达式构造自动机 )

I . 正则表达式 定义II . 正则表达式语言 原子定义III . 正则表达式语言 结构归纳定义IV . 正则表达式语言 示例V . 空集 ∅ 与 空字符 ε 差别VI . 正则表达式 定理VII . 根据 正则表达式 语言 构造 自动机 ( 定理正向证明 )VIII . 构造原子自动机IX . 使用 原子自动机 拼装 正则表达式对应的自动机

2020-05-17 14:18:24 3752 1

原创 【计算理论】正则语言 ( 正则语言运算 | 正则语言封闭性 )

I . 正则语言引入II . 正则语言III . 正则语言运算IV . 语言运算示例V . 正则语言封闭性

2020-05-16 22:03:02 11877 4

原创 【计算理论】非确定性有限自动机 ( NFA ) 转换成 确定性有限自动机 ( DFA )

确定性有限自动机 ( DFA ) 与 非确定性有限自动机 ( NFA ) 之间是相互等价的 ;确定性的有限自动机 ( DFA ) 可以 看作是非确定性有限自动机 ( NFA ) ;确定性有限自动机 给定一个输入 , 其输出时唯一的 ;非确定性有限自动机的定义 包含 确定性有限自动机的 定义中 ;NFA 的后继状态 可以是 00 个 , 11 个 或 多个 , DFA 每个状态只能有 11 个后继状态 ;确定性有限自动机 ( DFA ) 就是 特殊的 非确定性有限自动机 ( NFA

2020-05-16 12:37:13 8075 9

原创 【计算理论】非确定性有限自动机 ( 计算过程 | 计算树 | 确定可接受字符串 | 设计非确定性有限自动机 | 空字符 )

I . 非确定性自动机 计算过程 ( 计算树 )II . 判定 非确定性自动机 接受的字符串III . 自动机 设计要求IV . 非确定性有限自动机设计V . 非确定性有限自动机 与 确定性 有限自动机 比较VI . 空值转换

2020-05-15 21:21:29 1851

原创 【计算理论】自动机设计 ( 设计自动机 | 确定性自动机设计示例 | 确定性与非确定性 | 自动机中的不确定性 )

设计自动机 ( 语言要求 )设计自动机 ( 1 ) 开始状态设计自动机 ( 2 ) 状态 SS 状态类型确定设计自动机 ( 3 ) 状态 SS 输入输出分析设计自动机 ( 4 ) 状态 TT 输入输出分析最优自动机自动机设计算法确定性 与 非确定性自动机非确定性示例

2020-05-14 20:49:09 2329

原创 【Android FFMPEG 开发】FFMPEG 视频播放进度控制 ( 显示播放进度 | 拖动进度条播放 )

I . FFMPEG 播放进度控制II . FFMPEG 播放视频 ( 效果展示 )III . FFMPEG 获取视频时长IV . FFMPEG 视频播放进度获取V . FFMPEG 设置播放进度

2020-05-14 00:47:51 4202 6

原创 【Kotlin】函数类型 ( 函数类型 | 带参数名称的参数列表 | 可空函数类型 | 复杂函数类型 | 带接收者函数类型 | 函数类型别名 | 函数类型实例化 | 函数调用 )

I . 函数类型II . 带参数名的参数列表III . 可空函数类型IV . 复杂函数类型解读V . 函数类型别名VI . 带 接收者类型 的函数类型VII . 函数类型实例化VIII . 函数类型自动推断IX . 带接收者的函数类型 与 不带接收者的函数类型 之间的转换X . 函数类型变量调用

2020-05-13 18:17:08 1509

原创 【Kotlin】Lambda 表达式 ( 简介 | 表达式语法 | 表达式类型 | 表达式返回值 | 调用方式 | 完整示例 )

I . Lambda 表达式 简介II . Lambda 表达式语法III . Lambda 表达式类型IV . Lambda 表达式返回值V . Lambda 表达式调用VI . Lambda 表达式完整语法示例 ( 声明 | 实现 | 调用 )

2020-05-12 19:57:02 2359

原创 【Kotlin】变量简介 ( 可空类型 | lateinit | 初始化判定 | 非空类型 | !! 与 ? 修饰符 | ?= ?. ?: 运算符 | 抽象属性变量)

初学 Kotlin , 对变量机制不清楚的同学们 , 看完这篇博客基本就对变量的定义和使用有清晰的认识 ;1 . 变量定义只有四种情况 : ① 非空变量 / 可空变量 直接赋值非空初始值 ; ② 可空变量使用 ?= null 赋空值 ; ③ 非空变量 ( 引用类型 ) 使用 lateinit 修饰 ; ④ 抽象属性变量不初始化 ;2 . !! 与 ? 修饰符 : 仅对于 可空类型 有效 , ? 高级不报错 , !! 低级报空指针异常 ;

2020-05-11 22:34:39 4453 1

原创 【计算理论】确定性有穷自动机 ( 自动机组成 | 自动机语言 | 自动机等价 )

I . 确定性有穷自动机组成II . 确定性有穷自动机计算过程III . 确定性有穷自动机定义IV . 自动机 语言 与 等价V . 自动机语言 示例

2020-05-11 12:55:45 2518 1

原创 【计算理论】自动机 示例 ( 自动机示例 | 自动机表示方式 | 自动机计算流程简介 )

I . 自动机 简单 示例 ( 单向自动门 )II . 简单自动机示例 及 描述方式 ( 二进制数据处理 自动机 )III . 简单自动机示例 及 运行 ( 二进制数据处理 自动机 )

2020-05-10 21:37:03 1881

原创 【约束布局】ConstraintSet 约束集 ( 简介 | 约束属性集合 | 约束集初始化 | 约束集应用到布局中 | 关键帧动画 | TransitionManager 使用 )

I . ConstraintSet 约束集 简介II . ConstraintSet 约束集中封装的约束属性及操作 示例III . ConstraintSet 约束集 初始化方法IV . ConstraintSet 约束集 应用到 约束布局 ConstraintLayout 中V . ConstraintSet 关键帧动画VI . ConstraintSet 关键帧动画 代码流程VII . ConstraintSet 关键帧动画 支持的属性VIII . ConstraintSet 关键帧动画

2020-05-09 20:30:50 5806

原创 【约束布局】ConstraintLayout 屏障 Barrier 约束 ( 简介 | 屏障适用场景 | 位置说明 | 相关属性 | 可视化操作 | 代码示例 | 总结 )

I . 屏障 Barrier 约束 简介II . 屏障线 Barrier 与 引导线 Guideline 对比III . 屏障 Barrier 适用场景IV . 屏障 Barrier 位置说明V . 屏障 Barrier 相关属性VI . 屏障 Barrier 可视化操作VII . 屏障 Barrier 代码示例VIII . 屏障 Barrier 总结

2020-05-08 22:57:37 7486 2

原创 【约束布局】ConstraintLayout 引导线 Guideline 约束 ( 简介 | 可视化操作 | 属性 | 水平引导线 | 垂直引导线 | 开始结束尺寸 | 百分比位置 | 约束组件 )

I . Guideline 引导线 总结II . Guideline 引导线 简介III . Guideline 引导线 可视化操作IV . Guideline 引导线 属性V . Guideline 引导线 位置定义 方式切换VI . Guideline 引导线 约束 其它组件VII . Guideline 代码示例

2020-05-08 13:02:56 16098 2

原创 【数据挖掘】基于方格的聚类方法 ( 概念 | STING 方法 | CLIQUE 方法 )

I . 基于方格的聚类方法 简介II . 基于方格的聚类方法 图示III . STING 方法IV . CLIQUE 方法

2020-05-07 12:52:36 6435

原创 【数据挖掘】基于层次的聚类方法 ( 聚合层次聚类 | 划分层次聚类 | 族间距离 | 最小距离 | 最大距离 | 中心距离 | 平均距离 | 基于层次聚类步骤 | 族半径 )

基于层次的聚类方法 简介基于层次的聚类方法 概念聚合层次聚类 图示划分层次聚类 图示基于层次的聚类方法 切割点选取族间距离 概念族间距离 使用到的变量族间距离 最小距离族间距离 最大距离族间距离 中心点距离族间距离 平均距离基于层次聚类 ( 聚合层次聚类 ) 步骤基于层次聚类 ( 聚合层次聚类 ) 算法终止条件族半径 计算公式基于层次聚类总结

2020-05-07 10:47:25 8832

原创 【数据挖掘】基于密度的聚类方法 - OPTICS 方法 ( 算法流程 | 算法示例 )

OPTICS 算法 两个阶段OPTICS 算法 第一阶段 生成族序待处理队列样本的 核心距离 与 可达距离OPTICS 算法 第二阶段 数据准备OPTICS 算法 第二阶段 工作流程OPTICS 算法 示例 题目OPTICS 算法 示例 人为判断OPTICS 算法 示例 第一次迭代OPTICS 算法 示例 第二次迭代OPTICS 算法 示例 第三次迭代OPTICS 算法 示例 第四次迭代OPTICS 算法 示例 第五次迭代OPTICS 算法 示例 第十六次迭代OPTICS 算法 示

2020-05-06 21:45:21 4535 8

原创 【数据挖掘】基于密度的聚类方法 - OPTICS 方法 ( 核心距离 | 可达距离 | 族序 )

I . 核心距离 概念II . 核心距离值III . 核心距离 示例IV . 可达距离V . 可达距离 示例VI . 可达距离 总结

2020-05-05 20:29:01 4032

FFmpegSDL 音视频开发 ⑦ ( 播放 PCM 音频数据 )

【FFmpeg】SDL 音视频开发 ⑦ ( 播放 PCM 音频数据 | 提取 PCM 格式数据 | 设置音频参数 | 打开音频设备 | 设置播放回调函数 | 播放音频数据 | 关闭音频设备 ) 博客地址 : https://hanshuliang.blog.csdn.net/article/details/141950997 一、PCM 格式简介 1、PCM 简介 2、PCM 参数 3、声音频率 ( 注意与采样率区分 ) 4、使用 ffmpeg 获取 PCM 格式数据 5、使用 ffplay 播放 PCM 格式数据 二、SDL 播放 PCM 流程 1、初始化 SDL 2、设置音频参数 3、打开音频设备 4、设置播放回调函数 5、播放音频数据 6、关闭音频设备 7、SDL 播放 PCM 音频数据的 关键步骤 代码示例 三、完整代码示例 1、完整代码示例 2、执行结果

2024-09-10

FFmpegSDL 音视频开发 ⑥ ( SDL 播放 YUV 视频 )

【FFmpeg】SDL 音视频开发 ⑥ ( SDL 播放 YUV 视频 | YUV 4:2:0 采样 | YUV420P 格式介绍 | 获取 YUV 视频文件 | 读取并加载 YUV 画面数据 ) 博客地址:https://blog.csdn.net/shulianghan/article/details/141900912 一、SDL 播放 YUV 视频 1、YUV 4:2:0 采样 2、YUV420P 格式介绍 3、获取 YUV 视频文件 4、读取 YUV 画面数据 5、加载 YUV 视频数据 二、完整代码示例 1、代码示例 2、执行效果

2024-09-05

【AI 大模型】函数调用 Function Calling ② ( 函数调用 引入 - 函数调用开发流程 - 代码示例 )

【AI 大模型】函数调用 Function Calling ② ( Plugins、Actions 扩展 | 函数调用 Function Calling 引入 | 函数调用开发流程 | 代码示例 ) https://hanshuliang.blog.csdn.net/article/details/140380268 博客代码示例 一、Plugins、Actions 扩展 1、GPT 大模型缺陷 - 引入 Plugins、Actions 扩展 2、Plugins 插件 3、Plugins 插件开发流程 4、Plugins 插件弊端 - Actions 引入 5、Actions 简介 二、ChatGPT 的平替 - Coze、Dify 三、函数调用 Function Calling 引入 四、函数调用开发流程 1、调用 OpenAI 的接口 2、函数定义 3、大模型回调 4、本地代码逻辑 5、第二次大模型调用 五、函数调用代码示例

2024-07-20

【AI 大模型】OpenAI 接口调用 ① ( PyCharm 中开发 Python 程序调用 OpenAI 接口 )

【AI 大模型】OpenAI 接口调用 ① ( 安装 openai 软件包 | 查看 openai 软件包版本 | PyCharm 中开发 Python 程序调用 OpenAI 接口 ) https://hanshuliang.blog.csdn.net/article/details/139922167 博客源码快照 一、安装 Python SDK 二、安装 OpenAI Python SDK 1、安装 openai 软件包 2、查看 openai 软件包版本 3、openai 接口参考文档 三、PyCharm 中开发 Python 程序调用 OpenAI 接口 1、PyCharm 创建 Python 项目 2、购买 API Key 3、API Key 配置用法 4、中转 API 与 直联 API 使用注意事项 5、Python 代码示例

2024-06-24

FFmpegSDL 音视频开发 ④ ( SDL 多线程 / 创建线程 / 等待线程执行完毕 )

【FFmpeg】SDL 音视频开发 ④ ( SDL 多线程 | SDL_Thread 结构体 | SDL_CreateThread 函数创建线程 | SDL_WaitThread 函数等待线程执行 ) https://hanshuliang.blog.csdn.net/article/details/139760886 博客源码快照 一、SDL 多线程简介 1、SDL 多线程引入 2、SDL_Thread 多线程模型 二、SDL 多线程相关函数 1、SDL 创建线程 - SDL_CreateThread 函数 2、SDL 等待线程执行完毕 - SDL_WaitThread 函数 三、SDL 线程代码示例 - 创建并等待线程执行完毕 1、代码示例 2、执行结果

2024-06-18

FFmpegSDL 音视频开发 ③ ( SDL 事件处理 )

【FFmpeg】SDL 音视频开发 ③ ( SDL 事件处理 | SDL_Event 数据结构分析 | 事件处理流程 | SDL 事件获取函数 | SDL_WaitEvent 函数 ) https://hanshuliang.blog.csdn.net/article/details/139669401 博客源码快照 一、SDL 事件处理简介 1、SDL 事件处理引入 2、SDL 事件处理步骤 二、SDL 事件数据结构分析 1、SDL_Event 事件 - union 联合体 2、SDL_Event 事件处理流程 三、SDL 事件函数 1、SDL_PollEvent 函数 2、SDL_WaitEvent 函数 四、完整代码示例 1、代码示例 2、执行结果

2024-06-14

算法Graham 凸包扫描算法 ( 凸包概念 - 常用的凸包算法 - 角排序 - 叉积 - Python 代码示例 )

【算法】Graham 凸包扫描算法 ( 凸包概念 | 常用的凸包算法 | 角排序 | 叉积 | Python 代码示例 ) https://hanshuliang.blog.csdn.net/article/details/139651095 博客源码快照 一、Graham 凸包扫描算法 1、凸包概念 2、常用的凸包算法 3、Graham 凸包扫描算法 二、Graham 算法前置知识点 1、角排序 2、叉积 3、算法过程分析 三、代码示例 1、完整代码示例 2、执行结果

2024-06-13

FFmpegSDL 音视频开发 ②

【FFmpeg】SDL 音视频开发 ② https://hanshuliang.blog.csdn.net/article/details/139592113 博客源码快照

2024-06-11

FFmpegSDL 音视频开发 ① ( SDL 窗口绘制 )

【FFmpeg】SDL 音视频开发 ① ( SDL 窗口绘制 | SDL 视频显示函数 | SDL_Window 窗口 | SDL_Renderer 渲染器 | SDL_Texture 纹理 ) https://hanshuliang.blog.csdn.net/article/details/139528565 博客源码快照 一、SDL 视频显示函数 1、SDL_Init 函数 2、SDL_Quit 函数 3、SDL_CreateWindow 函数 4、SDL_CreateRenderer 函数 5、SDL_CreateTexture 函数 6、窗口 / 渲染器 / 纹理 关联 二、SDL 窗口绘制 - 代码示例 1、SDL 窗口绘制代码 2、执行结果

2024-06-07

FFmpegSDL 开发环境搭建

【FFmpeg】SDL 开发环境搭建 ( SDL 简介 | 下载 SDL 开发库 | 拷贝动态库到 C:\Windows\SysWOW64 目录 | 将 SDL 开发库配置到 Qt 项目 ) https://hanshuliang.blog.csdn.net/article/details/139516815 博客源码快照 一、SDL 简介 1、SDL 简介 2、SDL 相关网站 二、SDL 开发环境搭建 1、下载 SDL 开发库 2、SDL 开发库内容解析 3、拷贝动态库到 C:\Windows\SysWOW64 目录 4、创建 Qt 项目 5、将 SDL 开发库配置到 Qt 项目 6、SDL 窗口示例

2024-06-07

【OpenHarmony】ArkTS 语法基础 ⑥ ( ArkTS 状态管理 - @Link 装饰器 )

【OpenHarmony】ArkTS 语法基础 ⑥ ( ArkTS 状态管理 | @Link 装饰器 | 子组件定义使用 @Link 变量 | 父容器中定义 @State 变量并绑定子组件变量 ) https://hanshuliang.blog.csdn.net/article/details/139466799 博客源码快照 一、ArkTS 状态管理 - @Link 装饰器 1、@Link 装饰器 2、子组件定义 @Link 变量 3、子组件中使用 @Link 变量 4、父容器中定义 @State 变量 6、父容器中绑定 @State 变量和 @Link 变量 二、完整代码示例 1、自定义组件代码 2、父容器组件代码 3、执行结果

2024-06-05

【OpenHarmony】ArkTS 语法基础 ⑤ ( ArkTS 状态管理 / @State 装饰器定义状态数据 )

【OpenHarmony】ArkTS 语法基础 ⑤ ( ArkTS 状态管理 | @State 装饰器定义状态数据 | 使用状态数据渲染组件 ) https://hanshuliang.blog.csdn.net/article/details/139452711 博客源码快照 一、ArkTS 状态管理 - @State 装饰器 1、@State 装饰器定义状态数据 2、@State 装饰器定义状态数据 - 示例分析 3、使用 @State 装饰器定义的状态数据渲染组件 - 示例分析 二、完整代码示例 1、完整自定义组件代码示例 2、展示效果

2024-06-05

【OpenHarmony】ArkTS 语法基础 ④ ( ArkTS UI 渲染控制 - 条件渲染 - 循环渲染 )

【OpenHarmony】ArkTS 语法基础 ④ ( ArkTS UI 渲染控制 | if else 条件渲染 | ForEach 循环渲染 ) https://hanshuliang.blog.csdn.net/article/details/139441781 博客源码快照 一、ArkTS UI 渲染控制 1、if else 条件渲染 2、ForEach 循环渲染 二、完整代码示例 1、自定义组件代码 2、主界面代码 3、执行结果

2024-06-04

【OpenHarmony】ArkTS 语法基础 ③ ( 自定义组件生命周期回调函数 - 页面生命周期回调函数 )

【OpenHarmony】ArkTS 语法基础 ③ ( @Component 自定义组件生命周期回调函数 | @Entry 页面生命周期回调函数 ) https://hanshuliang.blog.csdn.net/article/details/139424435 博客源码快照 一、ArkTS @Component 自定义组件生命周期 1、自定义组件生命周期 2、aboutToAppear 函数执行时机和作用 3、aboutToDisappear 函数执行时机和作用 4、代码示例 二、ArkTS @Entry 页面生命周期 1、@Entry 页面生命周期 2、onBackPress 和 onPageHide 回调函数无关联 三、代码示例 - @Entry 页面生命周期 + @Component 自定义组件生命周期 1、代码示例 - @Component 自定义组件生命周期 2、代码示例 - @Entry 页面生命周期 3、进入页面后的效果 4、屏幕熄灭 4、屏幕点亮 5、按下 Home 键 6、Home 键返回 7、回退键退出应用

2024-06-04

【OpenHarmony】 ArkTS 语法基础 ② ( ArkTS 自定义组件 )

【OpenHarmony】ArkTS 语法基础 ② ( ArkTS 自定义组件 | 自定义可导入组件 - export 声明模块 | 导入自定义组件 - import 导入组件 ) https://hanshuliang.blog.csdn.net/article/details/139407374 博客源码快照 一、ArkTS 自定义组件 1、@Component 装饰器 2、自定义组件语法 3、将自定义组件设置为页面入口 二、ArkTS 使用外部自定义组件 1、自定义可导入组件 - export 声明模块 2、导入自定义组件 - import 导入组件

2024-06-03

Windows 10 平台 FFmpeg 开发环境搭建 博客资源

【FFmpeg】Windows 10 平台 FFmpeg 开发环境搭建 ④ ( FFmpeg 开发库内容说明 | 创建并配置 FFmpeg 项目 | 拷贝 DLL 动态库到 SysWOW64 目录 ) https://hanshuliang.blog.csdn.net/article/details/139172564 博客资源 一、FFmpeg 开发库 1、FFmpeg 开发库编译 2、FFmpeg 开发库内容说明 二、创建并配置 FFmpeg 项目 1、拷贝 dll 动态库到 C:\Windows\SysWOW64 目录 - 必须操作 特别关注 2、创建 Qt 项目 - C 语言程序 3、配置 FFmpeg 开发库 - C 语言项目 4、创建并配置 FFmpeg 开发库 - C++ 项目

2024-05-24

FFmpegFilter 过滤器 ⑥ ( 九宫格画面拼接 ) 博客资源

【FFmpeg】Filter 过滤器 ⑥ ( 九宫格画面拼接 ) 博客资源 博客地址 : https://hanshuliang.blog.csdn.net/article/details/139008847

2024-05-17

【移动端网页布局】Flex 弹性布局案例 ③

【移动端网页布局】Flex 弹性布局案例 ③

2024-03-06

GIF录屏工具-Gif123-GifCam-LICEcap

GIF录屏工具-Gif123-GifCam-LICEcap

2024-03-04

Java 语言中的 properties 配置文件使用

【Java 语言】读取 properties 配置文件 ( Java 语言中的 properties 配置文件 | 使用 properties 配置文件 ) https://hanshuliang.blog.csdn.net/article/details/134435350 博客源码

2023-11-16

JetpackNavigation 导航组件 ④ ( Fragment 跳转中使用 safe args 安全传递参数 )

https://hanshuliang.blog.csdn.net/article/details/131406972 博客源码快照 一、页面跳转间的传统的数据传递方式 1、传统的数据传递方式 - Bundle 传递数据 1、Navigation 组件中的 Bundle 数据传递 2、传统数据传递实现步骤 3、FragmentA 完整代码示例 4、FragmentB 完整代码示例 5、执行结果 2、使用 Bundle 传递数据安全性差 二、页面跳转间的传统的数据传递方式 1、导入插件依赖 2、使用插件 3、在 navigation_graph.xml 中定义要传递的 argument 参数信息 4、重新编译生成参数传递相关代码 5、调用 FragmentBArgs 类生成参数 Bundle 6、FragmentA 中获取参数 三、两种传参方式的完整代码示例 1、Gradle 构建脚本 I、根目录下 settings.gradle 构建脚本 II、根目录下 build.gradle 构建脚本 III、Module 目录下 build.gradle 构建脚本 2、res 资源配置

2023-08-25

可运行的 Android 版本的 ijkplayer 2023年 8 月 14 日调试完毕

运行环境 : 2021.3.1 Dolphin , Android Gradle 插件版本号 3.2.0 , Gradle 版本号 gradle-4.6-all.zip 【ijkplayer】编译 Android 版本的 ijkplayer ⑦ ( 使用 AS 打开源码 | 重新设置 AGP 和 Gradle 版本号 | 设置依赖仓库 | 设置依赖 | 编译运行 ) 原文链接:https://blog.csdn.net/shulianghan/article/details/132274142 一、Android Studio 打开编译后的 ijkplayer 源码 二、重新设置 Android Gradle 插件版本号和 Gradle 构建工具版本号 三、设置依赖仓库 1、取消 jcenter 仓库 2、添加 google 和 mavenCentral 仓库 3、添加阿里云仓库 四、取消 jcenter 上传相关插件 五、设置编译工具版本号 六、取消 productFlavors 七、设置 build.gradle 中的依赖为 implementation 依赖 八、编译应用

2023-08-14

hadoop-3.3.4.tar.gz + winutils 安装环境

【开发环境】安装 Hadoop 运行环境 ( 下载 Hadoop | 解压 Hadoop | 设置 Hadoop 环境变量 | 配置 Hadoop 环境脚本 | 安装 winutils ) https://hanshuliang.blog.csdn.net/article/details/132045605 一、下载 Hadoop 二、解压 Hadoop 三、设置 Hadoop 环境变量 四、配置 Hadoop 环境脚本 五、安装 winutils 六、重启电脑 七、验证 Hadoop 安装效果

2023-08-03

JetpackNavigation 导航组件 ③ ( 为 Navigation Graph 添加跳转动画 )

【Jetpack】Navigation 导航组件 ③ ( 为 Navigation Graph 添加跳转动画 ) 博客源码快照 博客地址 : https://hanshuliang.blog.csdn.net/article/details/131405392 一、为 Navigation Graph 添加跳转动画 1、进入 Navigation Graph 配置的 Design 模式 2、选中 action 跳转 3、为 action 跳转设置 enterAnim 进入动画 4、为 action 跳转设置 exitAnim 退出动画 5、通过代码为 action 跳转设置进入 / 退出动画

2023-06-26

JetpackNavigation 导航组件 ②

【Jetpack】Navigation 导航组件 ② ( Navigation 核心要点说明 | 创建 Navigation Graph | 创建 NavHostFragment | 完整代码示例 ) https://hanshuliang.blog.csdn.net/article/details/131299078

2023-06-21

DB Browser for SQLite 数据库查看工具

DB Browser for SQLite 数据库查看工具

2023-06-14

ViewModel + LiveData + DataBinding 综合使用示例

【Jetpack】ViewModel + LiveData + DataBinding 综合使用 ( 核心要点说明 | 组合方式 | 代码示例 ) 博客地址 : https://hanshuliang.blog.csdn.net/article/details/130401679 一、ViewModel + LiveData + DataBinding 核心要点 1、ViewModel 使用要点 2、LiveData 使用要点 3、DataBinding 使用要点 二、ViewModel + LiveData + DataBinding 代码示例 1、ViewModel + LiveData 代码 2、build.gradle 构建脚本 - 启用 DataBinding 3、DataBinding 布局文件 - 配置 ViewModel 类 4、Activity 系统组件代码 - 加载 DataBinding 布局 / 布局配置 ViewModel 对象 / 设置 LiveData 观察者 5、执行结果

2023-04-27

BaseObservable 实现数据模型 Model 与视图 View 双向绑定

BaseObservable 实现数据模型 Model 与视图 View 双向绑定

2023-04-18

DataBinding 架构组件 ④

【Jetpack】DataBinding 架构组件 ④ ( 使用 @BindingAdapter 注解为布局组件绑定自定义逻辑 | 网络图片加载 | 本地图片加载 ) https://blog.csdn.net/shulianghan/article/details/130043460 一、@BindingAdapter 注解 1、注解简介 2、使用 @BindingAdapter 注解为布局组件绑定自定义逻辑 二、使用 @BindingAdapter 注解绑定加载网络图片静态方法 三、使用 @BindingAdapter 注解绑定加载本地图片静态方法 四、使用 @BindingAdapter 注解绑定加载网络图片或本地图片静态方法 五、完整代码示例 1、build.gradle 构建脚本 2、AndroidManifest.xml 清单文件 3、DataBinding 布局文件 4、BindingAdapter 注解类 5、MainActivity 组件 6、执行结果

2023-04-18

DataBinding 架构组件 ③

【Jetpack】DataBinding 架构组件 ③ ( 使用 include 导入二级界面布局 | 二级页面绑定数据模型 ) https://hanshuliang.blog.csdn.net/article/details/129899735 一、使用 include 导入二级界面布局 二、二级页面绑定数据模型 1、将二级界面布局转为 DataBinding 布局 2、在主布局中为二级界面布局传递数据模型 三、核心代码示例 1、主布局 2、子布局 3、Java 代码 4、执行结果

2023-04-04

DataBinding 架构组件 ② - DataBinding 布局中使用 import 标签导入 Java、Kotlin 类

【Jetpack】DataBinding 架构组件 ② ( 字符串拼接函数 | 绑定点击事件函数 | DataBinding 布局中使用 import 标签导入 Java、Kotlin 类 ) https://hanshuliang.blog.csdn.net/article/details/129773150 一、字符串拼接函数 二、绑定点击事件函数 三、DataBinding 布局中使用 import 标签导入 Java、Kotlin 类 1、DataBinding 布局中使用 import 标签导入 Java 类 2、DataBinding 布局中使用 import 标签导入 Kotlin 类 四、完整代码示例 1、数据类 2、导入的 Java 类 3、导入的 Kotlin 类 4、DataBinding 布局文件 5、Activity 组件类

2023-03-26

DataBinding 架构组件

【Jetpack】DataBinding 架构组件 ( 数据绑定技术简介 | Android 中的 DataBinding 数据绑定 | 启动数据绑定 | 定义数据类 | 布局文件转换 ) https://hanshuliang.blog.csdn.net/article/details/129762717 博客源码快照 一、数据绑定技术简介 二、Android 中的 DataBinding 数据绑定技术 三、Android 中的 DataBinding 代码示例 1、build.gradle 构建脚本 - 启动数据绑定 2、定义数据类 3、布局文件转换 4、Activity 组件设置数据绑定布局和数据 5、显示效果 ———————————————— 版权声明:本文为CSDN博主「韩曙亮」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/shulianghan/article/details/129762717

2023-03-25

JetpackLiveData 架构组件

【Jetpack】LiveData 架构组件 ( LiveData 简介 | LiveData 使用方法 | ViewModel + LiveData 示例 ) https://hanshuliang.blog.csdn.net/article/details/129411132 博客源码示例 一、LiveData 简介 二、LiveData 使用方法 三、ViewModel + LiveData 简单示例 1、ViewModel + LiveData 代码 2、Activity 组件代码 3、运行效果展示 四、ViewModel + LiveData + Fragment 通信示例 1、ViewModel + LiveData 代码 2、Activity 组件代码 Activity 代码 布局文件 3、Fragment 代码 第一个 Fragment 代码 第一个 Fragment 布局文件 第二个 Fragment 代码 第二个 Fragment 布局文件 4、运行效果展示

2023-03-12

JetpackViewModel 架构组件 博客源码

【Jetpack】ViewModel 架构组件 ( 视图 View 和 数据模型 Model | ViewModel 作用 | ViewModel 生命周期 | 代码示例 | 使用注意事项 ) https://hanshuliang.blog.csdn.net/article/details/129374914 一、Activity 遇到的问题 二、视图 View 和 数据模型 Model 三、ViewModel 架构组件作用 四、ViewModel 代码示例 1、ViewModel 视图模型 2、Activity 组件 3、UI 布局文件 4、运行效果 五、ViewModel 生命周期 六、ViewModel 使用注意事项 ———————————————— 版权声明:本文为CSDN博主「韩曙亮」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/shulianghan/article/details/129374914

2023-03-07

博客资料 -JetpackLifeCycle 架构组件

【Jetpack】Lifecycle 架构组件 ( 系统组件与普通组件解耦 | Lifecycle 解耦系统组件与普通组件 | 解耦服务组件与普通组件 | 监听应用程序生命周期 ) https://hanshuliang.blog.csdn.net/article/details/129291874 一、系统组件与普通组件解耦 二、Lifecycle 解耦 Activity 系统组件与 UI 组件 1、传统实现方式 ① Activity 系统组件 ② 布局文件 ③ 执行效果 2、LifeCycle 实现方式 ① 自定义 UI 组件 ② Activity 系统组件 ③ 布局组件 ④ 执行效果 三、LifecycleService 解耦 Service 与 UI 组件 1、构建脚本导入依赖 2、Android Studio 中搜索并添加依赖 3、布局文件属性排序 4、代码实现 ① LifecycleService 组件 ② LifecycleObserver 业务逻辑 ③ AndroidManifest.xml 清单文件 ④ Activity 系统组件

2023-03-03

使用 Jedis 操作 Redis 数据库 博客代码示例

【Redis】使用 Jedis 操作 Redis 数据库 ② ( Jedis API 规律 | Redis 命令与 Jedis 函数名称基本一致 | Jedis API 使用示例 ) https://hanshuliang.blog.csdn.net/article/details/129128393 博客代码示例

2023-02-20

Redis 数据库 安装、配置、访问资源

【Redis】Redis 数据库 安装、配置、访问 ( Redis 简介 | 下载 Redis 安装包 | 安装 Redis 数据库 | 命令行访问 Redis | 使用可视化工具访问 Redis ) https://hanshuliang.blog.csdn.net/article/details/128945441 博客资源快照 001_Linux安装包 002_Windows安装包 003_可视化工具_Redis Desktop Manager

2023-02-09

开发环境JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 - 压缩 rt.jar 文件 )

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 ) https://blog.csdn.net/shulianghan/article/details/128711836 博客资源快照

2023-01-17

开发环境JRE 裁剪 ① ( 裁剪 bin 目录下的 dll 动态库文件 )

【开发环境】JRE 裁剪 ① ( 裁剪 bin 目录下的 dll 动态库文件 ) https://hanshuliang.blog.csdn.net/article/details/128703546 资源快照

2023-01-16

【Android OpenCV】Visual Studio 创建支持 OpenCV 库的 CMake 工程 ③ 源码快照

【Android OpenCV】Visual Studio 创建支持 OpenCV 库的 CMake 工程 ③ ( CMake 工程中配置 OpenCV 库文件 | 拷贝 OpenCV 函数库文件 ) https://hanshuliang.blog.csdn.net/article/details/128516414 源码快照 在 Visual Studio 2019 中打开 ; 需要修改 Windows 平台的 OpenCV 函数库 头文件 及 库文件搜索路径 ;

2023-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除