我试图了解我只用几个应用程序注意到的数据差异的原因。 在潮汐和 Apple 音乐中,如果我在听曲目时跳过曲目,我会立即在所有应用程序数据使用量的总和与设备的总音量之间出现 10% 到 15% 的数据差异。
测试用例
通过潮汐(跳过轨道(执行 36.03MiB,启用流量节省程序以将后台数据限制为最低限度。
Android 数据使用计数器(设置 - 连接 -数据使用(
总
- Total 36.03MiB
应用程序
- Tidal 31 MiB
- Google Play Services 448.04 KiB
- My Data Manager 59.9 KiB
- com.samsung.accessory.wmmanager 10.94 KiB
- Google Play Store 5.27 KiB
- Android.OS 5.13 KiB
- Samsung Push Service 3.59 KiB
-----------------------------------------------
- Total of all Apps 31.52 MiB
缺少数据
- Total 4.51 MiB
我的数据管理器
对于完全相同的数据测试,"我的数据管理器"会报告相同的值
- Tidal 30.8 MiB
- etc
网络统计管理器
在我的跟踪应用程序中,我使用 NetworkStatsManager.QuerySummaryForDevice 作为整体卷,并使用存储桶 uid 作为包标识符从 NetworkStatsManager.QuerySummary 构建应用程序总计。 这已在几台奥利奥设备上得到证实。
从这里我得到了:
QuerySummaryForDevice
- Total 37777120 (36.027MiB)
查询摘要
- Tidal (com.aspiro.tidal) 32511933 (31.005MiB)
- Google Play Services (com.google.uid.shared) 459244 (448.48KiB)
- My Data Manager (com.mobidia.android.mdm) 61333 (59.90KiB)
- com.samsung.accessory.wmmanager 11196 (10.933KiB)
- Google Play Store (com.android.vending) 5397 (5.271KiB)
- Android.OS (com.uid.system) 5246 (5.123KiB)
- Samsung Push Service (com.sec.app.push) 3677 (3.591KiB)
-------------------------------------------------------------------
- Total of all Apps 33058026 (31.527MiB)
缺少数据
- Total 4719094 (4.500MiB)
因此,相同的结果在获取/查看读数时会给出或采取一些微小的时间差异。
作为第四次确认,我在测试前后提取了/proc/net/xt_qtaguid/iface_stats_all 和/proc/net/xt_qtaguid/stats 文件,数字再次排列在上述方法的几个字节内。
数据包计数数字也遵循相同的模式,总数据使用量和应用程序总和之间缺少 ~3000,因此我认为这不能归结为应用程序计数器中未跟踪数据包标头。
所以我的问题是:
- 鉴于所有其他应用程序都正确跟踪,在应用程序总和和总数据之间留下可以忽略不计的差距,这种丢失数据是否有任何合乎逻辑的原因?
- 是否有任何系统服务未被xt_qtaguid/stats或NetworkStatsManager跟踪导致此问题?
您的第一个查询,我知道为什么会发生误判。
Rest API 用作请求-响应方式。你发送一个请求,响应来了,你操纵了响应。但有时会出现 404 401 或没有响应等错误。 发生这种情况时,系统可能会错误地计算数据包。 有时无法使用Android中的网络管理器跟踪系统服务。