一种Android上提升网络下载速度的优化策略的制作方法

文档序号:13768867阅读:189来源:国知局

本发明涉及网络数据请求的处理技术领域,具体说是一种android上提升网络下载速度的优化策略。



背景技术:

socket连接是一个针对tcp和udp编程的接口,可以借助它建立tcp连接等等。

tcp和udp协议属于传输层。

http是个应用层的协议,它实际上也建立在tcp协议之上。

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

tcp三次握手:握手过程中并不传输数据,在握手后服务器与客户端才开始传输数据,理想状态下,tcp连接一旦建立,在通讯双方中的任何一方主动断开连接之前tcp连接会一直保持下去。

socket连接,至少需要一对套接字,分别为:clientsocket以及serversocket。连接分为3个步骤:

(1)服务器监听:服务器并不定位具体客户端的套接字,而是时刻处于监听状态;

(2)客户端请求:客户端的套接字要描述它要连接的服务器的套接字,提供地址和端口号,然后向服务器套接字提出连接请求;

(3)连接确认:当服务器套接字收到客户端套接字发来的请求后,就响应客户端套接字的请求,并建立一个新的线程,把服务器端的套接字的描述发给客户端。一旦客户端确认了此描述,就正式建立连接。而服务器套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

http为短连接:客户端发送请求都需要服务器端回送响应。请求结束后,主动释放链接,因此为短连接。通常的做法是,不需要任何数据,也要保持每隔一段时间向服务器发送“保持连接”的请求。这样可以保证客户端在服务器端是“上线”状态。

http连接使用的是“请求-响应”方式,不仅在请求时建立连接,而且客户端向服务器端请求后,服务器才返回数据。

socket为长连接:通常情况下socket连接就是tcp连接,因此socket连接一旦建立,通讯双方开始互发数据内容,直到双方断开连接。在实际应用中,由于网络节点过多,在传输过程中,会被节点断开连接,因此要通过轮询高速网络,该节点处于活跃状态。

在android中提供的基本的网络连接httpurlconnection是基于http协议的短连接。

优点:

1、基于应用级的接口使用方便。

2、要求的开发水平不高,容错性强。

缺点:

1、传输速度慢,数据包大。

2、如实现实时交互,服务器性能压力大。

3、数据传输安全性差。

所以基于android上层的http协议的httpurlconnection传输速度慢的问题,基于socket有着传输数据时间短,性能高的优点。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种android上提升网络下载速度的优化策略,以通过底层socket连接为主,以上层http请求为辅,对网络数据请求进行优化,有效提高网络下载速度。

为达到以上目的,本发明采取的技术方案是:

一种android上提升网络下载速度的优化策略,其特征在于,包括如下步骤:

在收到网络下载请求时,首先创建socket对象,

在客户端和服务端之间,建立基于socket对象的连接connect,

通过该连接connect,调用并请求数据write,得到服务端返回的数据,

客户端获取服务端返回的数据read,

关闭socket连接,完成socket连接获取网络下载数据过程。

在上述技术方案的基础上,所述完成socket连接获取网络下载数据过程,用c编译为so库。

在上述技术方案的基础上,所述so库封装为tcp客户端。

在上述技术方案的基础上,通过jni调用so库供android上层使用。

在上述技术方案的基础上,在android上层还提供基于http的封装,供上层通过http请求实现网络下载请求。

在上述技术方案的基础上,所述基于http的封装,具体包括:

基于httpurlconnection类生成对象,

设置相关的requestproperty,

基于生成的对象建立连接connect,

获取网络输入流getinputstream,并read数据,

将读取的字节写入到输出流outputstream,并输出,

关闭网络输入流getinputstream,关闭输出流outputstream,并断开连接disconnect。

在上述技术方案的基础上,基于httpurlconnection类生成httpsession类,用于实现上层的网络请求。

在上述技术方案的基础上,在android上层中,创建一个管理类downloadcore,优先使用底层的tcp客户端请求,如果失败则尝试上层的http请求进行处理。

本发明所述的android上提升网络下载速度的优化策略,以通过底层socket连接为主,以上层http请求为辅,对网络数据请求进行优化,有效提高网络下载速度。

附图说明

本发明有如下附图:

图1本发明的流程图。

具体实施方式

以下结合附图对本发明作进一步详细说明。

如图1所示,本发明所述的android上提升网络下载速度的优化策略,包括如下步骤:

在收到网络下载请求时,首先创建socket对象,

在客户端和服务端之间,建立基于socket对象的连接connect,

通过该连接connect,调用并请求数据write,得到服务端返回的数据,

客户端获取服务端返回的数据read,

关闭socket连接,完成socket连接获取网络下载数据过程。

在上述技术方案的基础上,所述完成socket连接获取网络下载数据过程,用c编译为so库。即编译为android的动态连接库(.so文件)。

在上述技术方案的基础上,所述so库封装为tcp客户端。底层用c实现封装tcp客户端,实现基本的网络请求,数据返回。

在上述技术方案的基础上,通过jni调用so库供android上层使用。

在上述技术方案的基础上,在android上层还提供基于http的封装,供上层通过http请求实现网络下载请求。

在上述技术方案的基础上,所述基于http的封装,具体包括:

基于httpurlconnection类生成对象,

设置相关的requestproperty,

基于生成的对象建立连接connect,

获取网络输入流getinputstream,并read数据,

将读取的字节写入到输出流outputstream,并输出,

关闭网络输入流getinputstream,关闭输出流outputstream,并断开连接disconnect。

在上述技术方案的基础上,基于httpurlconnection类生成httpsession类,用于实现上层的网络请求。

在上述技术方案的基础上,在android上层中,创建一个管理类downloadcore,优先使用底层的tcp客户端请求,如果失败则尝试上层的http请求进行处理。

本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1