每日签到奶昔超市点数市场奶昔访达
返回列表 发布新帖
查看: 173|回复: 7

[编程] 我们是怎么让 Android 流畅的?流畅性优化三阶段实施方案

发表于 昨天 21:59 | 查看全部 |阅读模式

欢迎注册论坛,享受更多奶昔会员权益!

您需要 登录 才可以下载或查看,没有账号?注册

×
整个工作将分为用户调研、开发、测试三个阶段推进,每个阶段聚焦核心目标,层层递进保障流畅性体验。

用户调研的核心,是明确用户对流畅性的核心关注点,以及这些关注点对体验的影响程度。首先会开展一轮用户调研,筛选出用户实际关注的流畅性相关场景。

针对这些场景设计评分量表,通过用户评分挖掘场景的实际意义。比如返回桌面场景的 7 分制评分中,1-3 分为满意、4 分为一般、5-7 分为不满意,数据显示超过 500 毫秒用户就会不满意,这类阈值会作为后续工作的核心输入标准,每个调研场景都会对应产出专属阈值。

进入开发阶段后,核心原则是保留已有优化成果,同时严防性能劣化。这一阶段会用到三个核心工具,且工具触发均有明确条件 —— 用户指标方面包括掉帧、持锁大于 8ms、binder 调用耗时等,性能指标则聚焦动画期间的 io 操作、广播注册、find service 等潜在性能问题。

O-StrictMode 工具检测到问题后,会将 backtrace 以蓝屏形式打印;Trace Analyzer 能自动分析 trace 文件,过滤无效 trace 和未抓到时间点的问题,对有效 trace 直接定位根因,减少手动分析成本、提升效率;MTrace 作为轻量型 Trace 增强工具,思路类似 measure instrumention,并非采样方案。

它会在打开后直接读取寄存器上的函数地址和时间戳,通过 TLS 无锁的 RingBuffer 存储,结束后再落盘保存。之所以需要 MTrace,是因为现有工具存在局限:perfetto 功能全面但需预先埋点,cpu profiling 能满足大部分需求但要求 app 有 debug 或 profile 权限,且会强制转换为解释执行导致性能下降,BTrace 虽对 app 友好,但对 Framework 过重、缺少动态性且性能损耗大。

MTrace 与 perfetto 结合后,能补充更详细的调用链信息,比如明确 doFrame 大于 200ms 时的具体运行内容、定位大量布局 layout 导致的耗时,或是像三方输入法周期性卡顿这样的问题 —— 此前仅通过 trace 无法定位根因,结合 MTrace 后发现,每一帧的字符串操作导致内存持续增长,进而触发 GC 造成卡顿,最终锁定系统层 bug。

测试阶段以整机测试为核心,重点强化监控能力,同样依赖三个关键工具。第一个是 Touch Go,这是基于图形框架的 AI 自动化工具,替代了高成本的机械臂点击方案。

下发测试 case 时,手机端会录屏并抓取每一帧数据,传输到 PC 端通过 OpenCV 做图形解析,进而得出帧率变化、流畅性曲线等数据,通过判断帧的开始和结束阈值计算帧时延,能精准获取单场景下的动画时延,但无法覆盖复合场景。

复合场景的长链路性能问题,需依靠 Perf Test 工具解决。它是基于 Trace 的自动化测试工具,通过 SQL 自动分析,能拆解亮屏 - 全搜 - 输入法弹出 - 启动应用这类长链路操作。

工具会先根据 tag 提取对应的 trace 文件并分割,拆解出解锁进桌面、启动应用、返回桌面等子场景,再提取各子场景的用户面指标(如时延)和技术面指标(如 CPU、RAM、IO 使用状况)。

同时会给 trace 标注标签,包括场景信息、抬手位置、点击事件、每一帧的第一帧绘制时间点等,结合进程线程名、深度等 SQL 信息计算耗时,最终将结果以 json 格式保存,还能整合多轮测试数据形成表格,部署在流水线上监控每个版本的指标变化。

最后是 Perf Metric 工具,它基于前两个工具做整体负载分析。在长时间运行测试模型后,会全面拆解过程中的所有用户面和技术面指标,清晰呈现不同版本间的性能整体变化情况,方便及时发现问题并协同研发解决。

微信图片_20251112215255_207_2.jpg 微信图片_20251112215256_208_2.jpg 微信图片_20251112215256_209_2.jpg 微信图片_20251112215257_210_2.jpg 微信图片_20251112215257_211_2.jpg 微信图片_20251112215258_212_2.jpg 微信图片_20251112215258_213_2.jpg 微信图片_20251112215259_214_2.jpg 微信图片_20251112215259_215_2.jpg 微信图片_20251112215300_216_2.jpg 微信图片_20251112215300_217_2.jpg
爱生活,爱奶昔~
回复

使用道具 举报

发表于 昨天 22:52 来自手机 | 查看全部
这么高产的吗
爱生活,爱奶昔~
 楼主| 发表于 昨天 22:57 | 查看全部

都是以前写的,发在朋友圈或者哪里,顺便搬过来
爱生活,爱奶昔~
 楼主| 发表于 昨天 22:58 | 查看全部
主要还是希总太有实力了,我也想不出发些啥,就搬搬这些,希望希总不会怪我
爱生活,爱奶昔~
发表于 昨天 23:19 | 查看全部
家豪你好
爱生活,爱奶昔~
发表于 7 小时前 | 查看全部
太有实力了
爱生活,爱奶昔~
发表于 6 小时前 | 查看全部
牛逼
爱生活,爱奶昔~
回复

使用道具 举报

发表于 2 小时前 | 查看全部
好厉害啊
爱生活,爱奶昔~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

© 2025 Nyarime 沪ICP备13020230号-1|沪公网安备 31010702007642号手机版小黑屋RSS
返回顶部 关灯 在本版发帖
快速回复 返回顶部 返回列表