logo
publist
写文章

简介

鸿蒙开发工程师 开源社区、技术分享者 中国科学院大学项目管理硕士

擅长的技术栈

可提供的服务

暂无可提供的服务

根与环:为什么你的 ArkTS 内存泄漏,和“循环引用“无关

本文揭示了 ArkTS 异步任务泄漏的真正根源:并非“闭包循环引用”,而是协程挂起导致栈帧保留,形成 FrameRoot 锚定。传统“断引用”修复法无效,因栈帧整体被锚定,局部变量无法回收。正确路径是识别根类型——尤其关注 async/await 引起的函数不退栈,通过让协程正常结束来释放栈帧。核心在于:泄漏的本质是“函数未退栈”,而非“对象有环”。

文章图片
#harmonyos#鸿蒙#华为
鸿蒙开发中BindSheet应用 打造半模态转场效果

在鸿蒙开发中,BindSheet组件可用于创建半模态窗口,通过设置合适的属性和添加动画效果,能够实现具有转场效果的半模态窗口。以下是详细的实现步骤和示例代码。

文章图片
#harmonyos#华为
鸿蒙开发中base64编码解码工具类分享

Base64编码是一种将二进制数据转换为ASCII字符的技术,用于确保数据在网络传输时的完整性。Base64编码通过将每3个字节的数据转换为4个6位的字符,并对不足的数据进行补零处理,使用特定字符集进行编码。编码完成后,如果数据长度不是24位的倍数,会用"="进行填充。解码过程则是编码的逆过程。许多编程语言如Python、Java和JavaScript都提供了内置的Base64编码和解码方法。ba

#harmonyos#华为
鸿蒙系统文件管理基础服务的设计背景和设计目标

有一定经验的开发者通常对文件管理相关的api应用或者底层逻辑都比较熟悉,但是关于文件管理服务的设计背景和设计目标可能了解得不那么清楚,本文旨在分享文件管理服务的设计背景及目标,方便广大开发者更好地理解鸿蒙系统文件管理服务。   1 鸿蒙系统 文件管理设计背景        随着移动终端设备的崛起, 很多用户不只有一台设备,且随着云空间的出现,单纯地

HarmonyOS 开发中条件渲染的选择:if/else 与取反操作的对比与实践

在HarmonyOS开发里,if/else条件渲染和取反操作(常借助三元运算符)都能根据不同情况设置组件属性值。下面从多个维度分析如何选择,以及各自的利弊,并附上代码示例。

文章图片
#harmonyos#华为
HarmonyOS开发,将公钥转为十六进制或者base64进制数据

ArkTS 开发中,把公钥转换为十六进制和 Base64 编码数据的功能,以下是参考代码。

#harmonyos#华为
HarmonyOS开发,Worker线程、Taskpool线程如何与宿主线程通信

Worker支持通过PostMessage往父线程抛任务。TaskPool支持通过sendData往父线程发消息,触发任务。

#harmonyos#华为
HarmonyOS开发,A持有B,B引用A的场景会不会导致内存泄漏,看这里!

问题 :A持有B,B引用A的场景会不会导致内存泄漏?答案 :方舟虚拟机的内存管理和GC采用的是根可达算法,根可达算法可以解决循环引用问题,不会导致A引用B,B引用A的内存泄漏。根可达算法以一系列被称为 “根对象”(如栈中的局部变量、静态变量等)作为起始点,从这些根对象开始向下搜索,能够被搜索到的对象被认为是可达对象,而那些无法被搜索到的对象则被判定为不可达对象,会在垃圾回收时被清理。所以,即使存在

文章图片
#harmonyos#华为
harmonyOS开发,如何使用Record,将一种类型的属性映射到另一种类型

在 HarmonyOS 开发中,如果你提到的“使用Record”指的是 TypeScript 里的Record类型工具,并且想要将一种类型的属性映射到另一种类型,下面会结合具体示例详细介绍操作方法。

文章图片
#harmonyos#ubuntu#华为
HarmonyOS开发,TextInput组件获取焦点的案例及代码实现

将上述代码复制到 DevEco Studio 中,点击运行按钮,选择合适的模拟器或真机设备,即可看到四种场景的效果。确保你已经安装了 DevEco Studio 并且配置好了 HarmonyOS SDK 开发环境。

文章图片
#harmonyos#华为#typescript
    共 53 条
  • 1
  • 2
  • 3
  • 6
  • 请选择