5

我正在尝试了解我仅注意到几个应用程序的数据差异的原因。在 Tidal 和 Apple 音乐中,如果我在听曲目时跳过曲目,我会立即得到所有应用程序数据使用量之和与设备总音量之间 10% 到 15% 的数据差异。

测试用例

通过 Tidal(跳过曲目)执行 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 跟踪导致这种情况?
4

1 回答 1

0

您的第一个查询,我知道它为什么会发生计算错误。

Rest API 作为请求-响应方式工作。你发送一个请求,响应就来了,你操纵响应。但有时会出现 404 401 或无响应等错误。发生这种情况时,系统可能会错误计算数据包。有时系统服务无法通过 android 中的网络管理器进行跟踪。

于 2019-09-10T10:37:09.373 回答