带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(6)

本文涉及的产品
云拨测,每月3000次拨测额度
简介: 带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(6)

带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(5)https://developer.aliyun.com/article/1340939?groupCode=taobaotech

自定义页面根 View

 

APM 计算的根结点默认是页面上的 DecorView,往下遍历的根结点是否是合理的呢?存在修改的可能吗?是存在的,自定义页面根 View 可以更细粒度的控制页面。

 

对于页面的理解一定是 Activity 或者 Fragment 吗?不是的,我们既然讨论的时候用户体感加载时长,那么我们应该更多的从用户视角去考虑这件事情。例如,逛逛页面上有两个   tab,基于用户角度,我们更愿意理解成两个页面,推荐页面和关注页面。

 

以逛逛关注页面为例,点击关注 tab 时候创建了页面,整个关注页面也只是整个页面的一部分,下图为校准后的效果:

 

 

 

image.png

APM 中提出了 Page (页面)的概念,每一个 Page 有一个对应的 pageRootView,使用 pageRootView 来进行页面加载比率计算。

 

当我们仔细去观察页面的 View 树结构时,还发现自定义页面根结点带来了更大的灵活性,对于异常 case 也有了更多的处理手段,这里举一个我们在校准过程中遇到的例子,逛逛首页加载校准:

 

逛逛的首页是一个 Fragment,按道理说可以直接进行度量,但是在校准的时候发现:逛逛首页(推荐)有一个全局背景图。当尝试使用打标解决的时候才发现,逛逛业务定义了自身框架的 DSL,整个页面使用的是 DSL 进行编写(RN 原理),所有 ImageView 都是相同的 View,并没有任何特殊性,在端侧根本不感知这个背景图。这就意味着打无效标的办法不能用了。

 

那么还有其他低成本的办法吗?当然有的,查看逛逛首页的布局,发现全局背景图在整棵 View  树非常靠上的位置,与真正有效的 View 节点并没有关联,那么只需要将有效的子 View 树的根结点作为计算的起点就可以了。

 

 

 

image.png

 

注:在原始 APM 计算逻辑中,是使用整棵 View 树的根节点来进行向下遍历计算的

 

 

最后的方案:更换逛逛首页的页面根结点(pageRootView)。

 

下面是逛逛首页的校准效果,如果没有进行校准,那么当背景图出现的时候就是页面加载的结束点,而且二刷也没完。通过打标解决了二刷问题,通过修正页面根 View 解决背景图问题,由于页面 ImageView 存在动画,所以加载完成后会有一个渐显的动画,当前 APM 认为这个渐显动画不影响可视点:

image.png

 

带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(7)https://developer.aliyun.com/article/1340937?groupCode=taobaotech

 

相关文章
|
8月前
|
监控 Android开发 UED
带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(1)
带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(1)
100 0
|
8月前
|
Web App开发 移动开发 前端开发
带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(7)
带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(7)
|
8月前
|
算法 数据处理 UED
带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(4)
带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(4)
|
8月前
|
算法 Android开发 容器
带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(2)
带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(2)
101 0
|
8月前
|
算法 UED
带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(3)
带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(3)
|
8月前
|
数据处理 Android开发
带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(5)
带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(5)
|
2天前
|
监控 Java 索引
|
存储 JSON 监控
APM监控 · 入门篇 · Android端测监控平台建设(1)
APM 全称 Application Performance Management & Monitoring (应用性能管理/监控) 性能问题是导致 App 用户流失的罪魁祸首之一,如果用户在使用我们 App 的时候遇到诸如页面卡顿、响应速度慢、发热严重、流量电量消耗大等问题的时候,很可能就会卸载掉我们的 App。这也是我们在目前工作中面临的巨大挑战之一,尤其是低端机型。
2162 0
APM监控 · 入门篇 · Android端测监控平台建设(1)
|
2天前
|
Kubernetes 监控 安全
Kustomize 生产实战 - 注入监控 APM Agent
Kustomize 生产实战 - 注入监控 APM Agent
|
8月前
|
消息中间件 监控 Java
消息队列和应用工具产品体系-ARMS 监控种类简介(2)
消息队列和应用工具产品体系-ARMS 监控种类简介(2)
315 1
消息队列和应用工具产品体系-ARMS 监控种类简介(2)