Flutter for OpenHarmony 逆向思维训练App:时间分析与性能优化实战
从 Flutter 跨端开发切到 OpenHarmony 生态再搭配一个逆向思维训练 App 的完整实战这个组合听起来就很“技术博主”。我不久前刚好完整跑通了一个类似项目标题就叫 flutter_for_openharmony 逆向思维训练 App 实战 时间分析实现。今天把整个过程中我认为最值得记录的内容整理出来从环境搭建、功能设计到最容易被忽略的“时间分析”模块再到真机上的坑和优化闭环一次性讲透。这个项目适合谁看准备在 OpenHarmony 上用 Flutter 落地应用的开发者、想了解鸿蒙开源生态适配现状的跨端工程师以及所有打算把“时间统计”做进训练类产品里的同学。我会把业务侧的答题计时、用户耗时统计和工程侧的性能时间分析区分清楚这两条线都算“时间分析”但解决的完全是不同的问题。1. 先拆透标题这个项目的真实边界和难点1.1 逆向思维训练 App 的产品形态“逆向思维训练”听起来很玄但落到产品上其实非常具体它是一个题库型训练工具每一题都设计成“跳出常规思路才能答出来”的题型比如经典的脑筋急转弯、反直觉逻辑题、需要换角度解读的情境题。用户读题、思考、作答、看结果系统记录每道题的思考时长训练结束后展示统计报告。这类 App 最容易做成一页式的“刷题工具”但我觉得真正的价值在于“时间反馈闭环”。用户做完一组训练后如果能看到自己哪类题耗时最长、哪道题卡了很久、提示出现后多少秒才答对就能反过来认知自己的思维偏好。所以我在项目里把时间分析设计成了一个独立模块而不是附属功能这个决策贯穿了后续所有功能开发。1.2 Flutter for OpenHarmony 的适配现状先说清楚一个很多人混淆的点OpenHarmony 并不直接兼容 Android APKFlutter 应用想要跑在 OpenHarmony 设备上需要用适配后的 Flutter SDK 来构建。现状是 Flutter for OpenHarmony 已经有可用的 SDK 分支开发者可以在工程里通过特定命令构建出 ohos 平台的应用包然后装进 DevEco 模拟器或者真机。但这里有一个鲜明的感受生态成熟度确实偏低第三方库的适配是一个现实瓶颈。我选 Flutter 的原因很直接团队熟悉 DartUI 表达力强而且代码可以同时覆盖 iOS、Android、OpenHarmony 三端。但从立项开始我就清楚不能无脑依赖社区插件凡是核心功能里用到的库都要先确认是否支持 ohos 平台否则就得自己用纯 Dart 实现或者做平台通道。1.3 “时间分析”的双重含义标题里的“时间分析实现”是我认为这个项目里最值得展开的部分它同时指两个层面业务层用户答题的思考时长统计、训练耗时分布、用时趋势可视化这是产品功能的一部分。工程层Flutter 应用的帧耗时、方法执行耗时、页面构建耗时的性能分析这是开发调试的一部分。我在做项目前先想清楚了这一点避免了开发到一半才发现“时间分析”到底做的是哪个方向的问题。实际开发中两个层面都有深入实践下文会分别展开。2. 开发环境与工程搭建实战2.1 一套同时兼容 Flutter 和 OpenHarmony 的开发环境环境搭建是整个项目里最容易劝退人的环节因为涉及多套 SDK 的版本匹配。我当时整理了明确的版本组合这里给出参考操作系统Windows 或 macOS 均可但建议 16GB 内存以上模拟器和 Flutter 构建同时跑起来很吃资源OpenHarmony SDK使用 API 10 及以上版本API 版本太低会导致 Flutter 适配层的编译失败DevEco Studio用于模拟器管理、签名配置和 ohos 应用的调试辅助Flutter SDK使用 OpenHarmony 适配后的分支版本不要用普通的 Flutter 稳定版命令行工具链Dart SDK、ohpm 包管理器、Java 环境配置环境时有几个细节直接影响后续开发效率。Flutter SDK 的下载源建议走镜像仓库国内拉代码会快很多ohpm 是 OpenHarmony 自己的包管理工具很多鸿蒙原生依赖要通过它安装。更关键的是一开始就要把 Flutter 的 platform 目录确认好确保在flutter doctor里能看到 ohos 相关的支持项。2.2 项目初始化与目录结构设计环境没问题后初始化工程比预想中简单执行类似flutter create --platforms ohos的命令就能生成带 ohos 平台目录的工程。生成后的目录结构大体上是lib/Dart 源代码目录所有业务逻辑和 UI 都在这ohos/OpenHarmony 原生工程目录包含 Entry 模块、配置文件等pubspec.yaml依赖管理和一些常规 Flutter 工程一致我额外做了几个调整。题库 JSON 放到了 assets 目录下并在 pubspec 里注册状态管理选用轻量的 Provider没有引入重量级框架因为项目规模不大Provider 的逻辑足够清晰所有与平台相关的操作比如存储训练记录都封装在独立的 service 层便于后续切换实现。这里给一个建议不要把第三方库的适配问题留到后面。我当时先列出计划使用的库清单逐一核对了 ohos 平台的适配情况。结果是shared_preferences在对应适配版本里可以用但某些图表库和复杂的动画库在新版本上就存在兼容风险所以图表部分直接决定用 CustomPainter 自绘。这是项目初期最重要的一个取舍。2.3 首屏渲染打通在模拟器里跑起来第一次把项目跑上模拟器的过程比写业务代码更值得记录。执行构建命令后首次编译时间大约在几分钟到十几分钟取决于机器性能。整个过程最容易出的问题是构建产物的路径配置以及 DevEco 模拟器的启动速度。模拟器冷启动有时候要等很久给我的感觉不是“开手机”更像是在开一个轻量虚拟机。跑通后的第一件事是验证 Flutter 的渲染桥接是否正常。如果屏幕上能看到 Flutter 默认计数页说明 Flutter Engine 已经成功挂在 OpenHarmony 的容器上了这是后续所有功能开发的地基。这个阶段踩的第一个坑是build 产物跑到 release 模式后页面加载明显更流畅但调试信息变少。我的做法是开发阶段用 debug 模式跑模拟器做时间分析性能测试时切到 release 模式。原因后面会专门讲debug 模式下 Dart 代码执行效率和渲染流程与真实体验差别太大。3. 逆向思维训练核心功能设计与实现3.1 整体玩法与状态流转设计训练 App 的 core loop 我设计成四步出题、思考作答、反馈解析、统计更新。为了避免用户一直连续刷题导致疲惫每次训练固定 10 题答题完成后自动生成当次训练报告。在代码层面我维护了一个简单的状态机每个题目卡片有四个阶段idle题目展示出来用户还没开始输入answering用户开始作答计时器记录思考过程reveal用户提交答案后展示正确答案和解析report整组训练结束进入时间分析报告页状态机的好处是页面刷新逻辑变得非常清晰每次只在状态切换时触发notifyListeners避免了到处调用setState导致的混乱。实际开发中这种小项目的状态管理其实不需要高深架构但清晰的流转设计能让后面的时间统计模块省很多麻烦。3.2 题目数据模型与随机出题策略题目是训练 App 的灵魂。我定义的数据结构包含这些字段class Question { final String id; final String content; final ListString tips; // 逐级提示 final String answer; final String analysis; final int difficulty; // 1-3 final String category; // 逻辑类、情境类、语言类等 }题库以 JSON 形式存放在 assets 里典型的一道题是这样的结构简化示例{ id: q001, content: 什么东西越洗越脏, tips: [和水有关, 常用的清洁工具], answer: 水, analysis: 常规思维里东西脏了才洗但水洗东西的时候自己会变脏。, difficulty: 1, category: 语言类 }随机出题策略不是简单Random.nextInt我做了两层处理一是同 category 的题目不能连续出现避免用户陷入固定思路二是难度配比保持 4 道简单、4 道中等、2 道偏难训练过程有节奏感。这个设计在后续时间分析里呈现出明显的数据差异简单题平均耗时很低而偏难题的耗时分布极其分散这正好是“时间分析”希望发现的产品特征。3.3 提示、答案与评价体系我设计了三档提示每使用一档提示这道题在时间报告里会被标记为“使用了提示”。提示的展示是渐进的第一档给方向性暗示第二档几乎接近答案第三档直接展示答案。这个交互有一个非常关键的时间统计点用户点击“查看提示”的时刻应该被记录到答题记录里。我把时间数据模型定义成包含多个时间点而不仅仅是总耗时。核心经验训练类产品的时间分析不能用单一耗时指标。一道题可能用户卡了很久但靠自己想出来了另一道题用户很快点提示然后秒答。这两种情况的训练价值完全不同。所以我的报告页会展示拆解后的数据纯思考时长、提示后反应时长、是否命中答案让用户和开发者都能看到更细的用户行为模式。4. 时间分析模块从业务计时到性能剖析4.1 业务侧思考耗时统计的数据模型与实现业务侧的时间统计是整个项目最有意思的部分。我先定义了答题记录的数据模型class AnswerRecord { final String questionId; final DateTime startAt; final DateTime? tipAt; // 第一次查看提示的时间点 final DateTime submitAt; // 提交答案的时间点 final int durationMs; // 纯思考时长 final int tipViewDurationMs; // 提示后的额外反应时间 final bool isCorrect; final bool usedTip; }实现计时我用了DateTime.now()的差值计算而不是Timer计时。原因在于 Timer 本身并不精确而且容易受事件循环调度影响答题场景只需要毫秒级精度用时间戳差值最简单可靠。_startAt DateTime.now(); void onRevealTip() { _tipAt ?? DateTime.now(); } void onSubmit() { _submitAt DateTime.now(); final record AnswerRecord( startAt: _startAt, tipAt: _tipAt, submitAt: _submitAt, durationMs: _submitAt.difference(_startAt).inMilliseconds, ); }这里有一个很隐蔽的问题如果用户在答题过程中切到后台页面挂起几十分钟回来继续答题DateTime差值会把后台时间也算进去这个数据就失真了。我引入了 Flutter 的生命周期监听在AppLifecycleState.paused时记录暂停时间点回到resumed时将暂停时长从总耗时中扣除。这个处理属于那种“不做不知道做了才知道多重要”的细节也是实测后必须修的。4.2 可视化用 CustomPainter 画出答题时间曲线时间分析最终要呈现给用户所以可视化是必不可少的环节。我原计划用社区图表库但核对 ohos 适配情况后发现风险较高于是改用CustomPainter自绘。这反而让我对绘图逻辑有了更深的理解。报告页我绘制了三类图形单次训练的每道题耗时柱状图横轴是题号纵轴是耗时秒数直方图能直观看到哪道题卡住了多次训练的均耗趋势折线图观察训练进度用户应该是越练越快难度与耗时的散点对比判断题目难度设定是否合理自绘折线图的核心逻辑并不复杂class TimeLinePainter extends CustomPainter { final Listdouble values; final double maxValue; override void paint(Canvas canvas, Size size) { final paint Paint() ..color const Color(0xFF4A90D9) ..strokeWidth 2.0 ..style PaintingStyle.stroke; final path Path(); for (int i 0; i values.length; i) { final dx i * size.width / (values.length - 1); final dy size.height - (values[i] / maxValue) * size.height; if (i 0) { path.moveTo(dx, dy); } else { path.lineTo(dx, dy); } } canvas.drawPath(path, paint); } }实际运行时要注意 CustomPainter 的shouldRepaint方法如果返回 true 太过频繁统计页会频繁重绘导致帧率下降。这个细节在后面的性能时间分析中被重点观察到是我优化列表滚动卡顿时的典型问题。4.3 性能侧时间分析定位卡顿与耗时瓶颈如果说业务时间分析是给用户看的那工程时间分析就是给开发者看的。Flutter 在 OpenHarmony 上的性能调优我主要用了三样工具Flutter DevTools 的 Timeline 页面查看每一帧里 Dart 方法、布局、绘制的耗时分布Performance Overlay在 App 里直接开启 FPS 显示快速感知页面流畅度debug 模式下的时间分析日志重点不是看具体数值而是对比优化前后的差异一个重要的经验是性能时间分析必须在 release 模式下测。debug 模式下的 Flutter 应用 JIT 运行、调试逻辑全开帧渲染耗时可能比 release 模式高出数倍在这种状态下做的任何优化决策都可能失真。我具体做了这么一件事在统计报告页快速上下滑动打开 DevTools 的 Timeline 记录然后观察所有帧的耗时。结果发现不少帧的构建耗时超过了 30ms存在明显的掉帧风险。进一步定位发现耗时集中在一个自绘柱状图的paint方法和列表项里的图片解码上。这个发现直接驱动了下一阶段的优化工作。5. 基于时间分析结果的性能优化闭环5.1 第一次时间分析暴露的问题性能分析不是空跑数据最终要落到具体问题上。首次完整分析我暴露了三个主要问题首帧加载偏慢。App 启动后要加载整套题库 JSON虽然文件不算大但是在主线程同步解析启动过程会有明显的白屏感。DevTools 里能看到主线程上parse JSON方法的耗时占据了首帧时间的很大比例。统计页柱状图重绘频繁。图表绘制依赖的数据更新后整个小部件树发生重建导致滚动列表和图表互相拖累滑动时出现卡顿。题库列表在打开答案页再返回时状态丢失导致整个列表重新 build。这在视觉上表现为返回时闪一下时间分析里表现为主线程 build 时间飙升。这三个问题都是典型的工程侧时间分析能发现的问题。如果不做时间分析直接凭感觉写代码很可能一直发现不了。5.2 针对性优化与前后数据对比针对上述问题我给每一类问题都做了对应的优化。题库 JSON 的加载从同步改为异步并且放入computeisolate 中解析这样主线程只接收解析完成后的对象列表启动白屏减少了很多。优化后首帧构建时间从原来的约 800ms 降到约 500ms感知上明显“点开即用”。统计页图表使用RepaintBoundary包裹并在CustomPainter的shouldRepaint里做到精确判断只有数据真正变化时才允许重绘避免图表层反复绘制。列表项的 build 优化采用了提取const构造函数、把不变化的子组件标记为const让 Flutter 在元素复用阶段直接跳过部分重建。优化前后的主要指标对比如下指标优化前优化后首帧构建耗时约 800ms约 500ms统计页滑动 P95 帧耗时32ms16ms主线程长任务出现次数100ms 以上每 30 秒约 5 次每 30 秒约 1 次这些数据都是在 release 模式同一台模拟器环境下测的对比才有意义。优化做完后我给自己的一个判断是Flutter 在 OpenHarmony 上的渲染性能是够用的关键还是应用侧有没有做针对性调优。5.3 包体与启动速度优化时间分析里我还关注了启动速度相关的时间数据这背后涉及包体大小的影响。release 构建出的产物包含 Flutter Engine 和 Dart 代码编译产物包体偏大是跨端方案的常见代价。我做了一些常规但有效的操作裁剪未使用的字体和资源文件图片资源压缩检查依赖树移除未实际使用的第三方包关闭 debug 构建里的调试服务功能这些改动对运行时性能没有直接影响但对安装时长和应用启动速度有一定帮助。OpenHarmony 设备安装应用时包体越大安装越慢这个时间感知对用户来说同样敏感。6. 真机部署与常见问题排查实录6.1 安装和启动阶段常见问题真机部署比模拟器多出很多变量。我整理了实测过程中遇到的几个典型问题做成一个速查表供参考。问题现象可能原因解决思路应用安装后点击图标闪退Flutter Engine 与 OpenHarmony SDK 版本不匹配核对 Flutter 分支版本与 OpenHarmony API 版本统一升级或降级打开应用黑屏数秒首帧构建耗时长或资源加载被阻塞检查主线程是否有同步耗时操作打开 release 模式确认构建报缺少模块错误原生工程配置与 Flutter 模块连接不一致重新执行构建命令并检查 ohos 工程配置文件模拟器冷启动极慢模拟器初始化时间较长提前启动模拟器开发过程中保持模拟器常驻排查时我的通用思路是分开看问题处在 Dart 层还是 OpenHarmony 原生层。如果页面上能看到 Flutter 的 UI 但后续行为异常优先查 Dart 逻辑如果连 Flutter 视图都出不来优先查 Engine 和原生工程的连接。6.2 时间统计不准与页面生命周期问题时间统计模块在真机上最容易暴露的问题是生命周期处理不到位。我在测试时发现一个真实案例用户读到一半切到微信回消息回了十分钟后切回训练页作答。如果不对后台时间做剔除这道题的“思考时长”会显示十几分钟日均耗时数据被严重污染。解决思路是统一的页面进入可见状态时重置计时起点页面退到后台时记录离开时间点回到前台后以“本次离开时间点”为准重新累计有效时长连续多次后台切换时用时间戳差值而不是累加方式计算避免重复计算误差另外我还加了一道防线时长超过 10 分钟就标记为异常数据统计时默认剔除这个简单的兜底逻辑救了后续的数据可信度。6.3 数据持久化与隐私合规注意事项训练记录需要保存才能支持多次训练的耗时趋势分析。我选择把本地数据以 JSON 文件形式存储在应用私有目录下通过 Dart 的File接口读写。每次训练结束后追加一条记录并保留最近 50 次训练的统计结果。数据设计上我刻意避开个人信息字段。App 全程不需要注册、不需要手机号、不需要位置权限唯一会写入持久化的就是答题时间戳、题目 ID 和答题结果。这既是为了隐私合规简单化也减少了应用向用户申请敏感权限的环节训练类工具的用户对隐私比较敏感不碰个人信息是最好的选择。如果需要未来做多设备同步再考虑服务端账号体系。但当前阶段所有的统计分析都在本地完成这条架构决策让项目在隐私和合规方面压力小很多。写在最后的实战体会这个项目最让我意外的收获是“时间分析”远不止是画两张折线图这么简单。把时间维度同时用在产品功能和性能优化上之后整个开发视角都变了。在业务侧我通过思考耗时数据发现了题目难度设定的不合理在工程侧我通过帧耗时分析定位到了原本隐藏很深的布局重建问题。这两类问题如果都靠肉眼和直觉去猜可能很久都发现不了。如果你也想做类似项目我的建议是先把环境版本锁死再规划题库结构最后才动手写 UI。Flutter for OpenHarmony 目前处于“能跑、能用、有些坑但可解”的状态适合拿来做一个中型工具型应用验证手感。实际开发时不要贪多把一个“答题计时 时间分析报告”的核心闭环打磨好要比做十个花哨功能有价值得多。我自己后续还会在这个项目基础上扩展两个方向一是把训练记录做成本地周报形式按类别统计思维偏好二是优化几道特殊题型的渲染细节继续用时间分析工具验证效果。技术选型是否真的合适说到底还是要靠项目本身说话。

相关新闻

Win7离线OCR工具:PaddleOCR-json免Python部署实战

Win7离线OCR工具:PaddleOCR-json免Python部署实战

简介:win7-x64-PaddleOCR-json.zip是面向Windows 7 64位系统的PaddleOCR部署压缩包,适用于需要在旧版平台快速搭建文字识别能力、并通过JSON格式获取结构化结果的开发者和运维人员。包内共64个文件,总体积约126.19MB。其中dll动态库用于支撑推…

2026/10/13 7:13:58 阅读更多 →
AI应用上下文管理实战:分层压缩方案详解

AI应用上下文管理实战:分层压缩方案详解

我做过一个内部的智能客服项目,上线三个月后收到最多的用户反馈不是"回答不准",而是"它怎么又把我说过的话忘了"。用户在第十分钟重新提起自己五分钟前强调过的产品型号时,模型一本正经地给出了另一款产品的介绍。查日志…

2026/10/13 7:13:58 阅读更多 →
LSTM+Attention时序预测实战:从原理到PyTorch落地

LSTM+Attention时序预测实战:从原理到PyTorch落地

1. 从"预测"这个词说起:为什么LSTM加Attention成了时序任务里的常驻组合做时序预测的人大概都有过这样的经历:拿到一批带时间戳的数据,第一反应是上ARIMA或者简单移动平均,跑出来的结果在平稳段看着还行,一到…

2026/10/13 7:13:58 阅读更多 →

最新新闻

SQL UNIQUE约束详解:原理、数据库差异与防重复设计实践

SQL UNIQUE约束详解:原理、数据库差异与防重复设计实践

1. UNIQUE约束到底是什么,为什么你需要它做数据库设计这些年,我见过太多因为“忘记加唯一约束”而崩溃的业务系统。最典型的场景:用户注册接口被脚本刷了一遍,username重复了;订单表里同一笔订单被回调程序insert了两次…

2026/10/13 7:55:19 阅读更多 →
Agent-Skills:智能体原子化能力的设计与工程实践

Agent-Skills:智能体原子化能力的设计与工程实践

1. “agent-skills”不是新词,而是智能体能力体系的命名共识 最近在多个技术社区、开源项目文档和内部架构评审会上,“agent-skills”这个组合词出现频率陡增——它既不指代某个具体开源库,也不是某家公司的私有协议,而是一类设计…

2026/10/13 7:55:19 阅读更多 →
Flink DataStream与Table API转换实战:Schema推导、时间属性与常见避坑指南

Flink DataStream与Table API转换实战:Schema推导、时间属性与常见避坑指南

做实时数据处理这几年,Flink的DataStream和Table API来回切换是我用得最频繁的操作之一。刚接触那会儿,总觉得这两套API是两套独立的体系,流上处理业务逻辑用DataStream,做统计查询用Table,中间隔着一道说不清的墙。后…

2026/10/13 7:55:19 阅读更多 →
LiteLLM:大模型API统一网关与智能路由实战指南

LiteLLM:大模型API统一网关与智能路由实战指南

1. LiteLLM不是另一个大模型,而是一把“万能适配器”最近在几个技术群和开源社区里,频繁看到有人发问:“LiteLLM到底是个啥?是又一个新模型吗?”“它和Ollama、LM Studio有什么区别?”——这种误解非常典型…

2026/10/13 7:55:19 阅读更多 →
LiteLLM:大模型API统一接入与智能路由实战指南

LiteLLM:大模型API统一接入与智能路由实战指南

1. 为什么“litellm”突然在开发者圈里被高频提及——它不是新模型,而是新范式最近两周,在多个技术社区、内部分享会和开源项目讨论区里,“litellm”这个词出现的频率明显升高。它不像Llama、Qwen或Claude那样代表一个具体的大语言模型&#…

2026/10/13 7:55:19 阅读更多 →
开源代码审查实战:流程设计、工具配置与团队落地方法

开源代码审查实战:流程设计、工具配置与团队落地方法

代码审查这事儿,我过去几年一直想好好聊一聊。初看上去,open-code-review 这个项目标题没什么特别,好像就是把自己团队做代码评审的过程、工具和规范整理出来,开源给社区用。但如果真这么理解,那就有点浪费了。代码审查…

2026/10/13 7:54:17 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →