在android上,我如何使用TrafficStats和TrafficStatsCompat来获取当前进程中特定线程的总TX字节数? API意味着它可能,但我无法弄清楚。
答案 0 :(得分:3)
为了更好地确定传输峰值的原因,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或更高版本的设备上。