HarmonyOS 6.0实战:用ArkTS+ArkUI开发“悠环”三环进度健康应用
最近把开发环境整体切到了 HarmonyOS 6.0 生态上手上的“悠环”应用也从概念图变成了能在真机上跑起来、能被家里人每天顺手点开三分钟的成品。这个项目目标很朴素把日常的运动步数、活动时长和休息状态合成三套环形进度而不是丢一堆折线图给人看。“悠环”的核心交互只有一个词闭环。每天的目标进度是三个同心圆环走够步数、活动足够久、有效休息到了对应区域就会逐渐亮起来直到整个圆弧闭合。这个听起来不复杂的小功能实际上牵扯到了 ArkTS 的严格语法、ArkUI 的声明式渲染、状态管理、数据持久化、权限申请、真机签名和版本适配。我开发过程中踩了不少坑也重新梳理了 Stage 模型下 UIAbility 与页面栈的管理方式。这篇实战指南会把我从建工程到调通真机的完整路径剪出来。适合已经有 Android 或前端基础、想快速切到 HarmonyOS 6.0 做原生应用的朋友也适合那些听过 ArkTS 但不知道从哪下手的新手。全程以“悠环”这个实际项目为主线不会只讲概念。1. 项目整体设计与思路拆解1.1 为什么叫“悠环”目标用户是谁起名这件事我纠结了很久最后定成“悠环”。“悠”是悠长、舒缓的意思“环”就是界面里那三个环。整个应用不想走硬核运动数据路线而是更偏向“生活化健康管理”主要面向普通上班族和家庭用户。这类用户有个特征不想看心率区间、卡路里消耗、配速曲线这些专业指标只想快速知道自己今天的状态对不对。所以“悠环”的交互设计极度简化打开应用就是三个环到没到目标一眼就能看出个大概。环的空与满、亮与暗就是当天的状态语言。这种定位决定了技术选型不用太重。不需要高精度传感器不需要复杂的图表库也不需要后台常驻服务。反而要求启动快、界面流畅、功耗低适合在手表、折叠屏、手机等多个设备上同步展示。HarmonyOS 的分布式能力天然适合这个场景这也是我决定选它来做原生开发的原因之一。1.2 核心功能模块整个应用拆下来其实只有四个部分目标录入页用户首次进入时设置每日步数目标、活动目标、休息目标。主页面渲染三个同心的环形进度页面顶部显示当日概览。数据来源读取系统运动数据与用户手动补充的状态数据。“我的”页面用来调整目标、查看历史完成情况、切换设备同步。没有复杂的社交模块没有排行榜打卡逻辑。功能越简单框架层面的问题反而越容易暴露因为在精简功能下如果还会出现状态错乱、刷新延迟、内存上涨那一定是架构写法有问题而不是业务太复杂。1.3 为什么选 HarmonyOS 6.0 而不是继续做 Android 端说实话从纯开发效率来看Android 生态成熟得多第三方库随便挑。但我这次做原生应用有三个具体诉求HarmonyOS 6.0 更契合。第一是“多设备一致性”。我不想做手表一套、手机另一套的割裂界面。HarmonyOS 的 ArkUI 声明式布局在三类设备上渲染逻辑一致只要做好尺寸适配代码基本可以复用。第二是“低功耗的常驻状态”。运动类应用经常需要在后台读步数、更新进度Android 的后台限制比较严格而 HarmonyOS 针对运动健康类场景有更明确的能力接口和后台策略开发体验相对顺畅。第三是我自己看好这个技术路线。API 12 之后整个 SDK 已经非常成型不再有大版本之间的割裂感之前犹豫要不要入局的开发者现在可以说是比较好的切入时间点。如果你只是做纯安卓应用本文很多内容不适用。但如果你想跳出单一安卓生态试试原生鸿蒙开发那这套流程基本可以无障碍照搬。2. 开发环境与工程搭建2.1 工具链DevEco Studio 与 SDK 选型HarmonyOS 6.0 应用开发的首选工具是 DevEco Studio它是基于 IntelliJ IDEA 的定制版 IDE界面和操作逻辑对老安卓开发很友好。下载安装包、解压、打开之后我建议直接去 SDK Manager 里确认版本。项目用的 SDK 版本是 API 12对应发布版本是 HarmonyOS 5.0.0(12)。这里需要区分一个概念系统版本 6.0 指的是宣传口径的大版本演进而开发时 SDK 版本还是按数字接口来区分。我在工程里配置的是compileSdkVersion 12对应的 DevEco Studio 版本至少要支持 API 12。如果确定要在真机上调试我建议开发机和手机都升级到比较新的版本。旧版本 DevEco Studio 连新版本真机偶尔会报签名协议不匹配这类问题排查起来非常浪费时间。2.2 创建第一个工程并跑起来打开 DevEco Studio选择新建项目在模板里选“Empty Ability”语言选 ArkTS设备类型可以先勾选 Phone 和 Wearable后面再做多设备适配。工程目录和 Android 项目差异比较大。HarmonyOS 的 Stage 模型里入口是module.json5配置的 UIAbility页面在src/main/ets/pages下资源放在resources/base/profile和resources/base/element中。应用级别的配置在AppScope/app.json5。第一次创建项目后不要急着写代码先把自带的Index.ets在模拟器里跑一次。这一步能确认 IDE 的 SDK、模拟器镜像和工程配置三者是否一致。我遇到过一个情况模拟器系统镜像的版本号比 SDK 高打开应用直接白屏日志里也没有明显报错。后来手动重启模拟器并清空应用缓存才恢复正常。2.3 真机调试准备签名与连接模拟器跑通了下一步接真机。HarmonyOS 对应用签名的校验比想象中严格直接用默认的自动签名在真机上调试大概率会报错。需要做几件事打开真机的开发者模式然后在 DevEco Studio 的 Device Manager 里登录华为账号生成调试证书再把签名配置同步到工程里。签名文件分为.p7b、.cer和.p12对应不同用途IDE 的自动化签名流程会帮你生成但账号信息必须绑好。调试期间最容易踩的坑是设备长时间息屏导致连接断开然后 IDE 报“device not found”这时候直接重启 HDC 服务或插拔数据线就好不用重新生成签名。3. 核心细节解析与实操要点3.1 ArkTS 语法约束把“能跑”变成“规范”进入正式开发第一道门槛是 ArkTS 的严格语法。它基于 TypeScript但砍掉了一堆容易写歪的功能。最明显的就是不允许使用any类型也不允许没有明确类型定义的接口。写代码时最难受的是数据模型必须提前定义清楚。我一开始偷懒从接口取到数据后直接塞进一个临时对象结果编译不过去被迫建了DailyTargetModel、RingProgressModel这样的类。后面反而庆幸被强制规范了因为代码可读性显著提高同事接手时不用顺着字段到处找类型。ArkTS 里还有个特点是装饰器驱动状态管理。UI 上用的变量要标记State从父组件传下来的用Prop跨组件共享的则用Provide和Consume。装饰器不只是语法糖它决定了这些变量在业务更新时是否会触发 UI 重新渲染。建议新手在动手写页面之前先读一遍 ArkTS 的语法约束列表不要拿 JavaScript 的习惯硬写不然后面排查状态不同步的 bug 会很痛苦。3.2 用 Canvas 实现三环进度组件“悠环”的主要视觉效果是三个同心圆环ArkUI 标准组件库里并没有现成的环形进度组件所以我选择用 Canvas 自己画。Canvas 在 ArkUI 里对应Canvas组件配合CanvasRenderingContext2D对象绘制路径。先画一圈灰色的背景轨道再根据进度值计算弧线角度用圆头线帽画出彩色进度。核心代码如下Compoent export struct ProgressRing { Prop progress: number 0; Prop ringColor: string #00BFFF; Prop size: number 200; private settings: RenderingContextSettings new RenderingContextSettings(true); private context: CanvasRenderingContext2D new CanvasRenderingContext2D(this.settings); build() { Canvas(this.context) .width(this.size) .height(this.size) .onReady(() { this.drawRing(); }) } drawRing() { const ctx this.context; ctx.clearRect(0, 0, this.size, this.size); const strokeWidth 14; const radius (this.size - strokeWidth) / 2; const center this.size / 2; const angle (this.progress / 100) * Math.PI * 2 - Math.PI / 2; ctx.beginPath(); ctx.arc(center, center, radius, 0, Math.PI * 2); ctx.strokeStyle #2F3542; ctx.lineWidth strokeWidth; ctx.stroke(); ctx.beginPath(); ctx.arc(center, center, radius, -Math.PI / 2, angle); ctx.strokeStyle this.ringColor; ctx.lineWidth strokeWidth; ctx.lineCap round; ctx.stroke(); } }注意这里画环形有一个容易忽略的细节arc方法默认从角度 0 开始也就是三点钟方向。我想让环从顶部开始走所以把起始角度设成了-Math.PI / 2。进度值转换成角度时也要减去同样的偏移量否则进度环起点会残留一个不和谐的小尾巴。另外lineCap round会让进度环两端变成圆头进度为 0 时还看得过去但进度为 100 时起点和终点会叠出一个钝头。我实际处理是进度小于 2 时直接不画前景避免这种视觉瑕疵。3.3 状态管理体系的取舍“悠环”的页面数据流不算复杂目标数据从持久化存储读取当日进度从系统能力获取最后都汇总到主页面展示。但即使这么简单如果不理解状态管理还是会写出刷新不及时的 UI。我用的方案是数据集中在主页面持有子组件只接收值和回调函数。三个环的进度值、目标文本、剩余卡路里都以Prop方式传给子组件子组件内部不修改数据只负责展示和回调。这样的好处是思路特别容易捋清UI 永远是当前数据的快照。改数据就改主页面里的State变量子组件重新渲染由框架自动处理不用写一堆setState。但是Prop有个限制它是单向传递而且是“值拷贝”。如果子组件内部修改了这个值父组件不会同步感知。换句话说“环”组件里不应该自己去改进度所有修改都要通过父级状态完成。这种单向数据流写起来稍微多几行代码但排查问题的时候会特别舒服因为整个应用里改动变量的位置屈指可数。我觉得这是新手最容易忽略、却最值得一开始就坚持的架构原则。3.4 数据持久化与权限申请应用的设置项比如目标步数、目标活动时长需要做到应用重启后不丢失。HarmonyOS 里轻量数据持久化用 Preferences 就够了不需要上数据库。Preferences 的用法很像 Android 的 SharedPreferences读取所有键值修改后调用put与保证回写完成。需要注意flush是个异步过程目标值改完之后如果立刻杀进程可能会有概率没写进去。我这边在设置页的返回回调里统一调用flush.then()做后续逻辑基本上能规避。权限方面“悠环”需要读取步数数据属于运动健康类权限。申请权限分静态声明和动态申请两步。静态声明写在module.json5里的requestPermissions字段动态申请则要在用户进入首页时主动弹窗引导用户授权。我踩过的坑是动态申请权限的时机太早还没解释用途就弹框被拒后用户一脸懵。后来改成先展示一个说明页用户点“开始使用”之后再申请权限授权率明显提高。另外建议检查应用是否已被用户拒绝并勾选“不再询问”这种情况只能引导去设置页手动开启否则干等着不会弹窗。4. 实操过程从页面到闭环4.1 搭建三页面骨架应用内部有三个主页面主页、历史记录、我的设置。我用的是 Tabs 组件做底部导航每个 Tab 对应一个独立的页面组件。基础结构可以这样写Entry Component struct MainPage { State currentTab: number 0; Builder tabBar(title: string, index: number) { Column({ space: 4 }) { Text(index 0 ? 进度 : index 1 ? 记录 : 设置) .fontSize(14) .fontColor(this.currentTab index ? #00BFFF : #8A8A8A) } .width(100%) .padding({ top: 8, bottom: 8 }) } build() { Tabs({ barPosition: BarPosition.End, index: this.currentTab }) { TabContent() { HomePage() }.tabBar(this.tabBar(进度, 0)) TabContent() { HistoryPage() }.tabBar(this.tabBar(记录, 1)) TabContent() { SettingsPage() }.tabBar(this.tabBar(设置, 2)) } .onChange((index: number) { this.currentTab index; }) } }这里有个容易踩的细节TabContent的页面即使不在当前页也会被创建并可能执行初始化方法。如果首页在初始化时就请求大量数据会影响启动速度。我实际把首页数据加载放在了onPageShow生命周期里页面每次展示时再去刷新当天进度既保证了数据新鲜度也避免了首次启动的加载阻塞。4.2 绘制三环并让它们动起来三个环节画在同一个 Canvas 上会有图层顺序问题。我的做法是先画最外环再画中间环最内环最后画。每一环的半径差要大于线宽否则线条会重叠糊在一起。三个环的默认颜色我定为蓝色、绿色、橙色对应步数、活动、休息三个维度和统一视觉语义。环中心区域放一个百分比数字让用户直观看到综合完成度。动画方面没有直接调系统动画接口而是在状态更新后手动做了一段渐变动画把目标值拆成 30 帧每一帧用定时器更新进度并重绘 Canvas。帧率不用太高30 毫秒更新一次已经非常顺滑。注意定时器用完后一定要清理否则切到设置页再返回主页会出现两个动画同时在跑进度闪烁。4.3 接入步数数据与休息状态“悠环”的步数数据在 API 12 里通过系统的运动健康类能力读取。整个流程是先申请权限然后获取当天的步数总览数据。不同设备系统版本返回的字段名称不完全一致需要做一层归一化映射转成应用自己的DailyTargetModel。休息状态没有统一接口我采用手动录入加分布式数据同步的方案。用户在手表或手机上补充睡眠时长存入 Preferences 后通过设备的分布式数据同步能力传播到其他登录设备。这套机制对非实时数据来说体验足够用户第二天打开任何一台设备看到的都是最新值。需要提醒的是这类运动数据接口对后台权限管理比较敏感。如果应用没有在前台运行读取频率会被系统限制。我处理方案是只在前台页面展示和计算不主动做后台轮询更新。真要后台刷新也要用系统提供的任务调度能力而不是自己起 Timer。4.4 深色模式与多设备适配“悠环”在设计之初就要支持折叠屏和手表。手表屏幕小三个环如果完全按手机尺寸缩放会显得很挤。我的做法是使用相对尺寸和GridRow布局体系环的直径用屏幕宽度的百分比来计算。深色模式我是单独配置颜色资源资源目录下建了dark和light两个子目录颜色名称保持一致系统会自动根据当前主题切换。这里不建议在代码里写死颜色值尤其在画 Canvas 时容易忽视深色环境导致环轨道颜色太亮非常突兀。4.5 构建打包与发布前检查开发完后要出安装包DevEco Studio 的 Build 菜单里有构建 App Pack 的选项。发布版本需要使用正式签名文件签名文件和应用包名要绑定这点要从项目初期就规划好否则中途换签名会直接影响后续升级覆盖安装。发布前检查表我自己列了一下是否启用了后台任务权限弹窗文案是否明确空数据显示是否合理深色模式下 Canvas 颜色是否正常剩余电量较低时动画是否可以自动降帧真机测试时切换应用再回来会不会闪退。每项都过一过再提审比发出去之后再挨用户差评要划算。5. 常见问题与排查技巧实录5.1 编译期问题速查表整个开发周期里我遇到的编译问题集中在三块SDK 版本不一致、ArkTS 类型违规、资源文件命名冲突。SDK 版本不一致经常表现为“method not found”例如CanvasRenderingContext2D的某些方法在老版本 SDK 里不存在。解决方法是先看项目配置里的compileSdkVersion和 DevEco Studio 内置 SDK 版本是否对齐再决定是升级 IDE 还是降接口。ArkTS 类型违规大多集中在一个场景从接口动态拿到的对象无法匹配预先建好的类。我看到很多新人直接写let data JSON.parse(str) as MyModel但深层字段仍然隐式是any传给子组件时编译依然报错。正确做法是提供一个createModelFromJson(json: object)函数逐字段校验并拷贝成纯静态类型。资源文件命名方面HarmonyOS 的资源名不允许大写字母只能用小写字母、数字和下划线。我用RingBackground.png命名图标直接编译报错改成ring_background.png就好了。这个坑出现过一次之后建资源时我都习惯先记下命名规则。5.2 运行期卡顿与状态不同步页面出现卡顿最大元凶是重绘过度。我开发时给仪表盘加了一个带阴影的圆环背景但阴影绘制是每帧都在执行的导致低端机上快速滑动时掉帧。优化方式是把带阴影的背景提前画成一张静态图片进度环只负责动态部分。另一个典型的运行期问题是进度值没有实时刷新。后来查原因发现是监听回调里的数据没有通过State变量传给 UI而是直接写进了普通成员变量。普通成员变量的变化不会驱动 UI 渲染数据变了界面却没反应。排查口诀就一句话凡是 UI 上有展示的变量都用装饰器标记。还有一次问题出在页面栈我从历史记录页返回主页在主页onPageShow里做了新数据加载结果回调里更新了已经销毁的旧页面实例引用造成界面和数据来源不一致。这个问题的修正方式是在回调前检查当前页面的实例仍然是最新的或者在 UIAbility 级别统一下发数据。5.3 设备调试时的坑版本与证书真机调试时最容易让人崩溃的不是代码而是设备连接。我几次遇到应用安装成功但点击图标启动后立刻退出的情况日志里提示签名信息不匹配。排查手段是比对设备的系统版本和工程签名证书的创建时间如果手机做过系统大版本升级旧证书可能失效需要重新生成签名。另外多设备调试时同一套调试证书也只能绑定固定数量设备超过了就需要清理掉旧设备再添加。模拟器和真机还有一个渲染差异要注意模拟器上的 Canvas 圆弧看起来很平滑但真机上如果圆心坐标是小数比如 100.5圆弧边缘会出现锯齿感。我的处理是计算环的位置尺寸时统一取整遇到奇偶尺寸时再微调。6. 最后的一点个人经验“悠环”这个项目最让我意外的是最复杂的部分反而不是点亮三个环而是让它们在各种设备上保持稳定。我中途一度想把环形组件封装成可配置旋转方向、线帽样式、渐变色、动画时长的“万能组件”折腾了两天后发现代码已经膨胀到没人看懂。后来冷静下来把需求重新看了三遍最终只保留了固定语义的绘制接口其他全部砍掉。设计阶段把需求想得足够窄代码阶段的推进才会足够快。另外建议新手先别碰太多分布式特性。“悠环”的多设备同步我只用了最轻量的一层就已经牵扯到账号体系、设备组网、数据冲突处理。核心体验做好之前不急着同时在三台设备上测试否则排查问题维度会翻好几倍。如果你正准备在 HarmonyOS 6.0 上做自己的第一个应用我真心建议项目的边界控制在一屏能讲清楚比如像“悠环”这样只有三个环、三个页面的规模。等到把 Stage 模型、ArkUI 渲染机制、权限和签名流程完整跑通一遍再去做更复杂的产品不管是心态还是技术储备都会从容很多。

相关新闻

随笔写作从空白标题到成稿的实操方法论

随笔写作从空白标题到成稿的实操方法论

最近在整理写作素材时,翻到一个很有意思的草稿标题:“随笔-无具体内容”。这六个字挂在文档顶部,下面一片空白。换作几年前,我大概会直接删掉它,觉得没选题就干脆不写。但做了这么多年内容,我越来越发现一件…

2026/10/10 10:22:07 阅读更多 →
无人机辅助MEC计算卸载的DDPG实现:从建模到避坑全记录

无人机辅助MEC计算卸载的DDPG实现:从建模到避坑全记录

简介:一套基于深度确定性策略梯度(DDPG)的无人机辅助移动边缘计算卸载优化Python代码,面向计算机、电子信息、数学等专业学生,适用于课程设计、期末大作业与毕业设计等场景,也便于研究者快速验证边缘计算决…

2026/10/10 10:22:07 阅读更多 →
变电站电气主接线图识读实战指南:从看懂到会操作

变电站电气主接线图识读实战指南:从看懂到会操作

简介:本资源是一份面向电气工程专业本科生及变电站设计初学者的高质量课件,系统讲解变电站电气主接线的核心原理、典型结构与工程规范。内容紧扣《南方电网变电站标准设计》,深入解析单母线、双母线及桥形接线的适用场景、设备配置逻辑与安全…

2026/10/10 10:22:07 阅读更多 →

最新新闻

软件测试面试题全解析:从基础理论到AI与物联网实战

软件测试面试题全解析:从基础理论到AI与物联网实战

软件测试面试题这个话题,每年都能收到一堆私信。有人刷了一周八股文还是挂在一面,有人只准备了两天却拿到了不错的offer。核心区别不在于背了多少题,而在于有没有把题目背后的考察点摸透。我整理了这份软件测试面试常见问题清单,附…

2026/10/10 14:08:50 阅读更多 →
C++ unordered_map与unordered_set详解:哈希表原理、接口用法与性能优化

C++ unordered_map与unordered_set详解:哈希表原理、接口用法与性能优化

用过 C 的都知道,当你还在用map、set做查找和去重的时候,数据量一旦上来,心里多少会有点不踏实。这时候就该unordered_map和unordered_set登场了。这两个容器在 C11 里正式进入标准库,核心卖点就一句话:基于哈希表实现…

2026/10/10 14:08:50 阅读更多 →
Linux新手第一周:环境搭建、常用命令与学习路线全记录

Linux新手第一周:环境搭建、常用命令与学习路线全记录

几个月前,社团面试的场景还在眼前,转眼第一周周报已经躺在群文件里。说实话,接手【西邮 Linux 兴趣小组】的第一周,我最大的感受不是“教了多少东西”,而是“被一群刚接触 Linux 的新人追着问问题,自己回头…

2026/10/10 14:08:50 阅读更多 →
踩坑实录:接进RAG后召回率反而崩了?all-MiniLM-L6-v2的5个隐藏陷阱

踩坑实录:接进RAG后召回率反而崩了?all-MiniLM-L6-v2的5个隐藏陷阱

踩坑实录:接进RAG后召回率反而崩了?all-MiniLM-L6-v2的5个隐藏陷阱 【免费下载链接】all-MiniLM-L6-v2 项目地址: https://ai.gitcode.com/hf_mirrors/sentence-transformers/all-MiniLM-L6-v2 把 all-MiniLM-L6-v2 接进 RAG 管线,几…

2026/10/10 14:08:50 阅读更多 →
2026年AI Agent发展趋势与挑战:从理论到实践的跨越,TaoToken统一Key打通OpenClaw落地链路

2026年AI Agent发展趋势与挑战:从理论到实践的跨越,TaoToken统一Key打通OpenClaw落地链路

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

2026/10/10 14:08:50 阅读更多 →
Harness 工程安全基线:为 AI Agent 编写 SECURITY.md 安全策略文件

Harness 工程安全基线:为 AI Agent 编写 SECURITY.md 安全策略文件

【免费下载链接】learn-harness-engineering Harness engineering beginner tutorial, from 0 to 1 项目地址: https://gitcode.com/gh_mirrors/le/learn-harness-engineering 点击查看 免费下载 SECURITY.md 是面向 Agent 的仓库(agent-first reposito…

2026/10/10 14:07:49 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/10 5:23:50 阅读更多 →
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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →