如何从特定线程获取trafficstats

时间:2016-04-18 14:11:21

标签: android android-trafficstats

在android上,我如何使用TrafficStatsTrafficStatsCompat来获取当前进程中特定线程的总TX字节数? API意味着它可能,但我无法弄清楚。

1 个答案:

答案 0 :(得分:3)

来自documentation

为了更好地确定传输峰值的原因,Traffic Stats API允许您使用TrafficStats.setThreadStatsTag()方法标记线程内发生的数据传输,然后使用tagSocket()手动标记(和取消标记)各个套接字和untagSocket()。例如:

TrafficStats.setThreadStatsTag(0xF00D);
TrafficStats.tagSocket(outputSocket);
// Transfer data using socket
TrafficStats.untagSocket(outputSocket);

Apache HttpClient和URLConnection库根据当前的getThreadStatsTag()值自动标记套接字。这些库还通过保持活动池进行回收时标记和取消标记套接字。

TrafficStats.setThreadStatsTag(0xF00D);
try {
  // Make network request using HttpClient.execute()
} finally {
  TrafficStats.clearThreadStatsTag();
}

Android 4.0支持套接字标记,但实时统计信息仅显示在运行Android 4.0.3或更高版本的设备上。