自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Web APIs】网页轮播图 ( 清除默认边距、样式 | ul 列表样式设置 | 循环无缝滚动实现 | 动画节流阀 | 左右按钮触发动画 | 小圆点按钮触发动画 )

一、轮播图案例 - 需求、结构、页面样式解析1、需求说明2、HTML 结构3、CSS 样式 - 清除边距及默认样式① 清除默认内外边距② 清除列表样式③ 清除链接样式4、CSS 样式 - 轮播图图片① 左浮动横向排列② 轮播图图片父容器 ul 列表样式③ 轮播图父容器样式5、CSS 样式 - 轮播图左右按钮6、CSS 样式 - 轮播图小圆点按钮二、轮播图案例 - JavaScript 脚本解析1、页面加载执行脚本、获取必要的 DOM 元素2、鼠标进出轮播图区域的事件设定

2025-12-16 10:49:13 656

原创 【思维模型】金字塔原理 ① ( 核心原则 - 结论先行、以上统下、归类分组、逻辑递进 | 落地流程 - 明确主题、拆解问题、收集论据、排列论据、补充细节 )

一、金字塔原理1、概念简介2、核心原则① 结论先行② 以上统下③ 归类分组④ 逻辑递进二、金字塔原理 - 落地流程1、第一步 : 明确主题2、第二步 : 拆解问题3、第三步 : 收集论据4、第四步 : 排列论据5、第五步 : 补充细节三、金字塔原理相关图示1、四大核心特点2、金字塔原理模型图

2025-12-17 03:15:00 387 2

原创 【错误记录】Gradle 编译报错 ( The server may not support the client‘s requested TLS protocol versions: (TLSv )

摘要:IntelliJ IDEA中基于Gradle的Java项目编译时出现TLS协议不兼容和PKIX证书信任失败问题,导致无法下载json-20210307.jar。解决方案是将build.gradle中的仓库配置替换为阿里云镜像(https://maven.aliyun.com/repository/public),优先使用国内稳定源,同时保留mavenCentral()作为备用。这种修改可避免国外Maven中央仓库的证书和网络访问问题,确保依赖正常下载。(149字)

2025-12-16 06:15:00 557 1

原创 【ROS 2】ROS 2 机器人操作系统简介 ( 概念简介 | DDS 数据分发服务 | ROS 2 版本 | Humble 文档 | ROS 2 生态简介 )

一、ROS 简介1、概念简介2、通信框架对比选择3、ROS 架构4、DDS 数据分发服务 简介二、ROS 2 版本1、ROS 2 发布版本2、ROS 2 版本文档3、Humble Hawksbill 版本 ROS 2 文档① 文档主页② 安装文档③ 教程文档④ 文档指南⑤ 概念术语三、ROS 2 生态简介1、ROS 2 通信机制2、ROS 2 提供的可视化工具3、ROS 2 提供的运动学工具4、ROS 2 提供的开源框架

2025-12-15 15:26:12 945 3

原创 【VSCode】设置中文、多标签设置 ( 设置显示语言 | 批量打开标签 | 标签栏切换 )

一、设置中文1、下载中文扩展包2、设置显示语言3、重置语言包4、清除缓存二、多标签设置1、批量打开标签2、标签栏切换3、标签页管理4、分屏 / 分栏查看多个标签

2025-12-15 09:37:33 694 3

原创 【思维模型】第一性原理 ③ ( 5 Why 分析法 | 明确问题 | 层层深入 | 验证原因 | 改进措施 )

一、5 Why 分析法1、概念简介2、核心原则3、实施步骤4、关键技巧5、常见误区6、案例分析

2025-12-14 16:34:50 3513 4

原创 【思维模型】第一性原理 ② ( 利用 “ 第一性原理 “ 进行创新 : 归零 -> 解构 -> 重构 | 跨学科学习 )

一、利用 " 第一性原理 " 进行创新1、第一性原理创新 与 传统创新2、 " 第一性原理 " 创新步骤① 归零② 解构③ 重构3、第一性原理创新案例4、跨学科学习

2025-12-14 13:42:02 844

原创 【Web APIs】JavaScript 动画 ④ ( 动画案例 - 侧边栏展开案例 | 核心 - mouseenter、mouseleave 鼠标进出事件 )

一、动画案例 - 侧边栏展开案例1、需求说明2、元素样式3、核心动画函数4、设置 mouseenter、mouseleave 鼠标进出事件二、代码示例1、完整代码① 主体界面② js 脚本 - animate.js2、执行结果

2025-12-13 23:45:00 545

原创 【思维模型】第一性原理 ① ( 第一性原理概念简介 | 逻辑学思维 | 演绎性思维、归纳性思维、三段论 | 第一性原理 - 知识之塔的基石 )

第一性原理是从最基本公理或事实出发,通过逻辑推导得出结论的思维方式,强调回归本质。欧式几何的五条公设和公理是其典型应用。逻辑学思维包含演绎性思维(从一般到特殊,结论必然为真)和归纳性思维(从特殊到一般,结论概率为真)。演绎性思维依赖严谨推理,归纳性思维基于案例观察。二者在工作和生活中各有应用场景。

2025-12-13 23:15:00 1137 1

原创 【自动驾驶】Autoware 架构 ① ( 自动驾驶的两种核心技术架构 | 基于规则技术架构 | 端到端技术架构 )

一、基于规则技术架构1、基于规则技术架构简介2、规则表示示例3、基于规则技术架构优点4、基于规则技术架构缺点二、端到端技术架构1、端到端技术架构简介2、端到端技术架构实现形式① 数据采集② 多模态数据融合与预处理③ 主流模型架构④ 三阶段训练法⑤ 总结3、端到端技术架构优点4、端到端技术架构缺点三、自动驾驶的两种核心技术架构总结1、基于规则技术架构 与 端到端技术架构 对比2、基于规则技术 + 端到端技术 混合架构

2025-12-12 09:57:45 5505 11

原创 【Web APIs】JavaScript 动画 ③ ( 动画回调函数简介 | 封装动画函数到独立的 js 脚本中 )

本文介绍了前端开发中动画回调函数的概念与应用。动画回调函数的核心作用是在动画完成后执行自定义逻辑,通过将函数作为参数传入动画函数,在清除定时器后执行该函数。文章提供了代码示例,展示了如何实现缓动动画效果,并在动画结束时触发回调函数改变元素背景色。此外,还演示了如何将动画函数封装到独立的JS脚本中,便于复用。关键点在于将附加逻辑的控制权交给调用者,而非写死在动画函数里。

2025-12-12 04:15:00 599 1

原创 【Web APIs】JavaScript 动画 ② ( 缓动动画 | 步长计算取整 )

缓动动画与匀速动画不同,通过动态计算步长实现平滑移动效果。缓动动画的核心原理是根据目标位置与当前元素位置的差值,按比例(如1/10)计算每次移动的步长,使元素逐渐减速靠近目标。步长计算需考虑方向:正数(向右)向上取整,负数(向左)向下取整,避免位置回退。代码示例展示了如何通过定时器动态调整left属性值,实现从0px到300px的缓动动画效果,确保最终位置精确对齐。

2025-12-11 23:15:00 740

原创 【Web APIs】JavaScript 动画 ① ( setInterval 实现动画原理 | 动画函数封装 | 元素自定义属性接收定时器标识 )

一、setInterval 动画原理1、setInterval 实现动画原理2、代码示例 - setInterval 实现动画二、动画函数封装1、动画函数封装2、代码示例 - 动画函数封装三、动画封装函数 - 获取定时器标识1、元素自定义属性接收定时器标识2、代码示例 - 元素自定义属性接收定时器标识

2025-12-11 04:15:00 1416 2

原创 【Web APIs】鼠标经过、离开事件 ( mouseover、mouseout 事件 | mouseenter、mouseleave 事件 )

本文对比了鼠标经过和离开事件的两种类型:mouseover/mouseout和mouseenter/mouseleave。mouseover/mouseout会在鼠标移入元素或其子元素时频繁触发,支持事件冒泡;而mouseenter/mouseleave仅在鼠标进出元素本身时触发,不冒泡且不响应子元素移动,触发更精准。通过代码示例展示了两种事件的行为差异,前者会在父子元素间移动时重复触发,后者则只关注元素自身的进出状态。

2025-12-10 10:18:25 686 2

原创 【Web APIs】元素滚动 scroll 系列属性 ② ( 右侧固定侧边栏 )

一、元素滚动 scroll 系列属性案例 - 右侧固定侧边栏1、需求说明2、HTML 结构3、右侧固定侧边栏解析① 相关代码② 绝对定位③ 位置设置4、window.pageYOffset 属性① window.pageYOffset 属性简介② scroll 滚动事件监听③ 向下滚动 侧边栏 由 绝对定位 -> 固定定位④ 向上滚动 侧边栏 由 固定定位 -> 绝对定位⑤ 判断 返回顶部 按钮 显示 / 隐藏二、代码示例1、代码示例2、执行结果

2025-12-10 09:26:21 968

原创 【Web APIs】元素滚动 scroll 系列属性 ① ( 滚动位置属性 - scrollTop、scrollLeft | 内容尺寸属性 - scrollWidth、scrollHeight)

scroll系列属性用于控制元素内容与可视区域的滚动关系,分为滚动位置属性和内容尺寸属性。滚动位置属性(scrollTop/scrollLeft)可读写,控制元素内容被滚动隐藏的距离;内容尺寸属性(scrollWidth/scrollHeight)只读,获取元素内容总尺寸(含隐藏部分)。通过设置scrollTop/scrollLeft可实现精准滚动控制,结合scrollHeight/scrollWidth可判断滚动状态。示例中展示了获取滚动属性、滚动到底部/最右侧的功能实现,并说明了滚动条对可视区域尺寸的影

2025-12-09 21:45:00 997 2

原创 【Web APIs】元素可视区 client 系列属性 ④ ( window 对象的 load 事件 / resize 事件 / pageshow 事件 | 页面尺寸发生变化 - 重新计算 rem )

一、 window 对象的 load 事件 / resize 事件 / pageshow 事件1、 window.load 事件简介2、 window.load 事件触发场景3、 window.resize 事件及触发场景4、 window.pageshow 事件引入5、 页面尺寸发生变化 -> 重新计算 rem ( 重点 )6、案例分析 - 监听 页面尺寸发生变化 ( 重点 )二、代码示例1、代码示例2、执行结果

2025-12-09 03:15:00 1736 1

原创 【思维模型】刻意练习 ( 一万小时定律 | 刻意练习的核心 - 分解任务 | 第一步 : 制定学习计划 | 第二步 : 学习区练习 | 第三步 : 及时有效反馈 | 第四步 : 创建模型 )

一、刻意练习简介1、先天天赋 与 后天努力2、一万小时定律3、刻意练习 与 重复练习4、刻意练习的核心 - 分解任务二、刻意练习步骤1、第一步 : 制定学习计划2、第二步 : 学习区练习3、第三步 : 及时有效反馈4、第四步 : 创建模型

2025-12-08 22:59:25 608 2

原创 【Web APIs】元素可视区 client 系列属性 ③ ( 初始化字体大小 | 设备像素比 DPR | 设置 rem 的基准单位 | 设置页面普通文字大小 )

一、 初始化字体大小1、 设备像素比 DPR2、 常见的设备像素比3、 html 标签 font-size 属性 - 设置 rem 的基准单位4、 body 标签 font-size 属性 - 设置页面普通文字大小5、 html 和 body 标签 font-size 属性对比二、 代码示例1、 代码示例2、 代码分析3、 执行结果

2025-12-08 13:39:16 562 1

原创 【Web APIs】元素可视区 client 系列属性 ② ( 立即执行函数 )

一、立即执行函数1、 立即执行函数简介2、 立即执行函数语法3、 立即执行函数与普通函数对比二、代码示例1、 代码示例 - 普通函数2、 代码示例 - 立即执行函数两种写法

2025-12-08 10:37:28 931 1

原创 【Web APIs】元素可视区 client 系列属性 ① ( client 属性简介 | 常用的 client 属性 | 使用场景 | 代码示例 )

一、元素可视区 client 系列属性1、 client 属性简介2、 常用的 client 属性3、client 属性应用场景二、代码示例 - client 系列属性1、 代码示例2、 执行结果

2025-12-07 22:08:02 1003

原创 【Web APIs】元素偏移量 offset 系列属性 ④ ( offset 属性案例 - 放大镜效果 )

一、offset 属性案例 - 放大镜效果1、 需求说明2、HTML 结构3、CSS 样式① 清除内外边距② 小图容器样式③ 遮挡层样式④ 大图容器样式⑤ 大图容器内的图片样式4、设置 window 对象 onload 事件5、显示 / 隐藏 遮挡层和大图容器6、计算鼠标在小图容器中的坐标7、计算小图容器中遮挡层的位置8、大图片显示设置二、 完整代码示例1、 代码示例2、图片资源3、 执行效果

2025-12-07 14:54:15 712 1

原创 【Web APIs】元素偏移量 offset 系列属性 ③ ( offset 属性案例 - 计算鼠标指针在盒子内位置 | offset 属性案例 - 鼠标拖动盒子移动 )

一、 offset 属性案例 - 计算鼠标指针在盒子内位置1、 需求说明2、 实现原理3、 代码示例 - 鼠标点击获取在盒子中的位置4、 代码示例 - 鼠标移动获取在盒子中的位置二、 offset 属性案例 - 鼠标拖动盒子移动1、 需求说明2、 实现原理① 定位方式② 鼠标按下事件③ 鼠标移动事件④ 鼠标抬起事件3、 代码示例

2025-12-06 20:58:58 772 1

原创 【Web APIs】元素偏移量 offset 系列属性 ② ( offset 系列属性 与 元素 style 属性 对比 | offset 与 style 使用场景 )

一、 offset 系列属性 与 元素 style 属性 对比1、 offset 与 style 对比2、 offset 与 style 使用场景3、 代码示例

2025-12-06 15:27:49 792

原创 【Web APIs】元素偏移量 offset 系列属性 ① ( offset 常用属性 | offsetParent | offsetTop | offsetLeft | offsetWidth )

摘要: offset系列属性是JavaScript中用于获取DOM元素在页面中的实际布局位置和尺寸信息的只读属性集合。主要包括:offsetParent(定位参考父元素)、offsetTop/Left(垂直/水平偏移量)、offsetWidth/Height(元素总宽度/高度,包含内容、内边距和边框)。这些属性返回以像素为单位的数值,不受CSS transform等样式影响,反映元素的物理位置和真实大小。通过代码示例展示了这些属性的计算方式及实际应用场景。

2025-12-05 22:27:50 740 2

原创 【AI 大模型】LangChain 框架 ① ( LangChain 简介 | LangChain 模块 | LangChain 文档 )

一、LangChain 简介1、LangChain 概念2、LangChain 定位3、LangChain 开发语言与应用场景4、LangChain 核心组件5、LangChain 学习路径二、LangChain 模块1、模型输入 / 输出 ( Models )2、提示词模板 ( Prompts )3、索引 ( Indexes )4、链 ( Chains )5、记忆 ( Memory )6、代理 ( Agents )7、 工具 ( Tools )8、 文档加载器 ( Docume

2025-12-05 10:19:19 7108 9

原创 【Web APIs】JavaScript 执行机制 ( 单线程特点 | 同步任务与异步任务 | 同步先行、异步排队 | 事件循环机制 )

一、JavaScript 执行机制1、JavaScript 单线程特点2、JavaScript 同步任务与异步任务3、同步先行、异步排队4、事件循环机制二、JavaScript 事件循环 案例解析1、案例解析2、执行结果3、执行结果分析

2025-12-04 08:42:35 1015 2

原创 【Web APIs】JavaScript 中 this 指向问题 ( 全局作用域下的 this 指向 | 方法调用中的 this 指向 | 构造函数中的 this 指向 )

一、JavaScript 中 this 指向问题1、this 指向2、全局作用域 this 指向3、方法调用中 this 指向4、构造函数中 this 指向二、代码示例1、代码示例 - 全局作用域 this 指向2、代码示例 - 方法调用中 this 指向3、代码示例 - 构造函数中 this 指向

2025-12-04 02:15:00 592

原创 【Web APIs】BOM 浏览器对象模型 ⑥ ( location 对象 | location 常用属性和方法 | URL 简介 )

location对象是浏览器的地址栏管理器,提供操作URL、跳转或刷新页面的功能。它包含URL各部分属性,如href(完整URL)、protocol(协议)、host(主机+端口)、pathname(路径)、search(查询参数)等。其中,location.href是最核心属性,读取时返回完整URL,赋值时可实现页面跳转(支持绝对/相对路径)。location.search用于获取查询参数字符串,推荐使用URLSearchParams API解析为键值对,支持get()获取单个参数和getAll()处理同

2025-12-03 10:15:20 4566 2

原创 【Web APIs】BOM 浏览器对象模型 ⑤ ( navigator 对象 | history 对象 )

一、location 对象1、location 对象简介2、location 对象常用属性3、location 对象常用示例4、location 对象使用场景二、history 对象1、history 对象简介2、history 对象常用属性方法3、history 对象常用示例4、history 对象使用场景二、代码示例1、代码示例 - navigator 对象2、代码示例 - history 对象

2025-12-03 08:49:12 678

原创 【Web APIs】BOM 浏览器对象模型 ④ ( window 对象 定时器 | window.setInterval() 定时器 | window.clearTimeout() 取消定时器 )

一、window.setInterval() 定时器1、setInterval() 定时器用法2、clearInterval() 取消定时器二、代码示例1、代码示例 - setInterval() 定时器用法2、代码示例 - 倒计时案例3、代码示例 - 取消倒计时案例4、代码示例 - 发送短信倒计时按钮案例

2025-12-02 22:15:00 1398 1

原创 【Web APIs】BOM 浏览器对象模型 ③ ( window 对象 定时器 | window.setTimeout() 定时器 | window.clearTimeout() 取消定时器 )

一、window 对象常用事件1、window.setTimeout() 定时器① 定时器默认用法 - 传入函数名② 定时器可选用法 - 传入代码字符串③ 定时器标识符2、停止定时器 - clearTimeout() 函数二、代码示例1、代码示例 - window.setTimeout() 定时器2、代码示例 - window.clearTimeout() 取消定时器

2025-12-02 20:45:00 1579 1

原创 【Web APIs】BOM 浏览器对象模型 ② ( window 对象常用事件 | onload 事件 | DOMContentLoaded 事件 | onresize 事件 )

一、window 对象常用事件1、window 对象 onload 事件2、window 对象 DOMContentLoaded 事件3、window.onload 事件 与 DOMContentLoaded 事件对比4、window.onresize 调整窗口大小事件二、代码示例1、代码示例 - 没有使用 onload 事件2、代码示例 - 使用 window.onload 赋值 添加 onload 事件3、代码示例 - 使用 window.addEventListener 添加 onlo

2025-12-01 23:45:00 959

原创 【Web APIs】BOM 浏览器对象模型 ① ( BOM 简介 | 常用的 BOM 对象 | BOM 特点 | BOM 与 DOM 对比 | window 对象简介 )

一、BOM 浏览器对象模型 简介1、BOM 简介2、常用的 BOM 对象3、BOM 特点4、BOM 浏览器对象模型 与 DOM 文档对象模型 对比二、window 对象简介1、window 对象作用2、全局属性3、全局方法4、完整代码示例

2025-12-01 22:45:00 2732 1

原创 【人工智能】AI 人工智能 技术 学习路径分析 ③ ( NLP 自然语言处理 )

一、第五步 : NLP 自然语言处理1、学习目标3、入门阶段 - 文本预处理① 语言基础与 NLP 认知② 文本预处理③ 传统 NLP 工具与基础模型4、进阶阶段 - 深度学习 与 Transformer① 词向量② 序列模型③ Transformer 架构④ 预训练模型5、实战阶段 - 工程落地① 工程任务类型② 工程核心开发工具③ 工程部署与优化

2025-11-30 23:45:00 1239 1

原创 【自动驾驶】Autoware.Universe 开发概述 ④ ( 高精地图构建 | 点云地图 Pointcloud Map | 矢量地图 Vector Map | 点云地图 与 矢量地图 关系 )

一、高精地图构建1、高精地图构成2、点云地图 Pointcloud Map3、矢量地图 Vector Map二、点云地图 与 矢量地图 关系1、点云地图作用2、矢量地图作用3、点云地图 与 矢量地图 二者关联

2025-11-30 21:45:54 952 1

原创 【人工智能】AI 人工智能 技术 学习路径分析 ② ( 深度学习 -> 机器视觉 )

一、第四步:深度学习1、学习目标2、学习内容① 深度学习基础② 深度学习框架③ 核心网络结构二、第五步 : 机器视觉 应用方向1、学习目标2、计算机视觉基础3、核心任务与模型① 图像分类② 目标检测③ 图像分割④ 生成对抗网络

2025-11-29 23:29:11 987 4

原创 【人工智能】AI 人工智能 技术 学习路径分析 ① ( Python语言 -> 微积分 / 概率论 / 线性代数 -> 机器学习 )

一、第一步 : Python 语言基础1、学习目标2、学习内容① Python 语法② Python 第三方库③ 开发工具二、第二步 : 高等数学 / 概率论 / 线性代数 数学基础1、学习目标2、学习内容① 线性代数② 高等数学② 概率论与数理统计三、第三步 : 机器学习1、学习目标2、学习内容① 机器学习基础概念② 监督学习算法③ 无监督学习算法④ 模型优化与调参

2025-11-29 22:01:35 6811 11

原创 【自动驾驶】小型团队开发自动驾驶技术方案分析 ( 核心原则 | 从底层到上层分模块技术栈推荐 | 基础开发环境和工具链选择 | 硬件选型 | 基于开源框架二次开发核心算法模块 )

小型团队开发自动驾驶技术的核心原则是控制成本、快速迭代和聚焦场景。技术选型应优先复用开源生态(如ROS 2、Autoware),避免自研基础算法,重点适配业务场景(园区巡检/低速物流)。硬件选用标准化设备(Jetson Orin计算平台、国产激光雷达),成本控制在10-20万元/车。算法开发基于成熟框架:感知用YOLOv8+PointPillars,定位采用NDT-MCL或RTKLIB,规划控制基于Apollo或Autoware模块。开发语言以C++(核心算法)和Python(工具链)为主,采用轻量化部署方

2025-11-28 22:45:24 1167 2

原创 【自动驾驶】Autoware.Universe 开发概述 ③ ( 总结 | 自动驾驶整体架构 | 硬件参考 | 开发文档 | 安装简介 | 仿真教程 )

Autoware.Universe自动驾驶系统架构分析 该系统包含车端和云端两大模块:车端系统由硬件(传感器、计算单元)、操作系统(Ubuntu)、感知决策算法(定位、识别、规划)构成;云端系统提供高精地图、仿真训练等功能。硬件通过ROS 2驱动接入,核心开发技术涉及Docker、ROS 2、C++/Python和Autoware框架。软件架构基于Ubuntu 22.04+ROS 2 Humble,各功能模块(定位、感知、规划等)作为独立ROS节点运行。开发需重点关注传感器驱动集成、算法模块实现及系统联调。

2025-11-28 03:15:00 1208 1

【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

Web APIs网页轮播图 前端代码示例

【Web APIs】网页轮播图 ( 清除默认边距、样式 | ul 列表样式设置 | 循环无缝滚动实现 | 动画节流阀 | 左右按钮触发动画 | 小圆点按钮触发动画 ) https://blog.csdn.net/shulianghan/article/details/155915283?spm=1001.2014.3001.5501 一、轮播图案例 - 需求、结构、页面样式解析 1、需求说明 2、HTML 结构 3、CSS 样式 - 清除边距及默认样式 ① 清除默认内外边距 ② 清除列表样式 ③ 清除链接样式 4、CSS 样式 - 轮播图图片 ① 左浮动横向排列 ② 轮播图图片父容器 ul 列表样式 ③ 轮播图父容器样式 5、CSS 样式 - 轮播图左右按钮 6、CSS 样式 - 轮播图小圆点按钮 二、轮播图案例 - JavaScript 脚本解析 1、页面加载执行脚本、获取必要的 DOM 元素 2、鼠标进出轮播图区域的事件设定 3、小圆点按钮触发动画 4、循环无缝滚动实现 5、动画节流阀 6、左右按钮触发动画 7、自动轮播设置 三、代码示例 - 网页轮播图 1、代码示例 ① HTML 代码 ② CSS 样式代码 ③ JavaScript 脚本代码 - 轮播图控制核心代码 ④ JavaScript 脚本代码 - 动画封装函数 2、执行结果

2025-12-17

Autoware.Universe 2025年11月27日 最新文档

Autoware.Universe 2025年11月27日 最新文档 , 下载地址 : https://github.com/autowarefoundation/autoware-documentation

2025-11-27

FFmpegFLV 格式分析 ④ ( 解析 FLV 代码分析 )

【FFmpeg】FLV 格式分析 ④ ( 解析 FLV 代码分析 ) https://hanshuliang.blog.csdn.net/article/details/145478719 博客源码

2025-10-17

【JT/T 808协议】808 协议开发笔记 ① 博客资源

【JT/T 808协议】808 协议开发笔记 ① ( JT/T 808 协议简介 | 协议数据分析 | 连接建立与断开 与 终端的注册和鉴权 | Java 代码参考 ) 博客地址 : https://blog.csdn.net/shulianghan/article/detail 一、协议简介 1、JT/T 808 协议简介 2、JT/T 808 协议应用场景 二、协议数据分析 1、数据类型 2、数据消息结构 3、标志位 4、消息头 ① 消息体属性格式 ② 消息包封装项 ③ 消息流水号 ④ 总结 5、消息体 6、校验码 三、连接建立与断开 与 终端的注册和鉴权 1、连接建立与断开 2、心跳包案例 3、终端注册与注销 4、终端鉴权 四、Java 代码参考 1、常见的消息类型 2、工具类 3、消息头封装类 4、拼接数据封装类

2025-02-21

AndroidAndroid 悬浮窗开发

【Android】Android 悬浮窗开发

2025-02-18

FFmpegH.264 格式分析 ② ( 网络抽象层单元 NALU - NALU 功能结构 - VCL 视频编码层 - NAL 网络提取层 - H.264 封装模式 - annexb 模式 )

一、网络抽象层单元 - NALU ( Network Abstraction Layer Unit ) 1、NALU 简介 2、NALU 常见的数据类型 3、NALU 传输注意事项 4、NALU 功能结构 ① 视频编码层 ② 网络提取层 ③ NALU 的 VCL 和 NAL 对应的 nal_unit_type 类型 5、NALU 数据结构 ① Start Code 起始标志位 ② NALU Header 头 ③ NALU Payload 载荷 二、H.264 封装模式 - annexb模式 / MP4 模式 1、Annex B 模式 2、MP4 模式 3、Annex B 和 MP4 模式的对比 三、将 MP4 模式 转为 Annex B 模式

2025-01-07

【Android UI】SurfaceView中使用 Canvas 绘制可缩放大图

【Android UI】SurfaceView中使用 Canvas 绘制可缩放大图 ( 拖动和缩放相关的变量 | Canvas 绘图函数 | 手势识别 多点触控流程 | 拖动图片 | 缩放图片 ) 博客链接:https://blog.csdn.net/shulianghan/article/details/143950948 一、需求分析 和 核心要点 说明 1、需求说明 2、核心要点 - 拖动和缩放相关的变量 3、核心要点 - Canvas 绘图函数 4、核心要点 - 手势识别 多点触控流程 5、核心要点 - 拖动图片 6、核心要点 - 缩放图片 二、完整代码示例 1、环境说明 2、SurfaceView 完整代码 3、运行结果

2024-11-21

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

空空如也

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

TA关注的人

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