PicMe 非功能性需求规格说明书(NFR Spec)
版本:1.0
状态:生效中
最后更新:2026-05-14
维护者:PM / QA
1. 目的
本文档统一收口 PicMe 所有可量化的非功能性需求,作为自动化测试和 CI 门禁的通过/失败标准。所有指标均为硬红线(Hard Limit),未达标视为阻塞发布项。
| 启动性能 |
冷启动 → 首帧预览 |
≤ 500ms |
≤ 400ms |
adb shell am start -W |
CI perf test |
PRODUCT.md#2.1 |
| 启动性能 |
启动阶段禁止项 |
— |
零启动页 / 零数据库迁移阻塞 |
人工检查 + Logcat |
CI lint |
PRODUCT.md#2.1 |
| 预览性能 |
预览帧率(高端机) |
≥ 30fps |
≥ 55fps |
BeautyPerfStats.fps |
调试浮层 + Systrace |
AGENTS.md#5 |
| 预览性能 |
预览帧率(低端机) |
≥ 30fps |
≥ 30fps |
BeautyPerfStats.fps |
调试浮层 |
AGENTS.md#5 |
| 预览性能 |
单帧处理耗时 |
≤ 16ms |
≤ 12ms |
processingMs |
Systrace / 自定义计时 |
AGENTS.md#5 |
| 参数响应 |
参数调节 → 画面变化 |
≤ 100ms |
≤ 50ms |
人工体感 + 高速摄像 |
QA checklist |
PRODUCT.md#2.1 |
| 拍照后处理 |
1080p GPU 处理 |
≤ 300ms |
≤ 200ms |
PhotoProcessorImpl 耗时 |
CI perf test |
PRODUCT.md#3.1 |
| 拍照后处理 |
4K GPU 处理 |
≤ 800ms |
≤ 600ms |
PhotoProcessorImpl 耗时 |
CI perf test |
PRODUCT.md#3.1 |
| 相册滚动 |
1000+ 照片滑动帧率 |
≥ 120fps |
≥ 120fps |
GPU Profile |
Systrace |
PRODUCT.md#2.1 |
| 相册滚动 |
快速滑动停止后首图清晰 |
≤ 100ms |
≤ 50ms |
人工体感 |
QA checklist |
PRODUCT.md#2.1 |
| 快门延迟 |
按下快门 → 反馈 |
≤ 50ms |
≤ 30ms |
触感 + 音效 + 黑场同步 |
QA checklist |
PRODUCT.md#2.1 |
| 美颜引擎 |
内存占用 |
≤ 30MB |
≤ 25MB |
Android Profiler |
CI perf test |
AGENTS.md#2.1 |
| 美颜引擎 |
CPU 占用(美颜模块) |
≤ 15% |
≤ 10% |
cpuUsage |
Android Profiler |
AGENTS.md#5 |
| 美颜引擎 |
空帧计数异常波动 |
无告警 |
零告警 |
nullFrames |
调试浮层 |
AGENTS.md#5 |
3. 帧同步专项指标(Frame-Sync Makeup)
| 预览-快转头 |
转头速度 > 90°/s 妆容偏差 |
≤ 16px @1080p |
≤ 8px @1080p |
录屏逐帧测量 |
自动化视频分析 |
| 预览-人脸出画 |
妆容消失时间 |
≤ 3 帧(~50ms@60fps) |
≤ 2 帧 |
高速摄像 / 帧计数 |
QA checklist |
| 录制-快转头 |
视频中妆容最大偏差 |
≤ 16px @1080p |
≤ 8px @1080p |
逐帧分析录制视频 |
自动化视频分析 |
| 录制-匀速移动 |
相邻帧妆容位移差 |
≤ 8px @1080p |
≤ 5px @1080p |
逐帧分析录制视频 |
自动化视频分析 |
| 录制-人脸出画 |
视频中妆容消失时间 |
≤ 3 帧 |
≤ 2 帧 |
逐帧分析录制视频 |
QA checklist |
| 录制-人脸入画 |
妆容出现延迟 |
第 1 帧立即出现 |
第 1 帧立即出现 |
逐帧分析录制视频 |
QA checklist |
| 预测补偿 |
预测计算耗时 |
≤ 1ms / 帧 |
≤ 0.5ms / 帧 |
Systrace / 自定义计时 |
CI perf test |
| 预测补偿 |
预测位移约束 |
≤ 150% 上一帧位移 |
≤ 120% 上一帧位移 |
日志分析 |
调试浮层 |
| 帧同步内存 |
FrameSyncManager 内存占用 |
≤ 200KB |
≤ 50KB |
Android Profiler |
CI perf test |
| 帧同步帧率 |
开启帧同步后帧率下降 |
≤ 5% |
无下降 |
fps 对比 |
CI perf test |
4. 稳定性指标(Stability)
| 崩溃率 |
整体崩溃率 |
≤ 0.1% |
≤ 0.05% |
Crashlytics / 友盟 |
| 崩溃率 |
美颜引擎崩溃率 |
≤ 0.05% |
≤ 0.01% |
Crashlytics |
| ANR 率 |
主线程 ANR |
≤ 0.1% |
≤ 0.05% |
Google Play Console |
| 降级触发 |
大美丽自动回退率 |
≤ 5% |
≤ 2% |
结构化日志统计 |
| 降级恢复 |
冷却恢复成功率 |
≥ 95% |
≥ 99% |
结构化日志统计 |
| 降级耗时 |
降级到基础预览 |
≤ 2s |
≤ 1s |
人工计时 / 日志 |
| 拍照成功率 |
GPU 路径失败回退 CPU |
100% 不丢照片 |
100% |
QA 测试 |
| 引擎初始化 |
大美丽初始化成功率 |
≥ 95% |
≥ 99% |
结构化日志 |
5. 隐私与安全指标(Privacy & Security)
| 敏感数据本地优先 |
AI 模块敏感数据网络传输 |
未经用户授权不得发生;授权后不得留存 |
AndroidManifest.xml 扫描 + 代码审计 + 授权流程审计 |
| 本地计算 |
人脸检测/识别/OCR 执行位置 |
默认 100% 设备本地;用户明确授权后可使用云端增强 |
代码审计 + 网络抓包 |
| 离线可用 |
无网络环境下功能完整性 |
100% 核心功能可用 |
QA 离线测试 |
| 数据存储 |
用户照片存储位置 |
设备本地 |
代码审计 |
| 权限透明 |
权限申请时机 |
仅首次使用时申请 |
QA 测试 |
6. 可维护性指标(Maintainability)
| 代码覆盖 |
单元测试覆盖率 |
≥ 60% |
≥ 80% |
| 代码覆盖 |
核心模块(beauty-engine) |
≥ 70% |
≥ 85% |
| 文档同步 |
代码变更后 Spec 更新延迟 |
≤ 1 个 PR |
同一 PR |
| 架构合规 |
api/ 包反向依赖 render/ |
0 次 |
0 次 |
| 架构合规 |
App 直接实例化 render/ 类 |
0 次 |
0 次 |
7. 验收与门禁
7.1 CI 门禁(Merge Blocker)
以下指标未达标时,PR 禁止合并:
7.2 发布门禁(Release Blocker)
以下指标未达标时,禁止发布:
8. 更新历史
| 1.0 |
2026-05-14 |
初版,收口所有 NFR 指标 |
PM |