我正在开发一个与网络服务进行通信的Android应用。 webservice给我一些几何文件,因为那些文件真的很大。
因为你不能等到1-3分钟才能收到回复,我需要降低加载时间。
所以这里有一些代码:
long startTime = System.currentTimeMillis(); InputStream is = httpResponse.getEntity().getContent(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); int nRead; byte[] data = new byte[1000000]; while ((nRead = is.read(data, 0, data.length)) != -1) { buffer.write(data, 0, nRead); } long endTime = System.currentTimeMillis(); Log.d("ARks", (endTime - startTime) / 1000 + " seconds");
执行此操作所需的时间总是在50到75秒之间(而且文件相当小)。
有没有办法加速这件事?也许某些Android特定的东西允许应用程序更多的带宽?
答案 0 :(得分:2)
如果知道带宽是您的问题,请压缩您的信息流:http://docs.oracle.com/javase/6/docs/api/java/util/zip/GZIPInputStream.html
如果在处理之前不需要所有数据,请减小缓冲区的大小。这将允许您处理某些对象,而其他对象正在通过网络。