在android上,我如何使用TrafficStats和TrafficStatsCompat来获取当前进程中特定线程的总TX字节?API暗示这是可能的,但我搞不清楚。
来自文档。
为了更好地确定传输峰值的原因,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或更高版本的设备上显示。