您好我正在运行一个简单的下载测试,以查看我的连接速度有多快。我记录了trafficStats的rx值,然后我下载了一个5MB的文件,然后记录rx值然后计算差值。我知道这个文件正好是5MB。
以下是代码:
URL url = new URL(urlString);
URLConnection urlConnection = url.openConnection();
urlConnection.setConnectTimeout(connectTimeout);
urlConnection.setReadTimeout(readTimeout);
InputStream is = urlConnection.getInputStream();
// BufferedInputStream bis = new BufferedInputStream(is);
InputStream bis = new BufferedInputStream(is, 8192);
int inputFileSize = 1024;
byte[] baf = new byte[inputFileSize];
totalRxBeforeTest = TrafficStats.getUidRxBytes(uid);
int current = 0;
while ((current = bis.read(baf)) != -1) {
}
totalRxAfterTest = TrafficStats.getUidRxBytes(uid);
rxDiff = totalRxAfterTest - totalRxBeforeTest;
问题是,我应该得到大约5242880字节(5MB)的值,但我得到的值如5414730,5408715,5413867,5426647。(从4次测试运行)我希望有一些开销,但这是额外的168KB!对于一个5MB的文件来说,接口就像很多开销一样。我也使用uid的TrafficStats,所以它应该只是我特定应用程序的网络统计数据。
知道什么可以解释这个额外的流量?