登录社区云,与社区用户共同成长
邀请您加入社区
先拆页面结构,再确定状态归属,然后写交互,最后补异常路径。HarmonyOS 7 的 ArkUI 本身并不难,页面越写越乱,通常是因为结构和状态没有先想清楚。把这个顺序养成习惯,后面无论写列表、表单、Tabs 还是复杂业务页,都会顺很多。
照着设计稿写几个 `Row`、`Column`,再把按钮事件接上,模拟器里一跑,看起来已经差不多了。`try` 负责正常请求,`catch` 决定失败后页面怎么表现,`finally` 则非常适合恢复 loading。`flag1`、`isShow2` 这种变量写的时候快,两周后自己都不知道是什么意思。一个点击事件里既改变量,又发请求,又拼参数,还顺手控制弹窗,短期很快,后面排错就很痛苦。这一篇真
2D 界面里 14sp 字号能用一辈子,到了空间界面这套经验直接报废——同一个 16sp 的 Text,放在 0.5m 的近场面板上清楚得很,推到 3m 远的展品信息牌上就成了糊成一团的灰影。我们做商品空间详情页第一版时照搬 2D 字号表,真机戴上头显站到 3m 外,价格数字完全认不出,设计师还以为渲染出了 bug。这篇把"多远用多大字号、配多少对比度才看得清"这件事量化成可落地的门禁,给一份能直
Z 轴位移动画用 ease-out,别用 spring(振荡最晕)位移速度 ≤ 2 m/s,耗时 1~1.5s 为宜峰值加速度 ≤ 5 m/s²,覆盖前庭敏感人群连续 Z 轴动画缩位移幅度,间隔 <500ms 切 linear 缓动X/Y 轴动画可以用 spring,不引发晕动症单次 SSQ < 10 可接受,连续操作注意累积效应目前阈值是按 12 个同事的测试定的,样本量小。下一步打算做更大规模
Panel 距离 2m 最舒适,1m 适合交互,0.5m 以内只适合短暂提示Panel 宽度按距离和 FOV 算,留 20% 余量保证不超出清晰视野视野清晰区中央 60°,Panel 占角不超 60° 不用转头每项内容占 0.4m×0.3m,Panel 尺寸按项数算交互 Panel 和阅读 Panel 距离分开设,不混放near/far 裁剪面默认 0.1m/10m,Panel 别贴近裁剪面会有渲
2D 商品列表一屏放 20 条,用户拇指一划扫过七八条,信息密度高但有效。搬到空间界面,同样的 20 条排成空间网格,戴上头显一看——密密麻麻全是卡片,分不清主次,看两秒就累。我们第一版直接把 2D 列表的 20 条照搬过来,用户测试 8 个人里有 6 个说"太挤了不想看"。砍到 8 条,有人说"空了点但能看"。砍到 4 条,有人说"太少了不够选"。这篇把信息密度从 2D 到空间的迁移量化,给一张
手势捏合 > 凝视(150ms 注视)> 手势悬停(500ms 长按升级)> 头动(不点选)时间窗口 200ms,连续操作时缩到 100ms凝视注视阈值 150ms,密集列表场景调到 250ms头动只控视角不产生点选焦点手势纯悬停不抢凝视焦点,需捏合或长按才算主动操作。
2D 界面排层级靠 z-index,数值大的盖小的,规则简单粗暴。到了空间界面,层级变成物理深度——一个组件在 Z 轴上离用户多远,决定了它被看见的先后、被交互命中的优先级。两套逻辑映射不好,要么该在上面的被挡住,要么该优先响应的收不到事件。我们做空间商品详情页第一版,信息卡和主商品的 depth 差设小了,转角度时信息卡时隐时现,QA 提了 14 个 bug 全是层级问题。这篇把 depth 值
卸载场景不能只调 release,要手动释放纹理等附加资源CPU 内存回收依赖 GC,时机不可控,要主动监控内存阈值预加载范围 ±1,保留范围 ±2,平衡流畅度和内存快速滑动时加载不可取消,用取消标记避免加载完挂到场景树同时渲染场景数不超过 3 个,避免 fillrate 过载掉帧重建时暂停列表预加载,避免重建内存和渲染内存叠加 OOM内存回收效果跟芯片相关,9020 上需要更激进策略接近内存阈值
进度条按阶段实际耗时占比分配段位,不要平均分高斯优化占 60%+ 耗时,是进度条设计的重点回调间隔可能超过 1 秒,加心跳动画防止"以为卡死"预估剩余时间用指数移动平均平滑,避免跳变进度回调在子线程,用 AppStorage 跨线程更新 UI必须处理失败回调,失败时进度条变红显示原因同一时刻只允许一个重建 session,重复触发要拦截进度体验跟芯片强相关,低端芯片上 UI 优化收益有限。
这两年做界面设计,最绕不开的风格大概就是毛玻璃了——iOS 的控制中心、macOS 的侧边栏、各种 App 的底部导航,全是半透明加模糊的路子。第一次在 HarmonyOS 6 里想复刻这种质感时,我以为要写一堆 Canvas 滤镜,翻了一圈文档才发现,ArkUI 早就把“背景模糊”做成了组件属性,一行代码的事。但“能做出来”和“做得好看”之间隔着很远的距离。这篇我就从毛玻璃的构成讲起,把半透明、
切到夜晚,整片天暗下来,月亮泛着冷光,星星在移动视角时呈现近大远小的视差——因为天空盒是贴在一个大球上的,相机一转,整个星空都在转。3D 渲染想复刻这件事,最省力的办法就是:把一个巨大的球或立方体罩在相机外面,把天空的图贴在这个罩子内壁上——不管相机转到哪个方向,看到的都是天空。回头看,天空盒方案真正厉害的地方不是“贴背景”,而是“给光”——一张全景图同时决定背景和光照,换一张图,整个世界连同模型
有一次我想在应用里塞一个“关于页”,不想用原生 UI 画,直接上 Web 页面最快。结果发现 HarmonyOS 6 的 Web 组件比我想象的完整:加载页面、前进后退、加载进度,全是现成能力,一个 WebviewController 全包了。既然基础这么好用,我干脆把它做成一个“极简浏览器”:地址栏能输网址,工具栏能后退前进刷新,顶部一条实时加载进度条,默认打开一个打包在应用里的内置页面——全程
前阵子整理旧手机,翻出一个装满了本地音乐的文件夹——都是上学时候一首一首下进去的,有些歌连平台都已经下架了。我一边听一边想,这些歌我可能不会再主动点开,但删掉又舍不得。干脆,给它们做一个自己的播放器?不接流媒体、不碰云盘,就在 HarmonyOS 6 上做一个把本地音频老老实实放出来的播放器。需求极简,但做完之后我对 AVPlayer 这个老熟人的理解完全不一样了——以前我只是会调它的接口,这次我
本文通过 ThermalReconLab 演示端侧 3DGS 重建中的热治理策略,针对设备过热导致任务反复暂停恢复的问题,提出基于滞回阈值(暂停5、恢复3)与30秒稳定窗口的智能控制机制。协调器通过会话代次防错、状态驱动UI更新、前台优先恢复等设计,避免无效抖动。强调热事件需结合会话状态、前后台模式综合判断,确保暂停/恢复逻辑安全可靠,提升用户体验与系统稳定性。
闪控窗恢复的核心不是“再调用一次 start”,而是先证明旧控制器已经退出:监听解绑、引用清空、代次失效。只有这个闭环完成,下一次创建才有清晰起点。恢复入口也不应该藏在状态回调里。让用户回到前台、重新确认能力开关和授权,再主动触发,是对系统约束和用户意图都更诚实的做法。的 68% 在窗口停止前后保持不变,正好说明了这篇文章的主张:窗口是任务的一个视图,不是任务本身。把两条生命周期拆开,故障才能被解
本文提出一种基于bundleName、签名指纹与appId三要素的包身份校验方案,通过ReleaseProofDesk诊断页实现候选包身份精准核验。利用Native层接口读取实时应用信息,结合严格比较规则与安全前缀展示,避免仅凭文件名或截图误判。模块注册统一命名,内存管理规范,状态机清晰区分链路异常与身份不匹配,提升发布流程可靠性。
本文以 TwinRailDesk 演示项目为例,探讨平板横屏双栏布局下的路由语义管理难题。核心观点:双栏本质是栈的管理问题,而非单纯布局。通过明确 MultiNavPathStack 所有权、引入“代次”(generation)机制确保请求有效性,区分主页选择与详情钻取行为,并将模式切换仅作为观测信号,避免重建栈。强调详情页需校验参数与代次,防止异步覆盖;组件间职责分离,保障状态一致性。最终实现跨
本文通过 DraftPatchDesk 演示项目,提出一种基于补丁的草稿管理方案:将“返回”“撤销”“恢复”三种回退语义分离,利用 Immer 生成正向/逆向补丁,维护有限深度撤销栈,并结合 HarmonyOS Preferences 实现带代次的检查点持久化。该方案避免快照膨胀与状态污染,确保撤销可逆、恢复可靠,适用于跨页表单等复杂编辑场景。
本文提出图像超分后导出阶段易被忽视的色彩管理问题,通过 SrColorGate 演示项目强调:仅关注分辨率与速度不足以保证视觉一致性。关键在于显式查询六元组(源/目标色彩空间、元数据、像素格式)支持能力,避免错误转换。采用状态机管理导出流程,绑定生成版本防止资源错乱,并通过 RAII 机制确保 Native 资源正确释放。代码实践表明,导出需独立于算法,以保障颜色准确性和系统稳定性。
本文聚焦文搜图检索中“相似度分数”易被误用的问题,提出通过SemanticRankLab校准台实现可解释的排序与筛选。针对similarity取值范围[-1,1]却无统一阈值的痛点,设计RankedPhoto模型,分离原始分数与展示逻辑,结合样本标注、稳定排序与代次控制,确保结果可复现、日志可审计。强调门限需基于场景校准,避免“拍脑袋”决策,并通过生命周期管理防止旧结果干扰,最终实现从“能返回图”
本文提出基于ConsentTraceLab的隐私权限时序门禁机制,通过结合HarmonyOS的PrivacyManagerService系统记录与应用自定义HiLog日志,构建冷启动下敏感权限调用与用户同意的时序比对。针对“自动初始化提前访问权限”等典型风险,强调需在统一时间线上验证lastAccessTime与consentMark的先后关系,避免仅依赖代码逻辑判断。工具脚本严格解析hidump
本文提出 StateFuzzLab 测试工具,基于 fast-check 生成异步命令序列,通过精简模型与真实系统比对,高效复现复杂时序缺陷。以任务页为例,从23步反例收缩至5步:OPEN → START → BACKGROUND → RESUME → CANCEL,暴露 activeJob <= 1 不变量破坏。强调模型应聚焦关键状态、命令需定义边界条件、使用 reset() 保证纯净环境,并借
PermissionEvidenceGate 作为上架前权限审计工具,不替代人工判断,仅生成可审核的差异证据。它通过标准化解析私仓权限文件,基于 JSON Pointer 比较基线与当前版本,精准识别新增、移除与变更项,输出结构化差异报告。强调原始文件保留、路径不变性处理及人工决策输入,确保每项变化可追溯、可解释,最终状态为 WAITING_OWNER_REVIEW,推动合规审查从“截图留痕”迈向
FeatureSnapshotLab 通过构建阶段严格校验远端配置,杜绝“可解析但不可用”的危险配置。采用 Zod 4 验证模式版本与跨字段约束,迁移过程不自动补值;构建脚本仅在验证通过时写入正式快照,失败则隔离候选,确保安装包只含合规配置。设备侧仅激活已验证版本,拒绝未通过门禁的更新,实现发布安全闭环。
本文针对折叠设备上表单输入时因形态切换导致的布局抖动与焦点错位问题,提出通过 SafeAreaCoordinator 协调器统一管理折叠状态、避让区与根节点可视高度变化。采用120ms稳定窗口机制,聚合多源回调生成候选快照,确保布局稳定后才更新界面。通过估算键盘遮挡高度并设置安全高度下限,保障“保存”按钮可见性;最后在组件树稳定后回填焦点,避免光标错位。该方案有效解决悬停态下输入体验断裂问题,提升
本文通过 SRLeaseBench 演示在 HarmonyOS 7 API 26 的 Core Vision Kit 中实现图像超分的资源管理机制。针对连续处理、页面切换与结果延迟返回等问题,提出“租约式”生命周期管理:以代次控制结果接纳,任务持有返回值,UI 交换后才释放旧资源;通过 AnalyzerOwner 统一分析器生命周期,SRLeaseController 管理代次与租约,确保结果不被
折叠屏适配难题在于状态与布局的错位。HoverComposerLab 演示中,通过统一管理 DraftStore 状态、避免组件重建丢失数据,实现17个字段全保留;利用FoldSplitContainer分区但不绑定业务逻辑,确保三态切换时内容一致;引入80ms稳定窗口处理异步事件,防止迟到回调覆盖新状态。核心是:状态独立于布局,布局服从数据契约。
本文提出可复用的依赖差异门禁工具 DependencyDeltaDesk,通过采集、规范化与比较 OHPM 依赖树快照,精准识别新增、移除及版本变化。以 DEP-1036-318 为例,当前依赖树比基线多 6 个传递依赖,超出 4 的预算,触发 REVIEW_REQUIRED。工具避免硬编码结构,采用契约式适配,确保输出可解释、可追溯,解决“无变更处藏风险”的治理难题。
本文提出 ParallelRuleGuard 工具,聚焦折叠屏平行视界适配中的配置有效性问题。通过三重校验:结构合法性(JSON Schema)、语义冲突检测(重复/遮蔽规则)与产物指纹核验,实现可工程化的自动化检查。演示中14条规则3处阻断,状态为 BLOCKED,强调配置正确性需分层验证,避免静态通过即上机的误判。
FormSeal 修复签批页签名偏移问题,核心在于厘清预览、旋转与PDF坐标系差异。通过normalizePageSpace统一坐标转换,确保触点准确映射至未旋转页面;采用内存副本写入+原子替换机制,保障文件完整性;临时文件仅属单次事务,失败则自动清理;最终通过多维度验证(页数、字段、签名位置)确保输出正确。全流程以任务编号PDF-2142追踪,实现可复现、可回滚的可靠签批。
ClusterAtlas项目通过精细化设计解决跨180°经线地图分簇异常问题:将相机边界拆分为合法包围盒,结合生成代数(generation)机制确保异步查询一致性,利用唯一标识去重并仅在最终提交时更新UI,彻底消除旧点覆盖新点现象,实现拖动流畅、状态准确的海运风险点可视化。
本文介绍了一套多语言资源门禁系统,通过静态矩阵比对与运行时探针,自动检测阿拉伯语等多语言资源的键缺失、占位符错配、复数规则遗漏及RTL方向问题。工具在构建阶段强制校验312个键在中、英、阿三语言中的结构完整性,确保无回退依赖,最终实现936项检查全通过,保障发布前多语言工程的可靠性与一致性。
本文针对大模型流式加载中的帧率卡顿问题,提出基于映射窗口代际管理与状态流水线的分页机制。通过引入预测、预取、围栏确认与延迟回收,实现0次重大缺页、37次次要缺页、23ms稳定切换延迟,峰值内存控制在256MiB。关键创新包括:代际防错映射、GPU围栏后回收、账本化状态追踪及异常恢复重置,确保资源安全与性能可测。
本文介绍了一套名为A11yReleaseGate的无障碍门禁系统,通过动态语义快照采集与规则比对,解决界面状态变化导致的无障碍缺陷漂移问题。系统在CI阶段自动扫描24个页面、486个交互节点,以语义身份排序、像素转vp、动作前后对账等技术确保检测稳定性,实现无标签、重复标签、小触控目标和焦点环路等问题从7→0、5→0、1→0的闭环修复。工具支持规则可解释、日志可追溯,并将门禁前置至提交阶段,显著提