Android上传和下载费率分析

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

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

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

解决方法

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

这几乎就是SpeedTest.net所做的

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

  1. upload (String remote,InputStream localfile){
  2. Socket s = openDataConnection(remote);
  3. OutputStream os = new BufferedOutputStream (s.getOutputStream(),MAX_BUFFER_SIZE);
  4.  
  5. byte[] buffer = new byte[MAX_BUFFER_SIZE];
  6. long totalTime = 0L;
  7. while((buffer = localfile.read())!= -1){
  8. long startTime = System.currentTimeMillis();
  9. os.write(buffer);
  10. long endTime = System.currentTimeMillis();
  11. totalTime += (endTime - startTime);
  12. }
  13. }

猜你在找的Android相关文章