dumpsys netstats detail 输出解释重启后数据会清零从新统计UID tag stats:Pending bytes: 27977History since boot:ident[{type9, ratTypeCOMBINED, meteredtrue, defaultNetworktrue, oemManagedOEM_NONE, subId-1}] uid1000 setDEFAULT tag0xffffff82NetworkStatsHistory: bucketDuration7200st1773705600 rb0 rp0 tb60 tp1 op0ident[{type9, ratTypeCOMBINED, meteredtrue, defaultNetworktrue, oemManagedOEM_NONE, subId-1}] uid1000 setFOREGROUND tag0xffffff41整体结构这是Android系统的网络统计信息特别是关于UID和tag级别的网络使用情况。详细字段解释基本信息Pending bytes: 27977- 待处理的网络字节数可能是尚未计入统计的临时数据历史记录 (History since boot)每条记录包含以下信息1. ident 字段ident[{type9, ratTypeCOMBINED, meteredtrue, defaultNetworktrue, oemManagedOEM_NONE, subId-1}]type9- 网络类型9通常表示WIFIratTypeCOMBINED- 无线接入技术类型COMBINED表示综合统计meteredtrue- 网络是否计量可能产生费用defaultNetworktrue- 是否为默认网络**oemManagedOEM_NON2. 其他核心字段uid1000- 用户ID1000通常是系统UIDsetDEFAULT或setFOREGROUND- 网络使用类别DEFAULT: 默认类别后台FOREGROUND: 前台类别活跃应用tag0xffffff82- 网络流量标签用于区分不同类型的网络流量3. 网络统计历史 (NetworkStatsHistory)bucketDuration7200- 统计桶的持续时间单位为秒7200秒2小时st1773705600- 时间戳从1970年1月1日开始的秒数rb0- 接收的字节数rp0- 接收的数据包数tb60- 发送的字节数tp1- 发送的数据包数op0- 其他操作数命令 显示的是什么dumpsys netstats mSinceBoot只到本次启动dumpsys netstats --full getOrLoadCompleteLocked()会把磁盘里的 90 天历史读出来一并打印看磁盘文件甚至跨重启离线分析adb shell ls -l /data/misc/apexdata/com.android.tethering/netstats/然后把 uid_tag.bin、uid_tag.时间戳 系列拉出来用 AOSP 的 NetworkStatsCollection.readLegacyUid() / read() 解析车机/IVI 项目里很常用可以脚本化做月度报表。com.music 的数据流量未实时更新。原因是 queryDetailsForUidTag 读的是 NetworkStatsService 持久化到 /data/system/netstats/uid_tag.bin 的 bucket而当前正在累积的活动 bucket 只在 NetworkStatsRecorder 的内存里要等到 rotate默认 2h或shutdown 才落盘。dumpsys netstats 直接读内存所以能看到querySummary/queryDetails 走 binder → 读已落盘文件就缺最后一桶。如果想要实时 读取最新流量需要 在 getTrafficByUidTagState 查询前调一次 forceUpdate
dumpsys netstats detail 输出解释netd的app的网络流量统计
dumpsys netstats detail 输出解释重启后数据会清零从新统计UID tag stats:Pending bytes: 27977History since boot:ident[{type9, ratTypeCOMBINED, meteredtrue, defaultNetworktrue, oemManagedOEM_NONE, subId-1}] uid1000 setDEFAULT tag0xffffff82NetworkStatsHistory: bucketDuration7200st1773705600 rb0 rp0 tb60 tp1 op0ident[{type9, ratTypeCOMBINED, meteredtrue, defaultNetworktrue, oemManagedOEM_NONE, subId-1}] uid1000 setFOREGROUND tag0xffffff41整体结构这是Android系统的网络统计信息特别是关于UID和tag级别的网络使用情况。详细字段解释基本信息Pending bytes: 27977- 待处理的网络字节数可能是尚未计入统计的临时数据历史记录 (History since boot)每条记录包含以下信息1. ident 字段ident[{type9, ratTypeCOMBINED, meteredtrue, defaultNetworktrue, oemManagedOEM_NONE, subId-1}]type9- 网络类型9通常表示WIFIratTypeCOMBINED- 无线接入技术类型COMBINED表示综合统计meteredtrue- 网络是否计量可能产生费用defaultNetworktrue- 是否为默认网络**oemManagedOEM_NON2. 其他核心字段uid1000- 用户ID1000通常是系统UIDsetDEFAULT或setFOREGROUND- 网络使用类别DEFAULT: 默认类别后台FOREGROUND: 前台类别活跃应用tag0xffffff82- 网络流量标签用于区分不同类型的网络流量3. 网络统计历史 (NetworkStatsHistory)bucketDuration7200- 统计桶的持续时间单位为秒7200秒2小时st1773705600- 时间戳从1970年1月1日开始的秒数rb0- 接收的字节数rp0- 接收的数据包数tb60- 发送的字节数tp1- 发送的数据包数op0- 其他操作数命令 显示的是什么dumpsys netstats mSinceBoot只到本次启动dumpsys netstats --full getOrLoadCompleteLocked()会把磁盘里的 90 天历史读出来一并打印看磁盘文件甚至跨重启离线分析adb shell ls -l /data/misc/apexdata/com.android.tethering/netstats/然后把 uid_tag.bin、uid_tag.时间戳 系列拉出来用 AOSP 的 NetworkStatsCollection.readLegacyUid() / read() 解析车机/IVI 项目里很常用可以脚本化做月度报表。com.music 的数据流量未实时更新。原因是 queryDetailsForUidTag 读的是 NetworkStatsService 持久化到 /data/system/netstats/uid_tag.bin 的 bucket而当前正在累积的活动 bucket 只在 NetworkStatsRecorder 的内存里要等到 rotate默认 2h或shutdown 才落盘。dumpsys netstats 直接读内存所以能看到querySummary/queryDetails 走 binder → 读已落盘文件就缺最后一桶。如果想要实时 读取最新流量需要 在 getTrafficByUidTagState 查询前调一次 forceUpdate