我希望能得到一些关于如何在我的应用程序中加速下载多个小文件的建议。应用程序下载300-400个小(15KB)文件。即使总大小很小,下载也需要很长时间,因为每个单独的文件都需要额外的握手时间。
我试过压缩文件,下载并在设备上解压,但最终速度比直接下载要慢(尽管这可能是由于解压算法效率低下…)
有没有人能就如何加快下载速度给出一些建议(可能要求一次下载3个,而不是按顺序下载?)或者有一个有效的解压代码片段,他们不介意分享它将不胜感激!

最佳答案

即使总大小很小,下载也需要很长时间,因为每个单独的文件都需要额外的握手时间。
我不太确定你是怎么下这个决心的。如果是通过Traceview,太好了。如果没有,请考虑使用traceview来确定减速的确切位置。
另外,我不太清楚你所说的“握手时间”是什么意思。如果您的意思是创建和拆除套接字连接,那么HttpUrlConnectionHttpClient都应该支持keep alive。前者需要重新使用HttpClient实例。
正如古普塔先生建议的那样,并行处理一些请求是一个合理的举措。您可以在自己的线程池中使用AsyncTask,这样就可以管理并行特性。
不过,还是要使用traceview来确定真正的问题所在。

10-04 14:32
查看更多