自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【iOS】阿里云 APP 备案流程 ( 备案入口 | 自助备案 | 填写主办者及负责人信息 | 填写 APP 信息 | 获取秘钥信息 | 传图片资料 | 提交初审 | 工信部短信校验 )

一、阿里云 APP 快速备案流程 文档二、填写前置信息1、准备资料2、备案入口3、选择自助备案4、填写 APP 名称5、信息校验6、填写主办者信息7、填写主办者负责人信息三、设置 APP 信息1、设置 APP 基础信息2、设置 APP 接入信息3、设置 APP 运行平台 - iOS 平台4、设置 APP 运行平台 - Android 平台5、设置 APP 负责人信息四、上传图片资料五、提交初审六、工信部短信校验

2026-07-24 15:18:50 251

原创 【Flutter】iOS 网络权限设置 ② ( 配置 iOS 平台可使用 HTTP 访问 | ATS 网络安全强制规范 )

一、iOS ATS 机制概述1、简介2、核心原理二、配置操作步骤与方案详解1、方案一 : 指定域名例外 ( 生产环境推荐 , 可正常上架 )操作步骤Xcode 可视化操作对应项2、方案二 : 本地局域网放行 ( 开发调试推荐 , 审核合规 )适用场景3、方案三 : 全局允许所有 HTTP ( 仅本地临时调试 , 禁止上架 )4、商业环境 : 多环境配置封装案例实现思路Debug 环境完整配置示例Release 环境完整配置示例生效验证三、注意事项与常见坑点排查1、IP 地址配

2026-07-12 21:35:26 607 1

原创 【Flutter】iOS 网络权限设置 ① ( WLAN/蜂窝全局联网权限设置 )

一、iOS 全局联网权限机制详解1、iOS 四类网络管控机制辨析2、全局联网弹窗的核心原理适用范围触发条件弹窗选项与对应行为权限记忆规则3、Info.plist 配置二、开发实现步骤与代码示例1、基础触发 : 主动唤起授权弹窗iOS 原生 Swift 实现示例Flutter 实现2、权限状态检测 : 判断当前联网权限原生 Swift 精准检测Flutter 间接检测方案3、权限引导 : 跳转系统设置页开启权限原生 Swift 跳转代码Flutter 跳转代码4、商业环境封

2026-07-12 20:55:03 486

原创 【Flutter】MacOS 系统搭建 Flutter 开发环境 ④ ( 创建 AppID | 生成 CSR 证书 | 创建开发证书和发布证书 | 注册真机设备 UDID | 创建描述文件 )

一、Flutter iOS 开发与开发者账号基础1、Flutter iOS 开发简介2、iOS 开发者账号类型对比3、签名打包全流程总览二、苹果开发者后台完整配置流程1、创建 App ID ( 应用唯一标识符 )2、生成 CSR 证书签名请求文件3、清理旧证书 ( 可选 )3、创建开发证书与发布证书创建 iOS Development 开发证书创建 iOS Distribution 发布证书4、注册真机设备 UDID5、创建描述文件 ( Provisioning Profile )

2026-07-11 23:05:19 471

原创 【Flutter】Flutter Hive 数据库开发 ( 使用 hive、hive_flutter、hive_generator、build_runner 插件开发 Hive 数据库功能 )

前言一、Flutter Hive 数据库简介1、什么是 Hive2、Hive 的核心优势3、Flutter 常见本地数据库对比4、Flutter 各数据库适用场景二、Flutter Hive 完整开发流程1、配置依赖2、初始化 Hive 数据库3、Hive 基础数据操作4、自定义对象存储 TypeAdapter5、监听数据变化三、生产环境示例 : 封装与工程化1、数据库管理单例2、业务层数据仓库封装3、在应用中初始化四、开发注意事项与常见坑点1、核心注意事项

2026-07-11 10:43:51 502

原创 【Flutter】TTS 功能开发 ( 使用 flutter_tts 插件开发兼容 Android 和 iOS 平台的 TTS 功能 )

前言一、Flutter TTS 方案概述1、flutter_tts 插件方案简介2、其它备选方案二、flutter_tts 插件配置流程1、引入依赖2、Android 端配置3、iOS 端配置三、flutter_tts 插件代码1、TTS 单例服务类2、TTS 事件监听3、获取可用语言与音色4、完整工具类封装5、页面中调用示例四、开发注意事项总结

2026-07-10 18:11:05 710

原创 【Flutter】Flutter 启动图标制作 ( 使用 flutter_launcher_icons 插件自动生成 Android / iOS 平台使用的适配各个屏幕分辨率的图标 )

一、flutter_launcher_icons 简介1、简介2、原理二、使用步骤1、引入依赖2、准备图标资源3、编写插件配置4、执行生成命令5、验证与生效总结

2026-07-10 16:08:15 330

原创 【iOS】iOS 公司开发者账号申请 ④ ( 添加开发者账号 )

一、添加开发者前置条件1、添加开发者前置条件2、员工提供内容二、添加过程1、登录苹果开发者官网2、跳转到 App Store Connect3、用户和访问4、填写基本信息5、设置职能权限6、设置可访问 APP7、发送邀请三、添加注意事项

2026-07-09 18:54:48 343

原创 【Flutter】Flutter 进程保活 ③ ( 屏幕常亮设置 | Flutter 禁止息屏、关闭自动锁屏、屏蔽系统屏保 )

一、Flutter 屏幕常亮需求1、业务场景2、底层核心原理二、使用 wakelock_plus 插件开发 Flutter 屏幕常亮功能1、wakelock_plus 插件介绍2、引入 wakelock_plus 依赖3、wakelock_plus 插件对应的不同平台配置4、wakelock_plus 插件基础用法代码5、wakelock_plus 插件监听单个页面的生命周期6、wakelock_plus 插件监听 APP 应用前后台变化7、wakelock_plus 插件开发注意事项

2026-07-08 14:50:06 310

原创 【Flutter】Flutter 进程保活 ② ( 关闭电池优化 | Android 端电池优化简介 | 使用 auto_start_flutter 插件关闭 Android 端电池优化 )

一、Android 端电池优化简介二、Flutter 使用 auto_start_flutter 插件关闭 Android 端电池优化1、auto_start_flutter 插件简介2、AndroidManifest.xml 添加权限3、添加 pubspec.yaml 依赖4、Dart 单例工具类代码5、业务场景调用代码三、总结

2026-07-07 21:11:53 215

原创 【Flutter】Flutter 进程保活 ① ( Flutter 后台保活底层机制 | flutter_background_service 插件开发流程 )

一、Flutter 后台保活底层机制1、Flutter 后台保活底层机制2、flutter_background_service 插件简介3、Dart Isolate 简介4、Isolate 核心组件 / 通信方式 / 独立内存二、使用 flutter_background_service 插件开发 Flutter 后台保活功能1、添加插件依赖2、添加 Android 权限 和 配置保活服务3、android/app/build.gradle 配置4、iOS 后台配置5、iOS 的 In

2026-07-07 18:48:26 283

原创 【iOS】iOS 公司开发者账号申请 ③ ( 查询邓白氏编码 | 注册开发者 | 提交资料 )

一、苹果开发者注册1、查询邓白氏编码2、注册开发者3、提交资料4、验证邮箱5、开发者账号付费

2026-07-06 13:19:41 352

原创 【Flutter】MacOS 系统搭建 Flutter 开发环境 ③ ( Android Studio Ladybug 下载 / 安装 / 配置 / 编译 | SDK Manager 配置 )

一、Android Studio Ladybug 下载 / 安装 / 配置 / 编译1、确认系统芯片类型2、Android Studio Ladybug 下载3、SDK Manager 配置下载 API 36 及以上版本下载 SDK Tools4、同意 android-licenses 协议5、编译 Android 应用编译 debug 版本应用编译 release 版本应用

2026-06-30 15:19:49 314

原创 【iOS】iOS 公司开发者账号申请 ② ( 企业邮箱设置 | 阿里云企业邮箱设置 | 阿里云企业邮箱域名解析 )

一、阿里云企业邮箱设置1、阿里云企业邮箱申请2、阿里云企业邮箱域名解析3、阿里云企业邮箱设置

2026-06-29 19:56:39 268

原创 【iOS】iOS 公司开发者账号申请 ① ( 企业邮箱设置 | 腾讯企业邮箱设置 | 企业邮箱解析 )

一、腾讯企业邮箱设置1、腾讯企业邮箱申请2、腾讯企业邮箱解析3、腾讯企业邮箱设置

2026-06-29 18:47:27 345

原创 【iOS】iOS 个人开发者账号申请 ( 开发者账号分类 | 个人开发者账号申请流程 )

一、iOS 开发者账号分类1、个人开发者账号2、公司 / 组织账号3、代码格式化4、免费开发者二、个人开发者账号申请流程1、注册苹果账号2、注册开发者3、取消自动扣费功能

2026-06-27 16:52:51 628

原创 【Nginx】Nginx 反向代理设置 ( 内网访问需求 | Nginx 服务器常用命令 | Nginx 反向代理部署方案 )

一、内网访问需求二、Nginx 反向代理三、Nginx 服务器常用命令1、Nginx 常用命令2、Nginx 启动脚本3、Nginx 终止脚本四、Nginx 反向代理部署方案1、Nginx 下载2、Nginx 配置3、Nginx 配置注释详解 ( 仅做参考 )

2026-06-25 16:11:00 693

原创 【Flutter】Dart 语言 const 与 final 关键字对比 ( const 与 final 关键字定义 | const 与 final 关键字使用场景 | const 常量构造函数 )

一、const 与 final 关键字定义1、final 关键字定义2、const 关键字定义二、const 与 final 关键字对比三、const 与 final 关键字使用场景1、final 关键字使用场景2、const 关键字使用场景四、const 常量构造函数1、基本概念2、const 构造函数 的 两种调用方式3、const 常量构造函数 的 意义

2026-06-22 20:28:25 327

原创 【Flutter】Flutter 组件 ④ ( 组件渲染 的 三棵树理论 | Widget 树 → Element 树 → RenderObject 树 )

一、组件渲染 的 三棵树理论 ( Widget 树 → Element 树 → RenderObject 树 )二、三者之间的关系1、三棵树对应关系2、三棵树完整运转流程3、页面重建刷新逻辑特点4、页面 首次渲染 与 后续更新 流程三、StatelessWidget 体系中的三棵树四、StatefulWidget 体系中的三棵树

2026-06-16 11:20:19 419

原创 【Flutter】Flutter 中的 Android / iOS 特殊配置 ② ( Android 应用包名 Application ID 设置 | iOS 捆绑包标识符 Bundle ID 设置)

一、Android 应用包名 Application ID 设置二、iOS 捆绑包标识符 Bundle ID 设置

2026-06-11 13:17:30 351

原创 【Flutter】Flutter 编译 Web 网站 ① ( Tomcat 部署 Web 网站 )

一、Flutter 编译 Web 网站二、Tomcat 部署 Web 网站1、下载安装 Tomcat2、配置环境变量3、部署 Web 网站并启动 Tomcat4、防火墙配置 8080 入站规则5、路由器配置端口映射

2026-06-10 16:06:51 391

原创 【Flutter】Flutter 中的 Android / iOS 特殊配置 ① ( 网络权限配置 | HTTP 明文传输配置 | 应用名称配置 )

一、网络权限配置1、Android 网络权限配置2、iOS 网络权限配置二、HTTP 明文传输配置1、Android 开启 HTTP 明文传输方案一 : 简洁配置 全局放行所有 http 仅开发调试 不建议生产环境使用方案二 : 规范方案 精准配置域名 生产环境推荐2、iOS 开启 HTTP 明文传输方案一 : 简洁配置 全局放开所有 HTTP 调试使用 上架会被拒方案二 : 指定域名放行 HTTP 生产环境使用 上架会通过三、应用名称配置1、Android 配置应用名称2、iOS

2026-06-05 09:05:12 483

原创 【Flutter】Dart 单例 ( 单例模式核心规则 | 饿汉式单例 | 懒汉式单例 | 极简空安全 懒汉式单例 | 工厂构造函数单例 )

一、单例模式核心规则二、饿汉式单例 ( 最推荐、企业首选 )1、饿汉式单例简介2、私有命名构造函数3、静态最终常量对象三、懒汉式单例1、懒汉式单例简介2、私有命名构造函数3、私有静态变量4、Getter 访问器5、空赋值运算符6、空安全断言符四、极简空安全 懒汉式单例1、极简空安全 懒汉式 单例简介2、箭头函数五、工厂构造函数单例1、工厂构造函数单例 简介2、factory 工厂构造函数

2026-06-04 09:02:51 391

原创 【Flutter】Flutter 异步方法调用 ( async 和 await 关键字解析 | Dart 单线程 | await 调用方式对比 | Future<void> 返回值作用 )

一、错误记录二、原理分析1、报错分析2、async 和 await 关键字解析3、Dart 单线程4、await 调用方式对比使用 await 关键字调用不使用 await 关键字调用5、Future\<void> 返回值作用三、解决方案1、方案 1 : 方法加上 async2、方案 2 : 调用去掉 await

2026-06-03 16:55:36 296

原创 【Flutter】Flutter 组件 ③ ( 组件位置设置 | 相对定位 | 绝对定位 | 位置偏移定位 | FractionallySizedBox 百分比定位 | alignment 百分比 )

一、相对定位1、Align 精准对齐定位3、Padding 内边距 + Margin 外边距 定位5、Row / Column线性主轴/交叉轴定位二、Stack + Positioned 绝对定位三、位置偏移设置四、FractionallySizedBox 百分比尺寸+位置五、alignment 属性百分比位置

2026-06-03 11:07:55 338

原创 【Flutter】Flutter 组件 ② ( 组件大小设置 | 固定大小 | 自适应大小 | 填充父容器 | 百分比大小 )

一、固定大小1、固定大小 推荐用法2、其它设置 固定大小 的组件3、固定大小用法总结二、自适应大小三、充满父容器四、百分比宽高

2026-06-02 20:31:52 411 2

原创 【Flutter】Flutter 组件 ① ( StatelessWidget 无状态组件 与 StatefulWidget 有状态组件 )

一、StatelessWidget 无状态组件 与 StatefulWidget 有状态组件1、StatelessWidget 无状态组件2、StatefulWidget 有状态组件3、StatelessWidget 与 StatefulWidget 对比4、Android 中的组件对照对应 StatelessWidget 无状态组件对应 StatefulWidget 有状态组件

2026-06-02 19:46:01 323

原创 【错误记录】Flutter 开发中 adb logcat 输出 Android 调试数据出现中文乱码 ( CMD 命令行终端临时设置 | 设置 Windows 全局 UTF-8 )

一、错误记录二、解决方案1、CMD 命令行终端临时设置2、设置 Windows 全局 UTF-8

2026-06-02 15:32:59 329

原创 【错误记录】flutter attach 附加设备 执行报错 ( 附加设备注意事项 )

flutter attach -d PXUYD22628020934Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!Waiting for a connection from Flutter on CTR AL00...The Dart VM Service was not discovered after 30 seconds. This is

2026-06-02 11:19:02 263

原创 【错误记录】flutter pub get 执行报错 ( 打开 Windows 开发者模式 )

Please enable Developer Mode in your system settings. Run start ms-settings:developersto open settings.

2026-06-01 18:27:29 336

原创 【错误记录】flutter clean 执行报错 ( build 目录下的文件被占用 / 模拟器 / VS Code / Android Studio / 文件资源管理器 占用 )

Failed to remove build. A program may still be using a file in the directory or the directory itself. To find and stopsuch a program

2026-06-01 17:36:59 235

原创 【Flutter】Flutter 常用命令 ( 官方文档 | 环境与版本管理 | 项目创建与清理 | 设备与运行 | 构建与打包 | 环境与版本管理 | 代码管理 | 其它命令 )

一、官方文档二、环境与版本管理1、环境检查2、版本与渠道3、全局配置三、项目创建与清理1、创建项目2、清理缓存四、设备与运行 ( ★ 重点 ★ )1、 查看设备2、 运行项目3、 热重载 / 热重启4、 附加到正在运行的 App五、发布命令 : 构建与打包1、Android 打包2、iOS 打包 ( Mac 必需 )3、桌面端打包4、Web 打包六、环境与版本管理1、依赖管理 ( pub 命令 )七、代码管理1、代码分析 ( 检查语法 / 规范错误 )2、格式化代

2026-06-01 10:41:05 1169

原创 【Flutter】MacOS 系统搭建 Flutter 开发环境 ② ( Visual Studio Code 下载安装 | VS Code 配置 Flutter 开发环境 | 运行Flutter )

一、Visual Studio Code 安装1、下载地址简介2、下载 VS Code二、Visual Studio Code 配置 Flutter 开发环境1、安装 Flutter 扩展插件 - 目的 :VS Code 进行 Dart 代码提示2、配置 Flutter SDK 路径 - 目的 : 执行 Flutter 一系列命令3、VS Code 命令面板 执行 Flutter 命令打开命令面板配置 Flutter 运行设备打开模拟器运行程序 F5

2026-05-30 14:54:18 737

原创 【Flutter】Windows 平台 Flutter 环境安装 ② ( Visual Studio Code 下载安装 | VS Code 配置 Flutter 环境 | 真机运行 Flutter)

一、Visual Studio Code 安装1、下载地址简介2、下载 VS Code3、用户级 VS Code 与 系统级 VS Code4、Flutter 开发选择系统级 VS Code5、安装 VS Code6、设置 VS Code 主题二、Visual Studio Code 配置 Flutter 开发环境1、安装 Flutter 扩展插件 - 目的 :VS Code 进行 Dart 代码提示2、配置 Flutter SDK 路径 - 目的 : 执行 Flutter 一系列命令

2026-05-30 12:29:46 1101

原创 【Flutter】MacOS 平台 Flutter 环境安装 ① ( 安装 MacOS 中的支持软件 | 安装 Flutter 3.41.7 开发环境 | 安装 Xode 及相关工具 )

一、安装 MacOS 中的支持软件1、安装 homebrew2、安装 zsh3、安装 Git4、安装 Rosetta 2二、安装 Flutter 3.41.7 开发环境三、安装 Xcode 和 模拟器四、安装 Xcode 相关开发工具1、安装 Xcode CLI 命令行 ( 必须执行 )2、安装 Ruby 3.2.9 版本3、安装 CocoaPods 工具4、验证 Flutter 环境 - flutter doctor五、运行 Flutter 项目1、查看可用的 Flutter 设

2026-05-29 19:38:11 354

原创 【Flutter】使用 Git 管理 Flutter 源码进行 Windows + MacOS 双端开发 ( Gitee 创建项目 | 生成 SSH 秘钥 | Git 命令 )

一、使用 Git 管理 Flutter 代码1、Gitee 项目创建2、设置全局用户和邮箱3、生成 SSH 秘钥4、编写 .gitignore 文件5、初始化 Git 目录6、添加文件到暂存区7、Windows / MacOS / Linux 换行符问题8、绑定远程地址9、推送代码到远程仓库二、获取 Git 代码1、设置全局用户和邮箱2、Mac 中配置 Gitee 秘钥3、Mac 中 clone 远程仓库 Flutter 源码到本地三、双端开发流程

2026-05-29 14:00:07 539 1

原创 【Flutter】Windows 平台 Flutter 环境安装 ① ( 环境版本 | AS下载安装 | Flutter 安装 | 创建运行 Flutter | Trae IDE AI 编辑器 )

一、Flutter 环境版本选择1、Flutter 开发环境2、Flutter 开发环境与版本选择二、Android Studio Ladybug 下载安装三、Flutter 安装1、安装 Dart 插件2、安装 Flutter 插件3、安装 Flutter SDK6、Android Studio 配置 Flutter SDK7、验证 Flutter 是否正确四、创建 Flutter 工程1、创建 Flutter 工程2、命令行运行 Flutter 项目四、AI 编辑器 Trae

2026-05-28 22:04:57 601 1

原创 【错误记录】Flutter 编译 Android APK 文件安装包报错 ( 国内镜像源设置 )

一、错误记录二、问题分析1、阿里云的镜像不能用2、Flutter 社区源可用但是速度慢 ( 可用 )3、上海交大的源不可用4、清华源不可用三、最终解决方案

2026-05-28 19:09:19 635

原创 【每日随笔】面子与里子 ( 世道分工 明暗平衡 | 个人层面面子与里子 | 神明不能亮血条 )

一、面子与里子1、面子与里子2、世道分工 明暗平衡3、个人层面面子与里子二、神明不能亮血条1、西游记案例2、印度案例3、美国案例

2026-05-20 19:01:59 539

原创 【错误记录】RabbitMQ 报错 ( inequivalent arg ‘durable‘ for exchange ‘xxx‘ in vhost ‘/‘: received ‘true‘ bu )

inequivalent arg 'durable' for exchange 'xxx' in vhost '/': received 'true' but current is 'false'

2026-04-30 09:57:30 522 1

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 语法基础 ③ ( 自定义组件生命周期回调函数 - 页面生命周期回调函数 )

【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 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 语法基础 ② ( 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

Web APIsJavaScript 开发框架 ① ( JS 框架核心概念 - JS 框架与 JS 插件 - 常用前端框架 - 使用 Bootstrap 实现轮播图 )

【Web APIs】JavaScript 开发框架 ① ( JS 框架核心概念 | JS 框架与 JS 插件 | 常用前端框架 | 使用 Bootstrap 实现轮播图 ) https://hanshuliang.blog.csdn.net/article/details/156560620?spm=1011.2415.3001.5331 博客源码 一、JavaScript 框架 1、JS 框架核心概念 2、JS 框架与 JS 插件 3、常用前端框架 二、使用 Bootstrap 实现轮播图 1、核心概念 2、代码示例 3、执行效果

2026-01-04

Web APIs移动端常用的 JavaScript 开发插件 ⑤ ( Swiper 插件案例 - 3D 木马特效 )

【Web APIs】移动端常用的 JavaScript 开发插件 ⑤ ( Swiper 插件案例 - 3D 木马特效 ) https://hanshuliang.blog.csdn.net/article/details/156532805?spm=1011.2415.3001.5331 博客代码示例 一、Swiper 插件案例 - 3D 木马特效 1、需求说明 2、官方示例代码 二、完整流程 1、拷贝并导入 CSS 和 JS 依赖文件 2、修改 HTML 结构 3、拷贝 CSS样式 4、拷贝 JS 脚本 5、样式调整 三、完整代码示例 1、HTML 代码 - index.html 2、CSS 样式代码 - index.css 3、JS 脚本代码 - index.js 4、执行效果

2026-01-03

Web APIs移动端常用的 JavaScript 开发插件 ④ ( Swiper 插件案例 )

【Web APIs】移动端常用的 JavaScript 开发插件 ④ ( Swiper 插件案例 | 导入外部依赖 | 编写 HTML 结构 | 编写 CSS 代码 | 编写 JS 代码 ) 博客源码示例 https://hanshuliang.blog.csdn.net/article/details/156516906?spm=1011.2415.3001.5331 一、Swiper 插件案例 1、需求说明 2、HTML 页面设置 ① 导入外部依赖 ② 编写 HTML 结构 3、编写 CSS 代码 4、编写 JS 代码 二、代码示例 - Swiper 插件案例 1、HTML 代码 - index.html 2、JavaScript 脚本 - index.js 3、CSS 样式 - index.css 4、执行效果 ————————————————

2026-01-02

Web APIs移动端返回顶部案例 ( 返回顶部按钮 显示 / 隐藏 设置 - 返回顶部操作 )

【Web APIs】移动端返回顶部案例 ( 返回顶部按钮 显示 / 隐藏 设置 | 返回顶部操作 ) https://hanshuliang.blog.csdn.net/article/details/156455859 博客源码 一、移动端返回顶部案例 1、需求说明 2、返回顶部按钮 显示 / 隐藏 设置 3、返回顶部操作 二、代码示例 - 移动端返回顶部案例 1、代码示例 2、执行结果

2025-12-31

Web APIs移动端轮播图案例

【Web APIs】移动端轮播图案例 ( 轮播图自动播放 | 设置无缝衔接滑动 | 手指滑动轮播图 | 完整代码示例 ) 博客地址 : https://hanshuliang.blog.csdn.net/article/details/156421377 一、移动端轮播图案例 1、需求说明 2、HTML 结构布局 4、轮播图自动播放 5、设置无缝衔接滑动 6、手指滑动轮播图 二、代码示例 - 移动端轮播图案例 1、代码示例 2、执行结果

2025-12-31

Web APIs动画案例 - 筋斗云导航栏 源码

【Web APIs】动画案例 - 筋斗云导航栏 博客源码 博客地址 : https://hanshuliang.blog.csdn.net/article/details/156160033

2025-12-22

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

空空如也

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

TA关注的人

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