- 博客(35)
- 收藏
- 关注
原创 鸿蒙5.0 APP性能优化实战——优化应用冷启动时延问题
应用启动时延是影响用户体验的关键要素,是指从用户点击桌面应用图标、通知或其他入口启动应用,到应用界面内容成功加载并显示在屏幕上的时间间隔。如果这段时间耗时比较长,肯定会影响用户的体验。应用启动可以分为冷启动和热启动,当应用启动时,后台没有该应用的进程,这时系统会重新创建应用的进程, 这种启动方式就叫做冷启动;而热启动是当应用程序已经在后台运行,用户再次打开应用程序时,应用程序仍然在内存中,可以直接从内存中加载并继续之前的状态,而不需要重新初始化和加载资源。
2025-04-13 20:11:38
1
原创 鸿蒙5.0 APP性能优化实战——优化Web场景下的加载性能问题
ArkWeb(方舟Web)是一个Web组件平台,旨在为应用程序提供展示Web页面内容的功能,并为开发者提供丰富的能力,包括页面加载、页面交互、页面调试等功能。在这个数字化时代,页面显示的速度直接体现了应用的流畅性,影响着用户对应用的印象和体验。快速加载并展示页面不仅可以吸引用户留在应用上,还能减少他们的等待时间和不耐烦情绪,从而提升用户的满意度。Web页面的显示过程可以被分为多个阶段,包括DNS解析、建立连接、发送请求、接收响应、解析HTML、下载资源等步骤。
2025-04-13 19:15:53
212
原创 鸿蒙5.0 APP性能优化——分析内存占用问题
其中,MEMORY_LEVEL_MODERATE代表当前系统内存压力适中,应用可以正常运行而不会受到太大影响,MEMORY_LEVEL_LOW代表当前系统的内存已经比较低了,应用应该释放不必要的内存资源,避免造成系统卡顿,MEMORY_LEVEL_CRITICAL代表当前所剩的系统内存非常紧张,应用应该尽可能释放更多的资源,以确保系统的稳定性和性能。随着时代的发展,应用越来越复杂,占用的内存也在不断膨胀,而内存作为系统的稀缺资源比较有限,因此,主动减少应用内存的占用对于整个系统至关重要。
2025-04-12 21:37:40
426
原创 鸿蒙5.0 APP性能优化——分析跨线程序列化耗时问题
当前开发者在应用开发过程中涉及到多线程并发场景时,会高频使用TaskPool/Worker并发能力,其中对象/方法在跨线程传递时均会涉及到其序列化和反序列化的过程。当对象本身较大且结构复杂时,序列化/反序列化的耗时就会增加,从而影响应用运行的整体性能。开发者在分析性能问题时,无法感知系统侧是否触发序列化或者反序列化,也无法确认其具体是否执行了耗时操作。
2025-04-12 20:25:40
474
原创 鸿蒙5.0 APP性能优化——Web加载完成时延分析
Web加载完成时延是从页面请求开始到页面视口内容加载完成的耗时,建议该时长控制在 900ms以内,较低的加载完成时延能让用户感知到页面加载响应及时不卡顿。本文主要介绍了Web页面的加载流程及关键Trace点、性能分析工具、加载完成时延分析方法、并总结了常见导致加载完成时延过高的原因与解决方案。本文提供了Web页面加载时延分析与优化的方法,涵盖了Web页面加载流程、性能分析的工具与方法,并通过两个案例结合分析方法进行实操,帮助开发者掌握Web页面加载性能提升的方法
2025-04-12 19:13:03
629
原创 鸿蒙5.0 APP性能优化——Web页面内点击响应时延分析
通过以上步骤,使用录屏、Trace工具和Devtools分析,可以有效定位并解决Web页面内点击响应时延类问题。
2025-04-11 21:45:18
645
原创 鸿蒙5.0 APP性能优化——分析帧率问题
在播放动画或者生成动画时,画面产生停滞而导致帧率过低的现象,称为动画丢帧。播放动画时,系统需要在一个刷新周期内完成动画变化曲线的计算,完成组件布局绘制等操作。建议使用系统提供的动画接口,只需设置曲线类型、终点位置、时长等信息,就能够满足常用的动画功能,减少UI主线程的负载。下面使用了自定义动画,动画曲线计算过程很容易引起UI线程高负载,易导致丢帧。this.flag;build() {
2025-04-11 20:23:27
650
原创 鸿蒙5.0 APP性能优化——点击完成时延案例分析
在移动终端应用开发中,完成时延是指用户操作移动终端时,从输入触控指令到界面完全刷新结束并达到可以阅读的稳定状态所用时间,点击完成时延依据页面转场类型可以分为页面内跳转和页面间跳转两种。完成时延在用户体验设计中扮演着关键的角色,直接影响用户对产品的满意度和使用体验。完成时延反映了用户对响应速度的整体感受,主要影响用户对触控交互及时性和愉悦性的体验评价。如图一所示,点击完成时延包含点击响应时延,关于响应时延阶段的优化分析,请参考《点击响应时延分析》。
2025-04-11 16:35:58
779
原创 鸿蒙5.0 APP性能优化——点击响应时延案例分析
响应(Response)是指用户通过直接操作或间接触发请求后,应用程序执行运算处理请求,并更新界面状态的交互机制。《应用性能体验建议》指出,应用或元服务内点击操作响应时延应<=100ms。为了保障应用操作响应及时,看护用户极致流畅体验,开发者需要分析从手势抬手到渲染上屏这段时间应用做了哪些耗时的操作,进而针对性地优化相关逻辑。图1点击响应起止点示意图点击响应优化就是指通过分析响应阶段、优化应用性能、加快点击后页面的响应速度,使用户可以得到流畅的操作体验。
2025-04-11 15:18:24
539
原创 鸿蒙5.0 APP性能优化——性能分析
调优是指对应用程序进行优化和改进,以提高其运行速度、资源利用效率和响应时间的过程。通过对应用程序进行细致的调优,可以使应用程序更高效、更稳定。在当今数字化时代,随着应用程序变得越来越复杂和庞大,调优变得尤为重要。一个经过有效调优的应用程序不仅可以更高效地运行,还能提高应用的稳定性,提升程序的效率,减少资源的浪费,从而为用户带来更好的体验。因此,了解调优的方法和常用工具对于开发人员至关重要。调优的过程通常包括现场复现、问题分析、确定解决方案和性能测试这几个关键步骤。
2025-04-11 13:39:12
751
原创 鸿蒙5.0 APP性能优化——性能框架设计
在应用开发中,开发者应致力于确保用户在使用应用程序时能够体验无缝、自然和舒适的感觉。流畅的体验不仅能够提高用户的满意度,还能够增强用户对应用程序的好感度,并对应用程序的成功与否产生重要影响。然而,感知流畅性不等同于系统性能。优秀的系统性能是保证用户感知流畅的必要条件,但好的系统性能不一定带来好的感知流畅性。系统性能、资源调度能力、图形渲染技术、硬件启动速度等指标必须通过界面反馈才能影响用户的感知,这意味着应用程序的界面设计、交互体验以及性能优化应当经过精心考量。
2025-04-10 21:56:17
859
原创 鸿蒙5.0 APP性能优化——性能最佳实践
性能调优贯穿于鸿蒙应用开发的整个生命周期中,开发前有性能最佳指南等赋能套件让你快速上手学习,开发过程中有性能工具开发套件覆盖应用开发各阶段,应用开发完成上架后有专业的性能测试工具检查测试应用性能指标。本文重点介绍应用开发过程中使用性能工具与性能优化文章定位分析性能问题流程,目前DevEco Studio主要集成了四种性能工具,在不同的开发阶段各有侧重,主要分为性能问题检测类工具和性能问题分析类工具。构建以体检工具为主,调优工具为辅的性能工具集,通过应用体检发现问题并给出修复建议。
2025-04-10 20:20:30
963
原创 鸿蒙5.0 应用架构——应用埋点开发实践
埋点是指将信息采集程序和原本的功能代码结合起来,针对特定用户行为收集、处理和发送一些信息,用来跟踪应用使用情况。包括访问数、访客数、停留时长、页面浏览数和跳出率。页面中可视区域或者组件的点击量,统计点击频率,分析用户的偏好行为。监听页面中组件滑动的开始与结束,计算滑动偏移量以及曝光比例。监听页面切换,统计页面的停留时间以及切换的来源页和目标页,分析页面浏览数和跳出率。分析页面加载性能,计算加载过程各个节点的耗时,可针对某个关键点进行优化。接下来会从(1)组件动态绑定埋点数据;
2025-04-10 17:36:36
550
原创 鸿蒙5.0 应用架构——应用切面编程设计
切面编程(AOP)是一种通过预编译方式和运行期间动态代理实现程序功能的统一维护的技术。AOP的核心思想是将程序的关注点(concern)分离,通过在程序中插入代码来实现横切关注点(cross-cutting concerns),从而实现对业务逻辑的各个部分进行隔离,降低它们之间的耦合度,提高程序的可维护性和可重用性,同时提高了开发的效率。在AOP中,开发者可以通过定义切面(aspect)来封装横切关注点,而不需要直接修改业务逻辑代码。
2025-04-10 15:44:58
727
原创 鸿蒙5.0 应用架构——应用并发模型设计
ArkTS是HarmonyOS APP的开发语言,它在保持TypeScript(简称TS)基本语法风格的基础上,一方面规范强化静态检查提升开发者代码的规范性;另一方面基于TypeScript增强了一些特性提升开发体验和执行效率,尤其是在并发能力上的提升。本文档主要面向HarmonyOS APP的设计人员或开发人员,介绍应用在并行任务方案设计过程中,可能会遇到的典型场景以及对应的推荐设计方案,同时给出了方案的关键点及参考案例。
2025-04-10 13:30:01
1024
原创 鸿蒙5.0 应用架构——模块化设计
应用开发者需要根据自身技术架构选择适合的工程模块化模型,工程模块化模型也不是一成不变的,需要根据业务和技术架构的演进而演进。根据诉求在HAP、HAR和HSP三种类型中进行选择使用。对于具备独立运行和安装的模块只能选择HAP包,并将其作为Feature类型的HAP存在于App中;对于不具备独立特性部分,用户使用频率较少的模块,将其做成HSP按需加载模块存在于App中。对于需要共享的模块,只能采用HAR包,将其通过OHPM仓共享给其他工程使用。
2025-04-09 21:38:25
1011
原创 鸿蒙5.0 应用架构——分层架构设计
对于需要通过Ability承载的功能,可以设计为Feature类型的HAP,而对于不需要通过Ability承载的功能,根据是否需要实现按需加载,可以选择设计为HAR模块或者HSP模块,编译后对应HAR包或者HSP包。应用程序(.app文件)在流水线或应用市场上被解包为n * Entry类型的HAP + n * Feature类型的HAP,根据设备类型和使用场景将应用部署到不同类型的设备上,实现多端的统一用户体验。基础特性层为上层的产品定制层提供稳健且丰富的基础功能支持,包括UI组件、基础服务等。
2025-04-09 20:30:19
538
原创 鸿蒙5.0 设备场景实践——轻量级智能穿戴开发实践
对于轻量级智能穿戴,应用可以通过HarmonyOS提供的接口实现传感器、UI交互等常规业务的开发。开发者可以根据轻量级智能穿戴的特点,打造针对轻量级智能穿戴的独特应用。当前支持产品有:HUAWEI WATCH GT系列、Watch D系列、Fit系列、Watch Ultimate系列。本章节后续部分将以创建“Hello World”的轻量级智能穿戴应用为例,逐步讲解如何在应用中构建布局、绘制样式、添加组件、绑定事件、实现页面路由跳转等。
2025-04-09 16:58:44
883
原创 鸿蒙5.0 设备场景实践——平板和PC/2in1开发实践
平板和PC/2in1设备作为常用的移动端设备,在日常生活中发挥着重要作用,也是HarmonyOS 1+8设备全场景一体化体验中不可或缺的一环。为了在平板和PC/2in1设备上开发出体验更好的应用,建议先熟悉设备的独有特性。相较于手机设备,平板和PC/2in1设备拥有较高分辨率的大屏幕,可以用来展示更多内容并高效的学习、娱乐或办公。平板可根据用户使用习惯选择横向手持或竖向手持。PC/2in1支持全屏或自由窗口显示应用。PC/2in1设备融合了屏幕触摸和键鼠的交互方式;
2025-04-09 15:22:57
527
原创 鸿蒙5.0 设备场景实践——Pura X外屏开发实践
3月20日,华为正式发布了“阔折叠”设计的手机——Pura X,该机型采用上下折叠的方式,配有一块16:10比例的内屏和一块1:1比例的方形外屏,兼顾大屏沉浸体验与单手便捷操作。即时信息处理:查看通知、日程、天气等关键信息。高效影音控制:切换歌曲、调节音量、预览视频进度等。便捷出行导航:步行或驾车时快速查看路线关键指引。快速移动支付:显示付款码,快捷支付。个性化表达:通过动态壁纸、定制图案等展现独特风格。
2025-04-09 13:32:31
790
原创 鸿蒙5.0 设备场景实践——折叠屏开发实践
折叠屏产品阔折叠:Pura X系列。大折叠:Mate X系列。小折叠:Pocket系列。三折叠:Mate XT系列。折叠状态展开态:折叠屏设备完全展开后的形态。有更大的屏幕尺寸,可充分显示应用内容。折叠态:折叠屏设备折叠后的形态。折叠后屏幕尺寸变小。悬停态:折叠屏设备处于完全展开和折叠的中间状态,可平稳放置。体验设计点折叠屏相对于普通手机有一个明显的特点:可随时折叠展开、折叠展开会导致屏幕属性改变。体验连续。
2025-04-08 21:41:46
1002
原创 鸿蒙5.0 社交类APP——AI辅助图文内容高效编创
本场景主要实现社交通讯类应用的图文内容编创流程,在该过程中接入自由流转、服务互动等HarmonyOS特性能力。图文编创流程主要通过Photo Picker选取本地图片,然后对图片进行智能处理,同时也可使用自定义相机拍摄动图,最后进行文字编创时可进行自由流转接续编辑和跨端获取相册或者相机拍摄内容。
2025-04-08 20:14:27
548
原创 鸿蒙5.0 出行类APP——快捷触达的骑行
本场景解决方案主要面开通实涉及共享租赁、即时配送等场景的应用,以共享单车为案例,使用实况窗、地图导航、统一扫码等技术,为消费者的整个骑行流程带来更好的体验。当前用户想要完成骑行的整个流程,需要先找到应用,再找到功能入口,骑行完成后又需要再重复一遍步骤,对于用户来说操作多,流程繁琐。如果能从首页直接扫码直到解锁界面,换车也只需一步操作即可支付将大大提升用户体验。
2025-04-08 16:17:27
986
原创 鸿蒙5.0 短视频类APP——在线短视频流畅切换
在应用中短视频快速切换时容易出现时延过长的问题,本文就此问题提供了相应的解决方案。视频播放框架AVPlayer和滑块视图容器Swiper进行短视频滑动轮播切换。绘制组件XComponent的Surface类型动态渲染视频流。使用LazyForEach进行数据懒加载,设置cachedCount属性来指定缓存数量,同时搭配组件复用能力以达到高性能效果,(在冷启动过程中创建一个AVPlayer并进行数据初始化到prepared阶段,在轮播过程中,每次异步创建一个播放器为下一个视频播放做准备)。
2025-04-08 14:57:12
977
原创 鸿蒙5.0 新闻类APP——体验流畅的首页信息流
本场景解决方案主要面向于新闻类页面开发人员,指导开发者从零开始构建一个新闻类的首页面。主要包含地址选择、tabs和tabContent切换的动态图标和流畅动效、下拉刷新上拉加载、首页feed流等常见功能的实现及流畅体验。主要介绍了用户操作应用的主要流程,展示了用户进入首页通过页签切换页面内容,上拉加载和下拉刷新页面,从首页地址进入地址选择页更换地址等功能效果。实现应用的主要流程图运行效果图操作流程1. 获取地理位置的权限;2. 点击位置信息,跳转地址页,可修改当前位置信息;
2025-04-08 13:35:15
508
原创 鸿蒙5.0 自由流转技术之多屏联动统一拖拽
拖拽操作是一种直观且高效的数据传输方式,它允许用户通过标准手势(包括用手指、鼠标或触控笔按住并移动)在应用程序之间及内部进行数据传输。拖拽功能不仅操作便捷,还能与多种系统能力深度融合,拓展出更为广泛的应用场景。例如,跨设备拖拽让用户能在不同设备间无缝传输数据,跨窗口拖拽提升了多任务处理的灵活性。此外,基于拖拽操作还可以开发出更多创新性的应用场景,如AI智能识别、水印添加等,这些创新性的功能接入统称为“统一拖拽”。本文将介绍几种典型拖拽场景及其具体实现方案,帮助开发者更好地理解和应用拖拽技术。
2025-04-07 21:44:20
762
原创 鸿蒙5.0 自由流转技术之浏览进度接续
在日常生活中,需要借助 应用接续 功能来处理设备切换的状况。本文针对长列表进度、媒体播放进度以及Web浏览进度这三个场景,实现了浏览进度接续问题的有效解决,为用户在实现无缝的设备切换与浏览体验延续提供了可靠的方案支撑,使得用户在设备切换时能够轻松接续之前的浏览进度,极大地提升了使用的便利性与连贯性,实现真正的无缝接续。长列表进度接续:可以让用户从上次浏览的位置继续,无需重新从列表顶部开始滑动查找,精准定位到之前离开的条目附近,节省用户的时间和操作成本,提升在长列表内容浏览时的便利性和体验感。
2025-04-07 20:29:20
944
原创 鸿蒙5.0 自由流转技术之应用接续提升内容发布
在办公,创作以及社区交友等类型的应用中,内容发布是用户互动与交流的核心环节,它允许用户创作并分享包含图片、文字等多媒体元素的信息,从而增强用户间的连接与互动。随着手机,平板,PC/2in1等多设备的普及,用户在不同设备间无缝切换和接续编辑内容的需求日益增强。本文介绍如何通过应用接续能力(在不同设备中快速切换)提升内容发布的便利性。用户在A设备编辑页面选择用户照片,并编辑标题、正文等文字信息。用户点击B设备Dock栏图标,在A端输入的图片和文字信息衔接到B设备上。约束与限制。
2025-04-07 16:33:35
616
原创 鸿蒙5.0实战开发之一多分级导航栏开发实践
PC/2in1设备上的商务办公、实用工具垂类应用开发中,常使用侧边分级导航展示多级目录。而在一多开发时,侧边分级导航并不一定适用于手机、平板等设备,若需要实现导航栏内的分级效果,比较复杂。本文提供分级导航栏的多端适配方案及指导,解决上述问题。通常,开发者可以结合 断点 能力,在不同断点下呈现相应布局。考虑不同屏幕尺寸的布局美观性及规范性,采用以下布局方式:断点为sm、md时,一级导航栏位于底部,二级页签栏位于顶部;断点为lg时,一级导航栏位于左侧,二级页签位于顶部;断点为xl时,在侧边栏中展示分级导航。
2025-04-07 15:05:56
603
原创 鸿蒙5.0实战开发之Web适配一多开发实践
本文主要介绍Web侧如何进行多设备适配,结合Web组件实现在不同设备上的定制体验。内容涵盖Web侧提供的多设备适配能力,如相对单位、媒体查询、监听窗口变化事件,并针对前端布局中常见的宫格布局、自定义弹窗、轮播布局介绍一多适配的实现思路与方案。弹窗在用户交互中比较常见,在大尺寸设备上有更大的弹窗展示,可以避免弹窗内容过小,不易看清。实现上需要通过CSS的媒体查询@media能力,设置不同断点下的弹窗尺寸。如希望实现以下效果。在sm断点下,设置弹窗尺寸为328px*344px。
2025-04-07 13:44:36
574
原创 鸿蒙5.0实战开发之一多窗口适配开发实践
在一多开发过程中,开发者需要适配多种不同 窗口类型(WindowType) ,且同一窗口类型在不同设备上会有不同的属性(尺寸大小、系统区域、是否沉浸、自由窗口有标题栏等),针对窗口类型及属性的差异所产生的问题,本文将提供相应说明以及解决方案指导。应用窗口尺寸发生变化时页面如何更新断点从而刷新页面。不同设备的横竖屏旋转采取怎样的策略以及实现方案。应用窗口沉浸式页面如何实现。PC/2in1设备中使用自由窗如何适配窗口化、标题栏、全屏沉浸式。
2025-04-03 21:55:39
951
原创 鸿蒙5.0实战开发之一多交互事件开发实践
在多设备应用的开发中,交互体验是衡量应用体验的关键指标之一。进行一多项目开发时,需要考虑不同输入设备的交互方式,例如触控屏、触控板、鼠标、键盘和遥控器等,本文将对不同输入设备对应常见的交互方式进行介绍。悬浮、点击、双击、长按、上下文菜单、拖拽、轻扫、滚动/平移、缩放和旋转这9种交互事件,在不同的移动端设备上可以分别由触控屏、触控板或鼠标这三类输入设备的不同操作方式触发。系统对这9种常见交互操作提供了交互归一能力,可以在同一接口中实现相同功能。
2025-04-03 21:07:16
700
原创 鸿蒙5.0实战开发之折叠屏悬停态开发实践
折叠屏上提供独特的手持操作体验“悬停态”,即用户可以将产品半折后立在桌面上,实现免手持的体验。悬停态场景适用于不需要频繁进行交互的任务,例如视频通话、播放视频、拍照、听歌等。折叠屏进入悬停态时,中间弯折的区域难以操作且显示内容会变形,因此建议页面内容进行折痕区避让适配。本文提供折叠屏悬停态的三种实现方式,并根据其特点给出各自的适用场景。使用FolderStack组件实现悬停态,适用于视频全屏播放等交互少的场景。
2025-04-03 20:23:46
632
原创 鸿蒙5.0实战开发之一多分栏开发实践
目前智能终端设备的种类繁多,不同类型的设备屏幕大小、用户使用习惯也存在不同,这给UI布局以及功能适配带来了很多挑战。手机仅支持单栏显示折叠屏可以支持单双栏显示平板支持三栏显示本文提供了一种“通过判断屏幕尺寸,选择合适的分栏布局”的方法,解决HarmonyOS的1+8多种形态设备的UI适配问题。通过该方法,开发者无需关注设备类型,即可达到多设备的自适应分栏布局效果,实现“一次开发,多端部署”。
2025-04-03 16:10:14
652
原创 鸿蒙5.0实战开发之一多断点开发实践
断点名称窗口宽度(vp)xs(0, 320)sm(320, 600)md(600, 840)lgxl(1440, +∞)断点名称高宽比sm(0, 0.8)md(0.8, 1.2)lg(1.2, +∞)说明一多的断点面向窗口而非面向设备类型,处于相同断点区间的窗口本质上形态相同,推荐展示相同的页面布局。因此同一设备上的不同窗口形态(例如全屏显示、分屏显示、自由窗口等),可能会落入不同的断点区间,展示不同断点对应的页面布局。
2025-04-03 14:48:54
887
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人