- 博客(41)
- 收藏
- 关注
原创 openJiuwen在Ubuntu上的安装教程
OpenJiuWen 是一个面向企业与开发者打造的开源 AI Agent 平台,致力于提供灵活、强大且易用的智能体开发与运行能力。通过 OpenJiuWen,用户可以快速构建能处理复杂任务的 AI 智能体,支持多 Agent 协同、工作流编排、插件扩展、知识库集成等核心功能,适用于从个人实验到企业级落地的多种场景。为了便于本地开发、测试和私有化部署,OpenJiuWen 提供了基于 Docker 的一键部署方案。
2026-01-04 18:06:14
680
原创 洛谷P1601 P1303 P1009题解
以上就是洛谷P1601 P1303 P1009题解的全部内容。希望对你有所帮助。如果有任何问题,欢迎交流。
2025-12-25 10:44:23
337
原创 教你一招:在VS Code上轻松玩转Markdown
如果不喜欢默认的预览样式,可以在 Markdown Preview Enhanced 插件的设置中,选择自定义 CSS 样式,调整字体、颜色、行距等。在 VS Code 上使用 Markdown,核心是「安装插件+掌握基础语法+利用实时预览验证效果」。新手建议先从标题、列表、加粗等简单语法练起,熟悉后再尝试表格、代码块、导出等进阶功能,很快就能上手!
2025-12-23 14:20:02
1713
原创 Flutter 性能优化实战:UI 卡顿、内存泄漏排查与解
Flutter 性能优化的核心思路是“先定位,后优化”:通过 DevTools 等工具精准定位 UI 卡顿的耗时环节和内存泄漏的引用源头,再针对性采用“减少重建、简化布局、异步任务隔离、资源及时释放”等策略。实际开发中,应养成“边开发边优化”的习惯,避免性能问题堆积;同时,在生产环境中持续监控性能数据,及时发现并解决线上问题。需要注意的是,性能优化并非“越极致越好”,需在优化效果与开发成本之间寻找平衡。优先解决用户可感知的卡顿、崩溃等严重问题,再逐步优化。
2025-12-23 13:58:52
801
原创 洛谷P1042 P2670 P1563题解
以上就是洛谷P1042 P2670 P1563题解的全部内容。希望对你有所帮助。如果有任何问题,欢迎交流。
2025-12-23 10:53:41
273
原创 Flutter 国际化与本地化:多语言适配最佳实践
Flutter 国际化与本地化的核心是通过 ARB 资源文件管理多语言文本,结合和工具实现类型安全的代码生成,再通过状态管理实现手动切换语言功能。最佳实践要点:规范 ARB 资源文件命名和键名,提升可维护性。必须配置原生工程支持的语言列表,否则部分语言无法生效。使用状态管理(如 Provider)管理 Locale,实现全局语言切换。结合intl包处理日期、数字等格式化需求,适配不同地区习惯。测试覆盖所有支持的语言和核心场景,避免布局错乱和文本错误。
2025-12-17 00:10:51
980
原创 Flutter 主题与深色模式:全局样式统一与动态切换
自定义组件若需支持主题适配,应通过获取全局主题样式,而非硬编码颜色、文本样式等。@overridebackgroundColor: theme.colorScheme.primary, // 继承主题主色),text,.copyWith(color: Colors.white), // 继承文本样式),Flutter 主题与深色模式的实现核心是通过ThemeData统一样式配置,结合状态管理实现动态切换。本文从主题核心概念出发,逐步讲解了全局样式封装、深色模式配置、基于。
2025-12-17 00:09:55
926
原创 Flutter 列表优化:ListView 性能调优与复杂列表实现
对于更复杂的滚动场景(如列表头部吸顶、多列表嵌套、自定义滚动效果),仅使用 ListView 难以满足需求。此时可使用SliverList结合,实现更灵活、高性能的滚动布局。ListView 优化的核心是“减少不必要的构建和绘制”,通过选择合适的构造函数、优化列表项布局、合理设置缓存、优化图片加载等手段,可显著提升列表的滚动流畅度。对于复杂列表场景,需结合SliverList、异步构建、动画优化等高级技巧,平衡用户体验与性能。
2025-12-17 00:08:35
696
原创 Flutter 表单开发实战:表单验证、输入格式化与提交处理
当内置格式化器无法满足需求时,可通过继承自定义格式化器。@override) {// 1. 去除旧值中的分隔符// 2. 获取新输入的文本(去除分隔符)// 3. 限制输入长度为11位// 4. 拼接分隔符i++) {// 第3位后添加分隔符// 第7位后添加分隔符(原3位+分隔符+4位)// 5. 返回格式化后的文本// 控制密码是否隐藏@overrideappBar: AppBar(title: const Text("表单联动示例")),
2025-12-17 00:07:22
899
原创 Flutter 路由进阶:命名路由、动态路由与路由守卫实现
/ 首页@overrideappBar: AppBar(title: const Text('首页')),// 跳转到详情页(通过路由名称)},child: const Text('跳转到详情页'),),),// 详情页@overrideappBar: AppBar(title: const Text('详情页')),// 返回上一页},child: const Text('返回首页'),),),当参数较多时,使用Map。
2025-12-17 00:03:46
1079
原创 Flutter 自定义 Widget 开发:从基础绘制到复杂交互
自定义 Widget 主要用于解决两类问题:一是 UI 个性化,比如实现独特的图形、渐变效果、不规则布局等系统 Widget 无法直接满足的视觉需求;二是交互逻辑定制,比如封装特定的手势响应、状态管理逻辑,形成可复用的功能组件。相比直接使用系统 Widget 组合,自定义 Widget 能提升代码复用性、降低耦合度,同时让 UI 与业务逻辑更贴合产品需求。下面通过实现一个带渐变效果的圆形进度条,掌握@override。
2025-12-16 23:59:38
1324
原创 Flutter 动画实战:隐式动画、显式动画与自定义动画控制器
通过自定义 AnimationController 的行为、结合多个 Tween 和 Curve,可实现更复杂的高级动画效果(如序列动画、并行动画、弹性动画)。通过自定义Curve或使用 Flutter 内置的弹性曲线(如@override@override// 1. 使用内置弹性曲线curve: Curves.elasticOut, // 弹性曲线(先超出目标值再回弹)),// 循环播放@override@override。
2025-12-16 23:58:13
845
原创 Flutter 本地存储方案:SharedPreferences、SQFlite 与 Hive
SharedPreferences、SQFlite、Hive 三种本地存储方案无绝对优劣,核心差异在于适配场景:SharedPreferences 胜在“简单、轻量”,适合少量配置;SQFlite 胜在“结构化、强查询”,适合大量复杂数据;Hive 胜在“高性能、跨平台、支持复杂对象”,兼顾易用性与扩展性。开发者在选型时,应跳出“技术优劣”的误区,聚焦业务需求:明确数据规模、数据类型、查询复杂度,结合团队技术栈选择最能降低开发成本、提升应用性能的方案。
2025-12-16 23:51:52
1195
原创 Flutter 网络请求完全指南:Dio 封装与拦截器实战
Dio 作为 Flutter 网络请求的首选库,其强大的功能与灵活的扩展性能够满足从简单到复杂的所有网络场景需求。结合本文内容,总结以下最佳实践:采用“工具类 + 接口层 + 模型层”的分层封装方案,提升代码可维护性;合理使用拦截器实现 Token 管理、日志打印、缓存处理,减少重复代码;通过取消无效请求,避免内存泄漏与数据错乱;统一异常处理机制,区分网络异常、HTTP 异常与业务异常,提升用户体验;使用环境变量管理baseUrl,区分开发/测试/生产环境,避免硬编码;配合。
2025-12-16 23:47:39
1021
原创 Flutter 状态管理全家桶:Provider、Bloc、GetX 实战对比
Provider、Bloc、GetX 没有绝对的优劣之分,核心差异在于设计哲学与适配场景:Provider 胜在“原生、轻量、易上手”,Bloc 胜在“结构化、可追踪、可测试”,GetX 胜在“高效、全能、极简”。开发者在选型时,应跳出“技术优劣”的误区,聚焦项目规模、团队能力与长期维护需求,选择最能降低项目成本的方案。最终建议:新手从 Provider 入手建立状态管理基础认知,进阶学习 Bloc 理解事件驱动与结构化设计思想,在合适场景下灵活运用 GetX 提升开发效率,形成“全栈式”的状态管理能力。
2025-12-16 23:42:09
736
原创 Flutter 与原生交互入门:MethodChannel 基础使用教程
Flutter 作为跨平台框架,虽能实现大部分业务逻辑的跨端复用,但在调用原生能力(如获取设备信息、调用系统API、操作本地硬件等)时,仍需与原生代码(Android 原生、iOS 原生)进行交互。MethodChannel 是 Flutter 提供的三大通信通道之一,专门用于方法调用场景(即 Flutter 调用原生方法,或原生调用 Flutter 方法),适用于一次性的同步/异步通信(如“获取设备型号”“发起原生弹窗”等)。
2025-12-09 17:05:32
734
原创 Flutter 热重载与热重启深度解析:提高开发效率的关键
Flutter 热重载与热重启是开发效率的“双引擎”:热重载以“增量更新、状态保留”为核心,适合 UI 调试、逻辑微调等局部变更场景,实现毫秒级响应;热重启以“全量更新、无兼容限制”为优势,适合类结构变更、依赖新增等全局变更场景,确保代码全量生效。开发者需精准区分二者的适用场景,结合快捷键、代码拆分、状态管理工具等技巧,灵活运用热重载与热重启,最大化减少重复构建时间,聚焦核心业务开发。同时,需注意二者的使用限制,避免因误用导致开发效率下降或应用异常。
2025-12-09 17:01:37
1109
原创 Flutter基础入门与核心能力构建——Widget、State与BuildContext核心解析
Widget描述UI结构(不可变),是UI的“骨架”;State存储动态数据(可变),是UI的“灵魂”,绑定到StatefulWidget后,通过setState触发Widget重建;所有Widget组成Widget树,每个Widget对应一个BuildContext,是UI的“定位与资源钥匙”;组件重建时,通过BuildContext访问全局资源(路由、主题、设备信息),最终将更新后的Widget树渲染为屏幕UI。通俗类比。
2025-12-09 16:44:45
662
原创 Flutter 开发环境配置避坑指南:Windows/macOS/Linux 全平台
Flutter 全平台环境配置的核心避坑点集中在“路径规范”“镜像配置”“依赖适配”三大维度。无论哪个系统,均需遵循“全英文路径+国内镜像优先”的原则,全程依赖诊断问题。遇到报错时,优先查看命令行提示信息,再针对性解决;若问题未解决,可参考 Flutter 官方文档或 GitHub issue 社区(https://github.com/flutter/flutter/issues)获取更多解决方案。
2025-12-08 10:11:27
1730
原创 Flutter 基础组件详解:Text、Image、Button 使用技巧
Text("Flutter 文本样式示例",fontSize: 18, // 字体大小color: Colors.blue, // 字体颜色fontWeight: FontWeight.bold, // 字体粗细fontFamily: "PingFangSC", // 自定义字体(需提前配置)height: 1.5, // 行高(相对于字体大小的倍数)decoration: TextDecoration.underline, // 下划线(lineThrough/overline)
2025-12-08 10:04:16
692
原创 从零开始学 Flutter:状态管理入门之 setState 与 Provider
在 Flutter 中,“状态(State)”可以理解为驱动 UI 变化的数据。比如:按钮点击后显示的“已点击”/“未点击”文本;输入框中用户输入的内容;列表加载完成后展示的数据列表;开关组件的“开启”/“关闭”状态。Flutter 是“声明式 UI”框架,UI 是数据的“映射”——当状态发生变化时,UI 会自动根据新状态重新构建。而状态管理,就是规范“如何修改状态”“如何让 UI 感知状态变化”的一套逻辑。状态管理的核心是“规范状态的创建、修改与传递”。对于 Flutter 初学者,
2025-12-08 10:00:08
799
原创 Flutter 从0到1环境搭建指南
作者:爱吃大芒果本文所属专栏更多专栏本指南将详细介绍 Windows 系统下 Flutter 开发环境的完整搭建流程,从前期准备、工具安装、环境配置到最终验证,帮助零基础开发者快速完成环境搭建,顺利开启 Flutter 开发之旅。
2025-12-03 23:57:40
1563
原创 Dart 语法快速通关:写给 Flutter 开发者的基础教程
Dart 是强类型、单线程、支持 AOT(提前编译)和 JIT(即时编译)的面向对象语言,核心特性贴合 Flutter 开发需求:强类型检查:编译期校验类型,减少运行时错误(支持类型推断,无需显式声明所有类型);单线程模型:通过事件循环(Event Loop)处理异步任务,与 Flutter UI 渲染机制深度契合;兼具面向对象与函数式特性:支持类、继承、泛型,同时支持高阶函数、lambda 表达式等;内存自动管理:基于垃圾回收机制,无需手动管理内存,降低开发成本。
2025-12-02 20:30:21
911
原创 Flutter 与 Firebase 集成:认证、数据库、云存储实战
在移动应用开发中,用户认证、数据存储、文件上传是核心功能模块,手动搭建后端服务不仅耗时耗力,还需应对高并发、安全性等诸多挑战。Firebase 作为 Google 推出的一站式后端云服务平台,提供了认证、实时数据库、云存储等开箱即用的功能,能够快速补齐 Flutter 应用的后端能力,大幅提升开发效率。本教程将以实战为导向,从环境准备入手,逐步实现 Flutter 与 Firebase 的集成,重点讲解用户认证(邮箱密码登录、Google 第三方登录)、实时数据库(数据增删改查)、云存储。
2025-12-02 20:21:25
991
原创 一文读懂 Flutter 核心概念:Widget、State 与 BuildContext
Flutter 的核心开发模式,本质上是“通过不可变的 Widget 描述 UI,通过可变的 State 管理动态变化,通过 BuildContext 定位和访问资源”。掌握这三大概念,需要重点理解:Widget 的不可变性:更新 UI 必须创建新 Widget,而非修改原有属性。State 与 Widget 的绑定:只有 StatefulWidget 才有 State,setState 是触发 UI 更新的唯一入口。
2025-11-30 18:03:33
1041
原创 Flutter 零基础入门:从环境搭建到第一个跨平台应用
在移动应用开发领域,跨平台开发已成为主流趋势。传统的原生开发(iOS 用 Swift/Objective-C,Android 用 Kotlin/Java)需要维护两套代码,开发成本高、周期长;而早期的跨平台方案(如 React Native、Weex)又存在性能瓶颈、原生交互复杂等问题。
2025-11-30 18:02:56
1252
原创 Flutter 鸿蒙适配进阶:多端渲染优化与原生能力调用全解析
随着鸿蒙系统(HarmonyOS)生态的持续扩张,跨平台框架与鸿蒙的适配需求日益迫切。Flutter 作为高性能跨平台方案,其与鸿蒙的适配核心在于渲染管线兼容和原生能力打通。本文将从底层原理出发,结合实战案例,详解 Flutter 在鸿蒙系统中的适配进阶技巧,帮助开发者快速实现多端兼容与性能优化。Flutter 与鸿蒙的适配核心在于渲染管线改造和原生能力桥接,通过本文介绍的原理、实战案例和插件模板,开发者可快速实现 Flutter 应用在鸿蒙系统中的稳定运行与性能优化。
2025-11-27 19:55:32
732
原创 React Native 集成鸿蒙系统:从环境搭建到跨设备协同实战
实现手机端 RN 应用录入的文本数据,通过鸿蒙。同步到平板端,支持实时更新。
2025-11-27 19:32:33
1075
原创 30 分钟搞定 CANN 环境部署:Atlas 200DK 新手避坑指南
作为刚接触昇腾生态的开发者,我花了 3 天踩遍环境配置的坑,终于在 Atlas 200DK 上跑通了第一个图像分类模型。这篇文章不搞浮夸宣传,只分享最实用的部署流程和避坑技巧,新手跟着走就能少走弯路。
2025-11-25 08:03:37
1201
原创 《初探CANN模型适配:手把手带你跑通第一个AI模型》
CANN(Compute Architecture for Neural Networks)是华为推出的 AI 异构计算架构,核心价值是让 AI 模型高效运行在昇腾芯片上。作为推理接口,也可使用简化的msame工具快速验证,本次使用msame工具(CANN Toolkit 自带)。本次实操将以经典的 “MNIST 手写数字识别” 模型为例,全程覆盖从环境搭建到推理运行的完整链路。本次使用预训练的 TensorFlow MNIST 模型,核心工具是 CANN 的。,负责模型优化与格式转换。
2025-11-25 07:52:40
789
原创 《CANN算子开发环境避坑指南:总结我的三个“踩坑”瞬间》
算子开发的坑大多集中在 “环境适配” 和 “底层逻辑认知偏差”—— 官方文档虽全,但部分细节需要结合实战才能吃透,尤其对新手来说,一个小疏忽就可能导致编译失败、算子调用报错,甚至环境直接崩掉。下面分享我在 GitCode Notebook 环境中开发自定义矩阵加法算子时,踩过的 3 个典型坑,每个坑都附完整排查过程和可直接复用的解决方案。环境配置优先 “完整安装”
2025-11-24 19:34:44
913
原创 《10分钟搞定CANN环境:Notebook一键部署与首次推理实录》
坑 1:Notebook 两小时自动关闭现象:再次登录后环境失效,需重新执行初始化脚本原因:GitCode 共享空间为节省资源的设计解决:将常用脚本和代码保存到个人仓库,每次重启后仅需 1 分钟重新初始化。坑 2:依赖库缺失(如 libprotobuf-dev)现象:执行脚本时提示 “error while loading shared libraries”原因:部分镜像可能遗漏隐性依赖解决:执行官方完整依赖安装命令(Ubuntu 示例):坑 3:Python 版本不匹配。
2025-11-24 19:24:22
1247
原创 《双路径开发:Kernel 直调与自定义算子工程的场景适配与效能对比》
Kernel 直调与自定义算子工程并非对立关系,而是互补的双路径开发模式:前者聚焦 “快速验证”,以开发效率换时间,适合原型阶段;后者聚焦 “生产落地”,以工程化换稳定性与性能上限,适合部署阶段。实际开发中,建议采用 “Kernel 直调验证原型 + 自定义算子工程化落地” 的组合策略,既保证迭代速度,又能满足规模化应用需求。
2025-11-20 06:16:14
712
原创 《API 分层解读:Ascend C 如何平衡硬件极致性能与开发效率》
向下:保留底层硬件指令的直达能力,为极致性能提供支撑;向上:通过自动化工具与抽象接口,屏蔽硬件细节,提升开发效率;横向:各层级间无缝衔接,支持混合调用,开发者可根据场景 “按需优化”—— 无需为了开发效率放弃性能,也无需为了极致性能付出过高的工程成本。
2025-11-19 09:58:40
1050
原创 《生态兼容之道:Ascend C 算子在 Kernel、Ascend CL、PyTorch 中的多维度调用》
Ascend C 算子的多场景调用能力,本质是“核心逻辑归一化,适配层差异化”向下:通过 Kernel 直调保留硬件直达能力,保障极致性能;中间:通过 aclnn API 封装实现昇腾全栈生态兼容,兼顾性能与部署灵活性;向上:通过框架适配插件融入 PyTorch 等主流生态,降低开发者使用门槛。这种设计既解决了传统算子 “一次开发,多端适配” 的效率问题(开发成本降低 60%+),又避免了跨场景性能损耗(性能损失<5%),最终实现 “生态兼容无感知,性能极致不妥协” 的目标。
2025-11-19 09:58:21
884
原创 《Host 侧实现:昇腾异构计算中 CPU 端任务调度的技术密码》
昇腾 Host 侧调度正朝着 "智能感知 - 自适应优化" 方向发展:未来将通过 AI 预测输入 Shape 变化趋势,动态调整缓存策略与流水深度;在昇腾异构计算架构中,CPU(Host 端)与 AI 处理器(Device 端)形成互补协作:Host 擅长复杂逻辑处理与任务编排,Device 专注高并行计算加速。典型案例:LLaMA-7B 模型推理场景中,Host 调度模式下 Device 计算与空闲时间比接近 1:1,属于典型 Host Bound 模型,亟需通过调度优化压缩 Device 空闲窗口。
2025-11-18 19:05:02
879
原创 解锁昇腾C算子:从Add实战到AI Core架构深度融合
从 Add 算子实践到 AI Core 架构深度绑定的探索,是一次充满挑战与惊喜的技术之旅。在这个过程中,我们深入了解了 Ascend C 算子开发的流程和技术要点,通过 Add 算子这个基础而又关键的案例,从算子分析的细致入微,到代码实现的精雕细琢,再到调试与优化的反复打磨,每一个环节都凝聚着开发者的智慧和努力。我们学会了如何运用 Ascend C 提供的各种接口和工具,实现算子的高效开发和性能优化,也深刻体会到了算子开发过程中严谨性和创新性的重要性。
2025-11-18 16:59:27
1629
原创 [牛客新手入门130] 55,57题解
他记得密码是通过对原文字符串 s 中的每个小写英文字母向后错位 nn 次得到的。第二行输入一个由小写英文字母组成的字符串 s(1≦∣s∣≦103)(1≦∣s∣≦103),表示原文字符串。现在需要将其转换为千分位格式,即从整数最低位开始,每三位数字插入一个英文逗号,以提高可读性。输出一个字符串,表示对 ss 中每个字符向后错位 nn 次后得到的密码字符串。输出一个字符串,表示将 NN 转换为千分位格式后的结果。中插入一个逗号,最后得到千分位格式的字符串。对于字符串中的每个小写字母,将其向后移动。
2025-11-07 16:55:50
976
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅