【问题标题】:Upload and Download rate profiling in Android [closed]Android中的上传和下载速率分析[关闭]
【发布时间】:2016-02-26 11:54:19
【问题描述】:

我正在尝试开发一个 Android 应用程序来测量我的网络的上传和下载速度,我可能需要每 2 秒左右运行一次并对其进行分析。 SpeedTest.net app 是一个理想的类似工作的应用程序,但是它不是开源的。此外,我需要它每 2 秒运行一次。完成测试需要几秒钟。

我该怎么做?目前,我只是下载在 Internet 上某个地方找到的一个小的随机 .txt 文件,并测量 size/time-to-download 作为下载速率的衡量标准。但我每次都会得到奇怪的结果。显然这种方法行不通。

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

【问题讨论】:

    标签: android networking android-networking speed-test


    【解决方案1】:

    您需要下载一个相当大的文件,至少需要 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);
         }
    }
    

    【讨论】:

      【解决方案2】:

      要进行上传,您需要设置与服务器的双向通信。我会用一个简单的循环来做到这一点:

      while(x){
      Starttime =getCurrentTime()
      Sendfile() //Send a Xmb file that the server can verify
      waitForVerification() // Wait for a reply from server.
      compareCurrentTimeWithStartingTime() // compare the times.
      }
      

      【讨论】:

        猜你喜欢
        • 2019-04-22
        • 2015-07-11
        • 1970-01-01
        • 2013-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-14
        相关资源
        最近更新 更多