CN109634782A - 一种系统健壮性的检测方法、装置、存储介质及终端 - Google Patents
一种系统健壮性的检测方法、装置、存储介质及终端 Download PDFInfo
- Publication number
- CN109634782A CN109634782A CN201811487661.6A CN201811487661A CN109634782A CN 109634782 A CN109634782 A CN 109634782A CN 201811487661 A CN201811487661 A CN 201811487661A CN 109634782 A CN109634782 A CN 109634782A
- Authority
- CN
- China
- Prior art keywords
- file
- terminal
- replaced
- default test
- booting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种系统健壮性的检测方法、装置、存储介质及终端。该方法包括获取数据分区下的文件对象;获取预设测试文件,采用所述预设测试文件逐一替换所述文件对象;在每次文件替换操作完成后,触发终端重启事件,并检测终端的开机状态;基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表。通过采用预设测试文件逐个替换数据分区内存储的文件,检测终端重启后是否开机成功的方式,确定可能导致开机异常问题的异常文件列表,进而,为终端研发人员提供操作系统的优化依据,有助于提高操作系统的容错能力和健壮性。
Description
技术领域
本申请实施例涉及智能设备技术,尤其涉及一种系统健壮性的检测方法、装置、存储介质及终端。
背景技术
随着终端的智能化程度增加,其在人们的日常生活中的应用越来越普及。然而,由于终端的高度智能化,通常会因为各种各样的原因导致终端开机失败。
通过已有的研究表明,终端会由于数据分区内文件损坏等原因导致开机失败。相关技术方案很难找出哪个文件可能会导致开机异常问题。由于文件损坏类问题并不常发生,但是,一旦发生文件损坏类问题就会导致不可逆的故障。通常情况下,用户会拿着出现故障的终端到售后中心进行刷机操作,而刷机操作将会清除存储有开机异常原因的日志文件。因此,终端研发人员无法获知由哪个文件或哪些文件损坏导致开机失败,进而,无法提供有效地开机修复方案以系统地解决因文件损坏原因导致的开机异常问题。
发明内容
本申请实施例提供一种系统健壮性的检测方法、装置、存储介质及终端,可以确定数据分区内哪些文件的损坏会导致开机失败。
第一方面,本申请实施例提供了一种系统健壮性的检测方法,包括:
获取数据分区下的文件对象;
获取预设测试文件,采用所述预设测试文件逐一替换所述文件对象,其中,所述预设测试文件是文件内容为乱码的文件;
在每次文件替换操作完成后,触发终端重启事件,并检测终端的开机状态;
基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表。
第二方面,本申请实施例还提供了一种系统健壮性的检测装置,该装置包括:
对象获取模块,用于获取数据分区下的文件对象;
测试文件获取模块,用于获取预设测试文件,采用所述预设测试文件逐一替换所述文件对象,其中,所述预设测试文件是文件内容为乱码的文件;
开机检测模块,用于在每次文件替换操作完成后,触发终端重启事件,并检测终端的开机状态;
文件添加模块,用于基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表。
第三方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的数据分区系统健壮性的检测方法。
第四方面,本申请实施例提供了一种终端,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的数据分区系统健壮性的检测方法。
本申请实施例提供一种系统健壮性的检测方案,获取数据分区下的文件对象;获取预设测试文件,采用该测试文件逐一替换该文件对象;在每次文件替换操作完成后,触发终端重启事件,并检测终端的开机状态;基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表。通过采用上述技术方案,通过采用预设测试文件逐个替换数据分区内存储的文件后,检测终端重启后是否开机成功的方式,确定可能导致开机异常问题的异常文件列表,进而,为终端研发人员提供系统优化的依据,以系统地解决因异常文件列表中的文件导致终端开机异常问题,从而,有助于提高系统的容错能力和健壮性。
附图说明
图1为本申请实施例提供的一种系统健壮性的检测方法的流程图;
图2为一种基于android系统的终端的开机启动流程的框架图;
图3为本申请实施例提供的另一种系统健壮性的检测方法的流程图;
图4为本申请实施例提供的又一种系统健壮性的检测方法的流程图;
图5为本申请实施例提供的一种系统健壮性的检测装置的结构框图;
图6为本申请实施例提供的一种终端的结构示意图;
图7为本申请实施例提供的一种智能手机的结构框图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
图1为本申请实施例提供的一种系统健壮性的检测方法的流程图,该方法可以由软件和/或硬件实现,一般可集成在终端中。如图1所示,该方法包括:
步骤110、获取数据分区下的文件对象。
需要说明的是,本申请实施例中的终端可包括手机、平板电脑、笔记本电脑、计算机、掌上游戏机以及智能家电等设置安装有操作系统的设备。本申请实施例中对操作系统的类型不做限定,例如可包括安卓(Android)操作系统、窗口(Windows)操作系统以及苹果(ios)操作系统等等。
需要说明的是,上述数据分区的挂载操作基于终端开机过程中init里面的mount_all命令实现。以Android为例简述终端的开机流程。Android的启动过程可以分为两个阶段,第一阶段是Linux的启动,第二阶段是Android的启动(可以称为上层开机流程)。图2为一种基于android系统的终端的开机启动流程的框架图。如图2所示,开机启动流程包括:201、Boot Rom——当按开机按键的时候,引导芯片开始从固化在ROM的预设代码开始执行,然后加载引导程序到RAM。202、Bootloader,又称为引导程序,是在操作系统运行之前运行的一段程序,是运行的第一个程序,用于把操作系统映像文件拷贝到RAM中去,然后跳到映像文件的入口去执行该文件,也可以称之为进入启动加载模式。203、Kernel——将内核加载进内存后,首先进入内核引导阶段,在内核引导阶段的最后,调用start_kernel进入内核启动阶段,主要是完成内核的大部分初始化工作。Start_kernel会最终启动用户空间的init进程。204、init进程——当初始化内核之后,就会启动init进程,在Linux中所有的进程都是由init进程直接或间接fork出来的。Init进程负责创建系统中最关键的几个核心daemon(守护)进程,包括但不限于zygote和service manager。其中,zygote是android启动的第一个dalvik虚拟机,它负责启动Java进程。service manager是Binder通信的基础。205、Zygote进程——该进程是所有Java进程的父进程。例如,zygote虚拟机启动子进程system_server,同时定义了一个Socket,用于接收ActivityManagerService启动应用程序的请求。206、SystemServer进程——在SystemServer进程开启的时候,会初始化ActivityManagerService。同时,会加载本地系统的服务库,调用createSystemContext()创建系统上下文,创建ActivityThread及开启各种服务等等。207、Home Activity——在ActivityManagerService开启之后,会调用finishBooting()完成引导过程,同时发送开机广播,进入home界面,显示桌面。
需要说明的是,可以通过执行fs_mgr_mount_all()函数实现挂载数据分区。可选的,使用fork()函数创建子进程,用于执行数据分区的挂载操作,这样设计的好处在于即使在数据分区的挂载过程中出现因文件损坏等原因导致的开机异常问题,也能保护init进程。
需要说明的是,获取数据分区下的文件对象的方式有很多种,本申请实施例并不作具体限定。例如,可以增加设定检测脚本,执行该设定检测脚本,可以遍历查找数据分区下的文件对象,并基于该文件对象生成文件列表。设定检测脚本可以被预置于终端内。又如,通过执行设定检测脚本遍历查找数据分区下的文件对象,并将获得的文件对象存储于设定文件队列或堆栈中,以便于顺序获取一个文件对象,以执行针对该文件对象的替换操作。
步骤120、获取预设测试文件,采用所述预设测试文件逐一替换所述文件对象。
需要说明的是,测试文件为预先准备的文件内容为无规律乱码的文件,该测试文件可以被预置于智能手机内。另外,该测试文件还可以被设置于个人计算机、笔记本电脑机或平板电脑等电子设备中,在该电子设备与智能手机建立通信连接时,执行设定检测脚本由电子设备中读取预设测试文件,以该预设测试文件逐一替换数据分区内的文件对象。
示例性的,采用预设测试文件对测试用终端的开机过程进行测试,包括:将顺序获取的数据分区内的一个文件对象标记为当前文件,将该当前文件备份至设定数据备份区。然后,采用该预设测试文件替换当前文件。可以理解的是,若要对数据分区加载过程中的系统健壮性进行完整测试,需要对数据分区内的每个文件执行一次文件替换操作。例如,按照文件列表中的存储顺序由文件列表中选择文件A作为当前文件,将文件A备份至预设备份区,并采用预设测试文件替换数据分区内的文件A(即由数据分区内删除文件A,并替换成预设测试文件)。
步骤130、在每次文件替换操作完成后,触发终端重启事件,并检测终端的开机状态。
需要说明的是,在检测到执行完成采用预设测试文件替换一个数据分区内的文件对象时,触发终端重启事件,以引导固化在芯片中的代码从预定义的位置开始启动,实现终端重启。
需要说明的是,开机状态包括开机成功状态或开机失败状态,其中,开机失败状态可以为由引导程序开始启动时刻记录开机时间,若在设定开机时间区间内未检测到开机标识变为表示开机成功的属性值,则确定开机失败。例如,终端开机标识bootcomplete的属性为1表示开机成功,bootcomplete的属性为0表示开机未成功。
需要说明的是,可以根据终端正常开机的情况下所需要的开机时间确定预设开机时间区间(例如500秒)。例如,统计不同型号的不同终端的正常开机所需要的开机时长,在该开机时长的基础上增加一固定时间,得到设定开机时间区间。其中,固定时间可以是60秒,也可以是其它时间值。需要说明的是,该固定时间的设置需要考虑到终端的实际开机情况。若该固定时间设置的过长,则确定终端开机状态所需的时间就越长,降低了测试效率。若该固定时间设置的过小,则有可能出现误检测的情况,即可能将终端能够正常开机的状态误判为终端出现开机异常问题。
示例性的,在每次执行完成一次将当前文件(可以理解为待替换的数据分区内的文件对象)备份至设定数据备份区,并采用预设测试文件替换当前文件,确定一次文件替换操作执行完成。在每次文件替换完成后,都控制终端重启,在预设开机时间区间内,周期性的获取终端开机标识bootcomplete的属性值,基于该属性值可以确定终端的开机状态,即可以确定终端是否开机成功。
步骤140、基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表。
需要说明的是,异常文件列表包括因文件损坏导致终端无法正常开机的数据分区内的文件。
示例性的,在预设开机时间区间内,若检测到bootcomplete的属性值为1,则确定开机成功,说明操作系统中对调用文件A的代码系统的容错性进行设计,使相应地代码系统健壮性可靠,以便于在被调用的文件发生损坏时,可以及时修复该问题以避免影响终端正常开机。
如果在开机时间超过预设开机时间区间时,仍然未检测到bootcomplete的属性值变为1,则确定未对调用文件A的代码系统的容错性进行设计,即调用文件A的代码系统的健壮性存在问题,将文件A添加至异常文件列表。需要说明的是,在基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表之后,还包括将被替换的文件转移回数据分区,再返回执行步骤110,直至对数据分区下的所有文件对象执行过文件替换操作。
本实施例的技术方案,获取数据分区下的文件对象;获取预设测试文件,采用该测试文件逐一替换该文件对象;在每次文件替换操作完成后,触发终端重启事件,并检测终端的开机状态;基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表。通过采用上述技术方案,通过采用预设测试文件逐个替换数据分区内存储的文件,检测终端重启后是否开机成功的方式,确定可能导致开机异常问题的异常文件列表,进而,为终端研发人员提供操作系统的优化依据,以系统地解决因异常文件列表中的文件导致终端开机异常问题,从而,有助于提高操作系统的容错能力和健壮性。
图3为本申请实施例提供的另一种系统健壮性的检测方法的流程图,该方法包括:
步骤301、获取数据分区下的文件对象。
示例性的,通过执行预设测试文件,遍历查找数据分区下所有的文件对象,并对该文件对象列表,生成文件列表。
步骤302、检测到文件替换事件被触发,获取预设测试文件。
需要说明的是,由设定数据备份区获取被预设测试文件替换的文件对象,并采用该文件对象替换该数据分区内的预设测试文件时,触发文件替换事件。可选的,还可以在由设定数据备份区获取被预设测试文件替换的文件对象,添加至数据分区时,触发文件替换事件。可选的,还可以按照设定周期值定期触发文件替换事件。其中,设定周期值基于预设开机时间区间进行设置,可以是在预设开机时间区间本身,也可以是在预设开机时间的基础上增加一固定时间。
示例性的,在检测到文件替换事件被触发时,由终端的设定存储空间内获取预设测试文件。其中,预设测试文件可以是在终端被写入系统后,存储至设定存储空间的文件内容是无规律乱码的文件。
步骤303、基于所述文件对象在所述文件列表中的顺序获取所述文件对象,将所获取的文件对象标记为当前文件。
示例性的,基于文件对象在文件列表中的存储顺序,获取排在首位的文件对象,将该排在首位的文件对象标记为当前文件。
步骤304、将所述当前文件由所述数据分区备份至设定数据备份区,并采用预设测试文件替换所述数据分区内的所述当前文件。
示例性的,将当前文件由文件列表中读取后,将其由数据分区转移至设定数据备份区,并采用预设测试文件替换数据分区内的当前文件,并由文件列表中删除该当前文件,将排序在文件列表中首位之后的文件对象作为该文件列表中的首位。
步骤305、触发终端重启事件,并检测终端的开机状态。
示例性的,在采用预设测试文件替换当前文件后,触发引导程序启动,以引导固化在芯片中的代码从预定义的位置开始启动,实现终端重启。如果在预设开机时间区间内,周期性的获取终端开机标识bootcomplete的属性值。判断bootcomplete的属性值是否为1,若为1,则确定开机完成。
步骤306、判断所述开机状态是否为开机成功,若是,则执行步骤307,否则执行步骤308。
步骤307、确定调用所述当前文件的代码系统健壮性可靠,执行步骤310。
步骤308、将当次文件替换操作所替换的文件对象存入异常文件列表。
若终端在预设开机时间区间内未开机成功,则确定调用该当前文件的代码系统健壮性存在问题,将当次文件替换操作所替换的文件对象存入异常文件列表。
步骤309、由所述设定数据备份区获取所述当前文件,并采用所述当前文件替换所述数据分区内的预设测试文件。
示例性的,在确定是否将被替换的当前文件添加至异常文件列表的操作执行完成后,由设定数据备份区获取该当前文件,并采用该当前文件替换数据分区内的预设测试文件,触发文件替换事件,以重新替换下一个文件。
步骤310、判断所述文件列表是否为空表,若是,则执行步骤311,否则执行步骤312。
本申请实施例中,在每次由文件列表中获取一个当前文件后,从文件列表中删除该当前文件,并将排序在后的下一个文件对象作为新的当前文件。例如,由文件列表的首位文件对象开始获取当前文件,则在当前文件被删除后,排在第二位的文件对象成为新的当前文件,文件列表内的记录条数减少1,依次类推,经过N次当前文件读取,文件列表内的记录条数减少N。若文件列表中存有50个文件对象,那么经过50次读取当前文件的操作后,该文件列表变为空表。
步骤311、输出所述异常文件列表。
示例性的,在文件列表中的所有文件对象均被替换过一次后,将异常文件列表输出至终端,以供测试人员导出该异常文件列表,并反馈给终端研发人员,从而,获取数据分区内所有可能出现损坏而导致终端不开机的文件对象,可以针对这些文件对象提前准备好修复方案,进而,提供基于该修复方案优化后的新系统。
步骤312、触发文件替换事件。
本申请实施例中,由设定数据备份区获取被预设测试文件替换的当前文件,并采用该当前文件替换该数据分区内的预设测试文件,触发文件替换事件。还可以是在由设定数据备份区获取被预设替换文件替换的当前文件,添加至数据分区时,触发文件替换事件。
本实施例的技术方案,基于数据分区内的文件对象建立文件列表,检测到文件替换事件被触发,获取预设测试文件,利用该预设测试文件逐个替换数据分区内文件对象,在每次由文件列表中获取一个待替换的文件对象后,从文件列表中删除该文件对象;在每次替换操作完成后,重启终端,检测终端的开机状态,基于开机检测结果确定是否将被替换的文件对象存入异常文件列表,采用该被替换的文件对象替换数据分区内的预设测试文件,准备执行下一次替换操作;在文件列表为空表时,输出该异常文件列表。通过采用上述技术方案,可以检查出所有可能出现损坏而导致不开机的文件对象,并将其反馈给终端研发人员,可以为终端研发人员提供系统优化的依据,以系统地解决因异常文件列表中的文件导致终端开机异常问题,从而,有助于提高操作系统的容错能力和健壮性。
图4为本申请实施例提供的又一种系统健壮性的检测方法的流程图,该方法包括:
步骤401、获取数据分区下的文件对象。
步骤402、检测到文件替换事件被触发,获取预设测试文件。
步骤403、将所述预设测试文件添加至所述数据分区。
示例性的,将预设测试文件写入数据分区的设定地址。这样设计的好处在于,预先将预设测试文件写入数据分区的设定地址,以便于在执行文件替换时由数据分区内读取预测测试文件,避免出现跨分区文件读写操作,可以提高执行效率。由于预设测试文件被存储于数据分区内的设定地址,在挂载数据分区时设计专门的容错机制,即在系统代码执行至该存储有预设测试文件的设定地址时,伪造一个调用成功标识返回给操作系统,可以使操作系统顺利执行开机操作,以避免因为将预设测试文件写入数据分区而导致开机失败的问题。
步骤404、基于所述文件对象在所述文件列表中的顺序,采用所述预设测试文件逐个替换所述文件对象。
例如,基于文件对象在文件列表中的顺序,获取排在首位的文件对象,将该排在首位的文件对象标记为当前文件。执行设定检测脚本将数据分区内的该当前文件备份至设定数据备份区,由数据分区的设定地址读取预设测试文件,并采用该预测测试文件替换数据分区内的该当前文件。
步骤405、由所述文件列表中删除已被替换的所述文件对象。
示例性的,在替换完成后,由文件列表中删除该当前文件,将排序在后的下一个文件作为新的当前文件。
步骤406、触发终端重启事件,并检测终端的开机状态。
步骤407、判断所述开机状态是否为开机成功,若是,则执行步骤408,否则执行步骤409。
步骤408、确定调用所述当前文件的代码系统健壮性可靠,执行步骤412。
步骤409、将当次文件替换操作所替换的文件对象存入异常文件列表。
步骤410、将所述预设测试文件备份至数据分区的设定地址。
步骤411、由所述设定数据备份区获取所述当前文件,并采用所述当前文件替换所述数据分区内的预设测试文件。
步骤412、判断所述文件列表是否为空表,若是,则执行步骤413,否则执行步骤414。
步骤413、输出所述异常文件列表。
步骤414、触发文件替换事件。
本实施例的技术方案,预先将预设测试文件写入数据分区的设定地址,基于数据分区内的文件对象建立文件列表,检测到文件替换事件被触发,获取预设测试文件,利用该预设测试文件逐个替换数据分区内文件对象,在每次由文件列表中获取一个待替换的文件对象后,从文件列表中删除该文件对象;在每次替换操作完成后,重启终端,检测终端的开机状态,基于开机检测结果确定是否将被替换的文件对象存入异常文件列表,采用该被替换的文件对象替换数据分区内的预设测试文件,准备执行下一次替换操作;在文件列表为空表时,输出该异常文件列表。通过采用上述技术方案,通过将预设测试文件写入数据分区,在执行文件替换时可以由数据分区内读取该预设测试文件,避免跨分区进行数据读写操作,提高了读写效率。
图5为本申请实施例提供的一种系统健壮性的检测装置的结构框图,该装置可由软件和/或硬件实现,一般集成在终端中,可通过执行系统健壮性的检测方法系统性的发现数据分区内可能出现损坏而导致终端不开的文件。如图5所示,该装置包括:
对象获取模块510,用于获取数据分区下的文件对象;
测试文件获取模块520,用于获取预设测试文件,采用所述预设测试文件逐一替换所述文件对象,其中,所述预设测试文件是文件内容为乱码的文件;
开机检测模块530,用于在每次文件替换操作完成后,触发终端重启事件,并检测终端的开机状态;
文件添加模块540,用于基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表。
本申请实施例提供一种系统健壮性的检测装置,获取数据分区下的文件对象;获取预设测试文件,采用该测试文件逐一替换该文件对象;在每次文件替换操作完成后,触发终端重启事件,并检测终端的开机状态;基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表。通过采用上述技术方案,通过采用预设测试文件逐个替换数据分区内存储的文件,检测终端重启后是否开机成功的方式,确定可能导致开机异常问题的异常文件列表,进而,为终端研发人员提供系统优化的依据,以系统地解决因异常文件列表中的文件导致终端开机异常问题,从而,有助于提高操作系统的容错能力和健壮性。
可选的,对象获取模块510具体用于:
遍历数据分区下的文件对象,并基于所述文件对象生成文件列表。
可选的,还包括:
文件输出模块,用于在基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表之后,在所述文件列表为空表时,输出所述异常文件列表。
可选的,测试文件获取模块520具体用于:
检测到文件替换事件被触发,获取预设测试文件;
基于所述文件对象在所述文件列表中的顺序获取所述文件对象,将所获取的文件对象标记为当前文件;
将所述当前文件由所述数据分区备份至设定数据备份区,并采用预设测试文件替换所述数据分区内的所述当前文件。
可选的,还包括:
文件删除模块,用于在采用预设测试文件替换所述数据分区内的所述当前文件之后,由所述文件列表中删除已被替换的所述当前文件。
可选的,还包括:
替换事件触发模块,用于在基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表之后,由所述设定数据备份区获取所述当前文件,并采用所述当前文件替换所述数据分区内的预设测试文件;在所述文件列表为非空表时,触发文件替换事件。
可选的,文件添加模块540具体用于:
若所述终端在预设开机时间区间内未开机成功,则将当次文件替换操作所替换的文件对象存入异常文件列表。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行系统健壮性的检测方法,该方法包括:
获取数据分区下的文件对象;
获取预设测试文件,采用所述预设测试文件逐一替换所述文件对象,其中,所述预设测试文件是文件内容为乱码的文件;
在每次文件替换操作完成后,触发终端重启事件,并检测终端的开机状态;
基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的系统健壮性的检测操作,还可以执行本申请任意实施例所提供的系统健壮性的检测方法中的相关操作。
本申请实施例提供了一种终端,该终端中可集成本申请实施例提供的系统健壮性的检测装置。图6为本申请实施例提供的一种终端的结构示意图。如图6所示,该终端包括存储器610及处理器620。所述存储器610,用于存储计算机程序、预设测试文件及文件对象等;所述处理器620读取并执行所述存储器610中存储的计算机程序。所述处理器620在执行所述计算机程序时实现以下步骤:获取数据分区下的文件对象;获取预设测试文件,采用所述预设测试文件逐一替换所述文件对象,其中,所述预设测试文件是文件内容为乱码的文件;在每次文件替换操作完成后,触发终端重启事件,并检测终端的开机状态;基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表。
上述示例中列举的存储器及处理器均为终端的部分元器件,所述终端还可以包括其它元器件。以智能手机为例,说明上述终端可能的结构。图7为本申请实施例提供的一种智能手机的结构框图。如图7所示,该智能手机可以包括:存储器701、中央处理器(CentralProcessing Unit,CPU)702(又称处理器,以下简称CPU)、外设接口703、RF(RadioFrequency,射频)电路705、音频电路706、扬声器711、触摸屏712、电源管理芯片708、输入/输出(I/O)子系统709、其他输入/控制设备710以及外部端口704,这些部件通过一个或多个通信总线或信号线707来通信。
应该理解的是,图示智能手机700仅仅是终端的一个范例,并且智能手机700可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
下面就本实施例提供的集成有系统健壮性的检测装置的智能手机进行详细的描述。
存储器701,所述存储器701可以被CPU702、外设接口703等访问,所述存储器701可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。在存储器701中存储计算机程序,还可以存储预设文件及预设白名单等。
外设接口703,所述外设接口703可以将设备的输入和输出外设连接到CPU702和存储器701。
I/O子系统709,所述I/O子系统709可以将设备上的输入输出外设,例如触摸屏712和其他输入/控制设备710,连接到外设接口703。I/O子系统709可以包括显示控制器7091和用于控制其他输入/控制设备710的一个或多个输入控制器7092。其中,一个或多个输入控制器7092从其他输入/控制设备710接收电信号或者向其他输入/控制设备710发送电信号,其他输入/控制设备710可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮。值得说明的是,输入控制器7092可以与以下任一个连接:键盘、红外端口、USB接口以及诸如鼠标的指示设备。
触摸屏712,所述触摸屏712是用户终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。
I/O子系统709中的显示控制器7091从触摸屏712接收电信号或者向触摸屏712发送电信号。触摸屏712检测触摸屏上的接触,显示控制器7091将检测到的接触转换为与显示在触摸屏712上的用户界面对象的交互,即实现人机交互,显示在触摸屏712上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。
RF电路705,主要用于建立手机与无线网络(即网络侧)的通信,实现手机与无线网络的数据接收和发送。例如收发短信息、电子邮件等。具体地,RF电路705接收并发送RF信号,RF信号也称为电磁信号,RF电路705将电信号转换为电磁信号或将电磁信号转换为电信号,并且通过该电磁信号与通信网络以及其他设备进行通信。RF电路705可以包括用于执行这些功能的已知电路,其包括但不限于天线系统、RF收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、CODEC(COder-DECoder,编译码器)芯片组、用户标识模块(Subscriber Identity Module,SIM)等等。
音频电路706,主要用于从外设接口703接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器711。
扬声器711,用于将手机通过RF电路705从无线网络接收的语音信号,还原为声音并向用户播放该声音。
电源管理芯片708,用于为CPU702、I/O子系统及外设接口所连接的硬件进行供电及电源管理。
本申请实施例提供的终端,通过采用预设测试文件逐个替换数据分区内存储的文件,检测终端重启后是否开机成功的方式,确定可能导致开机异常问题的异常文件列表,进而,为终端研发人员提供系统优化的依据,以系统地解决因异常文件列表中的文件导致终端开机异常问题,从而,有助于提高操作系统的容错能力和健壮性。
上述实施例中提供的系统健壮性的检测装置、存储介质及终端可执行本申请任意实施例所提供的系统健壮性的检测方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的系统健壮性的检测方法。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (10)
1.一种系统健壮性的检测方法,其特征在于,包括:
获取数据分区下的文件对象;
获取预设测试文件,采用所述预设测试文件逐一替换所述文件对象,其中,所述预设测试文件是文件内容为乱码的文件;
在每次文件替换操作完成后,触发终端重启事件,并检测终端的开机状态;
基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表。
2.根据权利要求1所述的方法,其特征在于,获取所述数据分区下的文件对象,包括:
遍历数据分区下的文件对象,并基于所述文件对象生成文件列表。
3.根据权利要求2所述的方法,其特征在于,在基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表之后,还包括:
在所述文件列表为空表时,输出所述异常文件列表。
4.根据权利要求2所述的方法,其特征在于,获取预设测试文件,采用所述预设测试文件逐一替换所述文件对象,包括:
检测到文件替换事件被触发,获取预设测试文件;
基于所述文件对象在所述文件列表中的顺序获取所述文件对象,将所获取的文件对象标记为当前文件;
将所述当前文件由所述数据分区备份至设定数据备份区,并采用预设测试文件替换所述数据分区内的所述当前文件。
5.根据权利要求4所述的方法,其特征在于,在采用预设测试文件替换所述数据分区内的所述当前文件之后,还包括:
由所述文件列表中删除已被替换的所述当前文件。
6.根据权利要求5所述的方法,其特征在于,在基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表之后,还包括:
由所述设定数据备份区获取所述当前文件,并采用所述当前文件替换所述数据分区内的预设测试文件;
在所述文件列表为非空表时,触发文件替换事件。
7.根据权利要求1至6中任一项所述的方法,其特征在于,基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表,包括:
若所述终端在预设开机时间区间内未开机成功,则将当次文件替换操作所替换的文件对象存入异常文件列表。
8.一种系统健壮性的检测装置,其特征在于,包括:
对象获取模块,用于获取数据分区下的文件对象;
测试文件获取模块,用于获取预设测试文件,采用所述预设测试文件逐一替换所述文件对象,其中,所述预设测试文件是文件内容为乱码的文件;
开机检测模块,用于在每次文件替换操作完成后,触发终端重启事件,并检测终端的开机状态;
文件添加模块,用于基于开机检测结果判断是否将被替换的文件对象添加至异常文件列表。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的数据分区系统健壮性的检测方法。
10.一种终端,其特征在于,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任一所述的数据分区系统健壮性的检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811487661.6A CN109634782B (zh) | 2018-12-06 | 2018-12-06 | 一种系统健壮性的检测方法、装置、存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811487661.6A CN109634782B (zh) | 2018-12-06 | 2018-12-06 | 一种系统健壮性的检测方法、装置、存储介质及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109634782A true CN109634782A (zh) | 2019-04-16 |
CN109634782B CN109634782B (zh) | 2021-05-04 |
Family
ID=66071745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811487661.6A Active CN109634782B (zh) | 2018-12-06 | 2018-12-06 | 一种系统健壮性的检测方法、装置、存储介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109634782B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111240986A (zh) * | 2020-01-16 | 2020-06-05 | 四川九州电子科技股份有限公司 | 一种人工智能设备检测系统及方法 |
CN114238249A (zh) * | 2022-02-25 | 2022-03-25 | 成都鲁易科技有限公司 | 文件系统老化评估方法及装置、存储介质、终端 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100897412B1 (ko) * | 2006-11-09 | 2009-05-14 | 한국전자통신연구원 | 소프트웨어 결함 유발 데이터를 삽입한 파일을 이용하여소프트웨어의 결함을 검출하는 자동화 시스템 및 그 방법 |
CN101635640A (zh) * | 2009-09-04 | 2010-01-27 | 江苏天智互联科技有限公司 | Web网站系统服务器终端程序的版本自动发布方法 |
CN102053853A (zh) * | 2010-12-30 | 2011-05-11 | 北京像素软件科技股份有限公司 | 一种网络游戏版本更新方法 |
US20120124424A1 (en) * | 2010-11-17 | 2012-05-17 | Gorti Atchyuth K | Enhanced debug/test capability to a core reset process |
CN105094764A (zh) * | 2014-05-04 | 2015-11-25 | 中国移动通信集团公司 | 电子设备应用的生成方法及装置 |
CN105159818A (zh) * | 2015-08-28 | 2015-12-16 | 东北大学 | 内存数据管理中日志恢复方法及其仿真系统 |
CN105677335A (zh) * | 2015-12-29 | 2016-06-15 | 广东欧珀移动通信有限公司 | 提高移动终端首次开机速度的方法及装置 |
CN107766177A (zh) * | 2017-10-12 | 2018-03-06 | 广东欧珀移动通信有限公司 | 开机优化方法、装置、存储介质及终端设备 |
CN108647141A (zh) * | 2018-04-26 | 2018-10-12 | 腾讯科技(深圳)有限公司 | 自动测试方法、装置、计算机可读介质及电子设备 |
-
2018
- 2018-12-06 CN CN201811487661.6A patent/CN109634782B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100897412B1 (ko) * | 2006-11-09 | 2009-05-14 | 한국전자통신연구원 | 소프트웨어 결함 유발 데이터를 삽입한 파일을 이용하여소프트웨어의 결함을 검출하는 자동화 시스템 및 그 방법 |
CN101635640A (zh) * | 2009-09-04 | 2010-01-27 | 江苏天智互联科技有限公司 | Web网站系统服务器终端程序的版本自动发布方法 |
US20120124424A1 (en) * | 2010-11-17 | 2012-05-17 | Gorti Atchyuth K | Enhanced debug/test capability to a core reset process |
CN102053853A (zh) * | 2010-12-30 | 2011-05-11 | 北京像素软件科技股份有限公司 | 一种网络游戏版本更新方法 |
CN105094764A (zh) * | 2014-05-04 | 2015-11-25 | 中国移动通信集团公司 | 电子设备应用的生成方法及装置 |
CN105159818A (zh) * | 2015-08-28 | 2015-12-16 | 东北大学 | 内存数据管理中日志恢复方法及其仿真系统 |
CN105677335A (zh) * | 2015-12-29 | 2016-06-15 | 广东欧珀移动通信有限公司 | 提高移动终端首次开机速度的方法及装置 |
CN107766177A (zh) * | 2017-10-12 | 2018-03-06 | 广东欧珀移动通信有限公司 | 开机优化方法、装置、存储介质及终端设备 |
CN108647141A (zh) * | 2018-04-26 | 2018-10-12 | 腾讯科技(深圳)有限公司 | 自动测试方法、装置、计算机可读介质及电子设备 |
Non-Patent Citations (4)
Title |
---|
林钊: "《互联网GIS系统底层算法设计和实现》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
胡金柱: "《FORTRAN77与应用软件开发方法》", 31 July 1991, 化学工业出版社 * |
郑立文 等: "《会计电算化教程》", 30 June 2001, 中国商业出版社 * |
齐泓鑫: "《新华社多媒体数据管理系统初探》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111240986A (zh) * | 2020-01-16 | 2020-06-05 | 四川九州电子科技股份有限公司 | 一种人工智能设备检测系统及方法 |
CN111240986B (zh) * | 2020-01-16 | 2023-04-28 | 四川九州电子科技股份有限公司 | 一种人工智能设备检测系统及方法 |
CN114238249A (zh) * | 2022-02-25 | 2022-03-25 | 成都鲁易科技有限公司 | 文件系统老化评估方法及装置、存储介质、终端 |
Also Published As
Publication number | Publication date |
---|---|
CN109634782B (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542744B (zh) | 检测终端开机异常问题的方法、装置、存储介质及终端 | |
CN107402835B (zh) | 应用程序的异常处理方法、装置及存储介质和移动终端 | |
CN109522147A (zh) | 一种记录开机异常信息的方法、装置、存储介质及终端 | |
WO2019227994A1 (en) | Method and apparatus for updating application prediction model, storage medium, and terminal | |
CN110825563B (zh) | 系统恢复方法、装置以及电子设备 | |
CN109614267A (zh) | 一种修复开机异常问题的方法、装置、存储介质及终端 | |
CN103927240A (zh) | 应对软件崩溃的信息转储方法和装置 | |
CN109753411A (zh) | 异常处理方法、装置、移动终端以及存储介质 | |
CN102135893A (zh) | 将操作系统集成到bios芯片及启动服务器上操作系统的方法 | |
CN106528158B (zh) | 挂载存储卡的方法、装置及移动终端 | |
CN109408465B (zh) | 文件归属信息记录方法、装置、存储介质及终端 | |
CN107766177A (zh) | 开机优化方法、装置、存储介质及终端设备 | |
CN113474756A (zh) | 应用程序的处理方法、装置、存储介质及电子设备 | |
CN109783149A (zh) | 开机控制方法、装置、移动终端以及存储介质 | |
CN109634782A (zh) | 一种系统健壮性的检测方法、装置、存储介质及终端 | |
CN108897646B (zh) | 一种bios芯片的切换方法及基板管理控制器 | |
US9772892B2 (en) | Recovery method for portable touch-control device and portable touch-control device using the same | |
CN112433739B (zh) | 一种固件升级方法 | |
CN102135923A (zh) | 将操作系统集成到bios芯片的方法及启动该操作系统的方法 | |
CN109408282A (zh) | 应用程序备份恢复方法、设备及计算机可读存储介质 | |
CN109491825B (zh) | 一种定位开机异常问题的方法、装置、存储介质及终端 | |
CN109976790B (zh) | 应用更新方法、装置、终端及存储介质 | |
CN104461659A (zh) | 一种高可靠性的计算机启动方法 | |
CN106843440B (zh) | 一种移动终端的重启控制方法、装置及移动终端 | |
CN114328341A (zh) | Sd卡热插拔的识别方法、识别模组及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |