Volley为什么不适合上传下载大文件,为什么适合频率高数据量小的通信?

张燕茹 2016-09-26 03:46:04
如题,希望能够从源码角度回答就更好了,感谢啦。
...全文
423 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
fjwangsjtu 2016-10-29
  • 打赏
  • 举报
回复
其它地方转过来的,看看吧,说的挺有道理。 刚开始我也有这个疑惑,解答疑惑的最好方式就是 Read The Fucking Source Code. 1. Volley的网络请求线程池默认大小为4。意味着可以并发进行4个请求,大于4个,会排在队列中。 2. Request#getBody() 方法返回byte[]类型,作为 Http.POST 和 Http.PUT body 中的数据。这就意味着需要把用 http 传输的数据一股脑读取到内存中。如果文件过大,内存... 考虑这样一个场景: 你同时上传4个文件,这四个文件都很大,这时候你的内存占用就很高,很容易oom。 这时候,你发网络请求,调用普通api。 所有的网络线程都被上传文件的任务占满了,你的网络请求只有在文件上传完毕后才能得到执行。体验就是,很慢! 所以Volley适合数据量小,频率快的请求。 作者:梦想家 链接:https://www.zhihu.com/question/51021564/answer/123888450 来源:知乎 著作权归作者所有,转载请联系作者获得授权。

80,360

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧