自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(382)
  • 资源 (7)
  • 收藏
  • 关注

原创 示例资料明明填了,输入框却没变:HarmonyOS 6 多端表单的一次修正

周末报名处有四个字段:称呼、手机号、出发城市和备注。宽窗口里分两列,窄窗口里顺着一列填写,再选城市散步或山野徒步。做版面之前,先给它加了“填入示例资料”,方便比较同一组内容在两种宽度里的变化。实测时,这个按钮恰好暴露了问题:状态变量已经赋值,输入框仍然是空的。如果只检查提交方法,可能会看到报名成功,以为页面已经没问题;可用户眼前根本没有显示那份资料。这篇就先从这个小错讲起,再把布局与完整代码放在后面。按钮更新了状态,不代表用户一定看到了更新。

2026-11-07 17:38:33 1

原创 明信片排几列,交给当前窗口:HarmonyOS 6 Grid 小练习

几张明信片放在宽窗口里,一排三张很舒服;窗口缩小后,还坚持三张并排,图片和按钮就开始互相争空间。旅行邮局用九张本地卡片做一件简单的事:一列、两列、三列之间切换,同时让已经收进邮袋的那张仍然被记住。这次使用的是 Grid,而不是把每张卡片的横坐标自己算出来。Grid负责规则网格与滚动,页面提供当前列数,卡片内部只安排图片、标题和收下按钮。先把这几层分开,后面增加卡片时才不必一起修改一串位置公式。不足560 vp时排一列,560 vp到899 vp排两列,达到900 vp排三列。只读取内容宽度并返回列数,再拼出

2026-11-07 16:45:15 10

原创 宽出来的地方放什么?给 HarmonyOS 6 出行看板排一轮信息优先级

一张出行看板如果同时摆满天气、预算、同行人和路线说明,信息确实不少,真正准备出门时却可能先找不到目的地和出发时间。窗口缩小以后,这个矛盾更明显:不能既保留所有辅助内容,又要求主要信息一直清楚。这次的小页叫“下一站,出发”。它不把每块内容都等比缩小,而是把信息分成三个层级。最窄时保留目的地、时间和清单操作;空间增加后补行程细节;再宽一些才展示天气与预算备忘。切换日期和确认清单则始终使用原来的状态。空间多了,应先让任务更容易完成,再考虑增加信息量。这张看板围绕目的地和出发时间展开,逐层补足上下文;

2026-11-07 16:42:25 14

原创 这次由谁决定配色?HarmonyOS 6 手动外观与跟随系统

设置页里的“跟随系统”不是第三种固定颜色。它意味着撤销应用自己的浅色或深色偏好,让资源匹配继续接受系统配置。如果按钮高亮已经换到“跟随”,页面却仍缓存着上次的深色值,控件看似齐全,决定权其实没有交出去。这篇便签练习就围绕这个交接展开。白昼便签用一段文字观察这件事。上方有三种外观入口,下方是一块可编辑便签,右下角可以把当前内容留在本页。切换时纸色、文字与操作色一起变化,文字本身和保存反馈继续保留。这次重点是偏好的来源,和前面单纯给阅读页准备两套颜色相比,观察角度不同。

2026-11-07 16:41:03 16

原创 视频进入全屏,播放仍交给同一个控制器:HarmonyOS 6 放映室

播放器里有两个看起来相近的按钮:一个开始播放,一个把画面放大。前者改变播放状态,后者改变呈现方式。如果每次全屏都重新创建一个播放器,短片也许还能看,长视频就容易出现进度重来、重复声音或者返回后按钮与画面不同步。这次放映室只使用一个 Video 和一个 VideoController。画面来自本地十二秒的几何测试短片,静音播放,方便专门观察进度与全屏过程。页面不需要账号、在线播放地址或外部播放器,就能把开始、暂停、全屏和返回接起来。

2026-11-07 16:21:49 88

原创 网页放进应用以后,也得会换行:HarmonyOS 6 Web 布局实做

把网页放进应用,看上去只需要一个 Web 组件。可应用窗口缩到旁边以后,网页仍然固执地保持三栏,字小得要放大才能读,这时问题已经不在原生页面怎么排列。外层容器和网页各有自己的布局,必须把这两层一起接上。风物小报使用一份本地 HTML。里面是三则周末短文,宽时三栏,窄时一栏,页尾有“标记读过”按钮。原生工具区可以改变自由窗口宽度、执行网页操作,再读取网页报告的尺寸和计数。这样不用依赖外部网站,也能把一次窗口变化追到网页内部。

2026-11-07 16:13:13 86

原创 同一张库存表,宽窗多看几行:HarmonyOS 6 列表密度调整

库存表在窄窗口里需要先回答两个问题:这是什么货,还有多少。窗口拉宽后,如果仍是一行巨大的名称和一大片空白,查找效率并不会跟着空间一起增加。青禾仓储这张小表选择了另一种排法:增加辅助字段,同时把行距调整得紧凑一些。这里的“显示更多”有两层意思。一层是同一行能看到库位和更新时间,另一层是有限高度里能容纳更多行。两层要分别设计。给每行多塞几段文字,却维持过高的留白,只完成了前一半;把行压得很薄,让按钮难以点击,也不算合适的密度。紧凑排版的价值,可以落到一次实际查找上:宽窗能多看几行,也能直接查库位;

2026-11-07 15:31:06 41

原创 菜单搬到上面以后,刚选的栏目还在:HarmonyOS 6 自适应导航

一张课表有三个入口:今天上什么课、这周练什么、已经学了多久。窗口比较窄时,把入口放在底部,正文留在中间;空间宽起来以后,让入口出现在正文上方,扫一眼就能切栏目。菜单换个位置并不难,容易被漏掉的是换位置之后的那一次点击。比如先打开练习清单,加入一项练习,再把窗口拉宽。如果页面突然回到今日课程,或者加入按钮又变成初始状态,用户就得重新找一遍。映日课表把这个过程放在一起做:栏目位置跟随可用宽度,栏目选择和练习状态各自保留。本例使用 HarmonyOS 6.1.1、API 24,运行环境是二合一模拟器。

2026-11-07 14:59:38 85

原创 一个工程面向手机与二合一:HarmonyOS 6 部署配置和本地手记

随身手记最基本的承诺,是刚写下的话下次还在。这个收尾练习就用一段本地手记,把页面布局与部署配置接到一次真正的读写里:编辑、保存、换窗口大小,再结束进程重新打开,看看刚才的文字是否回来。这篇把工程配置与运行表现分别确认。示例做成一页随身手记,核心操作是编辑、保存和重启后读取。宽窗口增加设备信息区,紧凑窗口专心编辑,让同一份业务代码在不同空间里保持清楚的使用方式。写下的话能保存,重新打开仍能读到,窗口收窄后也能接着编辑——这就是本例实际跑通的范围。部署声明、可用空间和本地数据分别有自己的依据。

2026-11-07 14:20:39 45

原创 大模型的训练数据从哪来?用亮数据做一份 Python 问答训练集

大模型的训练数据从哪来?用亮数据做一份 Python 问答训append和extend都能往列表里加东西,到底有什么区别?试一下就明白了。对[1, 2]使用,结果是。换成,结果就是。这道题和它的答案,就可以做成一条训练样本。整页 Python 文档里还有导航、目录和链接,真正用得上的,可能只有解释这两个方法的几段话和一小段代码。从网页到训练集,中间最花功夫的往往就是这些活儿:挑内容、写问题、核对答案。

2026-11-07 10:11:07 4180

原创 留言写到最后一行,键盘也别挡住它:HarmonyOS 6 输入避让

表单最容易出问题的时刻,往往不是刚打开页面,而是用户滑到底部,准备写最后一段话。输入框原本在屏幕上,键盘一弹,光标和操作区一起挤到了看不见的位置。用户还在输入,页面却像突然少了一截。这次做一个“旅途留言”表单:称呼、目的地、邮箱,以及给自己的一句话。既保留系统输入框,也为最后一项准备一个真实的 ArkUI 快捷键盘,用几句常用留言检查弹起、输入、收起与保存这一整段过程。避让要照顾的是正在写字的人。

2026-11-06 13:42:49 184

原创 拖走窗口,灵感还在:HarmonyOS 6 多窗口重排

我希望这页能像桌上的便签板:放大时多摆几张卡,缩到旁边时少摆一点,挪到屏幕另一侧也不影响刚刚选中的灵感。窗口的位置和内容的状态,最好互不打扰。于是做了一个“灵感工作台”。页面还显示当前宽度、列数与选中卡片。与单纯切换一列、两列的演示相比,这次把真实窗口移动也放进操作链,看看移动和缩放各自会带来什么变化。这页并不需要占满桌面才能工作。用户可以先挑选灵感,再安排窗口的位置与大小;真正多实例的数据协同可以另行设计,当前先把这一个自由窗口里的连续操作走稳。

2026-11-06 10:44:42 210

原创 导航该收起来,还是留在左边?HarmonyOS 6 侧栏小练习

手机宽度下,分类一直占着左边,正文会被挤得很窄;宽窗口下,每次切分类都先打开一个抽屉,又显得多了一步。这次让同一个导航内容根据空间换一种出现方式:宽时常驻左侧,窄时放到覆盖式抽屉里。分类选中状态始终是一份,切完分类后收起抽屉,正文立即显示对应路线。判断这份导航是否合适,可以回到一次切路线的动作:找得到目录,选得中分类,关掉后正文仍是刚才那一条。宽窄变化只影响目录出现的位置和时机。后面扩展层级或接入真实路线时,也先保住这一条连贯的操作。

2026-11-05 13:50:50 243

原创 一行 Image 背后的四份资源:HarmonyOS 6 限定符练习

同一张明信片,白天想用浅色天空,夜间想换成深色山景;放到二合一设备上,还想多留一点横向风景。第一反应可能是在页面里加几个判断,再给 Image 传不同路径。图少时还能记住,页面一多,条件就容易散到各个角落。这次把选择交给资源目录。页面只引用,标题只引用。名字不变,不同限定符目录提供不同内容,让资源管理器根据运行设备和外观配置匹配。最后回到最初那一行 Image:它始终只认识 postcard。需要增加新版本时,先明确是哪一种运行条件,再补对应资源,不必让每个页面各自决定应该去哪儿找图。

2026-11-05 09:13:39 190

原创 出门要办三件事:用 AIUI 给 Rokid 眼镜做一个“顺手办”

取快递、买牛奶、送洗衣服,都是几分钟的小事,凑在一次出门里,就需要记住先后顺序。到了快递柜旁边,可能临时想先去超市;一件事办完后,又要知道下一件是什么。这样的安排适合做成一张随进度变化的行动卡片。想到把这些小事放到眼镜里,我先问了一个很具体的问题:抬眼看过来,能不能立刻找到“现在办什么”。因此页面围绕当前事项和下一件事来排布,复杂操作放到后面的管理页。这次我用 AIUI 做了“顺手办”:接收一组要办的事,先给出清单让用户核对;确认之后进入办理状态,把当前事项放大,显示下一件和完成进度。

2026-10-25 11:34:13 147

原创 让启元 T1 回答自己的项目资料:资料问答 Skill 开发实战

做完一个机器人项目,往往会留下几份开发笔记:接入方式记在一处,运行顺序放在另一处,不同版本的说明也常常同时保存。再查“这个版本要不要唤醒”“录制前需要准备什么”,仍得重新翻文件。如果能直接问身边的 T1,并在电脑上看到它查到的原文,查资料会方便一些。这次做的就是一个资料问答 Skill。这里的 Skill 是运行在机器人上的小程序,负责收音、提示音和播报;电脑端负责把语音识别成文字,从自己的笔记里查找内容,再请 DeepSeek 组织回答。

2026-10-22 15:08:30 289

原创 启元 T1 二次开发实战:基于 SDK 与 DeepSeek 的技术面试官 Skill

本文介绍基于T1机器人开发的智能技术面试官Skill,通过语音交互实现项目追问与复盘。机器人播报问题并采集回答,电脑端利用Vosk本地识别、DeepSeek模型生成讲解与追问,结合SQLite保存逐轮问答与原文依据。重点解决“不知道”场景下的分步引导与语音接管,确保问题完整播放、回答准确确认。两轮真实验证表明系统能有效处理追问、避免插话干扰,并生成可追溯的复盘记录,适用于提升面试表达能力。

2026-10-22 14:21:27 145

原创 启元 T1 服务调用实战:音量设置、状态回读与超时处理

设置音量这件事,最容易让人放松警惕。发一个数,收到正常响应,界面上打一个绿色勾,好像就结束了。这次我专门安排了一组不那么顺利的输入:目标是 70,SetVolume 回包中的音量也是 70,可紧接着调用 GetVolume,查到的却是 63。两个调用都没有报通信错误,公共码和业务状态也都正常。如果程序只打印“SetVolume 调用成功”,这一组问题就会被放过去。更棘手的另一组是:SetVolume 等到超时,随后查询却已经读到了目标值。前者提醒我们,响应正常还得检查状态;

2026-10-22 13:50:08 231

原创 连续触摸时,启元 T1 应该怎么回应?一个完整的 ROS 2 交互程序

给机器人加一句触摸问候,第一反应往往是:订阅触摸消息,然后调用一次语音服务。真正把输入连续发过去,问题才开始出现。同一条事件又来了一次怎么办?上一句还在处理,下一次触摸要不要跟上?更麻烦的是,程序已经判定超时,旧响应却在新请求进行到一半时回来了。这篇就围绕这些交互细节,给启元 T1 写一个完整的触摸程序。背部单击发送一句问候,胸部双击换一句回应;页面同时显示事件经过了哪一步。先看跑完一组场景的过程:动图中的数字来自 ROS 2 程序的实际回调。

2026-10-22 11:25:34 342

原创 启元 T1 二次开发实录:关节怎么动,状态怎么读

看启元 T1 的产品展示,很容易先被“变形”吸引:人形轮足和四足,看起来像两台机器人。这两件事做扎实,再往上叠动作和交互,排查问题才有抓手。在里,两种形态放在一起很好辨认。到了工程模型中,这些外形会被拆成连杆、转轴、关节限位和执行器。轮足在哪里、前肢怎样折叠,都能顺着关节树继续查下去,和只看一段产品视频的感受很不一样。这次就从模型与接口各选一个切口:用官方模型做一段固定基座的关节往返实验,再用官方 SDK 的 Bms 类型搭一个状态观察页。

2026-10-22 09:48:29 362

原创 返回 null 不一定入队成功:鸿蒙 KMP上的并发优先队列观察笔记

这次鸿蒙接入保留了原共享实现与协程依赖,页面上的排序、淘汰、同键更新和出队都来自实际库调用。最该记住的规则是:数字大小由比较器解释,同键只能提升优先级,而add返回空值不等于每一次输入都被接受。只有把任务身份、容量和观察快照的含义对齐,队列才容易接进实际应用。至于更大任务量、持续并发和吞吐比较,应在这些规则已经确认后另外设计测量。完整示例可见并发优先队列适配目录,鸿蒙跨平台工具与文档在。其他适配示例见开源合集,应用与三方库共建资料见。

2026-10-21 10:12:43 2807

原创 把一份背包数据装进 NBT:KNBT 在鸿蒙 KMP上的标签与压缩实验

最后执行十六项设备内检查,覆盖三种包装的往返、Unicode 文本、长整数、空 Compound、整数数组、规范化幂等、包装头识别、语法拒绝、跨缓冲块数据、截断与校验损坏以及反复释放。序列化核心与 Okio 使用对应的 OHOS 发行依赖,版本、来源及摘要保留在源码目录,避免出现“同名依赖能下载,目标架构却对不上”的情况。但把数据保存下来,再交给另一个程序读取,问题就换了一种问法:生命值原来是短整数,开关原来是一个字节,余额用了长整数,这些区别经过一次编码和解码之后还能不能保留?

2026-10-21 10:11:51 2081

原创 连线之后还有几组?用 Kodvent 把并查集放进鸿蒙 KMP界面

把 Kodvent 接进鸿蒙以后,界面可以直接观察关系合并与区间更新,而算法仍保留在原共享代码里。最容易记住的三个点是:重复合并不会继续减少组数,隔离成员会保留其他成员的连通关系,线段树查询的终点也算在范围内。这类库往往没有很复杂的平台依赖,适配工作仍然需要对齐编译选项、桥接边界和输入规则。示例与说明可见Kodvent 适配目录,官方跨平台资料集中在。并查集与区间示例可以从总源码索引找到,相关应用共建项目见。

2026-10-21 10:11:00 2275

原创 围栏里挖个洞,判断结果为何没变?GEOK 的鸿蒙 KMP接入记录

GEOK 的共享实现可以通过鸿蒙 Kotlin/Native 编译并接到 ArkTS 页面,适配中没有改写原有几何代码。这个实验更有用的部分,是把几个 API 的定义摆在一起:闭环会自动补齐,中心是顶点平均,周长只算外环,洞面积会扣除,而洞内点并没有被当前contains排除。对一个小工具来说,把这些行为讲清楚,比只放一张“点在范围内”的截图更实用。以后接入真实地图或业务围栏时,也可以沿用这个验证次序:先确认坐标顺序,再确认边界规则,然后核对几何量,最后考虑定位与交互。相关源码与示例放在。

2026-10-21 10:09:50 1933

原创 公式不必写死在页面里:鸿蒙 KMP接入 Expressions Evaluator,算折扣也算条件

库的函数声明包含名称和参数数量,示例的运费函数注册为两个参数。函数内部还要检查类型:数量正确不代表类型正确,给它一个布尔值仍应失败。这里接受数字类型并转成双精度值,然后做加法,避免假设所有调用者只会传一种具体数字类型。下面是的完整内容。先声明两参数 Fee 函数,再构造求值器和固定变量环境。evaluate 会解析一次输入,在本次调用中用两份环境求值,并检查结果类型和有限性。完整文件还包含 JSON 返回辅助方法及十六项检查,因此数字、条件与失败都走同一条可追踪的返回链路。

2026-10-21 10:08:52 2445

原创 true 为什么变成 false?用 better-parse 在鸿蒙 KMP页面里拆开布尔表达式

这个例子更适合用来调试条件,而不是代替完整的权限系统。真实权限还会有身份来源、服务端校验和数据范围,不能只凭客户端输入的几个布尔变量作决定。示例使用固定变量,让讨论集中在词法和语法解析上。接入 better-parse 后,最有用的不是把输入换算成真或假,而是能同时观察词元和结构。条件理解有分歧时,先确认字符如何分段,再确认节点如何组合,最后才看求值环境。这样的排查顺序对短表达式也有价值,尤其是那些看起来只需要补一层括号的问题。源码见better-parse 鸿蒙适配与示例,总项目见。框架资料见。

2026-10-21 10:05:03 2534

原创 给筛选条件加上括号:Parsus 在鸿蒙 KMP里解析一小段查询语言

设备内检查覆盖十六项,包括比较边界、小数、负数、空白忽略、与或优先级、括号、未知字段、空查询、尾随文本,以及失败后的恢复。其中既有应该命中的条件,也有应该被拒绝的输入,不能把所有检查都写成能成功的同一种路径。示例会检查整棵树用到的字段,发现不支持的名字就返回错误,而不是把不存在的数据当成零,悄悄给出一份错误结果。这里的与符号比或符号结合得更紧。没有括号时,一段“会员商品,或者价格符合且有库存”的规则,会先计算后面的两个条件;它不是数据库语句,也不执行脚本,只认识三个字段、几个比较运算符,以及与、或和括号。

2026-10-21 10:02:12 2143

原创 渐变中间那一格怎么算?用 colormath 做个鸿蒙 KMP调色器

本文介绍基于KotlinMultiplatform库colormath实现的“颜色中间站”调色器,通过对比sRGB与Oklab空间插值效果,展示不同算法对渐变色彩的影响。利用ArkUI在鸿蒙设备上实时渲染双色带、动态文字配色及数值校验,支持预设切换、滑块调节与自动对比度计算。关键在于明确输入、处理与输出空间,结合裁剪与核验机制确保跨平台一致性,适用于配色比较、屏幕校准与开发调试。

2026-10-14 09:16:56 2941

原创 立方体转到九十度:用 kotlin-math 核对鸿蒙 KMP上的两种旋转

示例把原库的共享源码编译到鸿蒙 Native,由它计算顶点,ArkTS Canvas 再连接投影后的坐标。后续扩展时,可以继续选择具有独立预期值的输入,先核对库返回的数字,再看图形表达是否正确。横坐标加到画布中心,纵坐标从中心减去:Canvas 的 y 轴向下,图形计算里的正 y 方向要在这一层换成屏幕位置。两端都核对了自动旋转、暂停、正面零度、侧面九十度、矩阵与四元数切换,以及重置后恢复转动。这次旋转实验最有用的地方,是让一个“看起来转对了”的画面能够继续追到坐标、角度单位和乘法顺序。

2026-10-14 09:15:20 1807

原创 在 HarmonyOS 6 上做了张 3D 翻转卡片,正面背面来回翻

单词卡、问答卡、商品介绍,都有把另一份信息放到背面的场景。点一下翻过来,比另开一页轻一些,也能让内容之间的关系更直观。这篇就用 ArkUI 做一张卡:正面放问题,背面放答案,点击后绕竖轴翻转。卡片的两面好画,麻烦在转动的中间。两份文字如果一直叠着,又一起做透明度动画,转到一半可能会看到重影。这里采用分两段旋转的办法,到侧面时才换内容,让每一段都只显示一面。如果想先看看这种交互,可以打开 David DeSandro 的。那份示例使用 CSS,本文用 ArkUI 实现;

2026-10-14 09:03:42 111

原创 漏字、换词序、空查询:用 FuzzyKot 做一次鸿蒙 KMP搜索交互排查

FuzzyKot 1.0.0 的算法集中在 fuzzykot/src/commonMain,库本身没有外部依赖。这次保留原共享源码,新增 harmony 来配置 ohosArm64、ohosX64 目标及调用入口;完整鸿蒙程序放在原仓的 example/harmony,方便从库目录直接找到页面和 N-API 桥。平台环境按CPF-KMP-CMP 官方快速开始准备。本次实际编译器为鸿蒙 Kotlin/Native 2.2.21-1.1.0,应用和设备验证为 API 24。

2026-10-13 19:16:04 2593

原创 让大整数一位不丢:bignum 鸿蒙 KMP计算器的三组精度实验

N-API 层取出模式和两段字符串,调用 Kotlin 导出的函数,再创建页面可以读取的字符串。Kotlin/Native 返回值的释放也在这里完成:先复制到 N-API 的值中,再调用生成接口中的 DisposeString。如果先把输入转成 ArkTS number,超出安全整数范围的数值可能已经发生变化,再用字符串送给 BigInteger,库算得再准确也无法补回原来的数字。这个示例把字符串传递、原库运算和精度说明连在一起,既能检查长整数的最后一位,也能说明循环小数的最后一位从何而来。

2026-10-13 19:14:52 2467

原创 kotlin-retry 接入鸿蒙 KMP后,怎样确认它真的会停止重试

一个失败提示背后可能还有任务在等待。按钮再次可点,未必代表上一次请求已经结束;页面关掉,也未必代表后台没有下一次重试。接入重试库时,成功分支只是其中一种情况,次数上限、异常筛选和取消是否生效,同样需要留下能复查的记录。这次用的 2.0.2 核心模块做一组鸿蒙实验。失败来自本地可控函数,调用次数与失败原因都能重复设置。这样可以先检查重试规则,后续再把真实网络请求放进来;本次结果没有包含外部服务器超时或网络断开测试。

2026-10-13 19:13:25 1948

原创 Fleks 鸿蒙 KMP适配:从八个小球看实体和组件的变化

设备端另外创建了一份 World,检查空集合、Family 筛选、时间步更新、静止实体、组件移除与恢复、实体删除、清空、快照加载、遍历中删除、百个实体扩容以及 dispose。画布上放八个会移动的小球,再留几个按钮:新增、删除、切换速度、清空。这样一个很小的场景,已经足够把 ECS 的几种状态变化放到眼前:实体创建后进入查询集合,组件被移除后退出集合,最后整个场景被清理。这个示例的收获很具体:创建和删除可以对上实体数量,速度组件的变化可以对上 Family,系统更新可以对上坐标,清空和释放也有独立断言。

2026-10-13 19:09:05 2255

原创 零基础也能在 HarmonyOS 6 上做烟花:点一下满屏炸开

整个烟花拆到最后就三件事:方向撒均匀、参数试到位、寿命管起来。angle 管方向、speed 管远近、gravity 管下坠、friction 管轨迹、life 管消失——这几个字段挪到别的场景一样能用。想改成雪花,把重力换成横向飘的力;想改成喷泉,把 360 度撒开改成只往上喷;想改成萤火虫,速度调慢、亮度调低就行。粒子系统骨架就这一套,换什么效果都是填参数的事。

2026-10-12 09:28:46 901

原创 从 24 到 25 字节:compactstr4cj 的 CJMP 鸿蒙适配与 UTF-8 实测

状态码、页面标签、配置项名字,这些字符串通常很短。为了装几个字节,再给内容单独分配一块缓冲区,看起来有些浪费。compact_str 的思路很直接:短内容放进存储体,变长后再切到堆缓冲区。这次 compactstr4cj 的鸿蒙示例就从一个临界值开始看——二十四字节还能内联,二十五字节会发生什么。CJMP 社区:一起讨论公共逻辑库适配先说明“紧凑”的对象。这里的原生存储体是二十四字节,仓颉类通过句柄持有它。

2026-10-11 19:53:12 2519

原创 signal4cj 接入 CJMP:在鸿蒙应用里接收真实信号、撤销监听

这次做 signal4cj,我先给页面放了两个计数器:监听 A 和监听 B。点一次发送,两边都加一;移除 B 后再发送,只有 A 变化。这样一来,注册、接收、撤销这几件事能直接从画面看出来,也方便检查库的行为有没有真正接到鸿蒙进程。它对应的上游是 signal-hook。这里的 signal 指 Unix 系统信号,不是聊天软件,也不是普通组件点击事件。演示按钮最终调用 kill(getpid(), SIGUSR1),由系统把信号送回本应用,再经过原生处理器和仓颉分发路径更新计数。

2026-10-11 19:52:07 2525

原创 一次右尾概率实验:statrs4cj 的 CJMP 鸿蒙接入与双端实测

告警阈值、等待时间、实验数据,这些场景经常要算一个概率。写到标准正态分布的右尾时,最顺手的写法是 1−CDF(x)。大多数输入看起来都正常,直到把 x 调到 9:结果成了 0。这个 0 值得停下来看看。理论上右侧还有面积,只是已经很小。于是这次给 statrs4cj 做鸿蒙接入,我把“小概率会不会消失”做成了页面上的一组对照:同一阈值,同时显示 PDF、CDF、直接相减和 SF。拖动一下,比埋在日志里看一串小数直观。欢迎加入 CJMP 社区,交流公共逻辑库与鸿蒙接入。

2026-10-11 19:50:40 1498

原创 slicedeque4cj 鸿蒙适配实录:仓颉连续双端队列与 真机实测

这次做的是 slicedeque4cj,一个从 Rust slice-deque 移植思路而来的仓颉双端队列。它有个很容易被忽略的特点:队尾绕回开头以后,逻辑数据仍然可以用一段连续指针访问。看到“连续”两个字,第一反应可能是把队列复制到数组;这个实现走的是虚拟内存映射,复制快照只是额外提供的接口。选它,是想把三方库适配里比较底层的一条链路走完整:仓颉泛型容器、C 互操作、鸿蒙沙箱中的内存映射,以及最后真正装进应用。

2026-10-11 13:44:20 1761

原创 HarmonyOS 6 上的 3D 天空盒:白天与黑夜,一套场景两种世界

切到夜晚,整片天暗下来,月亮泛着冷光,星星在移动视角时呈现近大远小的视差——因为天空盒是贴在一个大球上的,相机一转,整个星空都在转。3D 渲染想复刻这件事,最省力的办法就是:把一个巨大的球或立方体罩在相机外面,把天空的图贴在这个罩子内壁上——不管相机转到哪个方向,看到的都是天空。回头看,天空盒方案真正厉害的地方不是“贴背景”,而是“给光”——一张全景图同时决定背景和光照,换一张图,整个世界连同模型的明暗一起变。切换的瞬间,背景、模型上的反光、整体色调全部联动变化——白天到夜晚的“氛围切换”是即时完成的。

2026-10-08 14:02:11 194

html+css自点轮播图之美女相册

这里记录了:html+css自点轮播图之美女相册

2022-11-23

html + css + js 实现计算器

这里记录了:html + css + js 实现计算器

2022-11-23

html + css + js 实现省市县三级联动

这里记录了:html + css + js 实现省市县三级联动

2022-11-23

html + css + js 实现文字弹幕效果

这里记录了:html + css + js 实现文字弹幕效果

2022-11-23

html + css + js 实现轮播图效果

这里记录了:html + css + js 实现轮播图效果

2022-11-23

html + css + js 实现购物商品放大镜效果

这里记录了:html + css + js 实现购物商品放大镜效果

2022-11-23

html+css+js 高仿贪吃蛇游戏

这里记录了:html+css+js 高仿贪吃蛇游戏,可以进行小游戏互动,按上下左右键进行游戏

2022-11-23

html+css+js 高仿百度首页搜索项目

这里记录了:html+css+js 高仿百度首页搜索项目,可以点击后可以百度进行搜索

2022-11-23

html+css+js 实现 精美购物车插件

这里记录了:html+css+js 实现 精美购物车插件,可以进行对商品的增删改查计算价格,增加数量,全选删除商品等操作。

2022-11-23

空空如也

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

TA关注的人

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