1

我正在开发一个与 Web 服务通信的 Android 应用程序。网络服务为我提供了一些几何文件,因此这些文件可能会变得非常大。

因为您不能等待 1-3 分钟才能收到回复,所以我需要降低加载时​​间。

所以这里有一些代码:

    long startTime = System.currentTimeMillis();

    InputStream 是 = httpResponse.getEntity().getContent();
    ByteArrayOutputStream 缓冲区 = 新的 ByteArrayOutputStream();

    诠释nRead;
    字节[]数据=新字节[1000000];

    而 ((nRead = is.read(data, 0, data.length)) != -1) {
      buffer.write(数据,0,nRead);
    }

    long endTime = System.currentTimeMillis();

    Log.d("ARks", (endTime - startTime) / 1000 + " seconds");

执行此操作所需的时间始终在 50 到 75 秒之间(对于相当小的文件而言)。

有没有办法加快这件事?也许一些Android特定的东西可以让应用程序更多的带宽?

4

1 回答 1

2

如果您知道带宽是您的问题,请压缩您的流:http ://docs.oracle.com/javase/6/docs/api/java/util/zip/GZIPInputStream.html

如果您在处理之前不需要所有数据,请减小缓冲区的大小。这将允许您在处理一些对象时处理其他对象。

于 2013-04-17T19:14:32.593 回答