2

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

4

1 回答 1

2

文档

为了更好地识别传输峰值的原因,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 或更高版本的设备上。

于 2016-04-25T12:44:28.463 回答