自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(556)
  • 收藏
  • 关注

原创 HarmonyOS NEXT应用开发性能优化从入门到精通指南~

在开发HarmonyOS NEXT应用时,优化应用性能是至关重要的。本文将介绍应用开发过程中常见的一些性能问题,并提供相应的解决方案,配合相关参考示例,帮助开发者解决大部分性能问题。我们把应用性能分析的方法划分为了性能分析四板斧,下面将介绍如何使用性能分析四板斧,解决应用开发过程中的性能问题。第一板斧:合理使用并行化、预加载和缓存,我们需要合理地使用并行化、预加载和缓存等方法,例如使用多线程并发、异步并发、Web预加载等能力,提升系统资源利用率,减少主线程负载,加快应用的启动速度和响应速度。

2024-04-27 15:42:26 565

原创 鸿蒙原生已4000+,为什么我的城市没有相关开发岗位?

要说2024年,IT互联网中哪个行业能成为最亮崽,那还得是,从2023年九月左右开始就和一些大厂陆陆续续达成了鸿蒙原生应用开发合作。而不少网友看到消息后,查询自己所在的城市招聘鸿蒙开发岗位的数量是,却并没有几个,感觉差距很大。其实这个也很好理解,之前大厂合作的公司基本都是互联网大厂,而这些大厂基本在一线城市,所以对应的招聘岗位也就会多一些。这也就是为什么鸿蒙优先和互联网大厂合作的原因,他们之间是互助的关系。?相信这是大家比较关心的。官宣正式启动鸿蒙原生应用开发,加速鸿蒙生态在重庆市乃至西部地区的发展。

2024-04-26 23:53:42 546

原创 鸿蒙(HarmonyOS)性能优化实战-状态变量组件定位工具实践

自定义组件中的变量被状态装饰器(@State,@Prop等)装饰后成为状态变量,而状态变量的改变会引起使用该变量的UI组件渲染刷新。状态变量的不合理使用可能会带来冗余刷新等性能问题。开发者可以使用状态变量组件定位工具获取状态管理相关信息,例如自定义组件拥有的状态变量、状态变量的同步对象和关联组件等,了解状态变量影响UI的范围,写出高性能应用代码。本文将通过场景示例为开发者提供状态变量组件定位工具的实践指导,并对工具相关的调试命令和输出结果作解释说明。

2024-04-26 23:20:40 552

原创 鸿蒙(HarmonyOS)性能优化实战-Trace使用教程

OpenHarmony的DFX子系统提供了为应用框架以及系统底座核心模块的性能打点能力,每一处打点即是一个Trace,其上附带了记录执行时间、运行时格式化数据、进程或线程信息等。开发者可以使用SmartPerf-Host调试工具对Trace进行解析,在其绘制的泳道图中,对应用运行过程中的性能热点进行分析,得出优化方案。本文旨在介绍OpenHarmony中常用的Trace,解释它们的含义和用途,并阐述如何通过这些Trace来识别潜在的性能问题。

2024-04-26 22:28:13 661

原创 鸿蒙(HarmonyOS)性能优化实战-SmartPerf-Host分析应用性能

SmartPerf-Host是一款深入挖掘数据、细粒度展示数据的性能功耗调优工具,可采集CPU调度、频点、进程线程时间片、堆内存、帧率等数据,采集的数据通过泳道图清晰地呈现给开发者,同时通过GUI以可视化的方式进行分析。该工具当前为开发者提供了五个分析模板,分别是帧率分析、CPU/线程调度分析、应用启动分析、TaskPool分析、动效分析。关于工具使用的更多内容可查看SmartPerf-Host调优工具使用指导。

2024-04-26 21:31:47 482

原创 鸿蒙(HarmonyOS)性能优化实战-HiDumper命令行工具优化性能

HiDumper是系统为开发、测试人员、IDE工具提供的系统信息获取工具,帮助开发者分析、定位问题。在应用开发过程中,开发者可以使用Hidumper命令行工具获取UI界面组件树信息,配合ArkUI Inspector等图形化工具定位布局性能问题;还可以使用该命令行工具获取如内存和CPU使用情况等各项系统数据,对应用性能进行评估。本文通过一些示例介绍在优化应用性能过程中如何使用Hidumper命令行工具。

2024-04-26 21:00:00 593

原创 鸿蒙(HarmonyOS)性能优化实战-性能测试工具SmartPerf Editor 教程指南

SmartPerf Editor是一款PC端桌面应用,通过监测、采集应用运行时FPS、CPU、GPU、Memory、Battery、Network等性能数据,帮助开发者了解应用的性能状况。SmartPerf Editor还集成了DrawingDoc功能,可录制Render Service绘制指令,回放并生成不同图形库文件。通过逐帧逐绘制指令回放,来识别是否存在冗余绘制、是否可以优化绘制指令的数量,从而提升页面绘制性能。

2024-04-26 20:45:00 391

原创 鸿蒙(HarmonyOS)性能优化实战-内存快照Snapshot Profiler 教程指南

DevEco Studio集成的DevEco Profiler性能调优工具(以下简称为Profiler),提供Time、Allocation、Snapshot、CPU等场景化分析任务类型。内存快照(Snapshot)是一种用于分析应用程序内存使用情况的工具,通过记录应用程序在运行时的内存快照,可以快速查看应用程序在某一时刻的内存占用情况以及内存占用详情。针对方舟虚拟机,Profiler提供了内存快照分析能力,结合Memory实时占用情况,分析不同时刻的方舟虚拟机内存对象占用情况及差异。

2024-04-26 19:15:00 384

原创 鸿蒙(HarmonyOS)性能优化实战-启动分析工具Launch Profiler 教程指南

其中Launch主要用于分析应用或服务的启动耗时,分析启动周期各阶段的耗时情况、核心线程的运行情况等,协助开发者识别启动缓慢的原因。可以发现aboutToAppear函数的耗时占据UI Ability OnForeground阶段的大部分时间,结合应用代码将aboutToAppear函数中的耗时计算任务以异步延迟的方式处理后,可以得到如下“Launch”泳道。如选择的是正在运行的应用,在启动该分析任务时,会先将应用关停,再自动拉起应用,进行数据录制,结束录制后可正常进入解析阶段。

2024-04-26 18:45:00 291

原创 鸿蒙(HarmonyOS)性能优化实战-耗时分析器Time Profiler 教程指南

DevEco Studio集成的DevEco Profiler性能调优工具(以下简称为Profiler),提供Time、Allocation、Snapshot、CPU等场景化分析任务类型。开发应用或服务过程中,如果遇到卡顿、加载耗时等性能问题,开发者通常会关注相关函数执行的耗时情况。Profiler提供的Time场景分析任务,可在应用/服务运行时,展示热点区域内基于CPU和进程耗时分析的调用栈情况,并提供跳转至相关代码的能力,使开发者更便捷地进行代码优化。

2024-04-26 14:33:59 214

原创 鸿蒙(HarmonyOS)性能优化实战-帧率分析工具 Frame Profiler 教程指南

上述案例中的场景明显属于前者中App侧的发送帧卡顿,针对前一种现象可以点击查看卡顿帧的Details信息,点击 以跳转到此帧对应的trace数据。DevEco Studio内置Profiler分析调优工具,其中Frame分析调优功能,用于录制GPU数据信息,录制完成展开之后的子泳道对应录制过程中各个进程的帧数据,主要用于深度分析应用或服务卡顿丢帧的原因。Frame泳道展开之后的子泳道对应录制过程中各个进程的帧数据,在RS Frame和App Frame标签的泳道中绿色帧为正常帧,红色帧为卡顿帧。

2024-04-26 14:19:03 746

原创 鸿蒙(HarmonyOS)性能优化实战-内存分析器Allocation Profiler教程指南

DevEco Studio集成的DevEco Profiler性能调优工具(以下简称为Profiler),提供Time、Allocation、Snapshot、CPU等场景化分析任务类型。开发者可使用Profiler的Allocation内存分析器,在应用或服务运行时实时显示内存使用情况,识别可能会导致应用卡顿、内存泄漏、内存抖动的问题,或找到导致内存瓶颈的问题。

2024-04-26 14:13:59 591

原创 原生微信要走起,腾讯MMKV组件牵手华为纯血鸿蒙

此外据知情博主透露,MMKV 其实早前就做了 OpenHarmony 的适配,这次是在最新适配版本之中,覆盖到了 HarmonyOS NEXT。

2024-04-25 22:40:53 504

原创 鸿蒙(HarmonyOS)性能优化实战-页面布局检查器ArkUI Inspector使用教程

DevEco Studio内置ArkUI Inspector工具,开发者可以使用ArkUI Inspector,在DevEco Studio上查看应用在真机上的UI显示效果。利用ArkUI Inspector工具,开发者可以快速定位布局问题或其他UI相关问题,同时也可以观察和了解不同组件之间的布局关系和属性,学习如何通过布局属性来控制组件的显示方式。

2024-04-25 20:45:00 1387

原创 鸿蒙(HarmonyOS)性能优化实战-APP体积包瘦身方案

减小应用包大小是提升应用下载、安装体验的重要方式之一。通过压缩、精简或者复用应用中的代码或资源,可以有效降低应用的大小,提升应用下载和安装速度,减少系统空间占用。配置so压缩选项,通过压缩so库来减小应用包大小。应用存在多包(HAP、HSP)的场景时,可以使用动态共享包在应用的多个包(HAP、HSP)之间共享代码和资源,消除使用静态共享包造成的多包(HAP、HSP)间代码和资源的重复拷贝,从而减小应用包大小。使用扫描工具扫描分析App、HAP、HSP包,根据输出的检测报告,采取相应措施优化应用。

2024-04-25 20:00:00 739

原创 鸿蒙(HarmonyOS)性能优化实战-Web组件开发性能提升方案

开发者实现在应用中跳转显示网页需要分为两个方面:使用@ohos.web.webview提供Web控制能力;使用Web组件提供网页显示的能力。在实际应用中往往由于各种原因导致首次跳转Web网页或Web组件内跳转时出现白屏、卡顿等情况。本文介绍提升Web首页加载与Web网页间跳转速度的几种方法。预渲染优化适用于Web页面启动和跳转场景,例如,进入首页后,跳转到其他子页。

2024-04-25 19:30:00 751

原创 鸿蒙(HarmonyOS)性能优化实战-应用性能分析工具CPU Profiler使用教程

本文档介绍应用性能分析工具CPU Profiler的使用方法,该工具为开发者提供性能采样分析手段,可在不插桩情况下获取调用栈上各层函数的执行时间,并展示在时间轴上。开发者可通过该工具查看TS/JS代码及NAPI代码执行过程中的时序及耗时情况,进而发现热点函数及性能瓶颈,进行应用层性能优化。

2024-04-25 15:42:36 466

原创 鸿蒙(HarmonyOS)性能优化实战-电量优化

设备返回主界面、锁屏、应用切换等操作会使应用退至后台。为了降低设备耗电速度、保障用户使用流畅度,系统会对退至后台的应用进行管控,包括进程挂起和进程终止。为了保障后台音乐播放、日历提醒等功能的正常使用,系统提供了受规范约束的后台任务,扩展应用在后台的运行时间。本文将介绍各类后台任务的基本概念和适用场景,并且通过对短时任务和长时任务两个场景的性能分析说明合理运行后台任务的必要性。合理的选择和使用后台任务对于优化用户体验,减少性能消耗非常重要。

2024-04-25 15:07:34 698

原创 鸿蒙(HarmonyOS)性能优化实战-运行时动态加载页面性能

应用在加载页面时,如果引入大量暂不需要加载的模块,会因过多模块导致页面加载缓慢。比如当页面在使用Navigation组件时,主页默认先加载所有页面,此时若包含大量子页面,仅加载主页这一项就需要很长时间,但这些复杂的子页面与主页渲染无关。本文推荐使用动态加载解决上述问题,不在应用程序加载时就将所有模块都加载进来,而是按需加载模块,增加应用灵活性,提升应用性能。

2024-04-25 15:04:47 429

原创 鸿蒙(HarmonyOS)性能优化实战-多板块性能提升方案

开发者若使用低性能的代码实现功能场景可能不会影响应用的正常运行,但却会对应用的性能造成负面影响。本章节列举出了一些可提升性能的场景供开发者参考,以避免应用实现上带来的性能劣化。

2024-04-25 15:00:17 511

原创 鸿蒙(HarmonyOS)性能优化实战-应用程序动效能力实践

本文介绍如何在开发应用程序时合理地使用动效,来获得更好的性能。主要通过减少布局和属性的变更频次,避免冗余刷新,从而降低性能开销。组件转场动画使用transition组件布局改动时使用图形变换属性动画动画参数相同时使用同一个animateTo多次animateTo时统一更新状态变量。

2024-04-25 14:50:29 498

原创 鸿蒙(HarmonyOS)性能优化实战-应用列表场景性能提升

本文会介绍开发列表场景时的4种推荐优化方法,通过独立使用或组合使用这些优化方法,可以获得在启动时间、内存和系统资源方面的平衡,提升性能和用户体验。懒加载:提供列表数据按需加载能力,解决一次性加载长列表数据耗时长、占用过多资源的问题,可以提升页面响应速度。缓存列表项:提供屏幕可视区域外列表项长度的自定义调节能力,配合懒加载设置可缓存列表项参数,通过预加载数据提升列表滑动体验。组件复用。

2024-04-25 14:46:42 931

原创 鸿蒙(HarmonyOS)性能优化实战-减少首帧绘制时的冗余操作

LoadPage阶段需要等待自定义组件生命周期aboutToAppear的高耗时任务完成, 导致LoadPage时间大量增加,阻塞主线程后续的布局渲染,所以自定义组件生命周期的耗时任务应当转为Worker线程任务,优先绘制页面,避免启动时阻塞在startWindowIcon页面。案例:自定义组件生命周期存在高耗时任务,阻塞主线程布局渲染。@Entry@Component// 同步任务build() {

2024-04-24 21:23:51 900

原创 鸿蒙(HarmonyOS)性能优化实战-文件上传下载性能提升

在开发应用时,要实现高效的客户端跟服务器之间数据交换,文件传输的性能是至关重要的。一个数据交换性能较低的应用会导致其在加载过程中耗费较长时间,在很多的场景造成页面卡顿,极大的影响了用户体验。相反,一个数据交换高效的应用,则会让应用变得更加流畅。本文将介绍两种常见的上传下载传输和网络请求的关键技术:数据压缩和断点续传,可提升上传下载的性能、减少宽带占用,从而提高数据传输效率。

2024-04-24 21:17:47 578

原创 鸿蒙(HarmonyOS)性能优化实战-合理使用IPC通信

合理使用IPC通信对于优化应用程序性能至关重要。通过场景分析、逻辑优化和合理的权衡,可以确保IPC通信不成为应用性能的瓶颈,从而提供更出色的用户体验。

2024-04-24 20:29:39 788

原创 鸿蒙(HarmonyOS)性能优化实战-合理选择条件渲染和显隐控制

开发者可以通过条件渲染或显隐控制两种方式来实现组件在显示和隐藏间的切换。本文从两者原理机制的区别出发,对二者适用场景分别进行说明,实现相应适用场景的示例并给出性能对比数据。

2024-04-24 15:42:06 871

原创 鸿蒙(HarmonyOS)性能优化实战-Flex布局性能提升方案

Flex为采用弹性布局的容器。容器内部的所有子元素,会自动参与弹性布局。子元素默认沿主轴排列,子元素在主轴方向的尺寸称为主轴尺寸。在单行布局场景下,容器里子组件的主轴尺寸长度总和可能存在不等于容器主轴尺寸长度的情况。例如,三个子组件的宽均为200px,容器宽为500px,当第一个子组件和第二个子组件布局完成后,为了显示第三个子组件,需要给第二个子组件和第三个子组件设置压缩属性,此时第二个子组件会被再布局一次,导致布局效率下降。

2024-04-24 14:32:33 629

原创 鸿蒙(HarmonyOS)性能优化实战-高负载组件的渲染

在应用开发中,有的页面需要加载大量的数据,就会导致组件数量较多或者嵌套层级较深,从而引起组件负载加重,绘制耗时增长,如果不进行合理的处理,可能引起卡顿掉帧等性能问题。通过上面的示例代码和优化过程,可以看到在需要加载大量数据的页面,一次性全部加载时会引起比较严重的性能问题,一帧的绘制耗时很长,在性能较差的手机上可能会引起明显的卡顿掉帧现象;而将数据合理拆分后,可以有效减少帧绘制的耗时,从而减少卡顿掉帧现象的发生。码牛课堂也为了积极培养鸿蒙生态人才,让大家都能学习到鸿蒙开发最新的技术,针对一些。

2024-04-23 21:35:42 799

原创 鸿蒙(HarmonyOS)性能优化实战-状态管理

为了帮助应用程序开发人员提高其应用程序质量,特别是在高效的状态管理方面。本章节面向开发者提供了多个在开发ArkUI应用中常见的低效开发的场景,并给出了对应的解决方案。此外,还提供了同一场景下,推荐用法和不推荐用法的对比和解释说明,更直观地展示两者区别,从而帮助开发者学习如何正确地在应用开发中使用状态变量,进行高性能开发。

2024-04-23 21:33:29 757

原创 鸿蒙(HarmonyOS)性能优化实战-Grid高性能开发

在构建大型、复杂应用时,性能优化至关重要。Grid布局作为一种高效布局方式,可以提高页面的均分能力、子组件占比控制能力及自适应布局能力。本文将介绍Grid在高性能开发方面的应用,包括懒加载、cachedCount、组件复用和使用GridLayoutOptions设置GridItem大小等方法,帮助开发者优化Grid布局性能,减少加载和渲染时间,提升用户体验。

2024-04-23 21:31:46 563

原创 鸿蒙(HarmonyOS)性能优化实战-多线程共享内存

在应用开发中,为了避免主线程阻塞,提高应用性能,需要将一些耗时操作放在子线程中执行。此时,子线程就需要访问主线程中的数据。ArkTS采用了基于消息通信的Actor并发模型,具有内存隔离的特性,所以跨线程传输数据时需要将数据序列化,但是AkrTS支持通过可共享对象SharedArrayBuffer实现直接的共享内存。在开发应用时,如果遇到数据量较大,并且需要多个线程同时操作的情况,推荐使用SharedArrayBuffer共享内存,可以减少数据在线程间传递时需要复制和序列化的额外开销。

2024-04-23 21:28:36 691 1

原创 鸿蒙(HarmonyOS)性能优化实战-减少动画丢帧

在播放动画或者生成动画时,画面产生停滞而导致帧率过低的现象,称为动画丢帧。播放动画时,系统需要在一个刷新周期内完成动画变化曲线的计算,完成组件布局绘制等操作。建议使用系统提供的动画接口,只需设置曲线类型、终点位置、时长等信息,就能够满足常用的动画功能,减少UI主线程的负载。反例:应用使用了自定义动画,动画曲线计算过程很容易引起UI线程高负载,易导致丢帧。

2024-04-23 21:26:49 289

原创 鸿蒙(HarmonyOS)性能优化实战-合理使用renderGroup

在大型业务场景开发过程中,为了提升产品的视觉效果,经常大量使用属性动画和转场动画,当业务场景复杂度达到一定程度之后,就有可能出现卡顿的情况。本文推荐在单一页面上存在大量应用动效的组件时,使用renderGroup方法来解决卡顿问题,从而提升绘制性能。renderGroup是组件通用方法,它代表了渲染绘制的一个组合。其核心功能就是标记组件,在绘制阶段将组件和其子组件的绘制结果进行合并并缓存,以达到复用的效果,从而降低绘制负载。参数类型说明valuebooleanfalse:关闭,true:开启。

2024-04-23 21:25:08 667

原创 鸿蒙(HarmonyOS)性能优化实战-Swiper高性能开发

Swiper 组件的预加载机制与 LazyForEach 结合使用,能够达到最佳优化效果。预加载的 cachedCount 并非越大越好,需要结合单个子组件加载耗时来设置。假设一个子组件的加载耗时为 Nms,那么 cachedCount 推荐设置为小于 400/N。如果应用有非常高的性能优化需求,Swiper 预加载机制可搭配 OnAnimationStart 接口回调使用,进一步提升预加载的效率。码牛课堂也为了积极培养鸿蒙生态人才,让大家都能学习到鸿蒙开发最新的技术,针对一些。

2024-04-23 21:20:00 1014

原创 鸿蒙(HarmonyOS)应用开发性能优化实战-WaterFlow高性能开发

WaterFlow配合LazyForEach渲染控制语法、提前加载数据和组件复用可以达到无限滚动场景性能最优效果。码牛课堂也为了积极培养鸿蒙生态人才,让大家都能学习到鸿蒙开发最新的技术,针对一些在职人员、0基础小白、应届生/计算机专业、鸿蒙爱好者等人群,整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线。①全方位,更合理的学习路径。

2024-04-23 21:17:27 784

原创 鸿蒙(HarmonyOS)应用开发之性能优化实战-组件复用四板斧

在滑动场景下,常常会对同一类自定义组件的实例进行频繁的创建与销毁。此时可以考虑通过组件复用减少频繁创建与销毁的能耗。组件复用时,可能存在许多影响组件复用效率的操作,本篇文章将重点介绍如何通过组件复用四板斧提升复用性能。第一板斧,减少组件复用的嵌套层级,如果在复用的自定义组件中再嵌套自定义组件,会存在节点构造的开销,且需要在每个嵌套的子组件中的aboutToReuse方法中实现数据的刷新,造成耗时。第二板斧,优化状态管理,精准控制组件刷新范围。

2024-04-23 21:13:39 685

原创 鸿蒙(HarmonyOS)应用开发之性能优化实战-组件复用

若开发者的应用中存在以下场景,并成为UI线程的帧率瓶颈,应该考虑使用组件复用机制提升应用性能:

2024-04-23 21:10:41 577

原创 高效避免HarmonyOS开发过程中的冗余操作

在软件开发流程中,识别并减少冗余操作至关重要。为优化性能,开发者需在开发阶段适度增加日志以辅助调试,而在生产环境中则需避免冗余日志和Trace追踪输出。还需要审查并删除无实际功能的空回调函数,确保回调有明确的目的。通过精简日志、合理规划Trace追踪和严谨处理回调函数,能够有效降低冗余,提升代码质量与运行性能,从而提高软件产品的用户体验。接下来,将进一步探讨关注点及优化方法。在处理日志打印和Trace追踪方面,冗余的操作可能会导致不必要的性能开销,增大内存占用,拖慢程序响应速度,甚至影响界面流畅度。

2024-04-23 17:33:54 765

原创 如何正确利用native的方式实现跨线程调用?(鸿蒙开发)

在OpenHarmony应用开发实践中,经常会遇到一些耗时的任务,如I/O操作、域名解析以及复杂计算等。这些任务如果直接在主线程中执行,将会严重阻塞主线程,影响后续任务的正常流程,进而导致用户界面响应延迟甚至卡顿。因此,为了提升代码性能,通常会将这类耗时任务放在子线程中执行。本文将聚焦于如何利用native的方式实现跨线程调用,即采用线程安全函数和libuv异步I/O工具库这两种策略,来优化程序性能并保持流畅的用户体验。

2024-04-23 17:31:09 894

原创 如何高效的使用N-API开发Native模块?

N-API 是 Node.js Addon Programming Interface 的缩写,是 Node.js 提供的一组 C++ API,封装了V8 引擎的能力,用于编写 Node.js 的 Native 扩展模块。通过 N-API,开发者可以使用 C++ 编写高性能的 Node.js 模块,同时保持与 Node.js 的兼容性。Node.js 官网中已经给出 N-API 接口基础能力的介绍,同时,方舟 ArkTS 运行时。

2024-04-23 17:28:51 515

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除