自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(150)
  • 收藏
  • 关注

原创 HarmonyOS 应用开发之JSON 解析与 ArkTS 序列化详解

stringify的 key 用法适合小对象;大数据集改用id或提升性能;JSON.parse返回值的as强转不提供运行时保护,必须逐字段校验并在构造函数兜底;嵌套结构采用"逐层 map 到模型类"的解析策略,与第 36 篇的嵌套模型一一对应;位图、资源、函数等运行时对象不可 JSON 化,传输层用标识字符串,展示层再映射;ArkTS 禁止eval,序列化只适用于纯数据 class,模型禁止循环引用;深拷贝用有性能与语义损耗,大数据量改显式拷贝;

2026-08-31 08:49:58 23

原创 HarmonyOS 应用开发之平板与大屏分栏与效率详解

分栏即效率:主列表 + 侧面板的并置布局用空间换时间,评论/个人作品从「串行进出」变为「并行切换」;断点裁决形态决定分栏还是半模态,一个开关()驱动模式、点击拦截、空白关闭的全链路;动画响应式:评论面板无条件禁动画、个人作品按断点决定——动画策略随形态切换而非一刀切;面板内部继续断点化calc预留高度、背景色按断点切换、内容按密度筛选,侧面板不是手机的放大版;机制复用:平板、折叠屏展开态、PC、TV 共享分栏状态机,断点系统保证「新形态 = 新断点组合」,不新增机型代码。

2026-08-31 08:47:10 15

原创 HarmonyOS 应用开发之46 — 性能优化路径总览详解

性能优化围绕卡顿、功耗、内存三个维度展开,先定位再动手,避免盲目微调;DevEco Profiler(帧率 / CPU / 内存三面板)与 HiChecker 是主要分析工具,Logger打点是工程级辅助;掉帧监控要落到关键路径事件(如 Swiper 切换、列表滑动)上,用数据说话;本项目的性能敏感点高度集中:视频流、评论列表、作品网格、路由转场与冷启动;结构性优化(懒加载、复用、释放)优先于样式级微调,收益比更高;每台设备的优化目标不同,多设备项目必须分级设定指标,避免"一刀切"。

2026-08-31 08:14:58 15

原创 HarmonyOS 应用开发之多设备兼容性与版本管理详解

多设备兼容性的本质是"用版本约束圈住边界,用能力抽象消化差异"。双版本约束:compatibleSdkVersion 定下限、targetSdkVersion 定目标,二者随 SDK 演进同步维护,并在 README 中明确对外约束(HarmonyOS 5.0.5+、DevEco 6.0.2+),文档承诺与工程配置保持一致。deviceTypes 分组隔离:按交互形态而非屏幕尺寸分组,phone/tablet、2in1、tv、wearable 四类产物各归其位,能力差异在模块边界消化。

2026-08-31 08:12:39 36

原创 HarmonyOS 应用开发之应用备份恢复与数据安全详解

备份恢复是把"换机零丢失"变成产品卖点的系统能力,成本极低但收益明显。本工程四个产品模块通过"一个 backup 扩展 + 一个配置开关"即完成了能力接入,值得所有应用参考。显式声明:在 module.json5 注册扩展并在 metadata 中关联置 true。默认空实现:无预处理逻辑时 onBackup/onRestore 保持空实现,系统自动完成归档;不要在里面做耗时业务,备份回调有超时约束。版本化迁移:利用 onRestore 的参数做数据结构迁移,兼容老版本备份包;

2026-08-31 08:12:07 93

原创 HarmonyOS 应用开发之应用上架与分发详解

上架与分发是把工程能力转化为用户价值的最后一步,多设备应用尤其要警惕"版本碎片化"。一份签名、一套版本、四份产物、统一节奏。签名与包名全局唯一,versionCode 全局单调递增并四端同步,HAP 按 deviceTypes 各归其位,发布节奏以设备形态为维度进行灰度与回滚。此外,把上架自查清单沉淀为 CI 检查脚本(自动比对四端 versionCode、自动校验签名指纹),能显著降低"临上架发现权限没删、截图没传"的返工成本。

2026-08-31 08:11:36 69

原创 HarmonyOS 应用开发之应用签名与打包流程详解

签名与打包是把"能跑的工程"变成"能装的应用"的质变环节。本工程的多 HAP 结构天然适合按设备分发,但也对签名一致性提出了更高要求。签名统一:四个 HAP 使用同一发布证书、同一 Profile 关联同一包名,保证跨设备数据互通与备份恢复能力可用。中的(1000000)与(1.0.0)上架前统一修订,多 HAP 版本必须一致,否则安装更新会被系统拒绝。密钥安全:.p12 密钥库与密码不要提交到版本库,建议通过本地配置文件或 CI 安全变量注入;离职交接时及时更换证书与密码。

2026-08-31 08:11:05 80

原创 HarmonyOS 应用开发之代码规范与静态检查:ArkTS 约束与工程质量治理详解

遵守 ArkTS 强约束:显式类型、拒绝 any、异常收口 BusinessError,用编译期错误换运行期稳定;命名四统一:常量 SCREAMING_SNAKE、类 PascalCase、方法 camelCase、资源 snake_case,冲突靠规范在评审期暴露;告警清零 + CI 门禁:Code Linter 与编译器检查纳入构建,告警不为零不放行,混淆配置与反射点逐一对齐;审查聚焦高风险点:单向依赖边界、资源引用完整性、状态管理范围,比逐行读代码更有效;注释解释动机、文档唯一事实源。

2026-08-31 08:10:33 161

原创 HarmonyOS 应用开发之单元测试与 UI 测试:arkXtest 框架与工程实践详解

先测纯逻辑这类无 UI 依赖的单元是单测性价比最高的对象,优先补齐并锁定默认值与边界行为。测试目录即规范:按模块建立describe用被测类命名,it编号递增,断言统一expect。UI 测试锚定 id、等待转场:用组件id而非文案定位(文案受国际化影响),异步场景显式等待;多设备用例至少覆盖两种断点。Mock 走 ViewModel 边界:工程 ViewModel 内置 mock 数据源,测试直接复用;外部能力(hilog、窗口)用注入或可替换引用打桩。覆盖率牵引补测。

2026-08-31 08:10:02 158

原创 HarmonyOS 应用开发之日志体系与调试:Logger 工具类与 hilog 实践详解

统一出口:所有模块复用的单例,统一 domain、tag()与格式模板,Log 面板一条过滤条件看全应用。分级克制:INFO 记流程、ERROR 记失败(必带err.code)、DEBUG 记细节;可用预期的分支不要用 ERROR。敏感字段脱敏:默认模板%{public}s用于内部标识,用户数据等敏感字段改用或只记派生值。模块 TAG 前缀:在调用方叠加之类模块标识,实现"应用级过滤 + 模块级定位"两级收敛。日志与调试器互补。

2026-08-31 08:09:30 14

原创 HarmonyOS 应用开发之多语言国际化:zh_CN/en_US 限定词与 string.json 资源体系详解

国际化的载体是"语言限定词目录"。base目录承担兜底职责:当设备语言不匹配任何限定词目录时,系统取base中的取值。因此工程把base的文案定义为中文,zh_CN与base内容一致,en_US提供英文——即便未来新增小语种,未覆盖的文案也能正确回退到中文。限定词之间用中划线连接可组合,例如dark/zh_CN同时限定主题与语言,本文与深色模式文章(51)可以互相印证。string.json 的格式为"name + value"数组。name 是编译期键,必须与语言无关(推荐英文下划线风格);

2026-08-31 08:08:59 140

原创 HarmonyOS 应用开发之HarmonyOS 深色模式适配:dark 限定词资源与 isDark 状态管理详解

颜色一律走与限定词:深浅色取值声明在basedark两份color.json中,业务代码不做任何条件判断,系统自动匹配;dark目录只覆盖需要变化的资源,其余自动回退。业务态主题用 Provider/Consumer 管理:当"哪个页面是深色"由业务逻辑决定(而非系统主题)时,用广播、消费,避免逐层透传;断点参与决策时组合。图标成对管理、命名可识别:深色变体统一_dark_light后缀(),或用字段把成对资源收进模型;变体增多后迁移到dark/media目录实现零判断切换。平台专属深色单独处理。

2026-08-31 08:08:27 10

原创 HarmonyOS 应用开发之启动性能与首帧优化详解

启动链路按"onCreate 极简 → loadContent 先行 → 窗口配置后置 → 数据懒加载"的顺序编排;冷启动优化优先保证首帧时间:任何非必要同步工作都不要放在的同步段;首帧路径精简靠惰性构建:页签内容@Builder延迟执行、空态页签零成本、播放器不可见不初始化;防重入;多设备启动策略差异化:手表减组件、TV 保焦点、PC 并发窗口配置,但共享公共代码;启动性能同样要量化:用 Profiler 的启动分析(Launch)面板测量冷启动与首帧时间,建立回归基线。

2026-08-31 08:07:56 21

原创 HarmonyOS 应用开发之渲染优化与视口管理详解

减少重绘从收窄状态传播开始:非当前页不写状态、@Monitor只监听必要属性;用 if 条件分支裁剪不可见子树,比更省布局与绘制;高频变化区域用clip隔离绘制边界,弹层与毛玻璃按设备能力取舍,避免频繁开关;图片优先系统缓存与统一图标组件,避免动态创建大 Bitmap;播放器联动可见性:组件级判断暂停/播放,页面级补充前后台策略;on/offopen/close成对出现,release与是播放器防泄漏的底线。

2026-08-31 08:07:24 179

原创 HarmonyOS 应用开发之动画性能与转场设计详解

动画只动rotateopacity等合成属性,避免布局属性动画引发 relayout;转场动画按设备形态决策:手机整页转场保留系统动画,大屏分栏追求即时反馈;时长 200~350ms 为主,曲线优先Ease系列,装饰动画可无限但须随可见性回收;用等开关防止模式切换动画叠加抖动;动画性能用打点 + Profiler 量化,动画期间禁止同步重活;关闭动画的操作要成对复位,避免污染后续页面的转场行为。

2026-08-31 08:06:53 192

原创 HarmonyOS 应用开发之 : 组件复用与懒加载提升流畅度

长列表一律使用Repeat(或)+ 虚拟滚动,杜绝全量渲染;按设备能力与数据项成本调参,播放器类重组件取值宜小不宜大;key 必须稳定唯一,推荐id字段而非;复用组件必须做状态重置:播放器要seek(0)复位、防重入、释放资源;用 if 条件分支裁剪不可见子树,用@Monitor收窄副作用,用回调判断过滤非当前项刷新;优化前后用帧率面板对比数据,把"滑动流畅"变成可验证的指标。

2026-08-31 08:05:31 167

原创 HarmonyOS 应用开发《掌上英语》第35篇:媒体资源变更通知相关指导

本文介绍了如何使用photoAccessHelper模块监听媒体资源变更的方法。主要内容包括: 通过registerChange接口可以监听指定URI的资源变更,包括: 对单个PhotoAsset注册监听(如图片删除触发回调) 对指定Album注册监听(如相册重命名触发回调) 模糊监听功能: 设置forChildUris为true可监听相册内文件变化 uri为DefaultChangeUri时必须将forChildUris设为true 使用前提: 需要获取photoAccessHelper实例 申请READ

2026-08-06 20:30:34 98

原创 HarmonyOS 应用开发《掌上英语》第100篇:使用AVPlayer播放音频(ArkTS)

使用可以实现端到端播放原始媒体资源,本开发指导将以完整播放一首音乐作为示例,向开发者讲解AVPlayer音频播放相关功能。如需播放PCM音频数据,请使用。播放的全流程包含:创建AVPlayer,设置播放资源,设置播放参数(音量/倍速/焦点模式),播放控制(播放/暂停/跳转/停止),重置,销毁资源。在应用开发的过程中,开发者可以通过AVPlayer的state属性主动获取当前状态,或使用on(‘stateChange’)方法监听状态变化。

2026-08-06 20:25:18 89

原创 HarmonyOS 应用开发《掌上英语》第99篇:使用AVPlayer设置播放URL(ArkTS)

本开发指导将介绍如何使用AVPlayer开发播放功能,在不同的场景下如何设置URL。当前指导仅介绍播放URL设置方法,其他场景及完整示例代码,请参考。

2026-08-06 20:23:56 161

原创 HarmonyOS 应用开发《掌上英语》第98篇:音视频播放或录制的各类功能Media Kit(媒体服务)

Media Kit(媒体服务)用于开发音视频播放或录制的各类功能。在Media Kit的开发指导中,将详细介绍音视频多个模块的开发方式,指导开发者如何使用系统提供的音视频API实现对应功能。比如使用SoundPool实现简单的提示音,当设备接收到新消息时,会发出短促的“滴滴”声;使用AVPlayer实现音乐播放器,循环播放一首音乐。

2026-08-06 20:22:48 186

原创 HarmonyOS 应用开发《掌上英语》第97篇:通过系统相机拍照识别和录像(CameraPicker)

应用可调用CameraPicker拍摄照片或录制视频,无需申请相机权限。CameraPicker的相机交互界面由系统提供,在用户点击拍摄和确认按钮后,调用CameraPicker的应用获取对应的照片或者视频。应用开发者如果只是需要获取即时拍摄的照片或者视频,则可以使用CameraPicker能力来轻松实现。由于照片的拍摄和确认都是由用户进行主动确认,因此应用开发者可以不用申请操作相机的相关权限。

2026-08-06 20:19:39 186

原创 HarmonyOS 应用开发《掌上英语》第96篇:相机管理实践指南

在开发一个相机应用前,需要先通过调用相机接口来创建一个相机管理实例。

2026-08-06 20:18:04 154

原创 HarmonyOS 应用开发《掌上英语》第95篇:相机启动恢复实践(ArkTS)

当前示例提供完整的相机应用从后台切换至前台启动恢复的流程介绍,方便开发者了解完整的接口调用顺序。在参考以下示例前,建议开发者查看的具体章节,了解等单个操作。

2026-08-06 20:15:56 181

原创 HarmonyOS 应用开发《掌上英语》第94篇:自动切换摄像头实践(ArkTS)

应用适配折叠屏时,在简单UX交互场景下,如人脸识别场景推荐使用相机镜头自动切换能力。在有多个前置镜头的折叠设备上,应用使能自动切换镜头能力后,系统能够自动完成镜头切换、会话配置,在不同的折叠状态下,可自动切换到当前可使用的前置镜头,避免前置镜头被折入内部导致黑屏。例如,折叠设备拥有三颗摄像头:后置摄像头A、前置摄像头B和前置摄像头C。在展开状态下,通过接口可获取到后置摄像头A和前置摄像头B;在折叠状态下,可获取到后置摄像头A和前置摄像头C。在当前折叠状态下启用前置摄像头,并调用开启自动切换镜头;

2026-08-06 20:14:54 202

原创 HarmonyOS 应用开发《掌上英语》第93篇:相机模式切换过程中的基础动效

接口实现,surfaceId为当前预览流的surfaceId,size为当前预览流profile的宽高。此处定义一个截图组件,置于预览流XComponent组件之上,用来遮挡XComponent组件。模糊出现动效:用户点击或触控事件触发预览流截图,显示截图组件,截图清晰到模糊,覆盖旧预览流。模糊翻转动效分两段实现,模糊翻转动效和模糊消失动效,其中模糊消失动效同第5步。通过预览流截图,实现模糊动效,从而完成模式切换,或是前后置切换的动效。拍照闪黑动效,使用闪黑组件覆盖预览流实现闪黑动效过渡。

2026-08-04 17:55:26 15

原创 HarmonyOS 应用开发《掌上英语》第92篇:Enterprise Device Manager(企业设备管理工具)

Enterprise Device Manager(企业设备管理工具,简称为edm),为设备管理应用提供调试和测试能力,例如激活企业设备管理拓展能力、解除激活企业设备管理拓展能力。

2026-08-04 16:57:37 23

原创 HarmonyOS 应用开发《掌上英语》第91篇:应用退至后台后执行延时任务

应用退至后台后,需要执行时效性要求不高的任务,例如有网络时不定期主动获取邮件等,可以使用延迟任务。当应用满足设定的触发条件(包括网络类型、充电类型、存储状态、电池状态、定时状态等)时,将任务添加到执行队列,系统会根据内存、功耗、设备温度、用户使用习惯等统一调度拉起应用,执行相应的延迟任务。

2026-08-04 16:54:12 89

原创 HarmonyOS 应用开发《掌上英语》第90篇:系统代理提醒(ArkTS)

应用退到后台或进程终止后,仍然有一些提醒用户的定时类通知,为满足此类功能场景,系统提供了代理提醒的能力。当应用退至后台或进程终止后,系统会代理应用做定时提醒。当前支持的提醒类型包括:倒计时、日历和闹钟。RP1RP1End。

2026-08-04 16:50:05 99

原创 HarmonyOS 应用开发《掌上英语》第89篇:短信服务通知模块实现

短信服务模块提供了管理短信的一些基础能力,包括创建/发送短信、获取/设置发送短信的默认SIM卡槽ID、获取/设置短信服务中心地址,以及检查当前设备是否具备短信发送和接收能力等。

2026-08-04 16:45:38 142

原创 HarmonyOS 应用开发《掌上英语》第88篇:英语学习 App 的渐进式迁移路线图

从 API 12 到 API 26 的迁移是一项系统工程,涉及 11 个模块、数十个 API 变更点。通过"commonLib 优先、按模块分批、三步递进"的策略,我们可以在保证应用稳定性的前提下平滑地完成升级。迁移完成后,英语学习 App 将获得方舟引擎性能提升、星盾安全增强、AgentCard 桌面入口、端侧大模型等 7.0 新特性的全面赋能。

2026-08-04 15:53:24 477

原创 HarmonyOS 应用开发《掌上英语》第87篇:拍照搜词 + 图片联想记忆

Core Vision Kit 的图像超分和语义搜索能力为英语学习 App 打开了两扇新的大门。拍照搜词将"看到实物 → 想知道英文"这个自然学习冲动转化为一个流畅的操作闭环,而图片联想记忆则利用了大脑对图像的高效记忆机制来提升单词记忆效率。这两项功能都基于端侧处理,无需联网,在离线环境下也能提供完整的智能学习体验。

2026-08-04 15:51:33 430

原创 HarmonyOS 应用开发《掌上英语》第86篇: 离线单词推荐与例句生成

/ 输入提示词// 最大生成长度// 生成温度(0.0-1.0)// 核采样参数: string;// 系统级提示词// 生成的文本// 消耗的 Token 数// 推理耗时端侧盘古大模型让英语学习 App 的 AI 能力不再受限于网络环境。通过 INT4 量化将 7B 模型压缩至 350MB,配合引用计数管理模型生命周期和智能功耗控制,端侧推理实现了离线场景下的单词推荐和例句生成。

2026-08-04 15:49:57 304

原创 HarmonyOS 应用开发《掌上英语》第85篇:用户数据安全架构设计

本项目的安全架构提供了从硬件 TEE 到应用层的完整安全防护体系。通过加密 Preferences、TEE Token 存储、端到端加密同步和权限最小化四管齐下,用户的学数据在存储、传输和使用全链路都得到了安全保障。

2026-08-04 15:48:29 125

原创 HarmonyOS 应用开发《掌上英语》第84篇:卡片翻转动画的渲染性能再提升

FrameNode 是 ArkUI 渲染树中的节点对象,每个 UI 组件对应一个 FrameNode 实例。在 HarmonyOS 7.0 之前,开发者无法直接操作 FrameNode,只能通过声明式 API 间接驱动渲染。7.0 开放了接口,允许开发者获取节点的 FrameNode 引用,并在帧回调中更新其属性。build() {Column() {// 卡片内容// 获取 FrameNode 引用})// 翻转持续时间(毫秒)// 半翻转角度(在此角度切换正反面内容)

2026-08-04 15:47:22 314

原创 HarmonyOS 应用开发《掌上英语》第83篇:词库长列表的内存管理策略

HarmonyOS 7.0 的方舟运行时 GC 优化为 500 词库的内存管理带来了质的提升——GC 暂停时间从平均 28ms 降至 6ms,丢帧率降至 2.1%。但 GC 的优化不是单方面的工作,开发者需要通过合理的对象生命周期管理、LazyForEach 缓存策略、@Trace按需标记和资源及时释放来配合系统 GC。升级到 API 26 后,建议立即进行一次完整的 GC 压力测试,确保长列表场景下的流畅体验。

2026-08-04 15:46:24 618

原创 HarmonyOS 应用开发《掌上英语》第82篇:ArkTS Skill 开发:用脚本技能扩展英语学习功能

每个 Skill 本质上是一个 ArkTS 脚本文件,通过@Skill@Skill// 定义输入输出接口// 根据难度级别和已学单词动态生成挑战题目i < count;i++) {// 从词库中过滤出符合难度级别且未学的单词// 创建一道挑战题@Skill装饰器标识该类为一个 Skill 脚本,标记对外暴露的方法。只有标记了的方法才能被主应用调用。ArkTS Skill 为 HarmonyOS 应用开发提供了一种"轻量插件化"的架构思路。

2026-07-31 17:47:38 18

原创 HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片是 HarmonyOS 7.0 在桌面交互维度的重要创新。对于英语学习 App 而言,"每日一词"AgentCard 将学习入口前置到桌面,用户无需打开应用即可完成"看单词→回忆释义→标记状态"的完整学习闭环。这种高频轻量的交互模式,天然适合语言学习场景。随着 API 的进一步成熟,AgentCard 还可以扩展到"每日一句""听力训练"等更多学习场景。

2026-07-31 17:46:30 13

原创 HarmonyOS 应用开发《掌上英语》第80篇:性能优化:从应用启动到动画渲染的全链路优化

方舟引擎 6.0 通过动态代码切片、智能内存调度和图形渲染加速三大核心技术,为英语学习 App 带来了从启动到动画的全链路性能提升。升级至 API 23 后,App 自动获得这些优化;配合启动路径精简、资源及时释放和声明式动画等开发实践,可以进一步释放方舟引擎的性能潜力,为用户提供丝滑流畅的英语学习体验。

2026-07-31 17:43:30 16

原创 HarmonyOS 应用开发《掌上英语》第79篇:@ReusableV2 全局复用池:单词卡片列表的极致性能优化

全局复用池将组件复用的范围从列表级扩展到了应用级,使得不同页面、不同列表中的同一类型组件可以共享实例。对于以"单词卡片"为核心展示形态的英语学习 App,这不仅减少了组件创建销毁的内存开销,更重要的是消除了页面切换时的组件创建延迟。全局复用池 + 卡片翻转动画的 GPU 加速,两者配合让 App 的卡片使用体验既流畅又省资源。

2026-07-31 17:41:54 11

原创 HarmonyOS 应用开发《掌上英语》第78篇:Live View Kit 实况窗:将学习进度“钉“在锁屏上

Live View Kit 实况窗将学习进度从 App 内部延伸到锁屏界面,创造了一个"无需解锁就知道进度、扫一眼就能被提醒"的学习闭环。基于和的数据驱动,结合进度环模板和分段生命周期管理,实况窗成功地将英语学习的"信息触达率"提升到了一个新的高度。

2026-07-31 17:40:25 17

空空如也

空空如也

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

TA关注的人

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