流量统计的播放·下载·Wi-Fi·移动·漫游四维记录与高风险下载提示
记录维度
TrafficStatsRepository 把流量分成两个轴:
流量类型轴:
- 播放流量:在线播放消耗的流量
- 下载流量:下载到本地消耗的流量
网络类型轴:
- Wi-Fi
- 移动网络
- 漫游(国际漫游)
统计页会按这两个维度交叉展示,让你清楚看到"在移动网络上用了多少播放流量"、"在漫游时下了多少 MB"等信息。
缓存命中
流量统计中还会记录缓存命中次数——从本地缓存读取音频时,这部分流量不计入播放/下载流量,但缓存命中率可以在统计页展示。
缓存命中的多少直接反映了你的缓存策略是否合理(缓存越大、命中率越高、在线流量越少)。
高风险下载提示
这是 NeriPlayer 不同于其他播放器的一个实用细节:
- 在移动网络下下载时,弹出确认提示
- 在漫游网络下下载时,同样弹出确认提示
- 用户确认后才开始下载
提示不是硬性阻止,而是在用户可能不知道自己正在用移动网络或漫游时给出明确的知情权。批量下载和单曲下载都会触发这个提示。
窗口淘汰策略
流量统计保留自己的窗口淘汰策略,与播放统计的累计保留策略不同:
- 播放统计:全量累计 + 每日桶永久保留(可手动清空)
- 流量统计:窗口化保留(超过窗口的数据自动淘汰)
流量统计保留窗口的设计是因为流量数据的长期历史意义不如播放统计那么重要,保留窗口可以节省存储。
写入策略
和播放统计一样,流量统计也采用延迟批量写入——播放/下载行为在内存中累积,到关键生命周期阶段(应用暂停、定时 flush)时统一写入数据库。