Android上传和下载费率分析

前端之家收集整理的这篇文章主要介绍了Android上传和下载费率分析前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试开发一个 Android应用程序来衡量我的网络的上传和下载速度,这可能是我需要运行并每隔2秒钟对其进行一次配置. SpeedTest.net应用程序是一个理想的应用程序,但它不是开源的.而且,我需要它每2秒运行一次.完成测试需要几秒钟.

我怎样才能做到这一点?目前我只是在互联网上的某个地方下载一个小的随机.txt文件,并测量下载速度的大小/下载时间.但每次都会得到奇怪的结果.显然这种方法不起作用.

更新:下载完成.有关如何实现上传速度的任何建议?

解决方法

你需要下载一个相当大的文件,下载至少需要15秒.文件越大,您获得的结果就越好.使用具有高可用性的永远在线服务器.另外,仅在网络调用时使用累积(我相信你必须使用一些套接字来读取while循环.所以在socket.read()之前和之后做System.currentTimeMillis()并继续添加它们)

这几乎就是SpeedTest.net所做的

上传而言,你可以做同样的事情.一个粗略的伪代码

upload (String remote,InputStream localfile){
     Socket s = openDataConnection(remote);
     OutputStream os = new BufferedOutputStream (s.getOutputStream(),MAX_BUFFER_SIZE);

     byte[] buffer = new byte[MAX_BUFFER_SIZE];
     long totalTime = 0L;
     while((buffer = localfile.read())!= -1){
         long startTime = System.currentTimeMillis();
         os.write(buffer);
         long endTime = System.currentTimeMillis();
         totalTime += (endTime - startTime);
     }
}

猜你在找的Android相关文章