- 博客(1839)
- 收藏
- 关注

原创 OpenHarmony开发案例【大合集】
为帮助开发者快速熟悉OpenHarmony的能力以及相关的应用开发流程,我们提供了一系列的基于趣味场景的应用示例,即Codelabs,开发者可以根据我们的文档一步步的学习和完成简单项目的开发。
2024-05-12 21:11:37
1371
原创 鸿蒙5.0开发【是否支持模块的动态加载?如何实现】应用运维
当前不支持动态加载设备侧的二进制包;可以使用动态import进行异步加载,达到类似于Class.forName()反射的效果。
2025-04-30 21:40:28
158
原创 鸿蒙5.0开发【ArkTS里有哪些转换数据类型的方法】应用运维
ArkTS支持通过JavaScript/TypeScript的内置方法进行类型转换,例如Number(), String(), Boolean()等。ArkTS支持TS语义的as类型转换,不支持使用<>运算符进行类型转换。当前as类型转换只用在编译时,无法通过as在运行时进行类型转换。
2025-04-30 19:30:48
96
原创 鸿蒙5.0开发【如何合并两个对象】应用运维
出于性能考虑,目前ArkTS限制了ES6的Object.assign()方法的使用。若需要在ets文件中扩展对象属性或合并两个对象时,可以自行实现assign方法。
2025-04-30 15:41:49
235
原创 鸿蒙5.0开发【如何访问类的静态变量和方法】应用运维
在ArkTS中,静态变量和方法是属于类自身的,无法通过this访问,因为this是指向类的实例化对象。如果要在类中访问静态变量和静态方法,需要使用类名访问。
2025-04-30 14:37:58
80
原创 鸿蒙5.0开发【ArkTS中this的常用场景及使用】应用运维
在ArkTS中,this是常用于类中访问对象属性及方法或者自定义组件的回调中使用getContext(this)。
2025-04-30 13:36:08
98
原创 鸿蒙5.0开发【ArkTS中globalThis无法使用该如何替换】应用运维
ArkTS不支持动态更改对象的布局,因此不支持全局作用域和globalThis。
2025-04-29 22:03:30
129
原创 鸿蒙5.0开发【.ets文件和.ts文件的区别及如何互相调用文件中定义的方法】应用运维
ArkTS基于兼容了TS语法,继承了TS的所有特性,当前,ArkTS在TS的基础上主要扩展了声明式UI能力,让开发者能够以更简洁、更自然的方式开发高性能应用。推荐用ArKTS开发UI相关内容,TS可以用来开发业务逻辑相关内容。
2025-04-29 20:18:53
314
原创 鸿蒙5.0开发【AOT编译模式的产物及ap、an、ai文件是什么】应用运维
an、ai文件是字节码结合ap文件生成的机器码文件,an是arkcompiler native的缩写,ai是arkcompiler image的缩写。ap文件:即ark profiler文件,是在方舟AOT编译器中,记录预先profiling运行时类型等信息的文件。AOT编译模式的产物是可以直接执行的机器码。
2025-04-29 19:17:38
115
原创 鸿蒙5.0开发【如何开启AOT编译模式】应用运维
AOT(Ahead Of Time)即预先编译,在程序运行前,预先编译成高性能机器码,让程序在首次运行就能通过执行高性能机器码获得性能收益。
2025-04-29 17:11:19
122
原创 鸿蒙5.0开发【如何将类Java语言的线程模型(内存共享)的实现方式转换成在ArkTS的线程模型下(内存隔离)的实现方式】应用运维
可以利用TaskPool接口转换,大概可以分为如下五个场景
2025-04-29 16:09:17
135
原创 鸿蒙5.0开发【ArkTS类的方法是否支持重载】应用运维
当前ArkTS支持TS中的重载,即多个重载签名+实现签名+函数体的形式。函数签名只用在编译期进行类型检查,不保留到运行时。
2025-04-29 14:51:56
85
原创 鸿蒙5.0开发【ArkTS的SendableClass对象内存共享的原理和限制是什么】应用运维
SendableClass是基于Actor内存隔离并发模型的扩展,Sendable对象的内存是线程间共享的,但是仍然需要满足单线程无锁化运行。因此,要保证同一个Sendable实例不能多线程并发访问,开发者需要通过同步机制保证线程安全。
2025-04-29 13:37:20
161
原创 鸿蒙5.0开发【使用NAPI扩展TS接口时,常用属性和实现接口的基本用法】应用运维
env是使用napi的模块化编程,注册模块之后,调用回调的时候会通过回调函数调用过来
2025-04-28 20:52:56
94
原创 鸿蒙5.0开发【如何实现字符串编解码】应用运维
TextEncoder用于将字符串编码为字节数组,支持多种编码格式,包括utf-8、utf-16le/be等。
2025-04-28 17:09:56
148
原创 鸿蒙5.0开发【编译后生成的.abc文件存放路径在哪】应用运维
执行编译操作后,abc文件存放路径为:“build/default/intermediates/loader_out/default/ets/modules.abc”。
2025-04-28 16:00:18
208
原创 鸿蒙5.0开发【如何实现应用的屏幕自动旋转】应用运维
可以通过buffer.concat()方法,将数组中的内容复制指定字节长度到新的Buffer对象中并返回。
2025-04-28 14:44:40
100
原创 鸿蒙5.0开发【如何实现应用的屏幕自动旋转】应用运维
在module.json5添加属性"orientation": “auto_rotation”。
2025-04-28 13:31:56
145
原创 鸿蒙5.0开发【如何在Native侧释放ArkTS对象】应用运维
使用napi_wrap接口,如果最后一个参数result传递不为nullptr,需要开发者在合适的时机调用napi_remove_wrap函数主动删除创建的napi_ref对象。
2025-04-27 21:56:34
83
原创 鸿蒙5.0开发【如何实现ArkUI组件字符串变量拼接】应用运维
修改"src/main/resources/en_US/element/string.json"文件,对其中的一个需要变量拼接内容增加%d拼接。例如:Text()组件的字符串变量拼接功能,如何实现?可以通过资源文件结合%d、%s的方式进行实现。
2025-04-27 20:53:32
126
原创 鸿蒙5.0开发【自定义构建函数Builder与自定义组件component的使用区别以及限制是什么】应用运维
自定义构建函数(@Builder)和自定义组件的主要区别如下
2025-04-27 19:31:17
125
原创 鸿蒙5.0开发【如何打开键鼠穿越功能开关】应用运维
在HarmonyOS 4.0 Canary2版本的PC/2in1设备上,默认提供了用于测试键鼠穿越功能的应用“AssociateAssistant”,通过该应用可打开键鼠穿越功能开关,具体方法如下:
2025-04-27 17:40:29
198
原创 鸿蒙5.0开发【如何使用ohpm引入三四方库】应用运维
打开工程目录下的entry目录,找到该目录下的oh-package.json5文件。打开Terminal窗口,通过如下指令进入到entry目录。打开Terminal窗口,通过如下指令进入到entry目录。以引入“dayjs”为例,执行以下指令进行安装。在对应的ArkTS文件中直接引用。在对应的js文件中直接引用。
2025-04-27 15:42:26
361
原创 鸿蒙5.0开发【将rawfile中json格式的字符串转换成对应的object对象后,调用实例方法后程序崩溃】应用运维
JSON.parse方法会把 function 处理成字符串,直接调用的话会因该 function 不可调用从而 crash;为了能够继续使用,一般使用 eval 函数把字符串转成 function,但是 ArkTS 中会限制使用 eval 函数,所以该方法不可行,解决方案就是使用 class-transformer 的 plainToClass 方法;通过json解析字符串得到的对象的原型是object,其原型链中不存在自有的实例方法,故无法调用。将该实例方法改为静态方法,通过类名去调用。
2025-04-27 13:34:39
159
原创 鸿蒙5.0开发【在应用中如何刷新卡片】应用运维
点击卡片触发卡片更新,可以在卡片页面中通过[postCardAction]接口触发router事件或者call事件拉起UIAbility,然后由UIAbility刷新卡片内容。在应用页面操作触发卡片更新时,可以使用[updateForm]通知卡片进行刷新,例如天气应用设置显示地区后,通知卡片刷新显示数据。
2025-04-26 21:55:21
169
原创 鸿蒙5.0开发【IPC跨进程通信中是否支持异步返回数据】应用运维
支持,将服务端的onRemoteMessageRequest函数使用async设置为异步即可。具体可以参考:API参考[onRemoteMessageRequest]中的”重载onRemoteMessageRequest方法异步处理请求示例”。
2025-04-26 17:37:43
99
原创 鸿蒙5.0开发【如何查询后台任务中短时任务/长时任务/延迟任务/后台代理提醒相关的系统日志】应用运维
以后台任务中短时任务为例。可以在日志中通过过滤关键字“C01711/TRANSIENT_TASK”来查询短时任务的状态情况,包括查询申请短时任务状态、查询对应短时任务的剩余时间和取消短时任务状态等。
2025-04-26 16:13:33
169
原创 鸿蒙5.0开发【如何确认延迟任务WorkSchedulerExtensionAbility回调方法onWorkStart、onWorkStop实现】应用运维
com.hmos.workschedulerdemo、MyWorkSchedulerExtensionAbility需要替换为需要查询应用的bundleName和abilityName。延迟任务申请成功之后,执行延迟任务回调需要等到条件满足之后,为了快速验证延迟任务回调功能是否正确,可以通过以下hidumper命令手动触发延迟任务执行回调。
2025-04-26 14:43:50
295
原创 鸿蒙5.0开发【如何确认延迟任务是否申请成功】应用运维
startWork成功之后,可以通过以下命令验证延迟任务是否申请成功,如果hidumper命令返回结果中包含对应应用的bundleName、abilityName、workId,说明对应workId的延迟任务申请成功。
2025-04-26 13:34:09
153
原创 鸿蒙5.0开发【如何申请多个长时任务】应用运维
同一时刻,一个UIAbility只能申请运行一个长时任务,需要创建多个UIAbility根据不同种类的长时任务分别申请;不同时刻可以申请不同种类的长时任务。应用在后台同时有多个任务运行,需要申请多个长时任务。
2025-04-25 21:18:33
81
原创 鸿蒙5.0开发【如何在Stage模型中创建后台任务】应用运维
Stage模型中的ServiceExtensionAbility是系统接口,第三方应用不支持调用,如何在Stage模型中创建后台任务?后台任务,包括短时任务、长时任务、延迟任务、代理提醒等。
2025-04-25 19:31:32
106
原创 鸿蒙5.0开发【如何跳转到系统文件管理App界面】应用运维
可以使用openLink的方式打开,在[openLink]接口的link字段中传入系统文件管理页面的URL信息
2025-04-25 17:00:59
409
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人