一种主程序升级方法和支持主程序升级的设备
技术领域
本发明涉及计算机科学技术领域,更具体地,涉及一种主程序升级方法和支持主程序升级的设备。
背景技术
随着计算机技术的发展,对设备专业化、小型化和可适配性的要求越来越高。应运而生出现了很多小型专门化设备,例如机顶盒、WIFI控制模块、红外传输模块、蓝牙传输模块、调制解调模块等等,以前这些设备的功能单一,因此软件、硬件和固件在出厂后不做更新和升级。但随着设备之间配合的要求不断提高、所需功能的不断强大和云计算技术的不断普及,必然要求这些设备在后期进行不断更新和升级。而另一方面由于这些设备的小型化特征,很多设备没有也无需配置显示屏幕。对于这些无显示屏的设备,后台更新和升级程序没有人为的参与,完全依靠程序自身完成更新和升级,一旦程序内部出现问题,没有显示屏、没有任何提示,程序模块就会崩溃或者卡壳。且升级过程中,人为无法干预,一旦出错,会导致整个设备的无法工作。因此如何在无显示屏的情况下进行设备操作系统的更新和升级,是一个需要解决的问题。
发明内容
本发明的一个目的是提供一种主程序升级方法的新技术方案。
根据本发明的第一方面,提供了一种主程序升级的方法,包括如下步骤:
在设备上置入主程序和守护程序,
主程序监控守护程序的运行状态,当守护程序未启动时,由主程序启动并运行守护程序,
守护程序在运行时收集设备信息发送至服务器,并根据需要控制对主程序进行升级,以及
当主程序升级出错或失败时,由守护程序修复或重新安装所备份的主程序。
优选地,当主程序进行升级时,或者当主程序升级出错或失败时,由守护程序向用户发送当前主程序正在升级禁止用户误操作的通知,以及
当主程序升级出错或失败时,由守护程序保存错误日志并安排将所述错误日志发送给服务器。
优选地,当守护程序出错时,由主程序下载守护程序安装包,重新安装和启动守护程序,或
在设备存储介质上保存守护程序安装包,主程序监控守护程序的运行状态,当守护程序出错时,由主程序读取存储介质上保存的守护程序安装包,重新安装和启动守护程序。
进一步,优选地,当检测到守护程序有新的升级版本时,且满足预定的守护程序升级条件时,由主程序下载守护程序升级安装包,并控制对守护程序进行升级安装。
进一步,优选地,当守护程序升级出错或失败时,由主程序强制删除已下载的守护程序升级安装包,并读取存储介质上保存的守护程序安装包,重新安装和启动守护程序。
更优选地,当守护程序被安装后,由主程序对新安装的守护程序进行测试,当测试通过后,由主程序安排将本次安装守护程序所对应的安装包保存到存储介质上,以替代之前保存的守护程序安装包。
根据本发明的第二方面提供了一种支持主程序升级的设备,包括:
主程序运行处理模块,用于监控守护程序的运行状态,当守护程序未启动时启动并运行守护程序,
守护程序运行处理模块,用于收集设备信息发送至服务器,并根据需要控制对主程序进行升级,以及当主程序升级出错或失败时,修复或重新安装所备份的主程序。
优选地,所述守护程序运行处理模块还用于:
当主程序进行升级时,或者当主程序升级出错或失败时,向用户发送当前主程序正在升级禁止用户误操作的通知,以及
当主程序升级出错或失败时,保存错误日志并安排将所述错误日志发送给服务器。
优选地,所述主程序运行处理模块还用于:当守护程序出错时,下载守护程序安装包,重新安装和启动守护程序,或
当守护程序出错时,读取存储介质上预先保存的守护程序安装包,重新安装和启动守护程序。
进一步,优选地,所述主程序运行处理模块还用于:当检测到守护程序有新的升级版本时,且满足预定的守护程序升级条件时,下载守护程序升级安装包,并控制对守护程序进行升级安装。
进一步,优选地,所述主程序运行处理模块还用于:当守护程序升级出错或失败时,强制删除已下载的守护程序升级安装包,并读取存储介质上保存的守护程序安装包,重新安装和启动守护程序。
更优选地,所述主程序运行处理模块还用于:当守护程序被安装后,对新安装的守护程序进行测试,当测试通过后,安排将本次安装守护程序所对应的安装包保存到存储介质上,以替代之前保存的守护程序安装包。
本发明的发明人发现,在现有技术中,还没有针对无法干预的情况下对设备进行更新和升级提供保障的方案,而本发明的方法和设备基于主程序和守护程序相互支撑的架构,由主程序和守护程序分别各自承担对方程序的升级和更新的控制、管理和补救,从而实现了设备,特别是无显示屏的设备的操作系统的安全更新和升级。因此,本发明所要实现的技术任务或者所要解决的技术问题是本领域技术人员从未想到的或者没有预期到的,故本发明是一种新的技术方案。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是显示可用于实现本发明的实施例的支持主程序升级的设备的框图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
根据本发明第一实施例的一种主程序升级的方法,包括如下步骤:在设备上置入主程序和守护程序。所述设备可以是例如物联网网关、WIFI模块、机顶盒或者调制解调器等,特别是不具备显示屏的此类设备。其中主程序是指承载主要业务的安卓应用程序,例如物联网网关联动程序。守护程序是指守护主程序的安卓应用程序。主程序和守护程序的表现形式可以是例如基于安卓系统的应用程序。
所述主程序和守护程序形成相互支撑的架构,由主程序和守护程序分别各自承担对方程序的升级和更新的控制、管理和补救,具体来说:
所述主程序监控守护程序的运行状态,当守护程序未启动时,由主程序启动并运行守护程序。当守护程序出错时,可以通过多种方式进行恢复,例如当守护程序出错时,可以由主程序下载守护程序安装包,重新安装和启动守护程序;或在设备存储介质上保存守护程序安装包,当守护程序出错时,由主程序读取存储介质上保存的守护程序安装包,重新安装和启动守护程序。
当检测到守护程序有新的升级版本时,且满足预定的守护程序升级条件时,由主程序下载守护程序升级安装包,并控制对守护程序进行升级安装。当守护程序升级出错或失败时,由主程序强制删除已下载的守护程序升级安装包,并读取存储介质上保存的守护程序安装包,重新安装和启动守护程序。当守护程序被安装后,由主程序对新安装的守护程序进行测试,当测试通过后,由主程序安排将本次安装守护程序所对应的安装包保存到存储介质上,以替代之前保存的守护程序安装包。其中所述满足预定的守护程序升级条件可以是例如检测电量大于60%,无干扰设备连接(例如手机连接),守护程序未工作在升级主程序,且守护程序有新的升级安装包。
同时,守护程序在运行时收集设备信息发送至服务器,并根据需要控制对主程序进行升级,以及当主程序升级出错或失败时,由守护程序修复或重新安装所备份的主程序。此处,守护程序所收集的设备信息包括,例如CPU占用率、内存占用率、主程序是否启动、是否有错误信息等。
当主程序进行升级时,或者当主程序升级出错或失败时,由守护程序向用户发送当前主程序正在升级禁止用户误操作的通知,以及当主程序升级出错或失败时,由守护程序保存错误日志并安排将所述错误日志发送给服务器。
此外,如图1所示,根据本发明的第二实施例还提供一种支持主程序升级的设备,该设备可以是例如物联网网关、WIFI模块、机顶盒或者调制解调器等,特别是不具备显示屏的此类设备。
所述设备包括:主程序运行处理模块、守护程序运行处理模块以及存储器。
所述主程序运行处理模块于监控守护程序的运行状态,当守护程序未启动时启动并运行守护程序。当守护程序出错时,所述主程序运行处理模块下载守护程序安装包,重新安装和启动守护程序,或当守护程序出错时,读取存储介质上预先保存的守护程序安装包,重新安装和启动守护程序。当检测到守护程序有新的升级版本时,且满足预定的守护程序升级条件时,主程序运行处理模块下载守护程序升级安装包,并控制对守护程序进行升级安装。当守护程序升级出错或失败时,主程序运行处理模块强制删除已下载的守护程序升级安装包,并读取存储介质上保存的守护程序安装包,重新安装和启动守护程序。当守护程序被安装后,主程序运行处理模块对新安装的守护程序进行测试,当测试通过后,安排将本次安装守护程序所对应的安装包保存到存储介质上,以替代之前保存的守护程序安装包。
所述守护程序运行处理模块,用于收集设备信息发送至服务器,并根据需要控制对主程序进行升级,以及当主程序升级出错或失败时,修复或重新安装所备份的主程序。所述守护程序运行处理模块还用于:当主程序进行升级时,或者当主程序升级出错或失败时,向用户发送当前主程序正在升级禁止用户误操作的通知,以及当主程序升级出错或失败时,保存错误日志并安排将所述错误日志发送给服务器。
本发明可以是设备、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如JAVA、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到可编程数据处理装置、或其它设备上,使得在可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机化实现的过程,从而使得在可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。