- 博客(139)
- 收藏
- 关注
原创 [HarmonyOS Next 性能]鸿蒙性能优化 - 长列表加载性能优化
方式一,循环渲染:通过循环渲染(ForEach)从数组中获取数据,并为每个数据项创建相应的组件,可减少代码复杂度。方式二,数据懒加载:通过数据懒加载(LazyForEach)从提供的数据源中按需迭代数据,并在每次迭代过程中创建相应的组件。LazyForEach懒加载可以通过设置cachedCount来指定缓存数量,在设置cachedCount后,除屏幕内显示的ListItem组件外,还会预先将屏幕可视区外指定数量的列表项数据缓存。
2024-10-19 18:23:13
1176
原创 [HarmonyOS Next 性能]鸿蒙性能优化 - TaskPool和Worker的对比实践
对比维度WorkerTaskPool编码效率Worker需要开发者关注线程数量的上限,管理线程生命周期,随着任务的增多也会增加线程管理的复杂度。TaskPool简单易用,开发者很容易上手。数据传输TaskPool与Worker都具有转移控制权、深拷贝两种方式,Worker不支持任务方法的传递,只能将任务方法写在Worker.js文件中。传输方式与Worker相同;TaskPool支持任务方法的传递,因此相较于Worker,TaskPool多了任务方法的序列化与反序列化步骤。
2024-10-19 18:22:29
829
原创 【鸿蒙开发示例代码】多线程任务
本示例通过@ohos.taskpool和@ohos.worker接口,展示了如何启动worker线程和taskpool线程。
2024-09-20 20:39:01
1109
原创 【鸿蒙开发示例代码】语言基础类库
ohos.convertxml (xml转换JavaScript)@ohos.taskpool (启动任务池)@ohos.uri (URI字符串解析)@ohos.util (util工具函数)@ohos.ArkTSUtils (ArkTSUtils工具函数)@ohos.util.ArrayList (线性容器ArrayList)@ohos.util.Deque (线性容器Deque)@ohos.util.HashMap (非线性容器HashMap)
2024-09-20 20:38:03
877
原创 【鸿蒙开发示例代码】N-Body模拟程序
在本示例中,使用ArkTS编程语言开发了业界编程语言基准测试项目中的N体问题模拟程序,实现类木星体轨道计算。本示例用到了@ohos.taskpool和@ohos.worker 接口。示例中的程序可以用于AOT(Ahead Of Time)等性能测试。
2024-09-20 20:35:01
920
原创 【鸿蒙开发示例代码】简单时钟
本篇Sample主要介绍如何使用Drawing绘制一个bitmap,然后通过NativeWindow贴图到XComponent的双缓冲实现。双缓冲:在内存中创建一片内存区域,把将要绘制的图片预先绘制到内存中,在绘制显示的时候直接获取缓冲区的图片进行绘制。更具体一点来说:先通过Drawing方法将要绘制的所有的图形绘制到一个Bitmap上也就是先在内存空间完成,然后获取位图的像素地址、并将其拷贝到XComponent的NativeWindow地址。完成贴图,将图片显示在屏幕上。
2024-09-20 20:30:25
494
原创 【鸿蒙开发示例代码】Native多线程示例
本示例以生产者-消费者模型为案例来介绍如何进行Native多线程开发以及线程间通信。Native侧通过调用C++标准库实现生产者-消费者模型,并分别使用了多种线程间通信的方式来进行ArkTS应用侧数据传输,以实现UI界面图片刷新。
2024-09-20 20:29:43
702
原创 【鸿蒙开发示例代码】基础数据类型转化示例
本示例介绍如何使用DevEco Studio创建一个Native C++应用,将ArkTS侧的数据(基础的数据类型)传递到Native侧进行处理并返回结果到ArkTS侧。
2024-09-20 20:17:28
1115
原创 【鸿蒙开发示例代码】Native XComponent
本示例中主要介绍开发者如何使用Native XComponent接口来获取NativeWindow实例、获取布局/事件信息、注册事件回调、通过OpenGL/EGL实现在页面上绘制形状、渲染YUV图像文件。功能主要包括点击按钮绘制一个五角星,并可以通过点击XComponent区域改变五角星的颜色;点击按钮渲染YUV图像文件。
2024-09-20 20:10:44
860
原创 【鸿蒙开发示例代码】dlopen加载so库并获取Rawfile资源
本示例中主要介绍在TaskPool子线程中使用dlopen加载so库,以及如何使用Native Rawfile接口操作Rawfile目录和文件。功能包括文件列表遍历、文件打开、搜索、读取和关闭Rawfile。
2024-09-20 20:09:52
614
原创 【鸿蒙开发示例代码】OpenGL三棱椎
XComponent控件常用于相机预览流的显示和游戏画面的绘制,在HarmonyOS上,可以配合Native Window创建OpenGL开发环境,并最终将OpenGL绘制的图形显示到XComponent控件。本示例基于"Native C++"模板,调用OpenGL(OpenGL ES)图形库相关API绘制3D图形(三棱锥),并将结果渲染到页面的XComponent控件中进行展示。
2024-09-20 20:08:31
733
原创 【鸿蒙开发示例代码】XComponent + Vsync 实现自定义动画
XComponent提供了应用在native侧调用OpenGLES图形接口的能力,本文主要介绍如何配合Vsync事件,完成自定义动画。在这种实现方式下,自定义动画的绘制不在UI主线程中完成,即使主线程卡顿,动画效果也不会受影响。
2024-09-20 20:07:30
344
原创 【鸿蒙开发示例代码】UI设计套件
本示例主要展示了UI Design Kit(UI设计套件)相关的功能。使用ArkUI、Localization Kit、Image Kit等接口,实现了图标合成、剪切、缩放、描边等功能。
2024-09-20 20:04:21
676
原创 【鸿蒙开发示例代码】组件堆叠
本示例介绍运用Stack组件以构建多层次堆叠的视觉效果。通过绑定Scroll组件的onScrollFrameBegin滚动事件回调函数,精准捕获滚动动作的发生。当滚动时,实时地调节组件的透明度、高度等属性,从而成功实现了嵌套滚动效果、透明度动态变化以及平滑的组件切换。
2024-09-20 20:03:11
517
原创 [HarmonyOS Next 性能]鸿蒙性能优化 - 调优工具合集
本文重点介绍应用开发过程中开发套件涉及的性能工具集,目前DevEco Stduio主要集成了四种性能工具,在不同的开发阶段各有侧重,主要分为性能问题检测类工具和性能问题分析类工具。
2024-09-19 11:20:52
543
原创 【鸿蒙开发示例代码】长列表性能对比
本示例分别使用ForEach与LazyForEach实现了长列表,并在LazyForEach懒加载的基础上实现了缓存列表项与组件复用,旨在不同大小的数据下,对比ForEach与LazyForEach的性能,包括完全显示所用时间、丢帧率等性能指标。
2024-09-18 20:41:54
810
原创 【鸿蒙开发示例代码】画中画效果实现
本示例通过@kit.ArkUI、@kit.MediaKit等接口,实现了视频播放、手动和自动拉起画中画、画中画窗口控制视频播放和暂停等功能。
2024-09-18 20:38:46
317
原创 【鸿蒙开发示例代码】深色模式
本示例通过@ohos.app.ability.ConfigurationConstant等接口,进行深色模式的设置。
2024-09-18 20:27:38
366
原创 【鸿蒙开发示例代码】图案密码锁
本示例展示了图案密码锁组件的使用,实现了密码设置、验证和重置功能。图案密码锁组件:以宫格图案的方式输入密码,用于密码验证。手指触碰图案密码锁时开始进入输入状态,手指离开屏幕时结束输入状态并向应用返回输入的密码。使用到用户首选项接口@ohos.data.preferences 异步获取用户设定过的密码。
2024-09-18 20:26:34
674
原创 【鸿蒙开发示例代码】自定义弹窗
本示例使用自定义弹窗(CustomDialog)、全屏模态转场(bindContentCover)、半模态转场(bindSheet)等实现多种自定义弹窗。
2024-09-14 15:28:50
878
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人