一种获取软件包的方法和装置与流程

文档序号:11732138阅读:196来源:国知局
一种获取软件包的方法和装置与流程

本发明涉及计算机技术领域,特别涉及一种获取软件包的方法和装置。



背景技术:

随着计算机技术的快速发展以及应用程序的广泛使用,用户对应用程序的依赖越来越强,在安装或更新应用程序时,用户需要通过终端从网络上下载该应用程序相应的软件包。

用户可以通过安装在终端上的软件管理应用进行其它应用程序的安装或更新处理。用户在软件管理应用中点击某个应用程序的安装或更新按键后,终端可以向网络运营商的服务器(也可称为网络服务器)发送相应的软件包获取请求,该软件包获取请求中可以携带有软件包的url(统一资源定位符,uniformresourcelocator)。之后网络服务器可以通过解析该url中包含的域名信息,确定软件管理应用对应的后台服务器的ip(网络协议,internetprotocol)地址,然后根据该ip地址向后台服务器转发上述软件包获取请求。进而,后台服务器接收到该软件包获取请求后,可以通过网络服务器将相应的软件包返回给终端。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

目前软件包的下载方式主要是基于http(超文本传输协议,hypertexttransferprotocol)进行下载,而由于http是采用明文传输,在上述获取软件包的过程中,不良网络运营商可以轻松篡改软件包的url所指向的后台服务器的ip地址,或者修改后台服务器返回的软件包内的数据,这样,均可能导致获取到的软件包无法正常使用,从而获取软件包的成功率较低。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种获取软件包的方法和装置。所述技术方案如下:

第一方面,提供了一种获取软件包的方法,所述方法包括:

接收目标程序的软件包下载指令,获取所述目标程序对应的在第一下载方式下的第一url,向网络服务器发送携带有所述第一url的软件包获取请求;

接收所述网络服务器发送的所述目标程序的第一软件包,获取所述第一软件包的属性信息;

如果所述第一软件包的属性信息和预先存储的所述目标程序的软件包的属性信息不相同,则根据所述目标程序对应的在第二下载方式下的第二url,获取所述目标程序的软件包。

第二方面,提供了一种获取软件包的装置,所述装置包括:

第一获取模块,用于接收目标程序的软件包下载指令,获取所述目标程序对应的在第一下载方式下的第一url,向网络服务器发送携带有所述第一url的软件包获取请求;

第二获取模块,用于接收所述网络服务器发送的所述目标程序的第一软件包,获取所述第一软件包的属性信息;

第三获取模块,用于如果所述第一软件包的属性信息和预先存储的所述目标程序的软件包的属性信息不相同,则根据所述目标程序对应的在第二下载方式下的第二url,获取所述目标程序的软件包。

本发明实施例提供的技术方案带来的有益效果是:

本发明实施例中,在获取软件包的过程中,终端可以通过软件包的属性信息判断获取到的软件包是否正确,如果不正确,则可以自动采用新的下载方式重新获取软件包,从而可以提高获取软件包的成功率。同时,采用本方案获取软件包,可以有效降低终端获取到的软件包被劫持的可能,这样,也可以提高获取软件包的安全性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种获取软件包的方法流程图;

图2是本发明实施例提供的一种获取软件包的场景示意图;

图3是本发明实施例提供的一种获取软件包的方法流程图;

图4是本发明实施例提供的一种获取软件包的流程示意图;

图5是本发明实施例提供的一种获取软件包的装置结构示意图;

图6是本发明实施例提供的一种终端的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例提供了一种获取软件包的方法,本方法主要运用在用户通过软件管理应用从其对应的后台服务器处,下载其它应用程序的软件包的场景下,该方法可以由终端实现,终端可以是具有安装或更新应用程序功能的任意终端,可以是手机、电脑等。终端上可以安装有用于管理应用程序的软件管理应用,用户可以通过该软件管理应用在终端上安装应用程序,或者对已安装的应用程序进行更新处理。终端可以包括处理器、存储器、收发器,处理器可以用于进行下述流程中的获取软件包的处理,存储器可以用于存储下述处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送下述处理过程中的相关数据。本实施例中,以终端为手机为例进行说明,其它情况与之类似,本实施不再进行一一说明。

下面将结合具体实施方式,对图1所示的处理流程进行详细的说明,内容可以如下,具体场景可以参考图2,其中,终端201上安装有软件管理应用,当用户需要获取软件包时,可以通过操作触发终端201向网络服务器202发送软件包获取请求,之后网络服务器202可以将接收到的软件包获取请求转发给软件管理应用的后台服务器203,后台服务器203接收到软件包获取请求后,可以将相应的软件包通过网络服务器202返回给终端201:

步骤101,终端接收目标程序的软件包下载指令,获取目标程序对应的在第一下载方式下的第一url,向网络服务器发送携带有第一url的软件包获取请求。

其中,网络服务器可以是网络运营商的服务器,用于接收终端发送的网络业务请求,并对网络业务请求进行响应或者转发的服务器。目标程序可以是应用程序的安装程序或者更新程序。

在实施中,用户可以在终端上安装用于管理其它应用程序的软件管理应用,用户可以通过该软件管理应用对其它应用程序进行安装、更新、卸载等管理操作。本实施例主要是针对安装和更新两种处理进行的相关改进,具体的,当用户想要安装某个应用程序,则可以打开上述软件管理应用,然后在应用程序搜索框内输入相应的搜索关键词,从而软件管理应用可以显示上述应用程序的应用信息,同时页面内可以显示有该应用程序的下载按键,用户可以点击该下载按键,终端则可以接收到该应用程序的安装程序(即目标程序)的软件包下载指令。或者,如果用户想要对某个终端上已安装的应用程序进行更新处理,则可以打开上述软件管理应用的更新页面,这时,更新页面内可以显示有当前终端内需要更新的所有应用程序的应用信息,同时页面内可以显示有每个应用程序对应的更新按键,用户可以点击某个应用程序对应的更新按键,终端则可以接收到该应用程序的更新程序(即目标程序)的软件包下载指令。

上述软件管理应用的后台服务器可以支持多种软件包的下载方式,且至少支持2种下载方式,例如,其同时支持http下载和https(基于安全套接层的超文本传输协议,hypertexttransferprotocoloversecuresocketlayer)下载两种下载方式。https下载是以http下载为基础,对传输内容进行安全加密的一种新型下载方式,简单来说,https下载可以认为是http下载的安全版。当用户通过软件管理应用搜索某个应用程序时,其对应的后台服务器可以在发送相关应用信息的同时,将该应用程序的安装程序的软件包在各个下载方式下的url发送至终端,终端在接收到url后,可以将其存储在本地,或者,当软件管理应用检测出终端上某个已安装的应用程序需要更新,则可以自动从后台服务器处获取其更新程序的软件包在各个下载方式下的url,然后将这些url存储在本地。这样,当终端接收到目标程序的软件包下载指令时,可以获取本地存储的该目标程序对应的在第一下载方式下的第一url,然后可以向网络服务器发送携带有该第一url的软件包获取请求。当然,此处的url也可以是在用户点击相关按键时,终端临时从软件管理应用的后台服务器处获取的。不难理解,软件包获取请求中还可以携带有目标程序的标识信息,以便后台服务器确定用户想要获取的目标程序的软件包。

需要说明的是,本方案中不对第一下载方式进行具体限定,但考虑到由于http下载技术使用时间最长,技术较为成熟,资源较为丰富,故而第一下载方式可以默认设为http下载。

步骤102,终端接收网络服务器发送的目标程序的第一软件包,获取第一软件包的属性信息。

在实施中,网络服务器接收到终端发送的携带有第一url的软件包获取请求之后,可以对第一url进行域名解析处理,即根据预先存储的域名和ip地址的对应关系,确定第一url中的域名信息所对应的ip地址,而该ip地址即为上述软件管理应用的后台服务器的ip地址。进一步的,网络服务器则可以根据该ip地址将软件包获取请求发送至上述后台服务器。后台服务器接收到该软件包获取请求后,可以获取该软件包获取请求中携带的目标程序的标识信息,然后在本地的软件包库中查找相应的软件包(即第一软件包),进而可以将第一软件包通过网络服务器发送给终端。

在软件管理应用的后台服务器将目标程序的第一软件包返回给网络服务器后,网络服务器可以将该第一软件包转发给终端,进而,终端可以接收到由网络服务器转发的目标程序的第一软件包,同时还可以根据接收到的该第一软件包获取第一软件包的属性信息。需要说明的是,在传输第一软件包时,可以将第一软件包分为多个数据包进行传输,终端可以根据获取到的第一软件包的数据包来获取其属性信息,且可以不需要等待第一软件包的数据包全部接收完成,在接收过程中获取到第一软件包的部分属性信息。

步骤103,如果第一软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,终端则根据目标程序对应的在第二下载方式下的第二url,获取目标程序的软件包。

在实施中,不难看出,在步骤102的处理过程中,一方面,网络服务器将终端发送的软件包获取请求转发给后台服务器时,不良运营商可能会篡改网络服务器中域名和ip地址的对应关系,这样,网络服务器依据域名和ip地址的对应关系对第一url进行域名解析处理时,会将第一url中的域名信息替换为错误的ip地址,软件包获取请求则会指向错误的服务器,从而终端接收到的网络服务器返回的软件包将不是用户真正想要获取的目标程序的软件包,上述问题也可以称为域名劫持问题。另一方面,网络服务器接收到后台服务器向终端发送的软件包后,不良运营商可能会在软件包中植入广告,或者修改软件包内的一些参数,这样,终端接收到的网络服务器返回的软件包中将包含大量的广告信息或者错误信息,上述问题也可以称为内容劫持问题。

本方案采用了如下处理来解决上述问题:当用户通过软件管理应用搜索某个未安装的应用程序时,其对应的后台服务器可以在发送相关应用信息的同时,将该应用程序的安装程序的软件包的属性信息发送至终端,终端在接收到相应的属性信息后,可以将其存储在本地,或者,当软件管理应用检测出终端上某个已安装的应用程序需要更新,则可以自动从后台服务器处获取其更新程序的软件包的属性信息,然后将属性信息存储在本地。当然,此处的属性信息也可以是在用户点击相关按键时,终端临时从软件管理应用的后台服务器处获取的。这样,终端在获取到第一软件包的属性信息后,可以将其与本地预先存储的该目标程序的软件包的属性信息进行比对。如果第一软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,则第一软件包不是用户想要获取的目标程序的软件包,则在获取软件包的过程中有很大概率发生了域名劫持问题或者内容劫持问题。故而,终端可以根据获取到的目标程序对应的在第二下载方式下的第二url,来获取目标程序的软件包。此处,本方案中不对第二下载方式进行具体限定,如果第一下载方式设定为http下载,则第二下载方式可以设定为https下载,https下载是以http下载为基础,对传输内容进行了加密处理的下载方式,采用https下载的下载方式来获取软件包,则可以有效避免上述内容劫持问题。

可选的,如果第一软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,终端则自动安装所述第一软件包。

在实施中,终端接收第一软件包并获取到第一软件包的属性信息后,如果第一软件包和预先存储的目标程序的软件包的属性信息相同,则可以认为在数据传输过程中,网络运营商未对第一软件包进行任何劫持操作,故而在接收完第一软件包后,终端可以自动解析并安装第一软件包,以完成相应的应用程序的安装或更新处理。当然,此处用户还可以设置在检测属性信息后,终端仅进行安装提示,由用户自行决定是否进行安装处理。

可选的,上述属性信息可以是数据量,终端可以根据软件包的数据量来判断获取的软件包是否已被劫持,相应的,步骤102处理可以如下:终端接收所述网络服务器发送的所述目标程序的第一软件包,获取所述第一软件包的数据量。

在实施中,当第一软件包的数据量较大时,可以将第一软件包分为多个数据包进行传输,这样,网络服务器可以接收后台服务器发送的目标程序的第一软件包的多个数据包,并将该多个数据包转发给终端。终端在接收到第一软件包的首个数据包时,可以根据数据包中的“content-length”字段确定当前下载的软件包(即第一软件包)的数据量。进而,在步骤103中,终端则可以将第一软件包的数据量与预先存储的目标程序的软件包的数据量进行对比。容易理解,在每次下载软件包时,可以先由获取到的第一个数据包进行软件包的数据量比较,从而来判断软件包是否已被劫持,可以避免用户花费大量的时间和网速来下载错误的软件包,从而可以提高获取软件包的效率。

此外,终端还可以选择在接收完网络服务器发送的目标程序的第一软件包的所有数据包后,根据所有数据包的数据量统计出第一软件包的数据量,进而,在步骤103中,终端则可以将统计出的第一软件包的数据量与预先存储的目标程序的软件包的数据量进行对比。

可选的,上述属性信息可以是md5(消息摘要算法第五版,message-digestalgorithm5)值,终端可以根据软件包的md5值来判断获取的软件包是否已被劫持,相应的,步骤102处理可以如下:终端接收网络服务器发送的目标程序的第一软件包,计算第一软件包的md5值。

在实施中,网络服务器可以接收后台服务器发送的目标程序的第一软件包,并将第一软件包转发给终端。终端在接收完目标程序的第一软件包后,可以根据md5值计算公式计算第一软件包的md5值。进而,在步骤103中,终端则可以将第一软件包的md5值与预先存储的目标程序的软件包的md5值进行对比。容易理解,比对md5值可以有效的判断第一软件包的内容是否与目标程序的软件包的内容一致,如果不一致,则可以说明第一软件包已被劫持。

值得一提的是,基于上述属性信息为数据量或md5值的处理,终端可以采用只比对数据量或只比对md5值的方式来判断软件包是否被劫持,也可以按照下载开始时先比对一下数据量,下载完成后再比对md5值的方式来判断软件包是否被劫持。相应的处理可以如下:终端接收所述网络服务器发送的所述目标程序的第一软件包,获取所述第一软件包的数据量,如果所述第一软件包的数据量和预先存储的所述目标程序的软件包的数据量不相同,则根据所述目标程序对应的在第二下载方式下的第二url,获取所述目标程序的软件包;如果所述第一软件包的数据量和预先存储的所述目标程序的软件包的数据量相同,则计算所述第一软件包的md5值,如果所述第一软件包的md5值和预先存储的所述目标程序的软件包的md5值不相同,则根据所述目标程序对应的在第二下载方式下的第二url,获取所述目标程序的软件包;如果所述第一软件包的md5值和预先存储的所述目标程序的软件包的md5值相同,则自动安装所述第一软件包。

在实施中,网络服务器在接收后台服务器发送的目标程序的第一软件包的多个数据包后,可以将该多个数据包转发给终端。终端在接收到第一软件包的首个数据包时,可以根据数据包中的“content-length”字段确定当前下载的软件包(即第一软件包)的数据量。或者,终端还可以选择在接收完网络服务器发送的目标程序的第一软件包的所有数据包后,根据所有数据包的数据量统计出第一软件包的数据量。进而,终端则可以将第一软件包的数据量与预先存储的目标程序的软件包的数据量进行对比。此时,如果第一软件包的数据量和预先存储的所述目标程序的软件包的数据量不相同,终端则可以根据所述目标程序对应的在第二下载方式下的第二url,获取所述目标程序的软件包。而如果所述第一软件包的数据量和预先存储的所述目标程序的软件包的数据量相同,终端则可以根据md5值计算公式计算第一软件包的md5值,然后将第一软件包的md5值与预先存储的目标程序的软件包的md5值进行对比。此时,如果所述第一软件包的md5值和预先存储的所述目标程序的软件包的md5值不相同,终端则可以根据所述目标程序对应的在第二下载方式下的第二url,获取所述目标程序的软件包。如果所述第一软件包的md5值和预先存储的所述目标程序的软件包的md5值相同,则可以认为第一软件包未被网络运营商劫持,终端则可以自动安装所述第一软件包。

综上,终端在利用软件包的数据量和md5值共同检验软件包是否已被劫持时,如果软件包的数据量和md5值同时满足预先存储的值,则可以确定获取到的软件包未被劫持,而只要有一个值与预先存储的不符,则可以认为获取到的软件包已被劫持,这样,可以提高判断软件包是否被劫持的准确性。

本发明实施例中,接收目标程序的软件包下载指令,获取目标程序对应的在第一下载方式下的第一url,向网络服务器发送携带有第一url的软件包获取请求,接收网络服务器发送的目标程序的第一软件包,获取第一软件包的属性信息,如果第一软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,则根据目标程序对应的在第二下载方式下的第二url,获取目标程序的软件包。这样,在获取软件包的过程中,终端可以通过软件包的属性信息判断获取到的软件包是否正确,如果不正确,则可以自动采用新的下载方式重新获取软件包,从而可以提高获取软件包的成功率。同时,采用本方案获取软件包,可以有效降低终端获取到的软件包被劫持的可能,这样,也可以提高获取软件包的安全性。

基于相同的技术构思,本发明实施例还提供了一种获取软件包的处理流程,下面将结合具体实施方式,对图3所示的处理流程进行详细的说明,内容可以如下:

步骤301,终端接收目标程序的软件包下载指令,获取目标程序对应的在第一下载方式下的第一url,向网络服务器发送携带有第一url的软件包获取请求。

本步骤的具体处理可以参考步骤101。

步骤302,终端接收网络服务器发送的目标程序的第一软件包,获取第一软件包的属性信息。

本步骤的具体处理可以参考步骤102。

步骤303,如果第一软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,终端则获取目标程序对应的在第二下载方式下的第二url,向网络服务器发送携带有第二url的软件包获取请求。

在实施中,终端检测到第一软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同后,可以获取本地存储的目标程序对应的在第二下载方式下的第二url,此处,第二url可以是如步骤101中所说的预先存储的,也可以是在检测到第一软件包的属性信息错误后,临时从软件管理应用程序的后台服务器获取的。之后,终端可以向网络服务器发送携带有第二url的软件包获取请求,网络服务器接收到该软件包获取请求后,可以对其进行域名解析处理,再将软件包获取请求发送给后台服务器。

步骤304,终端接收网络服务器发送的目标程序的第二软件包。

在实施中,后台服务器接收到软件包获取请求之后,可以在本地的软件包库中调取相应的软件包(即第二软件包),然后将第二软件包通过网络服务器发送给终端。这样,终端则可以接收到网络服务器转发的目标程序的第二软件包的数据包。需要说明的是,按照网络传输协议,数据量较大的文件将会分为多个数据包进行传输,故而终端接收第二软件包的过程实际是接收第二软件包的数据包的过程。

步骤305,如果第二软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,终端则向网络服务器发送ip直连请求。

在实施中,终端接收到网络服务器发送的目标程序的第二软件包的数据包之后,可以基于数据包获取第二软件包的属性信息,然后将其与预先存储的目标程序的软件包的属性信息作比较,如果第二软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,则第二软件包不是用户想要获取的目标程序的软件包,可以认为在获取软件包的过程中有很大概率发生了域名劫持问题或者内容劫持问题。例如,当第二下载方式为https下载时,后台服务器返回的第二软件包是经过加密的,那么如果第二软件包的属性信息与预先存储的属性信息不同,则更有可能发生了域名劫持问题。这样,终端可以向后台服务器请求获取可以提供目标程序的软件包的服务器的ip地址,即向网络服务器发送指向后台服务器的ip直连请求。

可选的,如果第二软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,终端则自动安装所述第二软件包。

在实施中,终端接收第二软件包并获取到第二软件包的属性信息后,如果第二软件包和预先存储的目标程序的软件包的属性信息相同,则可以认为在数据传输过程中,网络运营商未对第二软件包进行任何劫持操作,故而在接收完第二软件包后,终端可以自动解析并安装第二软件包,以完成相应的应用程序的安装或更新处理。当然,此处用户还可以设置在检测属性信息后,终端仅进行安装提示,由用户自行决定是否进行安装处理。

步骤306,终端接收网络服务器发送的目标cdn(内容分发网络,contentdeliverynetwork)服务器的ip地址,将第一url中的域名信息替换为目标cdn服务器的ip地址。

在实施中,终端向网络服务器发送ip直连请求后,网络服务器可以将该请求转发至后台服务器,后台服务器可以获取终端的地理位置,然后根据地理位置确定与终端距离最近的cdn服务器(即目标cdn服务器),再将目标cdn服务器的ip地址通过网络服务器发送给终端。终端接收到网络服务器发送的目标cdn服务器的ip地址后,可以获取上述处理过程中所使用的第一url,然后将第一url中的域名信息替换为目标cdn服务器的ip地址。

步骤307,终端根据替换后的第一url获取目标程序的软件包。

在实施中,在对第一url中的域名信息进行替换处理后,终端可以根据替换后的第一url进行目标程序的软件包的获取处理。此处,终端将第一url中域名信息替换为目标cdn服务器的ip地址后,网络服务器不再进行域名解析处理,则可以有效避免域名劫持问题。可以理解,终端还可以对第二url中的域名信息进行替换处理,然后可以根据替换后的第二url获取目标程序的软件包。同理,终端同样可以获取该软件包的属性信息,然后将属性信息与预先存储的目标程序的软件包的属性信息进行比对,来判断获取的软件包是否被劫持。

在上述处理中,终端先由第一下载方式获取目标程序的软件包,如果发现软件包被劫持,则可以改为采用第二下载方式来获取目标程序的软件包,如果软件包仍然被劫持,则再选用ip直连的方式获取软件包,如果后台服务器仅支持上述三种下载方式,则在最后如果检测到软件包依旧被劫持,则可以提示用户软件包下载失败,具体的处理可以如图4所示。

当然,如果后台服务器仅支持两种下载方式,则可以在上述流程中,跳过其不支持的下载方式相关的处理步骤,例如,后台服务器仅支持http下载和https下载方式中的一种,同时支持ip直连的下载方式,相应的处理流程则可以如下:

第一步:终端接收目标程序的软件包下载指令,获取目标程序对应的在第一下载方式下的第一url,向网络服务器发送携带有第一url的软件包获取请求。

第二步:终端接收网络服务器发送的目标程序的第一软件包,获取第一软件包的属性信息。

第三步:如果第一软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,终端则向网络服务器发送ip直连请求。

第四步:终端接收网络服务器发送的目标cdn(内容分发网络,contentdeliverynetwork)服务器的ip地址,将第一url中的域名信息替换为目标cdn服务器的ip地址。

第五步:终端根据替换后的第一url获取目标程序的软件包。

上述处理的具体步骤可以参考步骤301-307的相关处理。

另外,如果后台服务器支持多种下载方式,则可以在上述流程后,继续切换软件包的下载方式,直到目标程序安装成功或者所有下载方式均切换完毕。例如,后台服务器支持x种下载方式,每种下载方式均对应一个特定的url,相应的处理流程则可以如下,其中,x、y、m、n均为大于2的自然数,m小于等于n,y小于等于x:

第一步:终端接收目标程序的软件包下载指令,获取目标程序对应的在第一下载方式下的第一url,向网络服务器发送携带有第一url的软件包获取请求。

第二步:终端接收网络服务器发送的目标程序的第一软件包,获取第一软件包的属性信息。

第三步:如果第一软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,终端则获取目标程序对应的在第二下载方式下的第二url,向网络服务器发送携带有第二url的软件包获取请求。

第四步:终端接收网络服务器发送的目标程序的第二软件包,获取第二软件包的属性信息。

第五步:如果第二软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,终端则获取目标程序对应的在第三下载方式下的第三url,向网络服务器发送携带有第三url的软件包获取请求。

如此,可以按照上述第一步到第五步的处理进行循环,直至第n步。

第n步:如果第x软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,终端则提示目标程序安装失败。

至此,上述获取软件包的处理流程终止。

上述处理的具体步骤可以参考步骤301-307的相关处理。

或者,相应的处理流程也可以如下:

第一步:终端接收目标程序的软件包下载指令,获取目标程序对应的在第一下载方式下的第一url,向网络服务器发送携带有第一url的软件包获取请求。

第二步:终端接收网络服务器发送的目标程序的第一软件包,获取第一软件包的属性信息。

第三步:如果第一软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,终端则获取目标程序对应的在第二下载方式下的第二url,向网络服务器发送携带有第二url的软件包获取请求。

第四步:终端接收网络服务器发送的目标程序的第二软件包,获取第二软件包的属性信息。

第五步:如果第二软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,终端则获取目标程序对应的在第三下载方式下的第三url,向网络服务器发送携带有第三url的软件包获取请求。

如此,可以按照上述第一步到第五步的处理进行循环,直至第m步。

第m步:如果第y软件包的属性信息和预先存储的目标程序的软件包的属性信息相同,终端则自动安装第y软件包。

至此,上述获取软件包的处理流程终止。

上述处理的具体步骤可以参考步骤301-307的相关处理。

本发明实施例中,接收目标程序的软件包下载指令,获取目标程序对应的在第一下载方式下的第一url,向网络服务器发送携带有第一url的软件包获取请求,接收网络服务器发送的目标程序的第一软件包,获取第一软件包的属性信息,如果第一软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,则根据目标程序对应的在第二下载方式下的第二url,获取目标程序的软件包。这样,在获取软件包的过程中,终端可以通过软件包的属性信息判断获取到的软件包是否正确,如果不正确,则可以自动采用新的下载方式重新获取软件包,从而可以提高获取软件包的成功率。同时,采用本方案获取软件包,可以有效降低终端获取到的软件包被劫持的可能,这样,也可以提高获取软件包的安全性。

基于相同的技术构思,本发明实施例还提供了一种获取软件包的装置,如图5所示,该装置包括:

第一获取模块501,用于接收目标程序的软件包下载指令,获取所述目标程序对应的在第一下载方式下的第一统一资源定位符url,向网络服务器发送携带有所述第一url的软件包获取请求;

第二获取模块502,用于接收所述网络服务器发送的所述目标程序的第一软件包,获取所述第一软件包的属性信息;

第三获取模块503,用于如果所述第一软件包的属性信息和预先存储的所述目标程序的软件包的属性信息不相同,则根据所述目标程序对应的在第二下载方式下的第二url,获取所述目标程序的软件包。

可选的,所述第一下载方式为超文本传输协议http下载,所述第二下载方式为基于安全套接层的超文本传输协议https下载。

可选的,所述第三获取模块503,具体用于:

获取所述目标程序对应的在第二下载方式下的第二url,向网络服务器发送携带有所述第二url的软件包获取请求;

接收所述网络服务器发送的所述目标程序的第二软件包。

可选的,所述装置还包括:

在接收所述网络服务器发送的所述目标程序的第二软件包的数据包之后,如果所述第二软件包的属性信息和预先存储的所述目标程序的软件包的属性信息不相同,则向所述网络服务器发送网络协议ip直连请求;

接收所述网络服务器发送的目标内容分发网络cdn服务器的ip地址,将所述第一url中的域名信息替换为所述目标cdn服务器的ip地址;

根据替换后的第一url获取所述目标程序的软件包。

可选的,所述属性信息为数据量、第五版消息摘要算法md5值中的至少一个;

所述第二获取模块502,具体用于:

获取所述第一软件包的数据量,和/或计算所述第一软件包的md5值。

本发明实施例中,接收目标程序的软件包下载指令,获取目标程序对应的在第一下载方式下的第一url,向网络服务器发送携带有第一url的软件包获取请求,接收网络服务器发送的目标程序的第一软件包,获取第一软件包的属性信息,如果第一软件包的属性信息和预先存储的目标程序的软件包的属性信息不相同,则根据目标程序对应的在第二下载方式下的第二url,获取目标程序的软件包。这样,在获取软件包的过程中,终端可以通过软件包的属性信息判断获取到的软件包是否正确,如果不正确,则可以自动采用新的下载方式重新获取软件包,从而可以提高获取软件包的成功率。同时,采用本方案获取软件包,可以有效降低终端获取到的软件包被劫持的可能,这样,也可以提高获取软件包的安全性。

需要说明的是:上述实施例提供的获取软件包的装置在获取软件包时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的获取软件包的装置与获取软件包的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图6是根据一示例性实施例示出的一种终端的结构示意图。该终端可以用于实施上述实施例中提供的获取软件包的方法。

终端600可以包括rf(radiofrequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、wifi(wirelessfidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图6中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

rf电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,rf电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(sim)卡、收发信机、耦合器、lna(lownoiseamplifier,低噪声放大器)、双工器等。此外,rf电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于gsm(globalsystemofmobilecommunication,全球移动通讯系统)、gprs(generalpacketradioservice,通用分组无线服务)、cdma(codedivisionmultipleaccess,码分多址)、wcdma(widebandcodedivisionmultipleaccess,宽带码分多址)、lte(longtermevolution,长期演进)、电子邮件、sms(shortmessagingservice,短消息服务)等。

存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端600的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。

输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端600的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用lcd(liquidcrystaldisplay,液晶显示器)、oled(organiclight-emittingdiode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图6中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。

终端600还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端600移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端600还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路160、扬声器161,传声器162可提供用户与终端600之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经rf电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端600的通信。

wifi属于短距离无线传输技术,终端600通过wifi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了wifi模块170,但是可以理解的是,其并不属于终端600的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器180是终端600的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端600的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。

终端600还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管未示出,终端600还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端600的显示单元是触摸屏显示器,终端600还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行述一个或者一个以上程序包含用于进行上述获取软件包的处理的指令。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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