个人随笔,鸿蒙 DevEco Studio Profiler 跨语言内存调优:打破语言屏障,内存泄漏一「栈」到底 在鸿蒙应用开发中,ArkTS 与 C/C++ 的混合架构通过 NAPI 实现了高性能互通,但也埋下了一个隐形的“定时炸弹”——跨语言内存问题。 你是否曾遇到过这样的场景:应用运行一段时间后无故卡顿、OOM(内存溢出),但反复检查 ArkTS 代码却找不到任何泄漏?又或者逻辑看似完美,内存却在持续上涨?真正的元凶,往往藏在 NAPI 句柄管理的灰色地带。 华为开发者联盟 ArkTS跨语言内存鸿蒙系统
个人随笔,鸿蒙 DevEco Studio Profiler 升级:高效解决 ArkTS 与 Native 交互内存泄漏难题 在鸿蒙 ArkTS 与 Native(C/C++)交互的开发场景中,ArkTS 对象被 Native 引用导致的内存泄漏问题是开发者的一大痛点。 这类问题的传统定位方式高度依赖开发者具备深厚的技术积累,不仅要求开发者要精通 ArkTS 引擎垃圾回收机制、在 NAPI 交互模型等基础理论,还要深入理解应用代码的实现细节,尤其在应用由多个模块组成、模块间依赖关系复杂的场景下,问题定位复杂度倍增。 华为开发者联盟 ArkTSArkTS泄漏DevEco Studio
个人随笔,鸿蒙 故障定位 DFX Skills:一键读懂 ArkTS 内存泄露 在鸿蒙应用开发中,内存泄露很少在编码阶段就跳出来“报警”,它总是藏在长时间运行、复杂页面切换或者多模块协同的背后慢慢发酵。问题表现往往很直白——内存只涨不跌、页面退出后对象就是不释放——可真到排查时,摆在面前的却是一份又大又密的内存快照。对象、引用链、距离、根节点,数据全在那,但怎么把它翻译成“哪里出了问题、为什么没释放、该怎么改”,依然是一件极其依赖经验的事。 华为开发者联盟 ArkTSArkTS泄漏Skill
个人随笔,鸿蒙 聊聊 HarmonyOS 上的应用内通知授权弹窗 做过 C 端 App 的同学应该都踩过类似的坑:消息推送能力明明接好了,后台数据却一直上不去,扒了一圈发现——原来相当一部分用户根本没开通知权限。尤其在求职招聘这类... 纯爱掌门人 ArkTS前端鸿蒙系统
个人随笔,鸿蒙 开发态快速定位Native泄漏 本原创文章帖发布在华为开发者联盟社区,欢迎开发者前往访问评论交流,更多与该内容相关讨论,请点击原帖查看: 开发态快速定位Native泄漏-华为开发者话题 | 华为开发... 华为开发者联盟 ArkTSArkTS泄漏鸿蒙系统
个人随笔,鸿蒙 深入理解 OpenHarmony 的 enableLocalHandleDetection API – 解决 NAPI 异步任务内存泄漏问题 在 OpenHarmony 应用开发中,使用 NAPI(Native API)进行 C++ 和 ArkTS 之间的交互是常见做法。然而,当开发者在异步任务(如 libuv 的 uv_queue_work 或 EventHandler)的回调中创建 napi_value 对象时,往往忽略了一个关键问题:Handle Scope 管理。 华为开发者联盟 ArkTS鸿蒙系统
个人随笔,鸿蒙 JSLeakWatcher特性指导 在ArkTS开发中,若一个ArkTS对象不再需要,但仍被某个引用链“意外”持有,则垃圾回收器无法回收该内存,从而导致内存泄漏。 华为开发者联盟 ArkTS鸿蒙系统
个人随笔,鸿蒙 使用GWP-ASan定位地址越界问题 地址越界泛指程序对内存的错误访问,例如堆内存释放后重用、栈内存退栈后重用、堆或栈的越界访问等。 GWP-ASan 正是用于解决这类问题的轻量级地址越界检测工具。 华为开发者联盟 ArkTS鸿蒙系统
个人随笔,鸿蒙 使用冻屏增强日志定位繁忙类问题 用户在使用应用时,如果出现点击无反应或应用无响应等情况,并且持续时间超过一定限制,就会被定义为应用冻屏(AppFreeze),即应用无响应。系统会检测应用无响应,并生成AppFreeze日志,供应用开发者分析。从API 21开始,支持获取AppFreeze的增强日志。该日志通过采集整机及主线程的运行负载,并抓取多份主线程调用栈,帮助开发者知晓函数调用耗时。 华为开发者联盟 ArkTS鸿蒙系统
个人随笔,鸿蒙 应用退出不知道原因?HarmonyOS有账本 在移动端应用开发过程中,可能出现应用闪退、后台被强制退出等异常行为。除崩溃、Freeze 等显性故障外,也存在系统资源调度引发的非故障类退出,仅依靠传统故障日志,无法完整还原退出现场,给问题排查带来较大阻碍。 针对这一痛点,HarmonyOS 6.1 上线 HiAppEvent 退出原因订阅能力,通过系统级事件采集,记录应用上一次应用退出的全量原因,助力开发者高效完成异常数据汇总与根因分析。下文将对该机制的原理、开发实践及应用场景展开详细解读。 华为开发者联盟 ArkTS鸿蒙系统
个人随笔,鸿蒙 ArkTS内存快照聚类分析规则 在通过ArkTS内存快照定位内存泄漏问题时,通常需要优先关注内存占用大的对象,这部分对象在快照中占比比较大。当数量较多时,存在不同调用点创建的对象因为对象类型被归类在同一目录下,如jsobject/jsarray等对象,在大型工程中一般情况下拥有10万以上的数量级,无法通过人工来快速识别同类型不同业务对象各自占用的内存大小。 华为开发者联盟 ArkTS鸿蒙系统