
本发明涉及终端
技术领域:
,尤其涉及一种终端启动的加速装置及方法。
背景技术:
:目前的终端例如手机,已成为我们生活中的必需品,很多用户对手机体验要求也越来越高,包括各种性能指标,其中,开机速度就是其中的一种。当用户手机使用时间过长,或者在手机安装的软件太多时,开机的速度可能会变得越来越慢。现在很多优化开机速度的方法是通过减少开机时加载的应用软件或服务的数量,或者推迟应用和服务的启动时间来实现的,例如用户开机后要等一会,才能使用某些应用,显然,这些做法会影响用户的体验效果,而且启动的方式也不够智能。技术实现要素:本发明的主要目的在于提出一种终端启动的加速装置及方法,旨在解决现有的终端启动方式,智能性低的技术问题。为实现上述目的,本发明提供了一种终端启动的加速装置,所述终端的虚拟文件系统中设置有记录模块和调整模块,所述加速装置还包括:开启模块,用于在检测到终端系统启动时,开启记录模块;所述记录模块,用于通过所述记录模块记录终端系统启动时访问的各个文件对应的文件信息,并将记录的各个文件信息记录到预设的系统文件中;所述开启模块,还用于开启调整模块;所述调整模块,用于读取所述系统文件中的各个文件信息,以通过读取的各个文件信息调整各个文件在闪存中的存放位置,便于后续将调整了存放位置的各个文件的内容通过预读先加载到高速缓存中,以实现终端的快速启动。可选地,所述开启模块,还用于在检测到终端系统空闲时,开启调整模块以读取所述系统文件中的各个文件信息。可选地,所述调整模块包括:判断单元,用于通过读取的各个文件信息,判断访问顺序连续且存放在同一目录下的各个文件在闪存中的位置是否连续;调整单元,用于若不连续,则对各个文件的存放位置进行调整,以使各个文件在闪存中的存放位置连续。可选地,所述调整单元包括:获取子单元,用于获取定义的文件链表,确定所述文件链表是否为空;排列子单元,用于若所述文件链表为空,则按照各个文件的访问顺序排列各个文件,以使各个文件在闪存中的存放位置连续。可选地,所述调整单元还包括:确定子单元,用于若所述文件链表不为空,则确定所述文件链表中的预存文件与待调整的文件是否在同一目录下;所述排列子单元,还用于若是,则按照各个文件的访问顺序将各个文件排列到所述文件链表,以使各个文件在闪存中的存放位置连续;处理子单元,用于若不是,则清空所述文件链表,并按照各个文件的访问顺序将各个文件排列到清空后的文件链表,以使各个文件在闪存中的存放位置连续。此外,为实现上述目的,本发明提供了一种终端启动的加速方法,终端的虚拟文件系统中设置有记录模块和调整模块,所述加速方法包括:在检测到终端系统启动时,开启记录模块,以通过所述记录模块记录终端系统启动时访问的各个文件对应的文件信息,并将记录的各个文件信息记录到预设的系统文件中;开启调整模块读取所述系统文件中的各个文件信息,以通过读取的各个文件信息调整各个文件在闪存中的存放位置,便于后续将调整了存放位置的各个文件的内容通过预读先加载到高速缓存中,以实现终端的快速启动。可选地,所述开启调整模块读取所述系统文件中的各个文件信息的步骤包括:在检测到终端系统空闲时,开启调整模块以读取所述系统文件中的各个文件信息。可选地,所述通过读取的各个文件信息调整各个文件在闪存中的存放位置的步骤包括:通过读取的各个文件信息,判断访问顺序连续且存放在同一目录下的各个文件在闪存中的位置是否连续;若不连续,则对各个文件的存放位置进行调整,以使各个文件在闪存中的存放位置连续。可选地,所述对各个文件的存放位置进行调整,以使各个文件在闪存中的存放位置连续的步骤包括:获取定义的文件链表,确定所述文件链表是否为空;若所述文件链表为空,则按照各个文件的访问顺序排列各个文件,以使各个文件在闪存中的存放位置连续。可选地,所述获取定义的文件链表,确定所述文件链表是否为空的步骤之后,所述加速方法还包括:若所述文件链表不为空,则确定所述文件链表中的预存文件与待调整的文件是否在同一目录下;若是,则按照各个文件的访问顺序将各个文件排列到所述文件链表,以使各个文件在闪存中的存放位置连续;若不是,则清空所述文件链表,并按照各个文件的访问顺序将各个文件排列到清空后的文件链表,以使各个文件在闪存中的存放位置连续。本发明的技术方案,终端的虚拟文件系统中设置有记录模块和调整模块,在检测到终端系统启动时,先开启记录模块,以通过所述记录模块记录终端系统启动时访问的各个文件对应的文件信息,并将记录的各个文件信息记录到预设的系统文件中,再开启调整模块读取所述系统文件中的各个文件信息,以通过读取的各个文件信息调整各个文件在闪存中的存放位置,便于后续将调整了存放位置的各个文件的内容通过预读先加载到高速缓存中,提高文件的读写速度,以实现终端的快速启动,相对于现有技术,本发明无需减少开机时加载的应用软件或服务的数量,或者推迟应用和服务的启动时间,从而提高了移动终端启动的智能性。附图说明图1为实现本发明各个实施例一个可选地终端的硬件结构示意图;图2为本发明终端启动的加速装置第一实施例的模块示意图;图3为本发明中记录模块记录文件信息的场景示意图;图4为本发明调整模块通过读取的各个文件信息调整各个文件在闪存中的存放位置的场景流程图;图5为本发明终端启动的加速方法第一实施例的流程示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。现在将参考附图描述实现本发明各个实施例的终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。图1为实现本发明各个实施例的一个可选地终端的硬件结构示意图。终端100可以包括无线通信单元110、a/v(音频/视频)输入单元120、用户输入单元130、感测单元140、输出单元150、存储器160、接口单元170、控制器180和电源单元190等等。图1示出了具有各种组件的终端,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。将在下面详细描述终端的元件。无线通信单元110通常包括一个或多个组件,其允许终端100与无线通信装置或网络之间的无线电通信。a/v输入单元120用于接收音频或视频信号。用户输入单元130可以根据用户输入的命令生成键输入数据以控制终端的各种操作。用户输入单元130允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等等。特别地,当触摸板以层的形式叠加在显示单元151上时,可以形成触摸屏。感测单元140检测终端100的当前状态,(例如,终端100的打开或关闭状态)、终端100的位置、用户对于终端100的接触(即,触摸输入)的有无、终端100的取向、终端100的加速或将速移动和方向等等,并且生成用于控制终端100的操作的命令或信号。例如,当终端100实施为滑动型移动电话时,感测单元140可以感测该滑动型电话是打开还是关闭。另外,感测单元140能够检测电源单元190是否提供电力或者接口单元170是否与外部装置耦接。接口单元170用作至少一个外部装置与终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。识别模块可以是存储用于验证用户使用终端100的各种信息并且可以包括用户识别模块(uim)、客户识别模块(sim)、通用客户识别模块(usim)等等。另外,具有识别模块的装置(下面称为“识别装置”)可以采取智能卡的形式,因此,识别装置可以经由端口或其它连接装置与终端100连接。接口单元170可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到终端100内的一个或多个元件或者可以用于在终端和外部装置之间传输数据。另外,当终端100与外部底座连接时,接口单元170可以用作允许通过其将电力从底座提供到终端100的路径或者可以用作允许从底座输入的各种命令信号通过其传输到终端的路径。从底座输入的各种命令信号或电力可以用作用于识别终端是否准确地安装在底座上的信号。输出单元150被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频信号、警报信号、振动信号等等)。存储器160可以存储由控制器180执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储器160可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。存储器160可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等等。而且,终端100可以与通过网络连接执行存储器160的存储功能的网络存储装置协作。控制器180通常控制终端的总体操作。例如,控制器180执行与语音通话、数据通信、视频通话等等相关的控制和处理。另外,控制器180可以包括用于再现(或回放)多媒体数据的多媒体模块181,多媒体模块181可以构造在控制器180内,或者可以构造为与控制器180分离。控制器180可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。电源单元190在控制器180的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(asic)、数字信号处理器(dsp)、数字信号处理装置(dspd)、可编程逻辑装置(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器180中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器160中并且由控制器180执行。至此,己经按照其功能描述了终端。下面,为了简要起见,将描述诸如折叠型、直板型、摆动型、滑动型终端等等的各种类型的终端中的滑动型终端作为示例。因此,本发明能够应用于任何类型的终端,并且不限于滑动型终端。应当理解,现有的手机系统启动时,系统会加载一些服务和启动一些应用。这个过程需要从nandflash(闪存)中读出这些服务和应用的程序文件以及一些配置文件。由于应该程序安装的时间是随机的,所以这些文件存放的位置也比较随机,而且这些文件很多都是小文件。而终端系统的文件系统对随机存放的小文件访问是比较慢的,如果这些文件比较多,会严重的影响开机速度。要优化这个问题,我们要先分析这个问题的原因。由于目前终端访问内存是比较快的,而访问nandflash的速度比较慢。为了提高系统性能,文件系统在读取文件时,会使用高速缓存和预读功能,也就是如果最近读的文件存放在nandflash中的位置都是连续的,那么文件系统不仅会将需要的文件内容读到高速缓存,而且还会将接下来nandflash连续的地址的存储内容一起读到高速缓存中,这样,在接下来真正需要读取这个文件的时候,就不用等待速度比较慢的nandflash读操作了。而当文件系统发现前面的读操作不是连续位置时,便会不再预读,或者减少预读内容。所以在读位置随机存放的小文件时,预读功能就会失效,这时读写速度就大大的下降。基于上述终端硬件结构、以及现有技术存在的问题,提出本发明终端启动的加速装置的各个实施例。参照图2,图2为本发明终端启动的加速装置第一实施例的模块示意图。本实施例中的所述终端即图1中所述的终端。需要强调的是,对本领域的技术人员来说,图2所示模块图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图2所示的终端启动的加速装置的模块,可轻易进行新的模块的补充;各模块的名称是自定义名称,仅用于辅助理解该终端启动的加速装置的各个程序功能块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的模块所要达成的功能。在本实施例中,所述终端的虚拟文件系统中设置有记录模块20和调整模块30,所述加速装置还包括:开启模块10,用于在检测到终端系统启动时,开启记录模块;所述记录模块20,用于通过所述记录模块记录终端系统启动时访问的各个文件对应的文件信息,并将记录的各个文件信息记录到预设的系统文件中;所述开启模块10,还用于开启调整模块;所述调整模块30,用于读取所述系统文件中的各个文件信息,以通过读取的各个文件信息调整各个文件在闪存中的存放位置,便于后续将调整了存放位置的各个文件的内容通过预读先加载到高速缓存中,以实现终端的快速启动。在本实施例中,先在终端的虚拟文件系统中插入两个模块,分别为记录模块20(vfsmonitor模块)和调整模块30(repositionfile模块)。其中,所述记录模块20用来检测终端系统开机过程中访问了哪些文件,并将访问文件对应的文件信息记录到一个系统文件(systemstartupfileinfo)中。调整模块30在终端开机后且终端系统空闲时被触发运行,通过分析所述系统文件,以调整一些文件在闪存(nandflash)中的存放位置,从而可以在后续读取这些文件时,直接将文件内容加载至高速缓存中使用预读功能。其中,所述开启模块10,用于在检测到终端系统启动时,开启记录模块;所述记录模块20,用于通过所述记录模块记录终端系统启动时访问的各个文件对应的文件信息,并将记录的各个文件信息记录到预设的系统文件中;在本实施例中,vfsmonitor模块插入在vfs(virtualfilesystem,虚拟文件系统)层中,并且只有在虚拟文件系统启动过程中才打开该功能。这样,在终端系统启动过程加载服务和应用时,会通过vfs系统的调用去访问文件,具体的,vfs会启动vfsmonitor模块,以通过启动的vfsmonitor模块统计终端系统访问的文件信息,并将这些信息记录在systemstartupfileinfo系统文件中,具体可参照图3。具体地,所述记录模块20将记录的各个文件信息记录到预设的系统文件中的步骤包括:所述记录模块确定各个文件的访问顺序;所述记录模块根据各个文件的访问顺序将记录的各个文件信息记录到预设系统文件中。即,在本实施例中,所述vfsmonitor模块先确定终端系统访问各个文件的访问顺序,然后根据各个文件的先后访问顺序,将记录的各个文件信息记录到所述systemstartupfileinfo系统文件中,方便后续repositionfile模块在优化文件位置时进行读取。本实施例中,vfsmonitor模块对每个文件记录的文件信息如下:name文件完整路径名num文件被访问顺序号size文件大小其中,所述开启模块10,还用于开启调整模块;所述调整模块30,用于读取所述系统文件中的各个文件信息,以通过读取的各个文件信息调整各个文件在闪存中的存放位置,便于后续将调整了存放位置的各个文件的内容通过预读先加载到高速缓存中,以实现终端的快速启动。在本实施例中,当vfsmonitor模块记录了各个文件的文件信息之后,所述开启模块10开启repositionfile模块,以通过开启的repositionfile模块读取所述systemstartupfileinfo系统文件中的各个文件信息。repositionfile模块读取各个文件信息之后,根据读取的文件信息调整各个文件在nandflash闪存中的存放位置,后续,即可将调整了存放位置的各个文件的内容通过预读先加载到高速缓存中,提高文件的读写速度,以实现终端的快速启动。具体地,所述开启模块10,还用于在检测到终端系统空闲时,开启调整模块以读取所述系统文件中的各个文件信息。即,本实施例中,优选所述repositionfile模块在终端系统空闲的时间被启动,即,终端在检测到终端系统处于空闲状态时才启动所述repositionfile模块。需要说明的是,本发明实施例中,当终端系统空闲时,终端中的cpu利用率较低,调整模块也处于空闲状态,此时,开启调整模块以读取所述系统文件中的各个文件信息,不会影响到终端的运行。此外,在终端系统空闲时,还可将调整模块的优先级设定的较低,其中,可以设定为最低的优先级,也可以设定为优先级排列顺序靠后的任意一个优先级。在开启调整模块之后,根据开启的所述调整模块读取所述系统文件中的各个文件信息。后续,由所述调整模块通过读取的各个文件信息调整各个文件在闪存中的存放位置,便于后续将调整了存放位置的各个文件的内容通过预读先加载到高速缓存中,以实现终端的快速启动。在本实施例中,调整模块在终端系统空闲时被启动,并且是通过优先级较低的进程来实现,这样当终端系统有其它的进程需要执行时,可以马上切换出去,从而不会影响终端的其它各个功能操作,提高了终端启动加速的智能性。应当注意的是,本实施例中是在终端系统空闲时才开启调整模块调整各个文件在闪存的位置,那么,终端本次开机时,由于还未能开启调整模块调整各个文件在闪存的位置,那么终端本次启动的速度还是较慢,但是通过记录模块记录的文件信息,以及通过调整模块各个文件在闪存的位置,下次终端启动时,即可从闪存中直接加载到高速缓存中进行预读,以实现终端的快速启动。本实施例提出的终端启动的加速装置,终端的虚拟文件系统中设置有记录模块和调整模块,在检测到终端系统启动时,先开启记录模块,以通过所述记录模块记录终端系统启动时访问的各个文件对应的文件信息,并将记录的各个文件信息记录到预设的系统文件中,再开启调整模块读取所述系统文件中的各个文件信息,以通过读取的各个文件信息调整各个文件在闪存中的存放位置,便于后续将调整了存放位置的各个文件的内容通过预读先加载到高速缓存中,提高文件的读写速度,以实现终端的快速启动,相对于现有技术,本发明无需减少开机时加载的应用软件或服务的数量,或者推迟应用和服务的启动时间,从而提高了移动终端启动的智能性。进一步地,提出本发明终端启动的加速装置的第二实施例。终端启动的加速装置的第二实施例与终端启动的加速装置的第一实施例的区别在于,所述调整模块30包括:判断单元,用于通过读取的各个文件信息,判断访问顺序连续且存放在同一目录下的各个文件在闪存中的位置是否连续;调整单元,用于若不连续,则对各个文件的存放位置进行调整,以使各个文件在闪存中的存放位置连续。在本实施例中,在开启调整模块读取所述系统文件中的各个文件信息之后,由所述调整模块通过读取的各个文件信息,查询访问顺序连续且存放在同一目录下的各个文件,其中,所述同一目录是指在系统文件中的同一目录,然后进一步地判断该各个文件在闪存中的位置是否连续,此时若发现该各个文件在闪存中的位置不连续,则对该各个文件的存放位置进行调整,以使各个文件在闪存中的存放位置连续。本实施例中,相当于repositionfile模块被启动后,repositionfile模块从systemstartupfileinfo系统文件中获取终端系统启动时访问过的文件的信息,将在启动时访问顺序是连续,并且存放系统文件中同一目录,但在nandflash存放位置不连续的文件重新进行整理,使这些文件在nandflash的存放位置是连续的,并且位置的先后顺序按启动时间被访问的先后顺序排列。在本实施中,对访问顺序连续且存放在同一目录下的各个文件在闪存中的位置进行调整,以使该各个文件的存储位置连续,后续即可将调整存放位置后的各个文件的内容通过预读先加载到高速缓存中,实现终端的快速启动。进一步地,提出本发明终端启动的加速装置的第三实施例。终端启动的加速装置的第三实施例与终端启动的加速装置的第二实施例的区别在于,所述调整单元包括:获取子单元,用于获取定义的文件链表,确定所述文件链表是否为空;排列子单元,用于若所述文件链表为空,则按照各个文件的访问顺序排列各个文件,以使各个文件在闪存中的存放位置连续。本实施例中,文件链表file_list可以是一开始定义好的,后续直接使用,若事先未定义,则在后续使用时再进行定义,一开始定义的文件链表需要执行初始化操作,以使文件链表为空。需要说明的是,本实施例中的文件链表用来存放同一目录下的文件。在本实施例中,在执行“获取定义的文件链表,确定所述文件链表是否为空”的步骤之前,还包括步骤:判断当前文件file是不是一个容量小于预设阈值的文件,即确定当前文件是否为小文件,如果不是,则跳过该文件继续下一个文件的处理,如果是,才执行“获取定义的文件链表,确定所述文件链表是否为空”的步骤。在存在文件链表的情况下,获取所述文件链表,然后确定所述文件链表是否为空,若所述文件链表为空,即可按照各个文件的访问顺序排列该各个文件,以使各个文件在闪存中的存放位置连续。在本实施例中,通过文件链表来对闪存中各个文件的存放位置进行调整,以实现同一个文件目录下的文件排列连续,便于后续将连续排列的各个文件的文件内容通过预读先加载到高速缓存中,实现终端的快速启动。进一步地,提出本发明终端启动的加速装置的第四实施例。终端启动的加速装置的第四实施例与终端启动的加速装置的第三实施例的区别在于,所述调整单元还包括:确定子单元,用于若所述文件链表不为空,则确定所述文件链表中的预存文件与待调整的文件是否在同一目录下;所述排列子单元,还用于若是,则按照各个文件的访问顺序将各个文件排列到所述文件链表,以使各个文件在闪存中的存放位置连续;处理子单元,用于若不是,则清空所述文件链表,并按照各个文件的访问顺序将各个文件排列到清空后的文件链表,以使各个文件在闪存中的存放位置连续。在本实施例中,在所述文件链表不为空的情况下,分两个操作:1)确定文件链表中的预存文件与待调整的文件是否在同一目录下,若是则按照各个文件的访问顺序将各个文件排列到所述文件链表,以使各个文件的存放位置连续,也就是将文件紧接着排在预存文件后,以使同一目录下的各个文件在闪存中的存放位置连续。2)若文件链表中的预存文件与待调整的文件不在同一目录下,则清空所述文件链表,并按照各个文件的访问顺序将各个文件排列到清空后的文件链表,以使各个文件在闪存中的存放位置连续。进一步地,在清空文件链表之前,先检查该文件链表中已有的各个文件是否按照先后访问顺序存放在闪存中,若不是,先将所述文件链表中的各个文件的存储到闪存中,再进行调整,以使预存文件在闪存中的存放位置连续。在调整之后,才清空文件链表,提高了终端启动加速的智能性。为更好理解本实施例,如图4所示,由调整模块30通过读取的各个文件信息调整各个文件在闪存中的存放位置的具体场景如下:1、定义一个文件链表file_list,用来存放同一目录下的文件,并将该链表初始化为空。2、按照终端系统启动时文件被访问的先后顺序,循环从systemstartupfileinfo系统文件中获取每一个文件信息,对每一个文件做如下处理:2.1、判断该文件file是不是一个小文件,如果不是,则跳过该文件继续下一个文件的处理。2.2、如果file_list不为空,并且这个文件和file_list中的文件不在同一个目录中。那么做如下处理:2.2.1、检查file_list中的文件是否按照先后顺序存放在nandflash连续的位置,如果不是,则整理这些文件的存放位置使其按先后顺序存放在连续的位置,并及时将这些文件刷新到nandflash存储中。2.2.2、将file_list链表清空。2.3、将文件file添加到file_list中。2.4、判断文件file是不是最后一个文件,如果是,则退出这个循环;如果不是,则继续下一个文件的出来。3、如果file_list存放有文件,则检查file_list中的文件是否按照先后顺序存放在nandflash连续的位置,如果不是则整理这些文件的存放位置使其按先后顺序存放在连续的位置并刷新到nandflash存储中。本发明还提供一种终端启动的加速方法。参照图5,图5为本发明终端启动的加速方法第一实施例的流程示意图。在本实施例中,终端的虚拟文件系统中设置有记录模块和调整模块,所述终端启动的加速方法包括:在检测到终端系统启动时,开启记录模块,以通过所述记录模块记录终端系统启动时访问的各个文件对应的文件信息,并将记录的各个文件信息记录到预设的系统文件中;开启调整模块读取所述系统文件中的各个文件信息,以通过读取的各个文件信息调整各个文件在闪存中的存放位置,便于后续将调整了存放位置的各个文件的内容通过预读先加载到高速缓存中,以实现终端的快速启动。在本实施例中,先在终端的虚拟文件系统(virtualfilesystem,vfs)中插入两个模块,分别为记录模块(vfsmonitor模块)和调整模块(repositionfile模块)。其中,所述记录模块用来检测终端系统开机过程中访问了哪些文件,并将访问文件对应的文件信息记录到一个系统文件(systemstartupfileinfo)中。调整模块在终端开机后且终端系统空闲时被触发运行,通过分析所述系统文件,以调整一些文件在闪存(nandflash)中的存放位置,从而可以在后续读取这些文件时,直接将文件内容加载至高速缓存中使用预读功能。以下是本实施例中实现终端启动的加速的具体步骤:步骤s10,在检测到终端系统启动时,开启记录模块,以通过所述记录模块记录终端系统启动时访问的各个文件对应的文件信息,并将记录的各个文件信息记录到预设的系统文件中;在本实施例中,vfsmonitor模块插入在vfs层中,并且只有在虚拟文件系统启动过程中才打开该功能。这样,在终端系统启动过程加载服务和应用时,会通过vfs系统的调用去访问文件,具体的,vfs会启动vfsmonitor模块,以通过启动的vfsmonitor模块统计终端系统访问的文件信息,并将这些信息记录在systemstartupfileinfo系统文件中,具体可参照图3。具体地,所述将记录的各个文件信息记录到预设的系统文件中的步骤包括:所述记录模块确定各个文件的访问顺序;所述记录模块根据各个文件的访问顺序将记录的各个文件信息记录到预设系统文件中。即,在本实施例中,所述vfsmonitor模块先确定终端系统访问各个文件的访问顺序,然后根据各个文件的先后访问顺序,将记录的各个文件信息记录到所述systemstartupfileinfo系统文件中,方便后续repositionfile模块在优化文件位置时进行读取。本实施例中,vfsmonitor模块对每个文件记录的文件信息如下:name文件完整路径名num文件被访问顺序号size文件大小步骤s20,开启调整模块读取所述系统文件中的各个文件信息,以通过读取的各个文件信息调整各个文件在闪存中的存放位置,便于后续将调整了存放位置的各个文件的内容通过预读先加载到高速缓存中,以实现终端的快速启动。在本实施例中,当vfsmonitor模块记录了各个文件的文件信息之后,所述终端开启repositionfile模块,以通过开启的repositionfile模块读取所述systemstartupfileinfo系统文件中的各个文件信息。repositionfile模块读取各个文件信息之后,根据读取的文件信息调整各个文件在nandflash闪存中的存放位置,后续,即可将调整了存放位置的各个文件的内容通过预读先加载到高速缓存中,提高文件的读写速度,以实现终端的快速启动。具体地,所述“开启调整模块读取所述系统文件中的各个文件信息”的步骤包括:在检测到终端系统空闲时,开启调整模块以读取所述系统文件中的各个文件信息。即,本实施例中,优选所述repositionfile模块在终端系统空闲的时间被启动,即,终端在检测到终端系统处于空闲状态时才启动所述repositionfile模块。需要说明的是,本发明实施例中,当终端系统空闲时,终端中的cpu利用率较低,调整模块也处于空闲状态,此时,开启调整模块以读取所述系统文件中的各个文件信息,不会影响到终端的运行。此外,在终端系统空闲时,还可将调整模块的优先级设定的较低,其中,可以设定为最低的优先级,也可以设定为优先级排列顺序靠后的任意一个优先级。在开启调整模块之后,根据开启的所述调整模块读取所述系统文件中的各个文件信息。后续,由所述调整模块通过读取的各个文件信息调整各个文件在闪存中的存放位置,便于后续将调整了存放位置的各个文件的内容通过预读先加载到高速缓存中,以实现终端的快速启动。在本实施例中,调整模块在终端系统空闲时被启动,并且是通过优先级较低的进程来实现,这样当终端系统有其它的进程需要执行时,可以马上切换出去,从而不会影响终端的其它各个功能操作,提高了终端启动加速的智能性。应当注意的是,本实施例中是在终端系统空闲时才开启调整模块调整各个文件在闪存的位置,那么,终端本次开机时,由于还未能开启调整模块调整各个文件在闪存的位置,那么终端本次启动的速度还是较慢,但是通过记录模块记录的文件信息,以及通过调整模块各个文件在闪存的位置,下次终端启动时,即可从闪存中直接加载到高速缓存中进行预读,以实现终端的快速启动。本实施例提出的终端启动的加速方法,终端的虚拟文件系统中设置有记录模块和调整模块,在检测到终端系统启动时,先开启记录模块,以通过所述记录模块记录终端系统启动时访问的各个文件对应的文件信息,并将记录的各个文件信息记录到预设的系统文件中,再开启调整模块读取所述系统文件中的各个文件信息,以通过读取的各个文件信息调整各个文件在闪存中的存放位置,便于后续将调整了存放位置的各个文件的内容通过预读先加载到高速缓存中,提高文件的读写速度,以实现终端的快速启动,相对于现有技术,本发明无需减少开机时加载的应用软件或服务的数量,或者推迟应用和服务的启动时间,从而提高了移动终端启动的智能性。进一步地,提出本发明终端启动的加速方法的第二实施例。终端启动的加速方法的第二实施例与终端启动的加速方法的第一实施例的区别在于,所述“通过读取的各个文件信息调整各个文件在闪存中的存放位置”的步骤包括:通过读取的各个文件信息,判断访问顺序连续且存放在同一目录下的各个文件在闪存中的位置是否连续;若不连续,则对各个文件的存放位置进行调整,以使各个文件在闪存中的存放位置连续。在本实施例中,在开启调整模块读取所述系统文件中的各个文件信息之后,由所述调整模块通过读取的各个文件信息,查询访问顺序连续且存放在同一目录下的各个文件,其中,所述同一目录是指在系统文件中的同一目录,然后进一步地判断该各个文件在闪存中的位置是否连续,此时若发现该各个文件在闪存中的位置不连续,则对该各个文件的存放位置进行调整,以使各个文件在闪存中的存放位置连续。本实施例中,相当于repositionfile模块被启动后,repositionfile模块从systemstartupfileinfo系统文件中获取终端系统启动时访问过的文件信息,将在启动时访问顺序是连续,并且存放在系统文件中同一目录,但在nandflash存放位置不连续的文件重新进行整理,使这些文件在nandflash的存放位置是连续的,并且位置的先后顺序按启动时间被访问的先后顺序排列。在本实施中,对访问顺序连续且存放在同一目录下的各个文件在闪存中的位置进行调整,以使该各个文件的存储位置连续,后续即可将调整存放位置后的各个文件的内容通过预读先加载到高速缓存中,实现终端的快速启动。进一步地,提出本发明终端启动的加速方法的第三实施例。终端启动的加速方法的第三实施例与终端启动的加速方法的第二实施例的区别在于,所述“对各个文件的存放位置进行调整,以使各个文件在闪存中的存放位置连续”的步骤包括:获取定义的文件链表,确定所述文件链表是否为空;若所述文件链表为空,则按照各个文件的访问顺序排列各个文件,以使各个文件在闪存中的存放位置连续。本实施例中,文件链表file_list可以是一开始定义好的,后续直接使用,若事先未定义,则在后续使用时再进行定义,一开始定义的文件链表需要执行初始化操作,以使文件链表为空。需要说明的是,本实施例中的文件链表用来存放同一目录下的文件。在本实施例中,在执行“获取定义的文件链表,确定所述文件链表是否为空”的步骤之前,还包括步骤:判断当前文件file是不是一个容量小于预设阈值的文件,即确定当前文件是否为小文件,如果不是,则跳过该文件继续下一个文件的处理,如果是,才执行“获取定义的文件链表,确定所述文件链表是否为空”的步骤。在存在文件链表的情况下,获取所述文件链表,然后确定所述文件链表是否为空,若所述文件链表为空,即可按照各个文件的访问顺序排列该各个文件,以使各个文件在闪存中的存放位置连续。在本实施例中,通过文件链表来对闪存中各个文件的存放位置进行调整,以实现同一个文件目录下的文件排列连续,便于后续将连续排列的各个文件的文件内容通过预读先加载到高速缓存中,实现终端的快速启动。进一步地,提出本发明终端启动的加速方法的第四实施例。终端启动的加速方法的第四实施例与终端启动的加速方法的第三实施例的区别在于,所述“获取定义的文件链表,确定所述文件链表是否为空”的步骤之后,所述加速方法还包括:若所述文件链表不为空,则确定所述文件链表中的预存文件与待调整的文件是否在同一目录下;若是,则按照各个文件的访问顺序将各个文件排列到所述文件链表,以使各个文件在闪存中的存放位置连续;若不是,则清空所述文件链表,并按照各个文件的访问顺序将各个文件排列到清空后的文件链表,以使各个文件在闪存中的存放位置连续。在本实施例中,在所述文件链表不为空的情况下,分两个操作:1)确定文件链表中的预存文件与待调整的文件是否在同一目录下,若是则按照各个文件的访问顺序将各个文件排列到所述文件链表,以使各个文件的存放位置连续,也就是将文件紧接着排在预存文件后,以使同一目录下的各个文件在闪存中的存放位置连续。2)若文件链表中的预存文件与待调整的文件不在同一目录下,则清空所述文件链表,并按照各个文件的访问顺序将各个文件排列到清空后的文件链表,以使各个文件在闪存中的存放位置连续。进一步地,在清空文件链表之前,先检查该文件链表中已有的各个文件是否按照先后访问顺序存放在闪存中,若不是,先将所述文件链表中的各个文件的存储到闪存中,再进行调整,以使预存文件在闪存中的存放位置连续。在调整之后,才清空文件链表,提高了终端启动加速的智能性。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的
技术领域:
,均同理包括在本发明的专利保护范围内。当前第1页12