一种应用程序升级方法及装置与流程

文档序号:16207123发布日期:2018-12-08 07:15阅读:145来源:国知局
一种应用程序升级方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种应用程序升级方法及装置。

【背景技术】

随着ios、安卓等应用于电子设备的智能操作系统的飞速发展,应用程序(application,app)也在飞速发展。app一般指的是安装在智能操作系统中的第三方应用程序。目前,为了满足各方面的需求,安装在电子设备的第三方应用程序需要进行升级更新。

现有技术中所使用的升级方案是,当应用程序检测到存在更新信息时,对用户进行提示,当用户点击相应按键触发升级时,才会下载更新信息并基于更新信息进行升级。然而,如果用户不点击相应按键,就会造成应用程序的老版本仍需要维护的问题,导致应用程序的版本碎片化程度比较高。而且,用户需要执行指定操作才能进行升级,操作繁琐,导致应用程序的升级效率比较低。



技术实现要素:

有鉴于此,本发明实施例提供了一种应用程序升级方法及装置,降低了应用程序的版本碎片化程度,且避免了繁琐的升级操作过程,提高了升级效率。

一方面,本发明实施例提供了一种应用程序升级方法,执行于终端本地的应用程序中;包括:

向服务器发送更新检测请求;

接收所述服务器根据所述更新检测请求返回的下载地址;

根据所述下载地址,向所述服务器发送下载请求;

接收所述服务器根据所述下载请求返回的指定更新信息;

通过调用指定命令,启用安卓调试桥的命令解析器运行环境;

在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,通过调用指定命令,启用安卓调试桥的命令解析器运行环境,包括:

通过调用安卓调试桥的启用命令,运行安卓调试桥;

在安卓调试桥运行状态下,通过调用安卓调试桥连接命令,建立与所述应用程序所在电子设备中指定设备之间的连接;其中,所述指定设备为承载所述安卓调试桥的命令解析器运行环境的设备。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级之前,还包括:

通过调用安卓调试桥设备获取命令,获得已连接设备信息;

判断所述已连接设备信息是否包含所述指定设备的信息;

当所述已连接设备信息包含所述指定设备的信息时,执行在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级的步骤。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级,包括:

在所述安卓调试桥的命令解析器运行环境中,通过调用安装命令,在所述指定设备中加载所述指定更新信息。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,接收所述服务器根据所述下载请求返回的指定更新信息时,还包括:接收所述服务器返回的校验信息;

通过调用指定命令,启用安卓调试桥的命令解析器运行环境之前,还包括:

基于所述校验信息,对所述指定更新信息进行校验;

当校验通过时,执行通过调用指定命令,启用安卓调试桥的命令解析器运行环境的步骤。

再一方面,本发明实施例提供了一种应用程序升级装置,设置于终端本地的应用程序中;包括:

发送单元,用于向服务器发送更新检测请求;

接收单元,用于接收所述服务器根据所述更新检测请求返回的下载地址;

所述发送单元,还用于根据所述下载地址,向所述服务器发送下载请求;

所述接收单元,还用于接收所述服务器根据所述下载请求返回的指定更新信息;

环境获取单元,用于通过调用指定命令,启用安卓调试桥的命令解析器运行环境;

升级处理单元,用于在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述环境获取单元,具体用于:

通过调用安卓调试桥的启用命令,运行安卓调试桥;

在安卓调试桥运行状态下,通过调用安卓调试桥连接命令,建立与所述应用程序所在电子设备中指定设备之间的连接;其中,所述指定设备为承载所述安卓调试桥的命令解析器运行环境的设备。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述环境获取单元,具体还用于:

通过调用安卓调试桥设备获取命令,获得已连接设备信息;

判断所述已连接设备信息是否包含所述指定设备的信息;

当所述已连接设备信息包含所述指定设备的信息时,触发所述升级处理单元执行在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述升级处理单元,具体用于:在所述安卓调试桥的命令解析器运行环境中,通过调用安装命令,在所述指定设备中加载所述指定更新信息。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述接收单元,还用于接收所述服务器返回的校验信息;

所述装置还包括:

信息校验单元,用于基于所述校验信息,对所述指定更新信息进行校验;并当校验通过时,触发环境获取单元执行通过调用指定命令,启用安卓调试桥的命令解析器运行环境。

再一方面,本发明实施例还提供了一种计算机可读介质,包括:计算机可执行指令,当该计算机可执行指令被运行时执行以下步骤:

向服务器发送更新检测请求;

接收所述服务器根据所述更新检测请求返回的下载地址;

根据所述下载地址,向所述服务器发送下载请求;

接收所述服务器根据所述下载请求返回的指定更新信息;

通过调用指定命令,启用安卓调试桥的命令解析器运行环境;

在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级。

上述技术方案中的一个技术方案具有如下有益效果:

本发明实施例中,终端本地的应用程序通过与服务器进行交互,获取指定更新信息,并在获取指定更新信息之后,通过调用指定命令,启用安卓调试桥的命令解析器运行环境,进而在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级;由于获取到安卓调试桥的命令解析器运行环境后,就可以具有权限,从而可以实现自动升级。该自动升级方案可以不需要用户点击相应按键触发升级,因此可以避免由于用户不点击相应按键所带来的应用程序的老版本仍需维护的问题,从而在一定程度上降低了应用程序的版本碎片化程度,从而在一定程度上降低了维护成本。另外,由于避免了用户点击相应按键,可以实现简化升级操作,从而提高了应用程序的升级效率。

【附图说明】

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

图1是本发明实施例所提供的应用程序升级方法的流程示意图;

图2是本发明实施例所提供的应用程序升级方法的另一流程示意图;

图3是本发明实施例所提供的步骤105的实施方案的流程示意图;

图4是本发明实施例所提供的步骤302的实施方案的流程示意图;

图5是本发明实施例所提供的应用程序与服务器交互实现升级包下载的流程示意图;

图6是本发明实施例所提供的应用程序升级包安装的流程示意图;

图7是本发明实施例所提供的应用程序升级装置的功能方块图;

图8是本发明实施例所提供的应用程序升级装置的另一功能方块图。

【具体实施方式】

为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

针对现有技术中所存在的当用户点击按键触发升级时,才会获取应用程序的更新信息并进行升级,而带来的应用程序的版本碎片化程度比较高以及升级效率比较低的这一类问题,本发明实施例提供了相应的解决思路:在获取到应用程序的指定更新信息之后,通过调用指定指令,启用安卓调试桥的命令解析器运行环境,在安卓调试桥的命令解析器运行环境中,基于该指定更新信息进行应用程序的升级。这种升级方式可以不需要用户触发才能升级,可以实现应用程序的自动升级,从而可以实现静默升级的体验。

在该思路的引导下,本发明实施例提供了以下可行的实施方式。

本发明实施例给出一种应用程序升级方法,执行于终端本地的应用程序上。请参考图1,其为本发明实施例所提供的应用程序升级方法的流程示意图,如图1所示,该方法包括以下步骤:

101、向服务器发送更新检测请求。

102、接收服务器根据更新检测请求返回的下载地址。

103、根据下载地址,向服务器发送下载请求。

104、接收服务器根据下载请求返回的指定更新信息。

105、通过调用指定命令,启用安卓调试桥的命令解析器运行环境。

106、在安卓调试桥的命令解析器运行环境中,基于指定更新信息进行应用程序的升级。

本发明实施例所涉及的应用程序可以是安装在电子设备上的第三方应用程序。需要说明的是,本发明实施例中所涉及的电子设备可以包括但不限于无线手持设备、平板电脑、手机、智能电视、智能电视盒子等采用安卓操作系统的智能设备。

针对步骤101的实现,本发明实施例在此提供了以下可行的实施方式。

在一种可行的实施方案中,应用程序在启动后或者满足其他条件时(如应用程序在运行过程中到达指定时刻时),可以向服务器发送更新检测请求,以实现升级检测。其中,更新检测请求可以携带该应用程序的当前版本信息。需要说明的是,这里所描述的应用程序向服务器发送更新检测请求所需要满足的条件为举例说明,并不用于限制本发明实施例的实施方案。

针对步骤102的实现,本发明实施例在此提供了以下可行的实施方式。

服务器中可以预先配置好升级策略。例如,应用程序的版本信息为1.0时,对应的升级策略是强制升级,应用程序的版本信息为非1.0(如1.9和2.0等)时,对应的升级策略为推荐升级。

在一种可行的实施方案中,服务器接收到应用程序发送的更新检测请求后,将其携带的应用程序的当前版本信息与该应用程序的最新版本信息进行比对,如果一致,说明该应用程序已经是最新版本,不需要进行更新,也就是说,不存在指定更新信息,服务器向应用程序返回更新检测响应,该更新检测响应携带不需要进行更新的指示。

反之,如果不一致,说明该应用程序需要进行更新,也就是说,存在指定更新信息。本发明实施例应用于推荐升级场景下,因此服务器根据更新检测请求携带的当前版本信息,判断其对应的升级策略是否为推荐升级,如果是推荐升级,服务器生成升级信息,该升级信息可以包括指定更新信息的下载地址和校验信息。

进一步的,服务器将生成的升级信息通过更新检测响应发送给应用程序。这样,应用程序可以接收到当存在指定更新信息时,服务器根据更新检测请求返回的指定更新信息的下载地址。

在一种可行的实施方案中,服务器可以利用指定算法对指定更新信息进行运算,得到运算结果,将该运算结果作为所述校验信息发送给应用程序。例如,该指定算法可以包括但不限于消息摘要算法(如消息摘要算法第五版或消息摘要算法第四版等)或者哈希算法等,本发明实施例对此不进行特别限定,但是需要预先在应用程序和服务器中协商一致,双方采用相同的算法。

例如,本发明实施例所涉及的指定更新信息可以为应用程序的升级包。

针对步骤103的实现,本发明实施例在此提供了以下可行的实施方式。在一种可行的实施方案中,应用程序接收到服务器返回的更新检测响应后,从该更新检测响应中提取升级信息,然后对升级信息进行解析,得到指定更新信息的下载地址和校验信息。

进一步的,在得到指定更新信息的下载地址后,应用程序向服务器发送下载请求,该下载请求可以携带指定更新信息的下载地址,用以请求从服务器获取指定更新信息。

针对步骤104的实现,本发明实施例在此提供了以下可行的实施方式。

在一种可行的实施方案中,服务器接收到应用程序发送的下载请求后,根据下载请求中携带的指定更新信息的下载地址,获取指定更新信息,然后将该指定更新信息通过下载响应返回给应用程序,这样,应用程序可以接收到服务器根据下载请求返回的指定更新信息,实现了应用程序对指定更新信息的获取。

在一种可行的实施方案中,如图2所示,在步骤105之前,还可以包括:

105a、获取校验信息。

应用程序获取校验信息的实施方案可以参考步骤102中的相关描述,这里不再赘述。

105b、基于所述校验信息,对所述指定更新信息进行校验;以及,当校验通过时,执行通过调用指定命令,启用安卓调试桥的命令解析器运行环境的步骤(即步骤105)。

在一种可行的实施方案中,应用程序在获取到指定更新信息之后,在执行基于指定更新信息进行升级之前,需要先基于校验信息对指定更新信息的完整性进行校验。

在一种具体的实施方案中,应用程序利用与服务器侧所使用的相同的算法,对接收到的指定更新信息进行运算,得到运算结果,并将该运算结果作为本地得到的校验信息。然后,应用程序将自身运算后的得到的校验信息与从服务器接收到的校验信息进行比对,如果两个校验信息一致,说明从服务器接收到的指定更新信息是完整的,确定校验通过,然后执行步骤105。

相反的,如果两个校验信息不一致,说明从服务器接收到的指定更新信息并不完整,确定校验没有通过。进一步的,当校验没有通过时,可以重新从服务器下载指定更新信息,然后再执行步骤105b重新进行完整性的校验。

针对步骤105的实现,本发明实施例在此提供了以下可行的实施方式。如图3所示,包括:

301、通过调用安卓调试桥的启用命令,运行安卓调试桥。

需要说明的是,当应用程序具有安卓调试桥(androiddebugbridge,adb)权限时,才能调用安卓调试桥的相关命令,因此,应用程序需要先启动安卓调试桥,使安卓调试桥进入运行状态。

本发明实施例中,为了使应用程序能够调用安卓调试桥的启用命令和安卓调试桥的相关命令,需要将这些命令配置在实现应用程序的代码中,这样,应用程序可以在指定条件下运行这些命令。

在一种可行的实施方案中,当应用程序从服务器下载指定更新信息,且该指定更新信息通过完整性校验之后,应用程序可以通过调用安卓调试桥的启用命令来开启安卓调试桥。

例如,安卓调试桥的启用命令可以为:#startadbd,也即,应用程序可以通过调用#startadbd来启动安卓调试桥,使安卓调试桥进入运行状态。

需要说明的是,如果通过调用安卓调试桥的启用命令,可以成功开启安卓调试桥,后续就可以调用安卓调试桥的相关命令。如果通过调用安卓调试桥的启用命令,没有成功开启安卓调试桥,将不能调用安卓调试桥的相关命令。进一步的,当通过调用安卓调试桥的启用命令,没有成功开启安卓调试桥时,可以重复调用安卓调试桥的启动命令,再次尝试开启安卓调试桥,直至成功开启安卓调试桥时为止。或者,本发明实施例中,还可以预先为安卓调试桥的启动命令配置对应的重复调用阈值,当通过调用安卓调试桥的启用命令,没有成功开启安卓调试桥时,可以反复调用安卓调试桥的启动命令,但是,如果调用次数达到该重复调用阈值,则停止调用过程,结束流程。

302、在安卓调试桥运行状态下,通过调用安卓调试桥的相关命令启用所述安卓调试桥的命令解析器运行环境。

针对步骤302的实现,本发明实施例在此提供了以下可行的实施方式。如图4所示,包括:

401、在安卓调试桥运行状态下,通过调用安卓调试桥连接命令,建立与所述应用程序所在电子设备中指定设备之间的连接;其中,所述指定设备为承许载所述安卓调试桥的命令解析器运行环境的设备。

需要说明的是,建立与应用程序所在电子设备中该指定设备之间的连接,是为了获取安卓调试桥的命令解析器运行环境。也可以理解为,如果成功建立了与应用程序所在电子设备中指定设备之间的连接,就相当于获取到了安卓调试桥的命令解析器运行环境。

进一步需要说明的是,在该安卓调试桥的命令解析器运行环境下,执行安装命令时才具有安装权限,才能够实现应用程序的自动升级,且在实现应用程序的自动升级时,同时能够实现应用程序的完整升级,而非部分升级。相反的,如果没有获取到安卓调试桥的命令解析器运行环境,也就没有安装权限,如果调用安装命令,操作系统会检测是否具有权限,如果没有权限,将会调用安装命令失败,从而导致无法实现应用程序的自动升级且完整升级。当不具有权限时,只能使用其他的升级方式,如应用程序的被动升级,即用户触发后才能升级,或者,要想实现自动升级时,只能对部分模块进行升级,不能进行完整升级。

另外,需要说明的是,获取安卓调试桥的命令解析器运行环境后,相当于电子设备进入了指定模式,在该安卓调试桥的命令解析器运行环境下进行应用程序的升级,在电子设备处于其他模式时,该升级同样有效。

在一种可行的实施方案中,安卓调试桥连接命令可以为:#adbconnect(指定设备的地址),也即,应用程序可以通过调用#adbconnect(指定设备的地址),请求建立与所述应用程序所在电子设备中指定设备之间的连接。

本发明实施例中,上述指定设备,即承许载所述安卓调试桥的命令解析器运行环境的设备,可以为采用安卓操作系统的电子设备中的模拟器。

在一种可行的实施方案中,安卓调试桥连接命令可以为:#adbconnect172.0.0.1,也即,应用程序可以通过调用命令#adbconnect172.0.0.1,请求建立与所述应用程序所在电子设备中各模拟器之间的连接,其中包含承载安卓调试桥的命令解析器运行环境的模拟器。

或者,在另一种可行的实施方案中,若承载安卓调试桥的命令解析器运行环境的模拟器的端口号为5555,安卓调试桥连接命令可以为:#adbconnect172.0.0.1:5555,也即,应用程序可以通过调用命令#adbconnect172.0.0.1:5555,请求建立与所述应用程序所在电子设备中该模拟器之间的连接。

需要说明的是,安卓调试桥连接命令中包含的地址172.0.0.1是电子设备的地址,应用程序调用的安卓调试桥连接命令中包含该地址时,表示希望建立与该电子设备中各设备的连接,其中包含了上述指定设备。安卓调试桥连接命令中包含的地址172.0.0.1和端口号时,应用程序调用安卓调试桥连接命令,表示希望建立与该电子设备中该端口号对应的设备的连接。因此,通过上述两种安卓调试桥连接命令都可以实现尝试与指定设备之间建立连接。

402、通过调用安卓调试桥设备获取命令,获得已连接设备信息。

403、判断所述已连接设备信息是否包含所述指定设备的信息,如果是执行404,如果否,执行401。

404、当所述已连接设备信息包含所述指定设备的信息时,执行在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级的步骤。

需要说明的是,上述调用安卓调试桥连接命令,是尝试与上述指定设备之间建立连接,但是是否连接成功并不知道,因此,应用程序还可以进一步通过调用安卓调试桥设备获取命令,获取已连接设备信息,该已连接设备信息中包含已经成功建立连接的各设备信息。进一步的,根据该已连接设备信息,检测与该指定设备之间的连接是否建立成功。具体的,如果该已连接设备信息中包含上述指定设备的信息时,认为与该指定设备之间的连接建立成功,也即,成功获取到安卓调试桥的命令解析器运行环境,然后就可以进行应用程序的升级,即执行步骤103。

相反的,如果该已连接设备信息中没有包含上述指定设备的信息时,认为与该指定设备之间的连接建立失败,没有获取到安卓调试桥的命令解析器运行环境,应用程序还可以重复调用上述安卓调试桥连接命令,再次尝试建立与所述应用程序所在电子设备中指定设备之间的连接。

需要说明的是,在与该指定设备之间的连接建立失败后,应用程序可以反复调用上述安卓调试桥连接命令,来尝试建立连接,直到与该指定设备之间的连接建立成功时停止,或者,也可以预先为该安卓调试桥连接命令设置对应的重复调用阈值,当应用程序反复调用上述安卓调试桥连接命令的次数达到该重复调用阈值时,停止调用,如果仍然没有与该指定设备之间成功建立连接,可以结束当前流程。

在一种可行的实施方案中,安卓调试桥设备获取命令可以为:#adbdevices,也即,应用程序可以通过调用#adbdevices,获得已连接设备信息。

针对步骤106的实现,本发明实施例在此提供了以下可行的实施方式。

在一种可行的实施方案中,在安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级可以包括:在所述安卓调试桥的命令解析器运行环境中,通过调用安装命令,在所述指定设备中加载所述指定更新信息。

需要说明的是,如果成功建立了与应用程序所在电子设备中指定设备之间的连接,就相当于获取到了安卓调试桥的命令解析器运行环境。在该安卓调试桥的命令解析器运行环境下,执行安装命令时才具有安装权限。因此,本发明实施例中,在安卓调试桥的命令解析器运行环境中,应用程序通过调用安装命令,在指定设备中加载获取的指定更新信息,实现了应用程序的自动升级。

在一种可行的实施方案中,上述安装命令可以为:

#adb–semulator-5444shellpminstall–rxxx.apk。

也即,应用程序可以通过调用#adb–semulator-5444shellpminstall–rxxx.apk,在指定设备中加载指定更新信息。

以应用程序的指定更新信息是应用程序的升级包为例,该安装命令中,emulator-5444为承载安卓调试桥的命令解析器运行环境的模拟器的名称,xxx.apk表示升级包,该安装命令表示:在模拟器emulator-5444上安装升级包xxx.apk。

在另一种可行的实施方案中,上述安装命令可以为:

#adb–s127.0.0.1:5555shellpminstall–rxxx.apk。

也即,应用程序可以通过调用#adb–s127.0.0.1:5555shellpminstall–rxxx.apk,在指定设备中加载指定更新信息。

以应用程序的指定更新信息是应用程序的升级包为例,该安装命令中,127.0.0.1:5555为上述承载安卓调试桥的命令解析器运行环境的指定设备的地址,其中,5555为该指定设备的端口号,xxx.apk表示升级包,该安装命令表示:在127.0.0.1:5555所代表的设备上安装升级包xxx.apk。

下面以指定更新信息为升级包为例进行举例说明。

请参考图5,其为本发明实施例所提供的应用程序与服务器交互实现升级包下载的流程示意图,如图5所示,包括:

501、服务器获得配置的升级策略。

502、应用程序向服务器发送更新检测请求,以实现升级检测。

503、服务器根据更新检测请求,将应用程序的当前版本信息与该应用程序的最新版本信息进行比对,发现两者不一致,说明存在升级包。

504、服务器生成升级信息,该升级信息可以包括升级包的下载地址和校验信息。

505、服务器向应用程序返回更新检测响应,其携带该升级信息。

506、应用程序提取升级包的下载地址。

507、应用程序基于该下载地址,向服务器发送下载请求。

508、服务器根据下载请求,获得升级包。

509、服务器向应用程序返回下载响应,其携带该升级包。

510、应用程序根据接收到的升级包,生成校验信息。

511、应用程序将自身生成的校验信息与从服务器获得的校验信息进行比对,得到比对结果。

如果比对结果是两个校验信息一致,需要执行后续的升级包安装流程。如果两个校验信息不一致,需要重新下载安装包。

下面以指定设备为指定模拟器emulator-5444为例进行举例说明。

请参考图6,其为本发明实施例所提供的应用程序升级包安装的流程示意图,如图6所示,包括:

601、应用程序调用安卓调试桥的启用命令#startadbd,以运行安卓调试桥。

602、在安卓调试桥运行状态下,应用程序调用安卓调试桥连接命令#adbconnect172.0.0.1,请求建立与应用程序所在电子设备中一个或多个模拟器之间的连接。

603、应用程序调用安卓调试桥设备获取命令#adbdevices,获得已连接设备信息,该已连接设备信息中包含该电子设备中一个或多个模拟器中各模拟器的名称。

604、应用程序判断已连接设备信息中是否包含模拟器emulator-5444,如果是,执行步骤605;如果不是,执行步骤602。

605、应用程序调用安装命令#adb–semulator-5444shellpminstall–rxxx.apk或者安装命令#adb–semulator-5444shellpminstall–rxxx.apk,在模拟器emulator-5444中安装升级包。

本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。

本发明实施例还提供了一种应用程序升级装置,该装置设置于应用程序中。请参考图7,其为本发明实施例所提供的应用程序升级装置的功能方块图。如图所示,该装置包括:

发送单元10,用于向服务器发送更新检测请求;

接收单元20,用于接收所述服务器根据所述更新检测请求返回的下载地址;

所述发送单元10,还用于根据所述下载地址,向所述服务器发送下载请求;

所述接收单元20,还用于接收所述服务器根据所述下载请求返回的指定更新信息;

环境获取单元30,用于通过调用指定命令,启用安卓调试桥的命令解析器运行环境;

升级处理单元40,用于在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级。

在一种可行的实施方案中,所述环境获取单元30,具体用于:

通过调用安卓调试桥的启用命令,运行安卓调试桥;

在安卓调试桥运行状态下,通过调用安卓调试桥的相关命令启用所述安卓调试桥的命令解析器运行环境。

在一种可行的实施方案中,所述环境获取单元30用于在安卓调试桥运行状态下,通过调用安卓调试桥的相关指令启用所述安卓调试桥的命令解析器运行环境时,具体用于:

在安卓调试桥运行状态下,通过调用安卓调试桥连接命令,建立与所述应用程序所在电子设备中指定设备之间的连接;其中,所述指定设备为承载所述安卓调试桥的命令解析器运行环境的设备。

在一种可行的实施方案中,所述环境获取单元30,具体还用于:

通过调用安卓调试桥设备获取命令,获得已连接设备信息;

判断所述已连接设备信息是否包含所述指定设备的信息;

当所述已连接设备信息包含所述指定设备的信息时,触发所述升级处理单元执行在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级。

在一种可行的实施方案中,所述升级处理单元40,具体用于:在所述安卓调试桥的命令解析器运行环境中,通过调用安装命令,在所述指定设备中加载所述指定更新信息。

在一种可行的实施方案中,如图8所示,所述接收单元10,还用于:接收所述服务器返回的校验信息;

所述装置还包括:

信息校验单元50,用于基于所述校验信息,对所述指定更新信息进行校验;并当校验通过时,触发环境获取单元执行通过调用指定命令,启用安卓调试桥的命令解析器运行环境。

由于本实施例中的各单元能够执行图1至图6所示的方法,本实施例未详细描述的部分,可参考对图1至图6的相关说明。

本发明实施例还提供了一种计算机可读介质,包括:计算机可执行指令,当该计算机可执行指令被运行时执行以下步骤:

向服务器发送更新检测请求;

接收所述服务器根据所述更新检测请求返回的下载地址;

根据所述下载地址,向所述服务器发送下载请求;

接收所述服务器根据所述下载请求返回的指定更新信息;

通过调用指定命令,启用安卓调试桥的命令解析器运行环境;

在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级。

在一种可行的实施方案中,通过调用指定命令,启用安卓调试桥的命令解析器运行环境的步骤具体包括:

通过调用安卓调试桥的启用命令,运行安卓调试桥;

在安卓调试桥运行状态下,通过调用安卓调试桥连接命令,建立与所述应用程序所在电子设备中指定设备之间的连接;其中,所述指定设备为承载所述安卓调试桥的命令解析器运行环境的设备。

在一种可行的实施方案中,在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级之前,还执行以下步骤:

通过调用安卓调试桥设备获取命令,获得已连接设备信息;

判断所述已连接设备信息是否包含所述指定设备的信息;

当所述已连接设备信息包含所述指定设备的信息时,执行在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级的步骤。

在一种可行的实施方案中,在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级的步骤包括:

在所述安卓调试桥的命令解析器运行环境中,通过调用安装命令,在所述指定设备中加载所述指定更新信息。

在一种可行的实施方案中,接收所述服务器根据所述下载请求返回的指定更新信息时,还执行步骤:接收所述服务器返回的校验信息;

通过调用指定命令,启用安卓调试桥的命令解析器运行环境之前,还执行以下步骤:

基于所述校验信息,对所述指定更新信息进行校验;

当校验通过时,执行通过调用指定命令,启用安卓调试桥的命令解析器运行环境的步骤。

本发明实施例的技术方案具有以下有益效果:

本发明实施例中,获取指定更新信息之后,通过调用指定命令,启用安卓调试桥的命令解析器运行环境,进而在所述安卓调试桥的命令解析器运行环境中,基于所述指定更新信息进行所述应用程序的升级;由于获取到安卓调试桥的命令解析器运行环境后,就可以具有权限,从而可以实现自动升级。该自动升级方案可以不需要用户点击相应按键触发升级,因此可以避免由于用户不点击相应按键所带来的应用程序的老版本仍需维护的问题,从而在一定程度上降低了应用程序的版本碎片化程度,从而在一定程度上降低了维护成本。另外,由于避免了用户点击相应按键,可以实现简化升级操作,从而提高了应用程序的升级效率。

此外,本发明实施例所提供的技术方案实现了自动升级,达到了静默升级的效果,避免了强制升级方式给用户带来的不良体验,提升了用户体验。而且,本发明实施例通过获取安卓调试桥的命令解析器运行环境,来得到权限,进一步由于具有权限,就可以根据得到的指定更新信息进行应用程序的完整升级。

而且,与现有技术中需要通过计算机与终端连接,通过计算机下载更新信息并安装到终端的技术方案相比,本发明实施例所提供的技术方案,终端本地的应用程序与服务器进行交互,下载更新信息,并在本地运行安卓调试桥的相关命令,以跨越权限,完成应用程序的升级,因此不需要将终端与计算机连接,无需依赖计算机的下载及安装,摆脱了需要使用计算机才能完成安装的限制,提高了应用程序升级的灵活性,提高了升级效率。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

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

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