zoukankan      html  css  js  c++  java
  • Android 网络编程与通信协议

         

           大多数的Android应用程序都会使用HTTP协议来发送和接收网络数据,而Android中主要提供了两种方式来进行HTTP操作,

    HttpURLConnection和HttpClient。这两种方式都支持HTTPS协议、以流的形式进行上传和下载、配置超时时间、IPv6、以及连接池等功能。

    一 : 首先来看一下Android下提供的网络访问相关API

    a) java.net.*(标准的Java接口):包括流和数据包(datagram)sockets、Internet 协议和常见 HTTP 处理。HttpURLConnection就是这个包下的。

    b) org.apache.HttpClient: Appache提供的开源包,弥补了 java.net.* 灵活性不足的缺点,DefaultHttpClient是其具体实现类。

    c) android.net(android接口):也是HttpClient的实现,提供了android下的特有网络编程。如:访问WiFi,访问Android联网信息,邮件等功能。

    二: Which client is best?

      Google官方文档介绍,在2.3及以后的版本中,HttpURLConnection是最好的选择,它简单的api以及轻量级非常适合Android。压缩和缓存机制降低了网路使用,提高了速度、节省了电量。新的应用应该选择使用HttpURLConnection,但在2.2之前有bug。

      但是在 链接管理 和 线程安全方面。HttpClient任然具有很大优势,其提供了大量的可扩展的稳定的APIs,但是在不破坏其兼容性的前提下 很难对其诸多API 进行修改,升级和扩展。 Google对其的优化并不积极,一般用于android2.2及以下版本中。

    三: 网络协议

    网络七层 , 一般编程人员接触最多的就是应用层和运输层。

    OSI中的层

    层级功能

    TCP/IP协议族

    应用层

    文件传输,电子邮件,文件服务,虚拟终端

    TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet

    表示层

    数据格式化,代码转换,数据加密

     

    会话层

    解除或建立与别的接点的联系

     

    传输层

    提供端对端的接口

    TCP,UDP

    网络层

    为数据包选择路由

    IP,ICMP,RIP,OSPF,BGP,IGMP

    数据链路层

    传输有地址的帧以及错误检测功能

    SLIP,CSLIP,PPP,ARP,RARP,MTU

    物理层

    以二进制数据形式在物理媒体上传输数据

    ISO2110,IEEE802。IEEE802.2

      tcp 和udp是传输层协议 ,定义的是数据传输和连接方式的规范(面向连接,TCP三层握手)(UDP不可靠的协议).主要解决数据 如何在网络中传输

      http 是应用层协议 ,定义的是传输数据的内容的规范(客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接).主要解决如何包装数据

      Socket是一组抽象编程接口(API),Socket本身不算是协议。介于传输层和应用层,向应用层提供统一的编程接口。应用层不必了解TCP/IP协议细节。直接通过对Socket接口函数的调用完成数据在IP网络的传输。

      基于TCP的Socket (HTTP)、基于UDP的Socket(SNMP)、基于RawIp的Socket(ping)、基于链路层的Socket

      HTTP协议中的数据是利用TCP协议传输的,所以支持HTTP也就一定支持TCP

      我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如 果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也 可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。

    四 : 其它网络相关技术

    1) WebView :HTML<------->javascript<-------->Android Java

    2) Webservice :基于SOAP协议 ,简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议。

    3) 服务器推送 :通过建立持久连接的方法,服务器端发送信息给手机Android用户。

          ——MQTT协议

          ——XMPP协议

          ——第三方推送 Android Push Notification Service

    4) PhoneGap

  • 相关阅读:
    如何使用类
    面向过程编程与面向对象优缺点
    生成器和迭代器的藕断丝连
    三元运算
    python 和pycharm 安装
    命令提示符玩法
    模块
    包(package)
    logging模块
    1964、1969和1972---------为什么中国互联网大佬出生在这3个年份
  • 原文地址:https://www.cnblogs.com/BoBoMEe/p/4289570.html
Copyright © 2011-2022 走看看