我想在用户等待时将可能包含数百张图像的列表下载到 SD 卡。我想获得最大的吞吐量,但仍然是一个负责任的应用程序。我将保存下载的数据,因为它填充了InputStream
此答案中的内容。
我应该记住哪些注意事项?有数量限制InputStreams
吗?添加更多并发性是否会或多或少地有效利用无线电功率(大部分数据都在下游)?
我想在用户等待时将可能包含数百张图像的列表下载到 SD 卡。我想获得最大的吞吐量,但仍然是一个负责任的应用程序。我将保存下载的数据,因为它填充了InputStream
此答案中的内容。
我应该记住哪些注意事项?有数量限制InputStreams
吗?添加更多并发性是否会或多或少地有效利用无线电功率(大部分数据都在下游)?
我怀疑解决这个问题的最佳方法是在运行时测量您的吞吐量并调整并发下载的数量以获得最高的吞吐量。
不同位置的不同提供商的不同网络连接类型(wifi、lte、3g 等)将决定有多少连接是最佳的。
所以我会从一个连接开始,测量它的吞吐量,然后创建另一个连接并再次测量。如果您获得更多吞吐量,请继续添加连接,直到您看到下降。
查看 AT&T 网站上的一些文章,了解如何在编写大量使用网络的应用程序时提高效率。http://developer.att.com/developer/forward.jsp?passedItemId=7200042
他们的 ARO 工具还将帮助您确保您的应用程序有效利用网络,并将应用程序性能和电池使用量降至最低。http://developer.att.com/developer/legalAgreementPage.jsp?passedItemId=9700312
最近发布的 Android SDK 附带的 Android traceview 工具也将帮助您http://developer.android.com/tools/debugging/debugging-tracing.html