OpenHarmony使用ArkUI Inspector分析布局

news2024/9/21 8:01:39

● 摘要:视图的嵌套层次会影响应用的性能,开发者应该移除多余的嵌套层次,缩短组件刷新耗时。本文会介绍如何使用ArkUI Inspector工具分析布局,提示应用响应性能。

● 关键字:列举本文相关的关键字:OpenHarmony HarmonyOS 鸿蒙 Inspector 布局检查器 视图嵌套

概述

应用将布局渲染到屏幕上的流畅度影响用户对质量的感知。建议移除多余的嵌套层次减少视图嵌套层次。视图的嵌套层次会影响应用的性能。因此推荐开发者移除多余的嵌套层次,缩短组件刷新耗时。

如果视图嵌套得很深,会导致花费更多的时间来处理,会增加页面渲染时间。在屏幕刷新率为120Hz的设备上,每8.3ms刷新一帧,如果视图的嵌套层次多,可能会导致没法在8.3ms内完成一次屏幕刷新,就会造成丢帧卡顿,影响用户体验。嵌套视图会创建更多的节点,会增加内存消耗。如果嵌套视图是从服务器获取的,这可能会导致额外的网络延迟,增加页面加载的时间。过多的视图嵌套还可能会使页面的结构和代码变得复杂和难以维护,这可能会导致错误和性能问题的可能性增加。

因此,减少视图嵌套层次非常重要。本文会介绍如何使用ArkUI Inspector工具分析布局,提示应用响应性能。

环境准备

从DevEco Studio 4.0 Beta2版本开始集成ArkUI Inspector工具,可以从 OpenHarmony-v4.0-beta2 Release Notes#配套关系 部分下载DevEco Studio 4.0 Beta2版本。

使用场景

开发者可以使用ArkUI Inspector,在DevEco Studio上查看应用在真机上的UI界面显示效果,可以查看查看应用的界面组件树component tree,还可以查看选定组件的属性信息。

在ArkUI Inspector的组件树上选择组件,UI界面自动框选对应组件,属性列表显示当前组件的属性信息。在UI界面点击选择组件,组件树对应组件变化为选中状态,属性列表显示当前组件的属性信息。

ArkUI Inspector工具非常好用。可以使用它分析布局,减少布局嵌套层次,从而提示应用响应性能。

工具介绍

使用连接线把真机连接到开发PC,打开DevEco Studio,在 DevEco Studio 下方点击 ArkUI Inspector,打开 ArkUI Inspector。

点击 RUN 或者 DEBUG 按钮,把应用推包到设备上,在设备应用列表选择当前显示在设备前端的 UI 进程。本文使用的是 Sample聊天实例应用 ,需要选择的进程是com.samples.chat。

ArkUI Inspector 左侧为当前的组件树结构Component Tree,中间栏显示当前设备的 UI 显示界面,右侧在选中组件的情况下为当前组件的属性信息。当设备上 UI 发生变化时,可点击中间栏右上角刷新按钮同步设备上的 UI 效果。可以在左侧组件树上选择或直接在 UI 界面点击选择组件。

如果想退出使用ArkUI Inspector,可以在设备框,点击设备列表的最后一项 Stop inspector,可断开与设备的连接。

性能实践

我们以一个实际案例来看下如何借助ArkUI Inspector工具来优化布局。

检出工程 Sample聊天实例应用 工程代码,使用DevEco Studio编译构建,推送到开发板上运行。

我们选择一个简化的场景,打开和一位朋友的聊天窗口,查看历史聊天信息。刷新ArkUI Inspector工具中的UI界面,如下:可以看出,ListItem列表项中包含一个Column->Row,下面又包含Row和Column子组件。ListItem列表项下的子组件Column这个列容器只包含一个Row子组件容器,Column列容器是不必要的,可以去掉,这样ListItem列表项下的子组件直接为Row子组件即可,从而减少一个视图嵌套层次。一个嵌套层次的影响,可能对性能的影响微乎其微。本实践仅限于用来演示如何使用ArkUI Inspector工具来优化布局。

再看一个例子,在真机上打开 Sample聊天实例应用 的聊天联系人页面,使用ArkUI Inspector工具刷新下UI界面。看左侧的组件树,可以查看组件的嵌套层次,最大有10层嵌套,就可以考虑小是否可以减少嵌套层次。比如,最顶层的Row组件是可以减少的,其他组件也可以类似查看是否必要,没有最优只有更优。

注意事项

1、ArkUI Inspector仅支持OpenHarmony API 9 及以上版本的 Stage 工程
2、需要使用 debug模式编译。
3、已通过 USB 连接设备。
4、使用DevEco Studio 4.0 Beta2及以上的版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2097765.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux防火墙问题排查记录

问题描述 在业务当中,开通了防火墙,导致外部数据无法通过SFTP服务访问本机的服务,根据防火墙策略判断,应该是有一些IP没有被加进accept策略导致的,所以需要查看防火墙日志来追溯哪些IP被过滤掉了,只要放通…

开学了 需要考研的同学快看过来!考研倒计时你的鞭策神器!

开学了 需要考研的同学快看过来!考研倒计时你的鞭策神器! 2025年考研准备又要开始了,考试科目包括思想政治理论、管理类联考综合能力、外国语、业务课一、业务课二等。考研初试是每位考生迈向研究生阶段的重要一步,希望考生在考试…

python+requests 搭建接口自动化测试框架【超详细】

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、前言 Python是一种简单易学、功能强大的编程语言,广泛应用于各种软件开发和测试场景中。requests是Python中流行的HTTP库,支持发送…

windows下安装elasticSearch和kibana

下载es 下载地址官网 下载后是个压缩包(elasticsearch-8.15.0-windows-x86_64),解压即可 启动 配置 改一下 /conf/jvm.options文件,最后加一行编码配置,这个是为了启动后防止控制台乱码 -Dfile.encodingGBK启动es 依赖jdk8环境&#xf…

Qt中的父窗口子窗口和父类子类的区别

好多人在开发初期,往往将父子窗口和父子类搅在一起容易搞混。 今天借着这篇文章给大家分辨一下。 C中我们常说子类继承自父类,子类具有父类所有的特性和功能。所以父类和子类是继承关系。 而子窗体和父窗体,不是继承关系,准确地讲…

安卓13拦截home功能 监听home键 禁用home键

总纲 android13 rom 开发总纲说明 目录 1.前言2.问题分析3.代码分析4.代码修改5.编译6.彩蛋1.前言 经常遇

数据结构与算法的代码实现(C++版)

数据结构与算法的代码实现(C版) 1. 线性表的顺序表示和实现1.1 线性表的初始化1.2 线性表的销毁1.3 线性表的清空1.4 线性表的长度1.5 判断线性表是否为空1.6 线性表的线性表取值1.7 线性表的顺序查找1.8 线性表的插入1.9 线性表的删除总结 2. 线性表的链…

EPLAN如何在插入设备的时候修改部件的数据?

EPLAN如何在插入设备的时候修改部件的数据? 默认情况下,插入部件的时候,部件的数据是无法更改的,那么如何设置在插入部件的时候对部件的数据进行修改呢? 具体可参考以下内容: 设置完成后,点击右…

QT实现简易记事本

QT的Qmainwindow实现简易记事本,不带有UI界面。 1、功能展示 1、编辑文件时,文件名左上角有个“*”,代表文件未保存 2、菜单栏有文件、编辑的选项 3、工具栏有保存、新建、打开、调节字体、调节颜色。 4、文件菜单中有,新建,保存、打开、…

【C语言从不挂科到高绩点】06-流程控制语句-循环语句

Hello!彦祖们,俺又回来了!!!,继续给大家分享 《C语言从不挂科到高绩点》课程 本套课程将会从0基础讲解C语言核心技术,适合人群: 大学中开设了C语言课程的同学想要专升本或者考研的…

2024测试开发必知必会:Pytest框架实战!

应用场景: pytest 框架可以解决我们多个测试脚本一起执行的问题。 它提供了测试用例的详细失败信息,使得开发者可以快速准确地改正问题。它兼容最新版本的 Python。它还兼容 unittest、doctest 和 nose,开箱即用。接下来我们详细了解下pyte…

LLM与知识图谱

重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…

昆仑山矿泉水《大湾区旅行者》正式开机,携手共赴一场净化心灵之旅

在这个快节奏的时代,我们总在寻找一片能让心灵得以栖息的地方。今年,昆仑山矿泉水与深圳卫视再度携手,推出充满人文温情与自然探索的慢生活旅行综艺《大湾区旅行者》,目前已于8月29日开机启航。本次旅行,昆仑山矿泉水与…

废品回收小程序,从传统到现代化的回收模式

在数字化发展的当下,废品回收行业也进行了更新换代,由传统“喊卖”,到目前的线上回收,将互联网小程序与废品回收相结合,打造一个线上回收模式,让大众可以直接通过手机进行回收。小程序的出现不仅解决了传统…

四层神经网络,反向传播计算过程;四层神经网络中:y的函数公式是什么

目录 四层神经网络,反向传播计算过程 网络结构 前向传播 损失函数 反向传播 1. 计算输出层到隐藏层 2 的梯度 2. 计算隐藏层 2 到隐藏层 1 的梯度 3. 计算输入层到隐藏层 1 的梯度 梯度下降更新 四层神经网络,反向传播计算过程 在四层神经网络中,使用均方差损失函数…

H264结构及RTP封装

H264是一种针对视频的压缩编码方式。 一、压缩方法 H264主要基于以下几种方法,将数据进行压缩: 1.帧内预测压缩:解决空间域数据冗余的问题 2.帧间预测压缩:(运动估计与补偿)解决时间域数据冗余的问题 3…

项目实训:创建一张贺卡以及一只盒子——WEB开发系列27

以下是两道关于基础 CSS 盒模型和其他盒子相关特性的练习题,适合测试对这些概念的掌握程度,通过实际的设计任务来深入理解这些概念。 练习题 1: 设计一张中秋节海报贺卡 任务描述 制作一张精美的中秋节海报贺卡,用于庆祝这个传统节日。你的…

visual studio 2022更新以后,之前的有些工程编译出错,升级到Visual studio Enterprise 2022 Preview解决

系列文章目录 文章目录 系列文章目录前言一、解决方法 前言 今天遇到一个问题:visual studio 2022升级成预览版以后,之前的有些工程编译出错。首先代码、项目设置都没有改变,只是更新了visual studio 2022。 在编译工程时,编译器…

Source-code-of-charging-云快充协议1.5+互联互通协议+新能源汽车充电桩系统

介绍 SpringBoot 框架,充电桩平台充电桩系统充电平台充电桩互联互通协议云快充协议1.5-1.6协议新能源汽车二轮车公交车二轮车充电-四轮车充电充电源代码充电平台源码Java源码 软件架构 软件功能 小程序端:城市切换、附近电站、电桩详情页、扫码充电、…

视频智能分析打手机检测算法安防监控打手机检测算法应用场景、算法源码、算法模型介绍

随着智能手机的普及,手机已成为人们生活中不可或缺的一部分。然而,在某些场合,如驾驶、会议、学校课堂等,不当使用手机可能会导致安全隐患或干扰他人。因此,开发出一种能够准确识别并阻止不当使用手机的行为检测算法显…