深入理解Android网络-Note

//android网络处理分析
android.net包:
android网络处理流程
android封装的HTTP处理类
RTP协议   SIP协议


网络处理关键类:frameworks/base/core/java/android/net 
ConnectivityManager.java 
Credentials.java 一个代表UNIX身份信息(通过UNIX域套接字中辅助数据传送)的类,包含了pid uid gid
DhcpInfo.java  DHCP请求结果的对象
LocalServerSocket.java 用于在Android平台上创建下行UNIX域(AF_LOCAL)套接字的非标准类,
它是在非文件系统命名空间中创建的
LocalSocket.java 在UNIX域命名空间中创建一个非服务器socket
MailTo.java 解析mailto协议格式的URL,然后可以查询解析后的参数
NetworkInfo.java 网络接口的状态
Proxy.java 用于访问用户及默认代理设置的类
SSLCertificateSocketFactory.java  继承SSLSocketFactory类,其实现了SSL操作的一些额外细节,比如规定了SSL握手超时规范等
SSLSessionCache.java 提供了网络流量统计的类
Uri.java 代表一个不可变的URI引用
Uri.Builder.java 一个用于创建和操作URI引用的辅助类
UrlQuerySanitizer.java 该类用于过滤URL查询
VpnService.java 应用扩展和建立自己的VPN解决方案的基类


ConnectivityManager 支持多种网络类型的连接管理


isActiveNetworkMetered() 该方法在当前活动的数据网络流量被测量时返回
网络根据流量进行分类,如果用户对大量数据传输很敏感,
那么在做大量数据传输之前应该检查连接,并告知用户或者延迟操作直到另一个网络可用

DhcpInfo
DHCP是一个局域网协议,DHCP通过UDP协议可以为用户自动分配IP地址或者允许内部网络管理员对所有计算机进行集中管理
使用DHCP状态机来管理DHCP协议,DHCP状态机可以与本地DHCP客户端交互,同时可以与同是状态机的控制器交流

LocalServerSocket
LocalSocketAddress
LocalSocket


NetworkInfo 描述网络接口的状态     
NetworkInfo.DetailedState 描述网络连接更详细的状态
NetworkInfo.State 描述较为粗化的网络状态
ConectivityManager.getActiveNetworkInfo 返回NetworkInfo   isConnected()进行判断


Proxy 用户访问用户及默认代理设置,其相应的Intent标识字符串如下:
android.intent.action.PROXY_CHANGE


VPN服务 
通过VpnService类提供,VpnService类是应用扩展和建立自己的VPN解决方案的基类,其辅助类为VpnService.Builder
一般情况下,它将创建一个虚拟的网络接口、配置地址和路由选择规则,并给应用返回一个文件描述符


AndroidHttpClient: 本质上是Apache DefaultHttpClient类在android上的实现,并且针对android的网络环境设置了更加合理的默认配置


DefaultHttpClient: 实现了一个HTTP客户端,android中包括了2个HTTP客户端:HttpURLConnection  Apache HTTPClient
两者都支持HTTPS、数据流的上传与下载、配置超时设定、IPv6和连接池;推荐使用HttpURLConnection


SSL认证信息处理类:
HTTPS链接采用了SSL(SecureSocketsLayer,安全套接层),
在android.net.http包中提供了SslCertificate类和SslError类用于描述X509数字证书信息,
在WebView中通过getCertificate()方法可以查看当前页面是否拥有SSL证书


AndroidHttpClient
Android中HTTP协议主要体现在android.net.http 和 org.apache.http 等包中,
在android.net.http包中,主要通过AndroidHttpClient类来实现HTTP协议,
AndroidHttpClient实际上就是实现了org.apache.http.client.HttpClient,它是DefaultHttpClient的子类,
通过AndroidHttpClient newInstance(String userAgent, Context context)方法获得一个实例


AndroidHttpClient通常和HttpHost、HttpUriRequest、HttpContext、ResponseHandler一起发起HTTP请求以及处理服务器响应


RTP协议:在IP网络上传递音频和视频的标准数据包格式,常用于流媒体(配合RTSP协议)

RTCP协议

android.net.rtp 包,Android内置RTP(实时传输协议)协议栈,开发应用程序的时候可以使用它来管理交互数据流
这样应用程序就可以提供VOIP、一键通、会议和音频流,并且在网络可用的前提下,可以使用API来启动会话/传输/接收数据
<uses-permission android:name = "android.permission.INTERNET">


<uses-permission android:name = "android.permission.RECORD_AUDIO">


RTP支持包位于frameworks/base/voip/java/android/net/rtp ,主要包括4个java类


RTP流 RtpStream类是基于RTP协议的数据流,android.net.rtp.RtpStream,代表着一个通过RTP协议发送和接收网络多媒体数据包的流
一个流主要包括:本机网络地址  端口号  远程主机网络地址  端口号 socket号  流模式


Android SIP协议: Session Initiation Protocol 回话发起协议
IP电话
android.net.sip  frameworks/base/core/java/android/net/sip 目录




6.3 网络判定:









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值