一种终端异常恢复方法及终端与流程

文档序号:12363224阅读:317来源:国知局
一种终端异常恢复方法及终端与流程

本发明涉及系统恢复技术,尤其涉及一种终端异常恢复方法及终端。



背景技术:

本申请发明人在实现本申请实施例技术方案的过程中,至少发现相关技术中存在如下技术问题:

随着宽带技术的普及,各种智能终端为用户的生活提供了各种便利,比如智能终端为数字机顶盒的一种实现方式,数字机顶盒越来越成为智能家居研究的热点。目前的数字机顶盒的主要以安卓机顶盒发展最为迅速,它依托安卓手机的极高占有率,提供了与手机相似的用户体验,最容易向大众普及,有着广泛的商用前景。

安卓系统本身没有提供数字电视服务,需要机顶盒厂家在开源代码基础上实现数字电视业务层软件(以下简称业务层)。这个业务层是机顶盒的核心功能,必须保证业务层的安全稳定。

安卓机顶盒有其开放、可扩展的特点,用户可以安装第三方的应用,接入多种外设。但是由于第三方应用、外设的质量不可控,有可能在使用时破坏了安卓基础框架,甚至删掉了系统关键文件,导致系统崩溃。

系统崩溃后目前有3种异常恢复方式:方式1)用户拿到运营商处调换,由专业人员刷机恢复;方式2)在机顶盒外设置专门的实体按钮,用户按下按钮后手动恢复到出厂设置;方式3)在机顶盒设置界面内设置软件按钮,用户按下按钮后手动恢复到出厂设置。

采用上述现有的3种异常恢复方式,存在以下问题:

采用方式1)需要耗费大量的时间精力,花费大量的维修成本;采用方式2) 和方式3)需要用户识别出运行异常,需要有一定的专业背景,有些异常比较隐蔽,不易观察,因此用户体验较差;另外,采用方式2)还需要额外的硬件成本。因此,在智能终端为数字机顶盒时,以安卓系统的数字机顶盒为例,迫切需要机顶盒有更先进的自动恢复的功能,以提高安卓机顶盒业务稳定性,降低成本,提高用户体验。



技术实现要素:

有鉴于此,本发明实施例希望提供一种终端异常恢复方法及终端,至少解决了现有技术的问题。

本发明实施例的技术方案是这样实现的:

本发明实施例提供了一种终端异常恢复方法,所述方法包括:

终端启动后,对业务层内各个业务模块的状态进行自检,得到各个业务模块的状态标志;

根据所述各个业务模块的状态标志判断当前工作状态是否正常,得到判断结果;

所述判断结果为当前工作状态为异常时,进入系统恢复模式,实现系统自动恢复。

上述方案中,所述方法还包括:

配置定时器,所述定时器用于当前工作状态为异常下启动所述系统恢复模式;

启动所述定时器后,判断所述定时器对应的定时时间是否到达,如果达到,则将备用分区的内容拷贝到主用分区,以用于进入所述系统恢复模式时实现系统自动恢复。

上述方案中,所述终端启动后,对业务层内各个业务模块的状态进行自检,获得各个业务模块的状态标志还包括:

与启动所述定时器同步或异步的方式,启动并运行所述终端的默认系统,默认系统执行进入业务层,对所述业务层内各个业务模块的状态进行自检,自 检完成后设置所述各个业务模块的状态标志。

上述方案中,所述根据所述各个业务模块的状态标志判断当前工作状态是否正常,包括:

所述各个业务模块的状态标志设置为异常和正常两种方式;

若所述各个业务模块的状态标志皆设置为正常,则当前工作状态为正常;

若所述各个业务模块的状态标志中的至少一个状态标志设置为异常,则当前工作状态为异常。

上述方案中,所述方法还包括:

所述当前工作状态为正常时,发出握手请求;

所述定时器等待所述握手请求的到达,在所述定时器对应的定时时间内收到所述握手请求后,得到握手成功的结果,则取消所述定时器,进入系统正常工作模式。

上述方案中,所述方法还包括:

所述当前工作状态为异常时,不发出握手请求;

所述定时器等待所述握手请求的到达,在所述定时器对应的定时时间内未收到所述握手请求后,得到握手失败的结果,则进入系统恢复模式,将备用分区的内容拷贝到主用分区,以用于进入所述系统恢复模式时实现系统自动恢复。

本发明实施例还提供了一种终端,所述终端包括:

主控模块,用于终端启动后,对业务层内各个业务模块的状态进行自检,得到各个业务模块的状态标志,根据所述各个业务模块的状态标志判断当前工作状态是否正常,得到判断结果,所述判断结果为当前工作状态为异常时,进入系统恢复模式,实现系统自动恢复。

上述方案中,所述终端还包括:

Moniter驱动模块,用于配置定时器,所述定时器用于当前工作状态为异常下启动所述系统恢复模式,启动所述定时器后,判断所述定时器对应的定时时间是否到达,如果达到,则将备用分区的内容拷贝到主用分区,以用于进入所述系统恢复模式时实现系统自动恢复。

上述方案中,所述主控模块,进一步用于与启动所述定时器同步或异步的方式,启动并运行所述终端的默认系统,默认系统执行进入业务层,对所述业务层内各个业务模块的状态进行自检,自检完成后设置所述各个业务模块的状态标志。

上述方案中,所述主控模块,进一步用于在所述各个业务模块的状态标志设置为异常和正常两种方式情况下,若所述各个业务模块的状态标志皆设置为正常,则当前工作状态为正常,若所述各个业务模块的状态标志中的至少一个状态标志设置为异常,则当前工作状态为异常。

上述方案中,所述主控模块,进一步用于所述当前工作状态为正常时,发出握手请求;

所述Moniter驱动模块,进一步用于支持所述定时器等待所述握手请求的到达,在所述定时器对应的定时时间内收到所述握手请求后,得到握手成功的结果,则取消所述定时器,提醒所述主控模块进入系统正常工作模式。

上述方案中,所述主控模块,进一步用于所述当前工作状态为异常时,不发出握手请求;以及,根据备用分区的内容实现系统自动恢复;

所述Moniter驱动模块,进一步用于支持所述定时器等待所述握手请求的到达,在所述定时器对应的定时时间内未收到所述握手请求后,得到握手失败的结果,则提醒所述主控模块进入系统恢复模式;以及,将备用分区的内容拷贝到主用分区,以用于进入所述系统恢复模式时实现系统自动恢复。

本发明实施例的终端异常恢复方法包括:终端启动后,对业务层内各个业务模块的状态进行自检,得到各个业务模块的状态标志;根据所述各个业务模块的状态标志判断当前工作状态是否正常,得到判断结果;所述判断结果为当前工作状态为异常时,进入系统恢复模式,实现系统自动恢复。

采用本发明实施例,能通过对业务层内各个业务模块的状态进行自检,得到各个业务模块的状态标志,根据所述各个业务模块的状态标志判断当前工作状态是否正常,得到判断结果,所述判断结果为当前工作状态为异常时,进入系统恢复模式,实现系统自动恢复。从而,不需要任何人工参与,节约了时间 成本,而且对于系统异常情况,可以做到实时检测,及早发现问题,及早恢复系统以解决问题。

附图说明

图1为本发明方法实施例的实现流程示意图;

图2为本发明终端实施例的组成结构示意图;

图3为现有技术的系统架构示意图;

图4为应用本发明实施例的系统架构示意图;

图5为应用本发明实施例的moniter驱动实现流程示意图;

图6为应用本发明实施例的主控模块实现流程示意图;

图7为现有技术的业务模块实现流程示意图;

图8为应用本发明实施例的业务模块实现流程示意图;

图9为应用本发明实施例的异常检测恢复的实现流程图。

具体实施方式

下面结合附图对技术方案的实施作进一步的详细描述。

图1为本发明方法实施例的实现流程示意图,本发明实施例的终端异常恢复方法,如图1所示,包括:

步骤101、终端启动后,对业务层内各个业务模块的状态进行自检,得到各个业务模块的状态标志。

步骤102、根据所述各个业务模块的状态标志判断当前工作状态是否正常,得到判断结果。

步骤103、所述判断结果为当前工作状态为异常时,进入系统恢复模式,实现系统自动恢复。

在本发明实施例一实施方式中,所述方法还包括:

配置定时器,所述定时器用于当前工作状态为异常下启动所述系统恢复模式;启动所述定时器后,判断所述定时器对应的定时时间是否到达,如果达到, 则将备用分区的内容拷贝到主用分区,以用于进入所述系统恢复模式时实现系统自动恢复。

在本发明实施例一实施方式中,所述终端启动后,对业务层内各个业务模块的状态进行自检,获得各个业务模块的状态标志还包括:与启动所述定时器同步或异步的方式,启动并运行所述终端的默认系统,默认系统执行进入业务层,对所述业务层内各个业务模块的状态进行自检,自检完成后设置所述各个业务模块的状态标志。

这里需要指出的是,所述与启动所述定时器同步或异步的方式,包括至少三种情况:1)与启动所述定时器的同时,启动并运行所述终端的默认系统,默认系统执行进入业务层,通过主控模块对所述业务层内各个业务模块的状态进行自检,自检完成后设置所述各个业务模块的状态标志;2)与启动所述定时器的之前,启动并运行所述终端的默认系统,默认系统执行进入业务层,通过主控模块对所述业务层内各个业务模块的状态进行自检,自检完成后设置所述各个业务模块的状态标志;3)与启动所述定时器的之后,启动并运行所述终端的默认系统,默认系统执行进入业务层,通过主控模块对所述业务层内各个业务模块的状态进行自检,自检完成后设置所述各个业务模块的状态标志。

在本发明实施例一实施方式中,所述根据所述各个业务模块的状态标志判断当前工作状态是否正常,包括:

所述各个业务模块的状态标志设置为异常和正常两种方式;

若所述各个业务模块的状态标志皆设置为正常,则当前工作状态为正常;

若所述各个业务模块的状态标志中的至少一个状态标志设置为异常,则当前工作状态为异常。

在本发明实施例一实施方式中,所述方法还包括:

所述当前工作状态为正常时,发出握手请求;

所述定时器等待所述握手请求的到达,在所述定时器对应的定时时间内收到所述握手请求后,得到握手成功的结果,则取消所述定时器,进入系统正常工作模式。

在本发明实施例一实施方式中,所述方法还包括:

所述当前工作状态为异常时,不发出握手请求;

所述定时器等待所述握手请求的到达,在所述定时器对应的定时时间内未收到所述握手请求后,得到握手失败的结果,则进入系统恢复模式,将备用分区的内容拷贝到主用分区,以用于进入所述系统恢复模式时实现系统自动恢复。

图2为本发明终端实施例的组成结构示意图,本发明实施例的终端,如图2所示,所述终端包括:

主控模块11用于终端启动后,对业务层内各个业务模块的状态进行自检,得到各个业务模块的状态标志,根据所述各个业务模块的状态标志判断当前工作状态是否正常,得到判断结果,所述判断结果为当前工作状态为异常时,进入系统恢复模式,实现系统自动恢复。moniter驱动模块12用于配置定时器,所述定时器用于当前工作状态为异常下启动所述系统恢复模式,启动所述定时器后,判断所述定时器对应的定时时间是否到达,如果达到,则将备用分区的内容拷贝到主用分区,以用于进入所述系统恢复模式时实现系统自动恢复。

在本发明实施例一实施方式中,所述主控模块,进一步用于与启动所述定时器同步或异步的方式,启动并运行所述终端的默认系统,默认系统执行进入业务层,对所述业务层内各个业务模块的状态进行自检,自检完成后设置所述各个业务模块的状态标志。

在本发明实施例一实施方式中,所述主控模块,进一步用于在所述各个业务模块的状态标志设置为异常和正常两种方式情况下,若所述各个业务模块的状态标志皆设置为正常,则当前工作状态为正常,若所述各个业务模块的状态标志中的至少一个状态标志设置为异常,则当前工作状态为异常。

在本发明实施例一实施方式中,所述主控模块,进一步用于所述当前工作状态为正常时,发出握手请求;

所述moniter驱动模块,进一步用于支持所述定时器等待所述握手请求的到达,在所述定时器对应的定时时间内收到所述握手请求后,得到握手成功的 结果,则取消所述定时器,提醒所述主控模块进入系统正常工作模式。

在本发明实施例一实施方式中,所述主控模块,进一步用于所述当前工作状态为异常时,不发出握手请求;以及,根据备用分区的内容实现系统自动恢复;

所述moniter驱动模块,进一步用于支持所述定时器等待所述握手请求的到达,在所述定时器对应的定时时间内未收到所述握手请求后,得到握手失败的结果,则提醒所述主控模块进入系统恢复模式;以及,将备用分区的内容拷贝到主用分区,以用于进入所述系统恢复模式时实现系统自动恢复。

以一个现实应用场景为例对本发明实施例阐述如下:

本应用场景为一个智能终端为数字机顶盒,且数字机顶盒为安卓系统的情况,对于这种情况,现有的系统结构如图3所示,从下往上分为启动引导程序(bootloader)层、操作系统内核(kernel)、驱动层、安卓框架层、业务层。其中业务层由业务模块A~业务模块Z组成。

基于这种现有的系统结构,如图7所示的业务模块流程包括:步骤301、数字机顶盒开机后业务启动流程;步骤302、完成启动流程。整个流程不存在自检操作,如果发现系统异常,只能人工进行系统恢复操作,必然导致人工参与和成本高的问题。

对于这个问题,本应用场景应用本发明实施例为安卓智能机顶盒领域中一种新式的机顶盒异常检测及恢复方案,能自动为运行异常的智能机顶盒恢复至正常状态,异常自检和自动恢复流程基于如图4所示的系统架构,所做的改动都是软件改动,包括以下内容:

1、增加驱动层的moniter驱动模块。moniter驱动可以为一个定时器,定时时间到则将备用分区内容拷贝到主分区,以用于异常情况下的系统自动恢复,触发moniter驱动模块后的流程如图5所示,在后续的应用实例中描述。

2、增加业务层的主控模块。主控模块用于检测其它业务模块的状态标志,如业务模块A~业务模块Z的状态标志,当检测到各模块状态标志都正常后,发出握手请求,与moniter驱动模块握手,握手成功后,关闭moniter驱动模块, moniter驱动模块退出,则主控模块进入正常工作状态,如图6所示。

3、业务层其它模块的修改。原来的业务模块执行的流程如图7所示,运用本发明实施例后的业务模块流程图如图8所示,业务模块在启动时根据启动结果,将状态标志更改为正常或异常,具体的流程在后续应用实例描述。

应用实例一:

如图5所示为触发moniter驱动模块后的流程,包括:

步骤201、启动moniter驱动模块。

步骤202、启动moniter驱动模块后,开启定时器。

步骤203、判断定时时间是否已经到达,如果是,则执行步骤204;否则,执行步骤206。

步骤204、将备用分区内容拷贝到主用分区,以用于系统异常时的自动恢复。

步骤205、重启系统,结束当前流程。

步骤206、判断是否收到握手信号,如果是,执行步骤207,否则,转入执行步骤203。

步骤207、取消定时器。

步骤208、退出moniter驱动模块。

应用实例二:

如图8所示为业务模块执行的系统异常自检的流程,包括:

步骤401、开始业务启动流程;

步骤402、判断流程是否异常,如果是,执行步骤403,否则,执行步骤404。

步骤403、设置状态标志为异常。

步骤404、设置状态标志为正常。

应用本发明实施例分为以下两种场景:

场景一:自检发现系统正常的情况下,包括:

步骤501:bootloader启动成功后,启动kernel。

步骤502:kernel启动后,加载moniter驱动模块,同时也启动安卓框架,安卓框架把业务层和主控模块启动起来。

这里,需要指出的是,加载moniter驱动模块的同时可以启动安卓框架,以通过安卓框架把业务层和主控模块启动起来;也可以加载moniter驱动模块的之前或之后启动安卓框架。也就是说,moniter驱动模块和安卓框架可以同时启动,也可以异步启动。

步骤503:moniter驱动模块启动后建立计时器,等待主控模块发送的握手信号的到来。

步骤504:业务层的各模块启动后,进行自检,自检成功后设置模块的状态标志。

步骤505:主控模块检查各业务模块的状态标志,当各模块的状态标志都正常后,说明系统没有异常,则发出握手请求,请求与moniter驱动模块握手。

步骤506:握手成功后,moniter驱动模块退出,主控模块进入正常工作状态。

场景二:自检发现系统正常的情况下,包括:

步骤601:bootloader启动成功后,启动kernel。

步骤602:kernel启动后,加载moniter驱动模块,同时也启动安卓框架,安卓框架把业务层和主控模块启动起来。

步骤603:moniter驱动模块启动后建立计时器,等待主控模块发送的握手信号的到来。

步骤604:业务层各模块启动后,进行自检,自检完成后设置模块的状态标志,假设此时A模块自检失败,A模块的标志标记成异常。

步骤605:主控模块检查到A模块状态标志的异常,不发送和moniter驱动模块的握手请求。

步骤606:moniter驱动模块在规定时间内没有收到主控模块的握手请求, 启动异常恢复功能。将备用分区内容覆盖到主分区上。

步骤607:恢复完成,重启系统。

应用实例三:

如图9为应用本发明实施例的异常检测恢复的一个完整流程,包括:

步骤701、启动bootloader。

步骤702、启动kernel。

步骤703、启动moniter驱动模块。

步骤704、moniter驱动模块开始计时。

步骤705、判断是否收到主控模块发送的握手信号,如果是,执行步骤706,否则,执行步骤707。

步骤706、退出moniter驱动模块,结束当前流程。

步骤707、判断计时时间是否到达,如果是,则执行步骤708;否则,执行步骤704。

步骤708、进入系统自动恢复流程,之后,结束当前流程。

步骤709、在启动moniter驱动模块的同时,或者启动moniter驱动模块的之前或之后启动安卓框架。

步骤710、启动业务层。

步骤711、启动主控模块。

步骤712、通过主控模块检查业务组件状态。

步骤713、判断各业务是否正常启动,如果是,执行步骤714,否则,执行步骤712。

步骤714、主控模块与moniter驱动模块握手。

步骤715、各业务的业务模块处于正常工作状态。

综上所述,本应用场景采用本发发明实施例:在智能机顶盒启动时,主控模块查询业务层内各模块状态标志,判断当前状态是否正常,决定是否进入系统恢复模式,与现有技术相比,减少了人工干预环节,在第一时间检测出了异 常,提高了系统安全性,降低了维护成本。

本发明实施例所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。

相应的,本发明实施例还提供一种计算机存储介质,其中存储有计算机程序,该计算机程序用于执行本发明实施例的终端异常恢复方法。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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