- 国际化页面不维护硬编码多语言数组。静态文案进入 string.json,页面通过 $r('app.string.xxx') 读取;数字和日期格式交给 intl;系统语言、地区和区域变化在 Demo 页面内通过公共事件 COMMONEVENTLOCALECHANGED 感知。 参考能力: @kit.Localizatio 国际化页面不维护硬编码多语言数组。静态文案进入 string.json,页面通过 $r('app.string.xxx') 读取;数字和日期格式交给 intl;系统语言、地区和区域变化在 Demo 页面内通过公共事件 COMMONEVENTLOCALECHANGED 感知。 参考能力: @kit.Localizatio
- 资源规范的重点不是把所有内容都塞进 JSON,而是让同一类资源成组维护。深浅色要保证 base/dark 同名颜色 key,国际化要保证 base/enUS/frFR 同名文案 key。 本篇边界 这篇只讲 color.json、string.json、资源限定词和 key 命名。Demo 不做运行时扫描资源文件,不做 资源规范的重点不是把所有内容都塞进 JSON,而是让同一类资源成组维护。深浅色要保证 base/dark 同名颜色 key,国际化要保证 base/enUS/frFR 同名文案 key。 本篇边界 这篇只讲 color.json、string.json、资源限定词和 key 命名。Demo 不做运行时扫描资源文件,不做
- 权限页只讲四件事:先声明、再检查、按需申请、展示结果。不要把真实分布式同步、拍照、定位这类业务流程混进权限入门页。 本 Demo 复用项目已经声明的 ohos.permission.DISTRIBUTEDDATASYNC,只演示权限申请和状态反馈,不执行真实同步。 交互预期 点击“检查权限”,页面显示当前权限是否已授权 权限页只讲四件事:先声明、再检查、按需申请、展示结果。不要把真实分布式同步、拍照、定位这类业务流程混进权限入门页。 本 Demo 复用项目已经声明的 ohos.permission.DISTRIBUTEDDATASYNC,只演示权限申请和状态反馈,不执行真实同步。 交互预期 点击“检查权限”,页面显示当前权限是否已授权
- 日志和错误处理是后续系统能力 Demo 的底座。页面 Demo 不能只调用 console 或 hilog 后没有反馈,用户需要能看到当前动作是否成功、失败原因是什么。 本页演示三种最小能力: hilog.info:记录普通流程。 hilog.warn:记录可降级但需要关注的状态。 BusinessError:显示 c 日志和错误处理是后续系统能力 Demo 的底座。页面 Demo 不能只调用 console 或 hilog 后没有反馈,用户需要能看到当前动作是否成功、失败原因是什么。 本页演示三种最小能力: hilog.info:记录普通流程。 hilog.warn:记录可降级但需要关注的状态。 BusinessError:显示 c
- 工程化 Demo 里讲生命周期,不应该一上来就写后台任务。先把页面可见生命周期和组件出现/销毁看清楚,后面接文件、通知、分享或系统 Kit 时,才知道初始化、刷新和释放应该放在哪里。 本页只演示四类入口: aboutToAppear:组件即将出现,适合准备轻量状态。 onPageShow:页面重新可见,适合刷新页面内展 工程化 Demo 里讲生命周期,不应该一上来就写后台任务。先把页面可见生命周期和组件出现/销毁看清楚,后面接文件、通知、分享或系统 Kit 时,才知道初始化、刷新和释放应该放在哪里。 本页只演示四类入口: aboutToAppear:组件即将出现,适合准备轻量状态。 onPageShow:页面重新可见,适合刷新页面内展
- 前面我们写过 DeviceKVStore,也写过应用接续。分布式数据对象看起来也在做“跨设备同步”,但它的定位不一样。 它不是持久化数据库,更像把一个 JS 对象封装成可同步的共享状态。你在一个设备上改对象属性,同一个 sessionId 下的另一台设备可以收到变化。 官方文档可以先放在手边: 分布式数据对象跨设备数据 前面我们写过 DeviceKVStore,也写过应用接续。分布式数据对象看起来也在做“跨设备同步”,但它的定位不一样。 它不是持久化数据库,更像把一个 JS 对象封装成可同步的共享状态。你在一个设备上改对象属性,同一个 sessionId 下的另一台设备可以收到变化。 官方文档可以先放在手边: 分布式数据对象跨设备数据
- 上一篇跑通了最小闭环:保存向量字段,再用 SQL 距离排序找回来。 这一篇接着讲一个更实际的问题:用了向量数据库,不代表所有查询都要变成“相似度”。分类、状态、时间、租户、权限这些确定条件,仍然应该交给 RDB。 先说结论 向量检索负责“谁更像”,RDB 条件负责“哪些记录有资格参与比较”。 真实业务里,通常不是全库做 上一篇跑通了最小闭环:保存向量字段,再用 SQL 距离排序找回来。 这一篇接着讲一个更实际的问题:用了向量数据库,不代表所有查询都要变成“相似度”。分类、状态、时间、租户、权限这些确定条件,仍然应该交给 RDB。 先说结论 向量检索负责“谁更像”,RDB 条件负责“哪些记录有资格参与比较”。 真实业务里,通常不是全库做
- 前两篇分别讲了最小闭环和 RDB 混合过滤。第三篇把它落到一个常见 AI 应用场景:本地知识库。 先说结论 本地知识库不是把整篇文章直接塞进一个向量字段。 更常见的做法是:先把长文本切成片段,再给每个片段生成向量。检索时先找相似片段,后续再把片段交给摘要、问答或生成模块。 这个 Demo 做什么 页面把一段长文本切成多 前两篇分别讲了最小闭环和 RDB 混合过滤。第三篇把它落到一个常见 AI 应用场景:本地知识库。 先说结论 本地知识库不是把整篇文章直接塞进一个向量字段。 更常见的做法是:先把长文本切成片段,再给每个片段生成向量。检索时先找相似片段,后续再把片段交给摘要、问答或生成模块。 这个 Demo 做什么 页面把一段长文本切成多
- 前面 RDB 已经写到事务和 Sendable。再往 AI 应用走一步,就会遇到“向量数据库”。 这次以华为官方文档《通过向量数据库实现数据持久化 (ArkTS)》为准:向量数据库从 API version 18 开始支持,它既能保存向量数据,也能继续处理标量的关系型数据。`floatvector` 用来保存向量化结果,查询时可以用向量距离做排序。 前面 RDB 已经写到事务和 Sendable。再往 AI 应用走一步,就会遇到“向量数据库”。 这次以华为官方文档《通过向量数据库实现数据持久化 (ArkTS)》为准:向量数据库从 API version 18 开始支持,它既能保存向量数据,也能继续处理标量的关系型数据。`floatvector` 用来保存向量化结果,查询时可以用向量距离做排序。
- RDB 前面已经写过建表、CRUD、升级、事务和 Sendable。再往多设备场景走,就会遇到一个容易混的点:关系型数据库也能做跨设备同步,但它不是“把普通表自动复制到另一台设备”。 官方文档《关系型数据库跨设备数据同步 (ArkTS)》里讲得很明确:先把表设置为分布式表,再通过同步接口在可信设备之间同步数据。API RDB 前面已经写过建表、CRUD、升级、事务和 Sendable。再往多设备场景走,就会遇到一个容易混的点:关系型数据库也能做跨设备同步,但它不是“把普通表自动复制到另一台设备”。 官方文档《关系型数据库跨设备数据同步 (ArkTS)》里讲得很明确:先把表设置为分布式表,再通过同步接口在可信设备之间同步数据。API
- 关系型数据库这一组,前面已经写了建表、CRUD、升级和事务。还剩一个容易被新手误会的点:sendableRelationalStore。 它不是另一个 RDB 引擎,也不是“分布式关系型数据库”。它更像一组工具方法,用来处理可以跨线程传递的数据类型。关系型数据库真正写入时,还是回到 relationalStore.Rd 关系型数据库这一组,前面已经写了建表、CRUD、升级和事务。还剩一个容易被新手误会的点:sendableRelationalStore。 它不是另一个 RDB 引擎,也不是“分布式关系型数据库”。它更像一组工具方法,用来处理可以跨线程传递的数据类型。关系型数据库真正写入时,还是回到 relationalStore.Rd
- 数据库里最怕什么?不是写失败,而是写了一半。 比如你在本地保存一批账单,第一条餐饮写进去了,第二条通勤失败了。页面再一刷新,用户看到一半数据,后面就很难解释。这种场景就该用事务。 官方文档可以先放在手边: 通过关系型数据库实现数据持久化 relationalStore API 参考 先说结论 事务不是“高级写法”,它只 数据库里最怕什么?不是写失败,而是写了一半。 比如你在本地保存一批账单,第一条餐饮写进去了,第二条通勤失败了。页面再一刷新,用户看到一半数据,后面就很难解释。这种场景就该用事务。 官方文档可以先放在手边: 通过关系型数据库实现数据持久化 relationalStore API 参考 先说结论 事务不是“高级写法”,它只
- 本地数据库最容易被忽略的一件事,就是升级。 第一版上线时你可能只存一个 title。过几天产品说笔记要加分类,于是你想加一个 category 字段。新用户当然没问题,老用户手机里已经有旧表了,这时就不能靠删库重建糊过去。 这篇就用一个很小的例子,演示 RDB 怎么处理表结构升级。 官方文档可以先放在手边: 通过关系型 本地数据库最容易被忽略的一件事,就是升级。 第一版上线时你可能只存一个 title。过几天产品说笔记要加分类,于是你想加一个 category 字段。新用户当然没问题,老用户手机里已经有旧表了,这时就不能靠删库重建糊过去。 这篇就用一个很小的例子,演示 RDB 怎么处理表结构升级。 官方文档可以先放在手边: 通过关系型
- 上一篇我们已经把 RDB 的建库、建表、插入和读取跑通了。但真实业务里,很少只是“全部读出来”。更常见的是:按关键字搜、按状态筛、按优先级排序,再顺手改一条、删一批。 这篇就把这些操作串起来,重点看 RdbPredicates。 官方文档可以先放在手边: 通过关系型数据库实现数据持久化 relationalStore 上一篇我们已经把 RDB 的建库、建表、插入和读取跑通了。但真实业务里,很少只是“全部读出来”。更常见的是:按关键字搜、按状态筛、按优先级排序,再顺手改一条、删一批。 这篇就把这些操作串起来,重点看 RdbPredicates。 官方文档可以先放在手边: 通过关系型数据库实现数据持久化 relationalStore
- 压缩与解压:HarmonyOS开发中Zip文件处理 一、小知识你肯定用过zip文件——下载个开源项目是zip,备份个相册是zip,就连浏览器导出书签都是zip。这东西太常见了,以至于我们很少思考它背后的原理。但做应用开发时,你迟早会遇到这些场景:用户要导出一堆数据,总不能一个一个文件发吧?日志文件积攒了几百个,占了好几G空间,得压缩归档批量下载资源包,zip格式比一个个文件下载快多了应用内... 压缩与解压:HarmonyOS开发中Zip文件处理 一、小知识你肯定用过zip文件——下载个开源项目是zip,备份个相册是zip,就连浏览器导出书签都是zip。这东西太常见了,以至于我们很少思考它背后的原理。但做应用开发时,你迟早会遇到这些场景:用户要导出一堆数据,总不能一个一个文件发吧?日志文件积攒了几百个,占了好几G空间,得压缩归档批量下载资源包,zip格式比一个个文件下载快多了应用内...
上滑加载中
推荐直播
-
用码道,让你的AI作品三步上朋友圈2026/08/04 周二 19:00-20:00
林华鼎-华为云AI开发者运营负责人
从入门 · 到做AI应用 · 到企业级开发。不教编程,只教用AI · 零代码、有产出、能带走、可炫耀 · 每课人人动手实操
回顾中 -
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
基于华为云码道,构建你的定制化AI搭子2026/08/14 周五 09:00-11:30
明亮-华为云开发者发展与支持部部长
本期直播将向您全面介绍华为云码道产品,并基于码道手把手教你部署自己的定制化AI陪伴搭子。
回顾中
热门标签