android - 请问下安卓的网络相关的几个库之间的关系?
高洛峰
高洛峰 2017-04-18 09:06:18
0
2
373

请教一下Android网络有关的几个工具之间的关系。

我对Android了解很少,尝试百度后没有遇见比较满意的答复,应该是我的问题太奇怪了,太简单了。。。。

  • HttpClient

  • HttpURLConnection

他们是Android请求网络用到的较为底层的实现,通过他我们可以自己封装一个网络请求工具。也只有通过他我们才能进行网络请求?
可以说他们是同级的?

  • volley

  • retrofit

他们是基于之前两者的封装,是一套成熟的网络请求框架。

  • okhttp
    我不清楚这个okhttp这个应该算和Hurl同一概念的底层请求网络手段吗?

另外想请问一下,HttpClient他们实际底层实现就是Socket通信吧?

但是我在看volley介绍时说它适合请求频繁的操作(看到过大神的博客说在接受数据时会使用算法分配一块合适的已经存在的内存空间,提高了效率(这个手段我在学习binder机制的时候好像也看到过,在binder驱动层里也有类似的一块区域)),但是我记得Socket连接和断开都会耗费资源难道他不是基于Socket的?

小弟愚昧,希望有大神可以帮解惑,多多纠正我的错误观念。感激不尽!!感激不尽!!

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(2)
PHPzhong

Vous pouvez le diviser comme ceci :
Couche inférieure : HttpClient, HttpURLConnection, okhttp
Cadre de requête réseau : Volley, mise à niveau

左手右手慢动作

Pour de tels doutes, il est recommandé de comprendre d'abord les connaissances pertinentes sur la superposition des couches de protocole réseau, en particulier la relation entre HTTP, Socket et TCP/UDP. Je vous recommande de lire un article prêt à l'emploi. Concernant les frameworks et API que vous avez mentionnés, vous pouvez simplement penser qu'ils sont tous basés sur l'implémentation d'encapsulation du protocole http. Retrofit est un niveau un peu supérieur, et la couche inférieure est implémentée par okhttp.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal