- 博客(69)
- 资源 (4)
- 收藏
- 关注
原创 根与环:为什么你的 ArkTS 内存泄漏,和“循环引用“无关
本文揭示了 ArkTS 异步任务泄漏的真正根源:并非“闭包循环引用”,而是协程挂起导致栈帧保留,形成 FrameRoot 锚定。传统“断引用”修复法无效,因栈帧整体被锚定,局部变量无法回收。正确路径是识别根类型——尤其关注 async/await 引起的函数不退栈,通过让协程正常结束来释放栈帧。核心在于:泄漏的本质是“函数未退栈”,而非“对象有环”。
2026-10-07 22:12:15
358
原创 当滚动逃离了框架 ——HarmonyOS Web 与原生混排滚动的冲突本质与解法
本文揭示了在ArkUI中嵌套Web组件时出现的滚动边界问题——如滑动断档、惯性撞墙、回弹叠加——其根源并非配置失误,而是框架与渲染引擎间缺乏滚动协调协议。两个互不通信的滚动世界(ArkUI容器与Web引擎)导致手势归属混乱。通过分析三种解法:消除嵌套(FIT_CONTENT)、控制权移交(nestedScrollMode)、统一偏移量派发,指出最优方案是从源头避免冲突,即让Web内容自适应高度,彻底消除内部滚动,实现“单一流程控制”。这不仅是技术选择,更是架构设计的必然推导。
2026-10-06 14:46:51
474
原创 鸿蒙开发中,如何高效定位并分析内存泄露相关问题
CPU开销约为2倍。代码大小开销为40% - 50%。RAM开销为10% - 35%。堆栈和堆缓冲区上溢/下溢。释放之后的堆使用情况。重复释放/错误释放。HWASan不需要安全区来检测buffer overflow,既极大地降低了工具对于内存的消耗,也不会出现ASan中某些overflow检测不到的情况。HWASan不需要隔离区来检测UseAfterFree,因此不会出现ASan中某些UseAfterFree检测不到的情况。此外,HWASan还可以检测返回之后的堆栈使用情况。
2024-12-02 10:24:07
1834
原创 车企App鸿蒙化的三个架构判断
做鸿蒙车控App时,需厘清三大关键判断:指令状态应区分“连不上”“明确失败”与“不确定”三类,采用带traceId和幂等键的五态模型,超时后应查状态而非重试;华为手表分全智能(ArkTS)与轻量级(JS),能力差异大,需求必须按型号明确定义支持范围;手表是独立终端,非手机附属屏,需独立鉴权、链路与状态同步机制,服务端须以车辆为单位串行化指令,确保多端一致性。三者共同构成可落地的远控架构基础。
2026-11-08 08:00:00
131
原创 App 内嵌 H5 的信任边界设计(ArkWeb/HarmonyOS 实战)
本文围绕原生与 H5 交互中最常被问到的一类问题展开:凭据怎么传、能力怎么开、状态失效怎么联动。文章把高频问法拆成身份贯通、能力开放、失效传播三类命题,用四个信任域和一张风险矩阵说明 URL 传凭据与 HttpOnly Cookie 的本质差别,并给出「凭据不下发脚本域、能力按意图授权、状态只有一个源」三条原则。随后校准了 Cookie 注入时机、刷盘、清理与 permission 白名单等常见 API ......
2026-11-06 11:13:26
299
原创 让图片流不再卡:从瀑布流到大图预览——海量网络图片在鸿蒙 App 上的全链路性能工程
本文剖析高帧率图片流的性能瓶颈,核心在于16.6毫秒单帧预算下五环节(下载、解码、上传、布局、释放)的资源竞争。关键洞察是:显示、传输、解码三尺寸必须趋同,否则引发流量浪费、内存溢出或卡顿。解决方案聚焦三步:服务端预传宽高以打破布局循环依赖;使用LazyForEach实现按需渲染;启用SLIDING_WINDOW模式优化动态列数场景。最终目标是让每一帧工作量可预测、可控制,实现“滑动无卡、大图清晰、内存可控”的极致体验。
2026-10-15 08:41:56
213
原创 鸿蒙App内存排查与监控全链路实战(工具+方案)
本文基于鸿蒙官方工具链,构建了一套全链路内存排查与监控方案。核心工具DevEco Profiler提供实时监控、ArkTS堆分析和Native堆分析能力,可精准定位内存泄漏、峰值异常等问题。辅助工具HiDumper和@ohos.hidebug接口实现快速快照和代码级监听,形成完整解决方案。文章详细拆解了工具使用方法、实战技巧和最佳实践,帮助开发者解决"发现问题难、定位根因难、验证修复难"的行业痛点,实现内存问题的可发现、可定界、可根因、可验证闭环。
2026-03-11 10:50:01
913
原创 鸿蒙App内存优化:原理+代码+资源全攻略,掌握这篇文章就够了!
鸿蒙App内存优化核心方案摘要 本文系统阐述鸿蒙App内存优化方案,涵盖原理认知、代码优化与资源管理。鸿蒙内存分为ArkTS(GC自动回收)和Native层(需手动释放),优化需遵循"少使用、多回收、可管控"原则。代码层重点解决闭包变量冗余、PixelMap泄漏(必须主动调用release())及定时器未清理等问题;资源层通过图片尺寸压缩、缓存策略降低内存占用。结合生命周期管理、LRUCache等工具,开发者可构建高效稳定的应用。优化后内存占用降低30%-50%,显著提升用户体验。
2026-03-10 19:18:14
1053
1
原创 HarmonyOS 5.0.4(16) 版本正式发布,支持wearable类型的设备!
请升级至配套的版本进行应用开发。系统版本请访问设备的“设置 > 设备名称 > 软件版本”进入“关于本机”进行查询。DevEco Studio版本请从DevEco Studio界面菜单选择“Help About DevEco Studio”进行查询。不排除其他型号的设备通过其他途径升级至上述系统软件(ROM)版本,但设备所支持的开放能力请以“关于本机”页面显示的“API版本”为准。具体版本请从DevEco Studio界面菜单选择“Help > About HarmonyOS SDK”进行查询。
2025-04-01 18:53:51
3387
原创 HarmonyOS开发,Worker线程、Taskpool线程如何与宿主线程通信
Worker支持通过PostMessage往父线程抛任务。TaskPool支持通过sendData往父线程发消息,触发任务。
2025-03-21 12:02:03
630
原创 HarmonyOS开发,将公钥转为十六进制或者base64进制数据
ArkTS 开发中,把公钥转换为十六进制和 Base64 编码数据的功能,以下是参考代码。
2025-03-21 10:52:36
539
原创 HarmonyOS 开发中条件渲染的选择:if/else 与取反操作的对比与实践
在HarmonyOS开发里,if/else条件渲染和取反操作(常借助三元运算符)都能根据不同情况设置组件属性值。下面从多个维度分析如何选择,以及各自的利弊,并附上代码示例。
2025-03-20 12:25:21
676
原创 HarmonyOS开发,防截屏&防录屏的api介绍及功能实现
窗口提供管理窗口的一些基础能力,包括对当前窗口的创建、销毁、各属性设置,以及对各窗口间的管理调度。window模块提供了setWindowPrivacyMode用来设置窗口隐私模式,此接口可用于禁止截屏/录屏的场景。下面将基于 setWindowPrivacyMode 接口,分别给出在鸿蒙开发中实现你所提到的两种防截屏 / 录屏方式的详细代码示例。
2025-03-20 11:43:00
1762
原创 HarmonyOS开发,解决Kill server failed 报错问题
当执行hdc kill命令返回 “Kill server failed operation not permitted” 错误时,意味着系统不允许你执行终止 HDC(HarmonyOS Device Connector)服务器的操作。下面是可能的原因及解决方案。
2025-03-19 20:12:08
1281
原创 HarmonyOS开发,console.log和hilog的区别,如何选择使用?
console.log的日志业务领域、日志TAG、日志级别是固定的,其中,日志业务领域为‘A0c0d0’,日志TAG为‘JSApp’,日志级别为info。hilog日志在打印的时候,会包含4部分内容:日志业务领域、日志TAG、日志级别、日志内容,可以自定义设置日志业务领域、日志TAG、日志级别。console主要用于应用开发调试阶段。推荐使用hilog,可以对日志系统进行分类和统一处理,使用console.log打印日志,则不方便日志定位。
2025-03-19 20:00:48
928
原创 HarmonyOS开发,A持有B,B引用A的场景会不会导致内存泄漏,看这里!
问题 :A持有B,B引用A的场景会不会导致内存泄漏?答案 :方舟虚拟机的内存管理和GC采用的是根可达算法,根可达算法可以解决循环引用问题,不会导致A引用B,B引用A的内存泄漏。根可达算法以一系列被称为 “根对象”(如栈中的局部变量、静态变量等)作为起始点,从这些根对象开始向下搜索,能够被搜索到的对象被认为是可达对象,而那些无法被搜索到的对象则被判定为不可达对象,会在垃圾回收时被清理。所以,即使存在对象之间的循环引用,只要它们都不可达(即没有根对象能引用到它们),就会被回收。1. 定义类 A :2. 定义
2025-03-18 16:26:32
897
原创 harmonyOS开发,如何使用Record,将一种类型的属性映射到另一种类型
在 HarmonyOS 开发中,如果你提到的“使用Record”指的是 TypeScript 里的Record类型工具,并且想要将一种类型的属性映射到另一种类型,下面会结合具体示例详细介绍操作方法。
2025-03-18 15:46:57
716
原创 HarmonyOS开发,深拷贝、浅拷贝的封装和调用
在 HarmonyOS 开发中,实现深拷贝和浅拷贝可以通过封装工具类来完成。下面分别介绍浅拷贝和深拷贝的实现方式,并将它们封装成一个工具类。
2025-03-17 20:53:44
851
原创 不可忽视的细节:HarmonyOS应用 编译态包结构 & 发布态包结构
当应用发布上架到应用市场时,需要将Bundle打包为一个.app后缀的文件用于上架,这个.app文件称为App Pack(Application Package),与此同时,DevEco Studio工具自动会生成一个pack.info文件。每个应用中至少包含一个.hap文件,可能包含若干个.hsp文件、也可能不含,一个应用中的所有.hap与.hsp文件合在一起称为Bundle,其对应的bundleName是应用的唯一标识(详见app.json5配置文件中的bundleName标签)。
2025-03-13 18:53:24
892
原创 判断对错:BuilderNode的update方法在对自定义组件使用的时候需要在自定义组件中使用的变量定义为@Prop类型 。
正确的类型定义和装饰器的使用是确保组件能够按预期工作的重要因素。
2025-03-12 19:07:24
263
原创 终于等到你! DevEco CodeGenie接入 DeepSeek,助您高效开发鸿蒙应用及元服务!
随着小艺接入了 DeepSeek,智能体的问答变得更加丝滑流畅,让人不禁想到鸿蒙原生应用开发如果接入这个智能体会产生什么样的效果?确实,当我们把负责开发原生鸿蒙应用的 DevEco Studio 联合小艺接入 DeepSeek 后,这 4 个亮点迫不及待要和大家分享:只需轻松两步,就可以在 DevEco Studio 中使用 DeepSeek!
2025-03-12 18:56:31
1246
原创 HarmonyOS 应用程序包结构 (发布态)
pack.info文件描述了App Pack中每个HAP和HSP的属性,包含APP中的bundleName和versionCode信息、以及Module中的name、type和abilities等信息。每个应用中至少包含一个.hap文件,可能包含若干个.hsp文件、也可能不含,一个应用中的所有.hap与.hsp文件合在一起称为Bundle,其对应的bundleName是应用的唯一标识(详见app.json5配置文件中的bundleName标签)。开发者可以根据实际场景所需的能力,选择相应类型的包进行开发。
2025-03-07 17:08:07
908
原创 鸿蒙开发中,数据持久化之Transaction(事务)的概念及应用
以常见的转账功能为例,A 账户向 B 账户转账一般包含两个独立步骤:先从 A 账户扣除相应金额,再将同等金额存入 B 账户。在没有事务保障的情况下,这两个独立操作可能出现不一致的结果,比如 A 账户扣钱成功,但 B 账户却未收到款项,这种情况会严重影响系统数据的准确性和业务的正常运行。而事务机制就能很好地解决这个问题,当某个操作失败时,它可以将所有操作回滚到初始状态,确保数据的一致性和完整性。在鸿蒙开发中,rdbStore提供了和rollBack()方法来实现事务,从而保证操作的原子性。
2025-03-04 19:21:24
795
原创 HarmonyOS开发,TextInput组件获取焦点的案例及代码实现
将上述代码复制到 DevEco Studio 中,点击运行按钮,选择合适的模拟器或真机设备,即可看到四种场景的效果。确保你已经安装了 DevEco Studio 并且配置好了 HarmonyOS SDK 开发环境。
2025-03-04 19:19:35
717
原创 为什么Navigation系统路由表不依赖目标模块却能实现跳转? Navigation跨模块跳转原理分析
Navigation组件跳转到跨包路径时使用系统路由表只需目标路径的名称,不需要在依赖里声明目标模块。但是使用自定义路由表进行动态import却需要声明目标依赖。系统路由表是如何做的不需要依赖却能跳转的?以下从多个方面深入剖析鸿蒙中Navigation。
2025-02-27 18:51:21
1007
原创 HarmonyOS 项目集成腾讯云即时通信 IM SDK
本文主要介绍如何快速将腾讯云即时通信 IM SDK 集成到您的 HarmonyOS 项目中。
2025-02-27 18:45:21
867
原创 鸿蒙开发中BindSheet应用 打造半模态转场效果
在鸿蒙开发中,BindSheet组件可用于创建半模态窗口,通过设置合适的属性和添加动画效果,能够实现具有转场效果的半模态窗口。以下是详细的实现步骤和示例代码。
2025-02-26 19:14:11
496
原创 鸿蒙开发中的 RawFile:功能、特性与使用示例
RawFile 主要用于存放原始资源文件,这些文件不会经过编译处理,而是以原始形式存在并被应用程序使用。这种特性使得 RawFile 在处理一些特定类型的资源时具有独特的优势。RawFile 在鸿蒙开发中扮演着重要的角色,它为开发者提供了一种方便、高效的方式来管理和使用原始资源文件。通过了解 RawFile 的功能特性和使用方法,开发者可以更好地利用这一机制,提升应用程序的开发效率和资源管理能力。同时,在使用过程中要注意其线程安全问题,合理处理文件操作,避免出现数据不一致或资源泄漏等问题。
2025-02-26 18:24:11
1473
1
原创 HarmonyOS开发,遇到 Object.assign(this, source)报错怎么解决?
最近在升级某个api 9 的鸿蒙项目到api 12,发现项目中较多用到如下图所示这样的代码,然后升级到api12就会编译报错:Usage of standard library is restricted (arkts-limited-stdlib)。ArkTS 是基于 TypeScript 进行扩展的,虽然大部分 TypeScript 语法和标准库可以使用,但由于 HarmonyOS 平台的特殊性,部分标准库的功能可能无法正常工作,因此对其使用进行了限制。
2025-02-20 18:15:11
1144
原创 HarmonyOS开发中断点续传的简单实现
背景:看到某技术交流群有朋友咨询断点续传是什么,怎么实现,寻思写篇短文简单介绍一下。 在应用开发中,断点续传功能通常指在文件上传或下载过程中,当因网络中断、应用崩溃等原因导致传输中断后,能够从上次中断的位置继续进行传输。
2025-02-20 15:09:32
776
原创 一、了解人工智能
在当今科技领域,人工智能(AI)无疑是最炙手可热的存在。它与印刷术、蒸汽机、电力以及互联网等伟大发明并驾齐驱,同属能够对整个国家乃至全球经济发展产生深远影响的26种通用目的技术。伴随大数据时代的全面来临以及算力的大幅提升,人工智能迎来了第三次发展高潮。在这波热潮之下,我们更需保持理性,以客观、正确的视角去认识AI。本章节将围绕人工智能展开多维度介绍。首先会深入剖析人工智能的基本概念,梳理其层次结构,追溯其发展历程。
2025-02-12 18:46:42
1037
原创 鸿蒙开发中,使用DFX工具,快速检测定位鸿蒙应用内存泄露问题
鸿蒙系统中的内存泄漏检测机制主要包括以下几个方面:JavaScript内存泄漏(JS_LEAK) :当JavaScript运行时的heap使用量超过85%或者遇到内存耗尽(OOM)时,系统会捕捉heapdump信息,并同步上报故障。Native内存泄漏(PSS_MEMORY) :系统会监控应用进程的动态内存使用情况,当动态内存峰值超过平均基线值的两倍时,会判定为内存泄漏,并触发相应的管控措施。
2024-12-18 12:45:19
895
原创 DFX子系统之hiview、hiview_lite日志组件介绍
在OpenHarmony中,DFX(Design for X)是为了提升质量属性软件设计,目前包含的内容主要有:DFR(Design for Reliability,可靠性)和DFT(Design for Testability,可测试性)特性。提供以下功能:HiLog流水日志。HiView插件平台。FaultLoggerd应用故障收集和订阅。HiAppEvent应用事件记录接口及框架。HiSysEvent系统事件记录接口及服务。
2024-12-18 12:44:28
1301
原创 仓颉线上编程挑战赛 华为手表、耳机、体脂秤等诸多奖品等您来拿!
各位开发者伙伴大家好,仓颉近期还有一个线上编程比赛,前 20 名有奖品,2024年12月7日 下午14:30。感兴趣的小伙伴欢迎积极扫码参与!
2024-12-04 18:29:19
431
原创 DevEco CodeGenie版本升级,历史版本将于2024年12月10日起停止服务!
历史版本DevEco CodeGenie 0.408.3.0、DevEco CodeGenie 0.406.7预计2024年12月10日起停止服务。为避免影响功能正常使用,请尽快更新至最新版本DevEco CodeGenie 2.1.0.1。使用约束:建议配套使用DevEco Studio 5.0.3.814及以上版本。
2024-12-04 12:07:12
681
仓颉编程基础及应用入门指南-面向新手程序员的学习教材与实践方法
2025-03-10
仓颉编程语言的基础元素讲解及实例演示
2025-03-10
2025年中国大陆采购与供应链薪酬报告:数字化转型与新兴技能需求解析
2025-02-25
中国大陆2025年银行与金融服务薪酬报告-市场趋势与关键职位分析
2025-02-25
中国大陆2025年医疗与生命科学薪酬报告:创新药物研发领域关键岗位和薪资水平分析
2025-02-25
2025年中国大陆工程与制造领域的薪酬趋势及热门职位解析
2025-02-25
中国大陆2025年半导体行业关键岗位薪酬及市场需求趋势分析
2025-02-25
中国大陆2025年度各大行业薪酬与招聘趋势深度解读
2025-02-25
仓颉编程语言资源获取与开发环境配置指南
2025-02-24
仓颉语言课程设计(张引教授):基于工程方法的教学革新与实施路径
2025-02-24
仓颉鸿蒙应用开发快速入门:编程语言与工具链指南
2025-02-24
新一代通用编程语言仓颉:高效、安全、智能化及其生态应用
2025-02-24
仓颉语言:构建全场景智能化的HarmonyOS应用程序
2025-02-24
OH考试认证测试题解析-聚焦OpenHarmony系统及其应用场景
2025-02-24
高考学霸笔记(化学),在化学世界乘风破浪
2025-02-20
OpenHarmony 2022年度运营报告:技术生态建设与社区活跃进展
2025-02-20
2025年中国大陆就业市场薪酬趋势与招聘需求分析
2025-02-19
2025年中国大陆科技行业薪酬及招聘趋势详述
2025-02-19
中国2024年开发者画像洞察研究-洞察技术变革与发展机遇
2025-02-19
仿钉钉定位签到功能做的一个简单demo,不同的是我这里用的百度地图的Api,钉钉用的高德地图的Api
2018-10-16
仿钉钉定位签到功能做的一个简单demo,这里用的高德地图的Api
2018-10-17
工作中整理出来的较为全面的关于银行卡匹配信息的demo
2018-10-16
ratingbar的多种使用方式以及展现形式
2018-10-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅