gpt4 book ai didi

Android 数据计数器差异(应用总和 < 总计)

转载 作者:太空宇宙 更新时间:2023-11-03 10:58:01 24 4
gpt4 key购买 nike

我试图了解导致我注意到只有几个应用程序的数据差异的原因。在 Tidal 和 Apple music 中,如果我在听轨道时跳过轨道,我会立即发现所有应用数据使用量总和与设备总音量之间存在 10% 到 15% 的数据差异。

测试用例

在启用 Data Saver 的情况下通过 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

在我的跟踪应用程序中,我将 NetworkStatsManager.QuerySummaryForDevice 用于总体积,并使用桶 uid 作为包标识符从 NetworkStatsManager.QuerySummary 构建应用程序总计。这已在多个 Oreo 设备上得到证实。

从这里我得到:

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)

因此,相同的结果在获取/查看读数时会出现一些微小的时间差异。

作为第 4 次确认,我在测试前后提取了/proc/net/xt_qtaguid/iface_stats_all 和/proc/net/xt_qtaguid/stats 文件,这些数字再次全部排列在上述方法的几个字节内。

数据包计数数字也遵循相同的模式,总数据使用量和应用程序总和之间缺少约 3000,因此我认为这不能归因于应用程序计数器中未跟踪的数据包 header 。

所以我的问题是:

  • 考虑到所有其他应用程序都正确跟踪,在应用程序总和与总数据之间留下微不足道的差距,这种数据丢失是否有任何合乎逻辑的原因?
  • 是否有任何系统服务未被 xt_qtaguid/stats 或 NetworkStatsManager 跟踪导致此问题?

最佳答案

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

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

关于Android 数据计数器差异(应用总和 < 总计),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52775551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com