附录 A 术语与指标速查

卷一所有术语与指标的统一口径:宿主与壳、配置版本、恢复令牌、帧预算、稳态内存、内存水位、首包与总资源、冷启动与首帧时间、崩溃率、ANR 率与 Jank 率的定义、计算公式、分母与常见误用,并附九条一句话口径,供团队直接抄成指标字典,避免同名不同义。

这份附录解决什么问题

团队里最贵的争论往往不是「怎么做」,而是「你说的和我说的不是一个东西」。同一个「崩溃率」,有人按会话算,有人按设备算,有人把 ANR 也算进去,于是两个人都没错,结论却完全相反。

这份附录把卷一用到的术语和指标固定成一套口径。**正文与本附录冲突时,以本附录为准。**指标部分给出定义、计算公式、分母和常见误用,可以直接抄进团队的指标字典。

一、结构类术语

术语定义不要混用
客户端运行在玩家移动设备上的应用,包含壳、引擎、玩法与资源不要用「前端」指代
壳(Shell)Android Activity / iOS UIViewController 构成的承载层,负责生命周期、权限、原生 SDK 接入不要用「壳」指引擎
引擎提供渲染、音频、动画、资源加载能力的运行时不是架构的同义词
Host客户端对引擎与平台能力的抽象接口,是实验工程里可替换的依赖不要写成「引擎层」
表现层渲染、动画、特效、音效,只消费状态,不产生玩法结果不属于「玩法」
玩法层规则、结算、确定性回放,不依赖渲染与引擎不要与「表现层」合并
系统层账号、活动、存档、配置、埋点等横切能力不要与「平台层」混称
平台层Host、桥接、原生 SDK、文件与网络适配不要塞玩法逻辑
配置 / 配置表 / 配置版本策划产出的玩法数据、其结构化集合、以及一次发布的版本标识不要写成「数据表」
恢复令牌客户端在进入后台或关键节点写入的状态快照标识,用于判断能否恢复不是存档
水位触发降级或告警的内存阈值,分告警水位与强降水线不要与「帧预算」混用
区域化语言、时区、货币、内容分级的组合配置不等于「翻译」

三条容易含混的用法:

  1. 「层」有方向。 表现层可以依赖玩法层,玩法层不能依赖表现层。说「这两层互相调用」时,先确认你说的是不是同一个「层」。
  2. 「热更」不是「配置更新」。 热更指替换可执行资源或脚本;配置更新指换一份配置版本。二者的政策边界完全不同。
  3. 「弱联网」是产品形态,不是网络质量。 弱联网指客户端能在离线或弱网下完成核心玩法;网络质量差是运行环境,两者不能互相替代。

二、包体与资源指标

指标定义单位口径要点
包体应用商店可安装的安装包大小MBAndroid 与 iOS 分开统计,不取平均
首包首次启动必需、随安装包或首启下发的最小资源集MB含启动必需配置与首屏资源
总资源全量玩法与活动资源总和MB不含用户生成内容
首包占比首包 ÷ 总资源%用于判断首启下载压力
资源重复率同一资源内容在多包中出现的字节占比%按内容哈希统计,不按文件名

案例设定:《潮汐消消》首包 120MB、总资源 480MB,首包占比 25%;《潮汐方舟》首包 350MB、总资源 1.8GB,首包占比约 19%。方舟占比更低,但绝对首包是消消的近三倍,两者面对的转化风险不同。

常见误用:

  • 把「下载后占用的磁盘空间」当成包体。解压后的资源通常远大于包体。
  • 用首包占比单独判断优劣。占比低不代表体验好,绝对体积才是首启流失的主因。
  • 统计总资源时把多语言资源全部计入,却不说明其中多少是按需下发。

三、启动与恢复指标

指标定义起点终点
冷启动进程不存在时的启动耗时用户点击图标首屏可交互
热启动进程存活、应用在后台时的恢复耗时用户切回应用首屏可交互
首帧时间从进程启动到第一帧画面呈现进程创建首帧上屏
恢复成功率从后台或杀进程后成功回到合理状态的次数占比——

冷启动按 P50 与 P95 分别统计,不要只看平均值。案例设定中,消消冷启动 1.8s / 3.2s(P50 / P95),方舟 3.5s / 6.8s;热启动 P50 分别为 0.6s 与 1.1s;低端机首帧 P95 为 2.6s 与 5.4s。

常见误用:

  • 把「冷启动」测成「第二次启动」,因为测试前进程已被系统缓存预热。
  • 只统计成功启动的会话。启动失败与闪退必须进入分母,否则指标会越优化越好看。
  • 用首帧时间代替可交互时间。首帧上了屏,玩家仍可能点不动。

四、内存指标

指标定义口径要点
稳态内存进入主界面并稳定 60 秒后的常驻内存取中位数,不用峰值
峰值内存单次会话中的最高常驻内存记录发生场景
内存水位触发告警或降级的阈值告警水位与强降水线分开
内存回退降级后内存是否能回到水位以下多数泄漏问题在这里暴露

案例设定:消消低端机稳态内存 420MB、告警水位 520MB;方舟 1,150MB、告警水位 1,450MB。两个水位都不是「设备上限」,而是「产品可接受的上限」——低于系统杀进程线,给系统和其它应用留出余量。

常见误用:

  • 用进程峰值代替稳态。峰值受单次大场景影响,不能反映长期趋势。
  • 把「内存占用低」当作唯一目标。过度回收会导致反复加载,帧率和耗电反而变差。
  • 不同机型混算平均。低端机与高端机的内存曲线不是同一条,必须分档统计。

五、流畅度指标

指标定义计算方式
帧预算每帧可用的时间上限30fps 为 33.3ms,60fps 为 16.7ms
长帧超过 100ms 的单帧计数,不取平均
Jank 率长帧数 ÷ 总帧数按会话统计
掉帧率超出目标帧间隔的帧占比需声明目标帧率
帧率档位客户端当前选择的目标帧率30 / 60,含升降档规则

案例设定:消消 Jank 率 2.1%,方舟 1.4%。这个数字看起来方舟更好,但要注意分母不同:方舟 60fps 下总帧数约为消消 30fps 的两倍,同样的长帧数量会算出更低的 Jank 率。跨产品比较 Jank 率之前,先确认目标帧率一致。

常见误用:

  • 用平均帧率描述体验。平均 55fps 可能由大量 60fps 和少量 20fps 拼成,体感比稳定 45fps 更差。
  • 只统计前台活跃帧。切后台、加载、结算的过程同样会产生长帧。
  • 把「帧率上限被系统限制」算作客户端性能问题。先排除设备省电模式与系统调度。

六、稳定性指标

指标定义分母口径要点
崩溃率(会话)发生崩溃的会话数 ÷ 总会话数会话最常用,需声明是否含启动崩溃
崩溃率(设备)发生崩溃的设备数 ÷ 活跃设备数设备对长尾机型更敏感
ANR 率发生 ANR 的会话数 ÷ 总会话数会话Android 专有;iOS 对应卡死/看门狗
启动崩溃率启动阶段崩溃数 ÷ 启动次数启动单独统计,不能混入总会话

案例设定:消消崩溃率 0.18%、ANR 率 0.05%;方舟 0.12%、0.03%。方舟的崩溃率更低,不代表稳定性更好——方舟单场 8–12 分钟,一次崩溃的沉没成本远高于消消的 90 秒一局,同样的崩溃率对应的玩家损失更高。

常见误用:

  • 不声明分母。会话、设备、启动次数三种口径的数值能差出几倍。
  • 把 ANR 并入崩溃率。两者的归因路径完全不同:崩溃看堆栈,ANR 看主线程阻塞。
  • 只看总体崩溃率,不看版本、机型、渠道、区域四个切片的分布。0.1% 的整体崩溃率可能藏着一个机型 5% 的分支。

七、网络与时区相关术语

术语定义口径要点
服务器时间权威所有与奖励、结算、活动开启相关的时间以服务端为准客户端时间只用于展示
时钟偏移客户端本地时间与服务端时间的差值需在登录时校准并持续修正
离线队列弱网或离线时暂存、恢复后补发的操作序列必须定义过期与冲突规则
时区口径活动按 UTC、服务器时区还是玩家本地时区计算同一产品内必须唯一

常见误用:

  • 用客户端时间判断活动是否开启。改系统时间就能绕过。
  • 跨时区活动按本地零点切换。玩家在不同时区会看到不同的开始时间,客诉与作弊都随之而来。
  • 把时钟偏移当成「设备时间不准」。偏移是常态,架构必须假设它会存在。

八、可观测性术语

术语定义口径要点
事件客户端上报的一条结构化记录必须有 schema 与版本
采样按比例或规则只上报部分事件采样率必须随事件一起上报
脱敏移除或替换事件中的敏感字段在客户端完成,不能依赖后端
切片按版本、机型、渠道、区域等维度拆分指标至少四维,缺一不可
定位闭环从告警到定位、修复、回归验证的完整链路缺任一环都不算闭环

常见误用:

  • 采样后不记录采样率,导致后端无法还原真实量级。
  • 在客户端上报原始用户标识。脱敏必须在采集端完成。
  • 只做告警不做回归。没有回归验证的修复,等于把同一个问题留给下个版本。

九、一句话口径表

如果只能记住九句话:

  1. 包体按平台分开算,首包看绝对值,不看占比。
  2. 冷启动看 P95,不看平均值。
  3. 稳态内存取中位数,峰值要带场景。
  4. 帧预算由目标帧率决定,跨产品比较前先对齐帧率。
  5. 崩溃率必须声明分母,启动崩溃单独统计。
  6. ANR 与崩溃分开看,归因路径不同。
  7. 所有奖励与结算时间以服务端为准。
  8. 采样率必须随事件上报。
  9. 任何一个指标,不切片就没有决策价值。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「books」更多文章

  1. 《移动游戏产品的架构·商业化与发行工程》附录 C 商业化与发行评审清单
  2. 《移动游戏产品的架构·商业化与发行工程》附录 B 双案例商业化事实表
  3. 《移动游戏产品的架构·商业化与发行工程》附录 A 商业化与发行术语速查