java 测试网速_使用Java/Android测量下载速度

  • Post author:
  • Post category:java


我正在开发一个

Android应用程序,我需要尽可能准确地测量当前连接的下载速度.这是我到目前为止找到的最好的方法(基本上我启动一个计时器,开始从快速服务器下载Linux发行版,下载大约200千字节,然后停止计时器并检查已用时间和下载的总字节数):

try{

InputStream is = new URL(“http://www.domain.com/ubuntu-linux.iso”).openStream();

byte[] buf = new byte[1024];

int n = 0;

startBytes = TrafficStats.getTotalRxBytes(); /*gets total bytes received so far*/

startTime = System.nanoTime();

while(n<200){

is.read(buf);

n++;

}

endTime = System.nanoTime();

endBytes = TrafficStats.getTotalRxBytes(); /*gets total bytes received so far*/

totalTime = endTime – startTime;

totalBytes = endBytes – startBytes;

}

catch(Exception e){

e.printStackTrace();

}

之后,我只需要将传输的字节数除以所用的时间,它将以bps为单位给出下载速度.

问题:

这种方法准确吗?

你知道一个更好的吗?

非常感谢.



版权声明:本文为weixin_35909443原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。