一种修复开机异常问题的方法、装置、存储介质及终端与流程

文档序号:17397731发布日期:2019-04-13 00:57阅读:453来源:国知局
一种修复开机异常问题的方法、装置、存储介质及终端与流程

本申请实施例涉及智能设备技术,尤其涉及一种修复开机异常问题的方法、装置、存储介质及终端。



背景技术:

随着终端的智能化程度增加,其在人们的日常生活中的应用越来越普及。然而,由于终端的高度智能化,通常会因为各种各样的原因导致终端开机失败。

目前,终端用户在遇到开机卡死或者不开机问题时,通常采用手动强制重启的方式尝试使终端正常开机。但是,由于导致终端开机失败的原因可能有很多,并不是所有的问题均能通过重启的方式解决,在大多数情况下,终端用户需要将终端送至维修中心进行维修。售后维修人员通常都是使用一些工具使终端恢复出厂设置或者通过刷机来解决开机失败问题,由此可知,相关技术中的终端开机方案存在无法自动修复不开机问题的缺陷。



技术实现要素:

本申请实施例提供一种修复开机异常问题的方法、装置、存储介质及终端,可以优化相关技术中的开机方案。

第一方面,本申请实施例提供了一种修复开机异常问题的方法,包括:

检测到针对存储有目标文件的数据分区的挂载事件;

获取所述数据分区的挂载时间;

若所述挂载时间超过预设时间阈值,则由预设数据备份区获取所述目标文件的备份文件;

采用所述备份文件替换所述数据分区内的所述目标文件,触发终端重启事件。

第二方面,本申请实施例还提供了一种修复开机异常问题的装置,该装置包括:

事件检测模块,用于检测到针对存储有目标文件的数据分区的挂载事件;

挂载时间获取模块,用于获取所述数据分区的挂载时间;

备份文件获取模块,用于若所述挂载时间超过预设时间阈值,则由预设数据备份区获取所述目标文件的备份文件;

文件替换模块,用于采用所述备份文件替换所述数据分区内的所述目标文件,触发终端重启事件。

第三方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的修复开机异常问题的方法。

第四方面,本申请实施例提供了一种终端,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的修复开机异常问题的方法。

本申请实施例提供一种修复开机异常问题的方案,检测到针对存储有目标文件的数据分区的挂载事件,获取该数据分区的挂载时间;若该挂载时间超过预设时间阈值,则由预设数据备份区获取该目标文件的备份文件;采用该备份文件替换该数据分区的目标文件,触发终端重启事件。通过采用本申请的技术方案,在检测到开机过程中数据分区的挂载时间超过预设时间阈值时,由预设数据备份区获取目标文件的备份文件;可以提供采用一种备份替换机制实现终端自行修复开机异常的方案,实现在发生因特定原因导致的开机异常问题时,终端自行恢复正常使用的效果。

附图说明

图1为本申请实施例提供的一种修复开机异常问题的方法的流程图;

图2为一种基于android系统的终端的开机启动流程的框架图;

图3为本申请实施例提供的另一种修复开机异常问题的方法的流程图;

图4为一种android系统下的系统框架图;

图5为本申请实施例提供的又一种修复开机异常问题的方法的流程图;

图6为本申请实施例提供的一种修复开机异常问题的装置的结构框图;

图7为本申请实施例提供的一种终端的结构示意图;

图8为本申请实施例提供的一种智能手机的结构框图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

图1为本申请实施例提供的一种修复开机异常问题的方法的流程图,本实施例可适用于监控终端开机失败情况的场景,该方法可以由软件和/或硬件实现,一般可集成在终端中。如图1所示,该方法包括:

步骤110、检测到针对存储有目标文件的数据分区的挂载事件。

需要说明的是,本申请实施例中的终端可包括手机、平板电脑、笔记本电脑、计算机、掌上游戏机以及智能家电等设置安装有操作系统的设备。本申请实施例中对操作系统的类型不做限定,例如可包括安卓(android)操作系统、窗口(windows)操作系统以及苹果(ios)操作系统等等。

需要说明的是,上述数据分区的挂载操作基于终端开机过程中init里面的mount_all命令实现。以android为例简述终端的开机流程。android的启动过程可以分为两个阶段,第一阶段是linux的启动,第二阶段是android的启动(可以称为上层开机流程)。图2为一种基于android系统的终端的开机启动流程的框架图。如图2所示,开机启动流程包括:201、bootrom——当按开机按键的时候,引导芯片开始从固化在rom的预设代码开始执行,然后加载引导程序到ram。202、bootloader,又称为引导程序,是在操作系统运行之前运行的一段程序,是运行的第一个程序,用于把操作系统映像文件拷贝到ram中去,然后跳到映像文件的入口去执行该文件,也可以称之为进入启动加载模式。203、kernel——将内核加载进内存后,首先进入内核引导阶段,在内核引导阶段的最后,调用start_kernel进入内核启动阶段,主要是完成内核的大部分初始化工作。start_kernel会最终启动用户空间的init进程。204、init进程——当初始化内核之后,就会启动init进程,在linux中所有的进程都是由init进程直接或间接fork出来的。init进程负责创建系统中最关键的几个核心daemon(守护)进程,包括但不限于zygote和servicemanager。其中,zygote是android启动的第一个dalvik虚拟机,它负责启动java进程。servicemanager是binder通信的基础。205、zygote进程——该进程是所有java进程的父进程。例如,zygote虚拟机启动子进程system_server,同时定义了一个socket,用于接收activitymanagerservice启动应用程序的请求。206、systemserver进程——在systemserver进程开启的时候,会初始化activitymanagerservice。同时,会加载本地系统的服务库,调用createsystemcontext()创建系统上下文,创建activitythread及开启各种服务等等。207、homeactivity——在activitymanagerservice开启之后,会调用finishbooting()完成引导过程,同时发送开机广播,进入home界面,显示桌面。

需要说明的是,可以通过执行fs_mgr_mount_all()函数实现挂载数据分区。可选的,使用fork()函数创建子进程,用于执行数据分区的挂载操作,这样设计的好处在于即使在数据分区的挂载过程中出现因文件损坏等原因导致的开机异常问题,也能保护init进程。

示例性的,可以增加设定监测程序。其中,该设定监测程序的代码在调用挂载数据分区的方法之前执行。通过该设定监测程序对挂载操作进行监控处理。若检测对数据分区的挂载函数被上述通过fork()函数创建的子进程调用,则确定检测到针对存储有目标文件的数据分区的挂载事件。需要说明的是,触发上述挂载事件的方式有很多种,并不限于上述列举的方式。例如,还可以由设定服务通过绑定服务(bindservice)方式拉起framework层对数据分区的挂载事件等。

步骤120、获取所述数据分区的挂载时间。

需要说明的是,挂载时间是由挂载函数的运行时间,即挂载函数开始执行直至检测到该挂载函数执行至结束语句位置所经历的时间。

示例性的,可以通过上述设定监测程序监控该数据分区的挂载函数的运行过程;记录该挂载函数的运行时间,将该运行时间作为该数据分区的挂载时间。可选的,在检测到挂载函数的程序满足退出条件时,停止计时。其中,若检测到挂载函数执行至结束语句,则确定检测到挂载函数的程序满足退出条件。此外,若检测到该挂载函数的运行时间超过预设时间阈值,则确定检测到挂载函数的程序满足退出条件。

步骤130、若所述挂载时间超过预设时间阈值,则由预设数据备份区获取所述目标文件的备份文件。

需要说明的是,可以根据终端开机过程中数据分区的挂载时长确定预设时间阈值。例如,统计不同型号的不同终端在正常开机流程中,数据分区的挂载时长,在该挂载时长的基础上增加一固定时间,得到预设时间阈值。其中,固定时间可以是2秒,也可以是其它时间值。需要说明的是,该固定时间的设置需要考虑到终端的实际开机情况。若该固定时间设置的过长,则确定挂载时间超过预设时间阈值所需要的时间就越长,进而增加终端在检测到开机异常时自行恢复所花费的时间,延长了开机时间。若该固定时间设置的过小,则有可能出现误检测的情况,即可能将终端能够正常开机的状态误判为终端出现开机异常问题。

本申请实施例中,预设数据备份区可以是存储有与数据分区内目标文件相同的文件的另一个分区。可选的,预设数据备份区可以是终端厂家为了存储一些关键日志或者其它不希望被清除的信息的定制分区。该定制分区具有读写频率低于设定阈值的特点,该设定阈值可以是系统默认的较低的读写频率,可以避免因频繁读写导致分区损坏的情况发生。该预设数据备份区还具备刷机时不会被擦除的特点。

本申请实施例中,该预设数据备份区可以存储全部目标文件。由于数据分区内的目标文件包括通讯录、短消息、设置数据和用户安装的第三方应用程序等相关文件,随着用户对终端使用时间的增加,数据分区内的文件不断增加。如果在预设数据备份区内存储数据分区的全量数据(即全部目标文件),则会大量占用终端内存,影响终端的运行效率。鉴于上述问题,还可以仅在预设数据备份区存储一些丢失后不易重新获取的数据,例如联系人和短消息等私人数据,以避免目标文件的备份文件大量占用终端内存的情况出现。

示例性的,在设定监测程序监控该数据分区的挂载函数的运行过程,基于监控结果确定挂载时间之后,按照设定周期获取该挂载时间。判断该挂载时间是否超过预设时间阈值;若是,则执行由预设数据备份区获取该目标文件的备份文件的操作。若预设数据备份区内仅存储有数据分区的目标文件对应的备份文件,则由预设数据备份区获取该目标文件的备份文件可以是获取预设数据备份区内的全部文件。若预设数据备份区不仅存储有数据分区的目标文件,还存储有其它的文件,则根据目标文件的文件标识遍历预设数据备份区,获取根据该文件标识确定的目标文件。此外,若预设数据备份区内仅存储数据分区中的设定文件(例如私人数据),则根据该设定文件的文件标识遍历预设数据备份区,达到该设定文件的备份文件。

需要说明的是,若在停止计时后,该挂载时间未超过预设时间阈值,则确定成功挂载数据分区,继续执行开机过程中的下一流程。

步骤140、采用所述备份文件替换所述数据分区内的所述目标文件,触发终端重启事件。

示例性的,通过设定监测程序将由预设数据备份区内获取的备份文件拷贝至数据分区,以替换该数据分区内的所有目标文件,触发引导程序启动,以引导固化在芯片中的代码从预定义的位置开始启动,实现终端重启。由于替换了数据分区内的目标文件,可以避免发生因目标文件损坏造成的开机失败的情况再次发生,实现终端自行修复开机异常问题的效果。

需要说明的是,在一些示例中,由预设数据备份区内获取的是全部目标文件的替换文件。在另一些示例中,由预设数据备份区内获取的是目标文件中设定文件的备份文件,在这种场景下,需要在采用备份文件替换该数据分区内对应的设定文件之后,对目标文件中该设定文件之外的剩余文件执行删除操作,然后,触发引导程序启动,以引导固化在芯片中的代码从预定义的位置开始启动。这样设计的好处在于在自行修复开机异常问题的基础上,有效地减小内存占用,提高终端的运行效率。

本实施例的技术方案,检测到针对存储有目标文件的数据分区的挂载事件,获取该数据分区的挂载时间;若该挂载时间超过预设时间阈值,则由预设数据备份区获取该目标文件的备份文件;采用该备份文件替换该数据分区的目标文件,触发终端重启事件。通过采用本申请的技术方案,在检测到开机过程中数据分区的挂载时间超过预设时间阈值时,由预设数据备份区获取目标文件的备份文件;可以提供采用一种备份替换机制实现终端自行修复开机异常问题的方案,实现在发生因特定原因导致的开机异常问题时,终端自行恢复正常使用的效果。

图3为本申请实施例提供的另一种修复开机异常问题的方法的流程图,如图3所示,该方法包括:

步骤301、若检测到framework层调用数据分区的挂载函数,则确定检测到针对存储有目标文件的数据分区的挂载事件。

需要说明的是,framework层,又称为框架层,是终端系统框架的一部分,提供了整个系统运作的机制。

以android系统为例说明终端的系统框架,图4为一种android系统下的系统框架图,需要说明的是,图中各层的排序并不代表其真实顺序。如图4所示,系统框架包括:核心应用层401、framework层402(框架层)、jni层403、dalvik虚拟机404、本地库405、hal层406(硬件抽象层)、厂家适配层407和内核层408。其中,核心应用层401包括终端中预置的系统自带应用,比如联系人和音乐等软件。框架层402,也可以称为framework层提供了整个android系统运作的机制,如窗口管理或者程序安装包管理等。jni层403是java程序和底层操作系统通信的一个机制。android开发使用java语言,应用程序的java代码会被编译成dalvik虚拟机字节码,这些字节码由dalvik虚拟机404解释执行。本地库405通常包含多种库文件,如包含标准c库,用以绘制图像的skia库等等。硬件抽象层,也可以称为hal层406,android定义的一套硬件接口,使得上层的代码可以独立于不同的硬件运行。厂家适配层407包含终端厂商自行定义的接口函数,在hal层接口的实现只是一个简单的对厂家适配层接口函数的调用。内核层408,是linux内核,内核中包含有各种硬件驱动等。

需要说明的是,挂载函数是init里用于文件系统挂载的函数,例如,mount_all命令下的fs_mgr_mount_all()函数等。

示例性的,若检测到framework层调用fs_mgr_mount_all()函数,确定检测到针对存储有目标文件的数据分区的挂载事件。

步骤302、运行设定监测程序,通过该设定监测程序监控该数据分区的挂载函数的运行过程。

示例性的,在调用挂载数据分区的方法之前运行该设定监测程序,由该设定监测程序跟踪用于挂载数据分区的fs_mgr_mount_all()函数的执行过程。需要说明的是,若检测到fs_mgr_mount_all()函数的退出语句被执行,则确定挂载函数对应的程序代码执行完成。

步骤303、记录所述挂载函数的运行时间,将所述运行时间作为所述数据分区的挂载时间。

示例性的,由检测到挂载函数开始运行时刻起开始计时,被检测该挂载函数的退出语句是否被执行。若该退出语句被执行,则确定该挂载函数的程序满足退出条件,该挂载函数对应的程序代码执行完成,停止计时。另外,在上述挂载时间超过预设时间阈值时,也可以确定该挂载函数的程序满足退出条件。由于挂载时间超过预设时间阈值,可以确定存在终端开机异常问题,停止计时,准备执行修复操作。

步骤304、按照设定周期获取所述挂载时间。

需要说明的是,设定周期可以是系统默认值,可以根据正常开机情况下的数据分区的挂载时间确定周期值。如将正常开机情况下的该挂载时间均分为5个时间段,将每个时间段对应的作为周期值。可以理解的是,确定上述周期值的方式有很多种,本申请并不作具体限定。

步骤305、判断所述挂载时间是否超过预设时间阈值,若是,则执行步骤306,否则执行步骤304。

需要说明的是,预设时间阈值根据正常开机情况下,终端开机过程中数据分区的挂载时长确定。通常,将预设时间阈值设置的略大于正常开机情况下,终端开机过程中数据分区的挂载时长。

步骤306、由预设数据备份区获取所述目标文件中设定文件的设定备份文件。

示例性的,由目标文件中确定设定文件的文件标识。例如,目标文件包括私人数据、设置数据和第三方应用程序数据等,由于不同类型的文件的文件名不同,可以根据文件名由目标文件中筛选出设定文件。根据设定文件的文件标识遍历预设数据备份区,获取与该文件标识匹配的设定备份文件。

步骤307、将上述设定备份文件拷贝至数据分区替换设定文件。

步骤308、清除所述数据分区内除所述设定文件之外的剩余文件。

需要说明的是,数据分区内除设定文件之外的剩余文件指的是存储有终端的设置信息或者第三方应用程序的相关信息等的文件,这些信息具有在清除后,可以很容易的再重新获取的特点,因此,即使不对这类文件进行备份,在终端使用上不会造成无法恢复的影响。但是,不对这类文件进行备份可以节省很大一部分内存空间。

示例性的,在该挂载时间超过预设时间阈值时,根据类型不同将目标文件分为设定文件和剩余文件,对剩余文件执行清除(或称为删除)操作,此外,采用设定文件的设定备份文件替换数据分区内的该设定文件,以替换或删除被损坏的文件。

步骤309、触发终端重启事件。

示例性的,在完成文件替换(即设定文件被设定备份文件替换)和文件删除(即清除剩余文件)后,触发引导程序启动,以引导固化在芯片中的代码从预定义的位置开始启动,实现终端重启,返回执行步骤301。

步骤310、判断终端是否重启成功,若是,则执行步骤311,否则执行步骤309。

示例性的,若检测到终端开机标识的值变为代表开机成功的值时,确定终端重启成功。例如,若检测到bootcomplete开机成功属性为1,则说明开机完成。

若终端开机失败,则触发终端重启事件直至检测到满足设定结束条件。其中,设定结束条件可以是终端电量耗尽。可选的,设定结束条件还可以是终端重启次数超过设定次数阈值等等。由于执行上述文件替换及文件删除操作后,终端重启还是失败了,则无法确认导致终端开机异常的原因,即可能是设定文件被损坏,也可能是由于缺少某一设置文件而不能启动等等。此时,可以通过刷机的方式使终端恢复正常。

步骤311、基于所述剩余文件的文件标识生成开机异常日志。

示例性的,由于删除数据分区中的剩余文件,终端重启成功,则说明剩余文件中存在因长期使用而损坏的文件,根据剩余文件的文件标识生成开机异常日志,以便于终端研发人员基于不同终端上报的开机异常日志分析处终端使用一段时间后易受损的文件。

本实施例的技术方案,在检测到数据分区的挂载时间超过预设时间阈值时,由预设数据备份区获取设定文件的设定备份文件;采用设定备份文件替换数据分区内的设定文件,并删除数据分区内除设定文件之外的剩余文件,触发终端重启事件;若终端重启成功,则基于剩余文件的文件标识生成开机异常日志。通过采用上述技术方案,仅对数据分区内的部分文件进行备份,可以节省很大一部分内存空间。此外,可以采用开机异常日志的形式记录异常文件,便于终端研发人员定位导致开机失败的原因,为终端研发人员优化开机流程提供依据。

在一些示例中,可以将分析出来的易受损的文件写入预设数据备份区,从而,可以预先对易受损的文件进行备份。在终端出现加载数据分区过程中的开机异常时,可以直接由预设数据备份区拷贝备份文件替换对应的部分文件,避免过多占用内存空间,且不会发生因清除部分文件影响终端使用的情况。

图5为本申请实施例提供的又一种修复开机异常问题的方法的流程图,如图5所示,该方法包括:

步骤501、若检测到framework层调用数据分区的挂载函数,则确定检测到针对存储有目标文件的数据分区的挂载事件。

步骤502、运行设定监测程序,通过该设定监测程序监控该数据分区的挂载函数的运行过程。

步骤503、记录所述挂载函数的运行时间,将所述运行时间作为所述数据分区的挂载时间。

步骤504、按照设定周期获取所述挂载时间。

步骤505、判断所述挂载时间是否超过预设时间阈值,若是,则执行步骤506,否则执行步骤504。

步骤506、由预设数据备份区获取所述目标文件中设定文件的设定备份文件。

步骤507、将上述设定备份文件拷贝至数据分区替换设定文件。

步骤508、清除所述数据分区内除所述设定文件之外的剩余文件。

步骤509、触发终端重启事件。

示例性的,在完成文件替换(即设定文件被设定备份文件替换)和文件删除(即清除剩余文件)后,触发引导程序启动,以引导固化在芯片中的代码从预定义的位置开始启动,实现终端重启,返回执行步骤501。

步骤510、判断终端是否重启成功,若是,则执行步骤511,否则执行步骤509。

步骤511、基于所述剩余文件的文件标识生成开机异常日志。

步骤512、将所述开机异常日志存储于预留分区。

需要说明的是,该预留分区的读写频率低于设定阈值,且在刷机时,该预留分区不会被擦除。其中,预留分区是终端厂家为了存储一些关键日志或者其它不希望被清除的信息的定制分区。预留分区具有读写频率低于设定阈值的特点,该设定阈值可以是系统默认的较低的读写频率,可以避免因频繁读写导致分区损坏的情况发生。该预留分区还具备刷机时不会被擦除的特点,可以稳妥的保存记录开机异常信息的开机异常日志。

示例性的,在生成开机异常日志后,将其写入预留分区。

步骤513、在检测到满足预设条件时,由所述预留分区读取所述日志文件并输出。

需要说明的是,预设条件包括但不限于检测到预设诊断工具的信息获取请求,以及检测到终端重启成功后接入wifi或者终端的移动数据流量超过设定流量阈值等。

示例性的,在检测到预设诊断工具发送的信息获取请求时,由该预留分区读取该日志文件并发送至预设诊断工具,以便于售后人员收集导致终端开机异常问题的原因,售后人员在收集到导致终端开机异常问题的相关数据后,会反馈给终端厂家的研发人员。其中,预设诊断工具可以是用于诊断终端不开机、终端死机或者终端开机卡住等问题的程序。

示例性的,在终端开机成功后,检测到终端接入wifi等ap,则将异常开机日志上报至终端厂家的服务器,以便于终端厂商的研发人员获取各个终端的不开机故障对应的关键信息。可选的,也可以在终端开机成功后,判断剩余移动收据流量是否超过设定阈值,若是,则将异常文件日志上报至终端厂家的服务器。可以理解的是,终端向设定服务器发送日志的方式可以有很多种,本申请实施例并不作具体限定。例如,可以通过可以wifi上传日志至终端厂家的服务器。又如,还可以通过短信方式或者移动数据的方式等。

本实施例的技术方案,在生成开机异常日志之后,将其存储于预留分区,实现稳妥存储导致终端不开机问题的关键信息的效果;此外,在满足预设条件时,将该开机异常日志进行上报,以便于终端厂商的研发人员快速定位可能导致终端不开机问题的文件,为研发人员确定终端开机异常的原因提供数据基础,进而,可以有效地优化开机流程。

图6为本申请实施例提供的一种修复开机异常问题的装置的结构框图,该装置可由软件和/或硬件实现,一般集成在终端中,可通过执行修复开机异常问题的方法自行修改部分终端开机异常问题。如图6所示,该装置包括:

事件检测模块610,用于检测到针对存储有目标文件的数据分区的挂载事件;

挂载时间获取模块620,用于获取所述数据分区的挂载时间;

备份文件获取模块630,用于若所述挂载时间超过预设时间阈值,则由预设数据备份区获取所述目标文件的备份文件;

文件替换模块640,用于采用所述备份文件替换所述数据分区内的所述目标文件,触发终端重启事件。

本申请实施例提供一种修复开机异常问题的装置,检测到针对存储有目标文件的数据分区的挂载事件,获取该数据分区的挂载时间;若该挂载时间超过预设时间阈值,则由预设数据备份区获取该目标文件的备份文件;采用该备份文件替换该数据分区的目标文件,触发终端重启事件。通过采用本申请的技术方案,在检测到开机过程中数据分区的挂载时间超过预设时间阈值时,由预设数据备份区获取目标文件的备份文件;可以提供采用一种备份替换机制实现终端自行修复开机异常的方案,实现在发生因特定原因导致的开机异常问题时,终端自行恢复正常使用的效果。

可选的,挂载时间获取模块620具体用于:

监控所述数据分区的挂载函数的运行过程;

记录所述挂载函数的运行时间,将所述运行时间作为所述数据分区的挂载时间;

在检测到所述挂载函数的程序满足退出条件时,停止计时。

可选的,备份文件获取模块630具体用于:

按照设定周期获取所述挂载时间;

判断所述挂载时间是否超过预设时间阈值,其中,预设时间阈值根据终端开机过程中所述数据分区的挂载时长确定;

若是,则由预设数据备份区获取所述目标文件的备份文件;

若停止计时后,所述挂载时间未超过所述预设时间阈值,则确定成功挂载所述数据分区。

可选的,由预设数据备份区获取所述目标文件的备份文件,包括:

由预设数据备份区获取所述目标文件中设定文件的设定备份文件;

以及,在触发终端重启事件之前,还包括:

清除所述数据分区内除所述设定文件之外的剩余文件。

可选的,还包括:

日志生成模块,用于在触发终端重启事件之后,若终端重启成功,则基于所述剩余文件的文件标识生成开机异常日志。

可选的,还包括:

日志存储模块,用于在基于所述剩余文件的文件标识生成开机异常日志之后,将所述开机异常日志存储于预留分区,其中,所述预留分区的读写频率低于设定阈值,且在刷机时,所述预留分区不会被擦除;

日志输出模块,用于在检测到满足预设条件时,由所述预留分区读取所述日志文件并输出。

可选的,事件检测模块610具体用于:

若检测到framework层调用数据分区的挂载函数,则确定检测到针对存储有目标文件的数据分区的挂载事件。

本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行修复开机异常问题的方法,该方法包括:

检测到针对存储有目标文件的数据分区的挂载事件;

获取所述数据分区的挂载时间;

若所述挂载时间超过预设时间阈值,则由预设数据备份区获取所述目标文件的备份文件;

采用所述备份文件替换所述数据分区内的所述目标文件,触发终端重启事件。

存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如cd-rom、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如dram、ddrram、sram、edoram,兰巴斯(rambus)ram等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。

当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的修复开机异常问题的操作,还可以执行本申请任意实施例所提供的修复开机异常问题的方法中的相关操作。

本申请实施例提供了一种终端,该终端中可集成本申请实施例提供的修复开机异常问题的装置。图7为本申请实施例提供的一种终端的结构示意图。如图7所示,该终端包括存储器710及处理器720。所述存储器710,用于存储计算机程序、目标文件和备份文件等;所述处理器720读取并执行所述存储器710中存储的计算机程序。所述处理器720在执行所述计算机程序时实现以下步骤:检测到针对存储有目标文件的数据分区的挂载事件;获取所述数据分区的挂载时间;若所述挂载时间超过预设时间阈值,则由预设数据备份区获取所述目标文件的备份文件;采用所述备份文件替换所述数据分区内的所述目标文件,触发终端重启事件。

上述示例中列举的存储器及处理器均为终端的部分元器件,所述终端还可以包括其它元器件。以智能手机为例,说明上述终端可能的结构。图8为本申请实施例提供的一种智能手机的结构框图。如图8所示,该智能手机可以包括:存储器801、中央处理器(centralprocessingunit,cpu)802(又称处理器,以下简称cpu)、外设接口803、rf(radiofrequency,射频)电路805、音频电路806、扬声器811、触摸屏812、电源管理芯片808、输入/输出(i/o)子系统809、其他输入/控制设备810以及外部端口804,这些部件通过一个或多个通信总线或信号线807来通信。

应该理解的是,图示智能手机800仅仅是终端的一个范例,并且智能手机800可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。

下面就本实施例提供的集成有修复开机异常问题的装置的智能手机进行详细的描述。

存储器801,所述存储器801可以被cpu802、外设接口803等访问,所述存储器801可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。在存储器801中存储计算机程序,还可以存储预设文件及预设白名单等。

外设接口803,所述外设接口803可以将设备的输入和输出外设连接到cpu802和存储器801。

i/o子系统809,所述i/o子系统809可以将设备上的输入输出外设,例如触摸屏812和其他输入/控制设备810,连接到外设接口803。i/o子系统809可以包括显示控制器8091和用于控制其他输入/控制设备810的一个或多个输入控制器8092。其中,一个或多个输入控制器8092从其他输入/控制设备810接收电信号或者向其他输入/控制设备810发送电信号,其他输入/控制设备810可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮。值得说明的是,输入控制器8092可以与以下任一个连接:键盘、红外端口、usb接口以及诸如鼠标的指示设备。

触摸屏812,所述触摸屏812是用户终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。

i/o子系统809中的显示控制器8091从触摸屏812接收电信号或者向触摸屏812发送电信号。触摸屏812检测触摸屏上的接触,显示控制器8091将检测到的接触转换为与显示在触摸屏812上的用户界面对象的交互,即实现人机交互,显示在触摸屏812上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。

rf电路805,主要用于建立手机与无线网络(即网络侧)的通信,实现手机与无线网络的数据接收和发送。例如收发短信息、电子邮件等。具体地,rf电路805接收并发送rf信号,rf信号也称为电磁信号,rf电路805将电信号转换为电磁信号或将电磁信号转换为电信号,并且通过该电磁信号与通信网络以及其他设备进行通信。rf电路805可以包括用于执行这些功能的已知电路,其包括但不限于天线系统、rf收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、codec(coder-decoder,编译码器)芯片组、用户标识模块(subscriberidentitymodule,sim)等等。

音频电路806,主要用于从外设接口803接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器811。

扬声器811,用于将手机通过rf电路805从无线网络接收的语音信号,还原为声音并向用户播放该声音。

电源管理芯片808,用于为cpu802、i/o子系统及外设接口所连接的硬件进行供电及电源管理。

本申请实施例提供的终端,在检测到开机过程中数据分区的挂载时间超过预设时间阈值时,由预设数据备份区获取目标文件的备份文件;可以提供采用一种备份替换机制实现终端自行修复开机异常的方案,实现在发生因特定原因导致的开机异常问题时,终端自行恢复正常使用的效果。

上述实施例中提供的修复开机异常问题的装置、存储介质及终端可执行本申请任意实施例所提供的修复开机异常问题的方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的修复开机异常问题的方法。

注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

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