系统启动的方法及装置与流程

文档序号:11864534阅读:305来源:国知局
系统启动的方法及装置与流程

本发明涉及移动终端技术领域,尤其涉及一种系统启动的方法及装置。



背景技术:

随着移动终端技术的发展,智能手机、平板电脑等智能移动终端已成为人们日常生活中不可或缺的工具。为了保护虚拟机缓存目录/data/dalvik-cache中的内容不在掉电时遭到破坏,从而避免导致某些进程在系统启动时,由于/data/dalvik-cache中的内容被破坏而发生异常,进而致使智能移动终端无法开机,现有的基于Android系统的智能移动终端系统启动技术,在ART(android runtime)模块引入.booting机制,即在每次开机时都会执行.booting操作,这就导致用户每次开机时速度都很缓慢。但如果不执行.booting操作,则无法解决当/data/dalvik-cache中的内容在终端刷机后或恢复出厂设置后第一次开机的时候,因掉电而遭到破坏,而导致的终端无法开机的问题。



技术实现要素:

本发明提供一种系统启动的方法及装置,通过只在移动终端第一次开机启动时执行.booting操作,同时可兼顾终端开机速度以及系统的稳定性。

本发明第一方面提供一种系统启动的方法,包括:开机启动移动终端;判断当前执行的开机启动操作是否为所述移动终端在刷机或恢复出厂设置后首次执行的开机启动操作;若是所述首次执行的开机启动操作,则执行.booting操作;若不是所述首次执行的开机启动操作,则跳过.booting操作。

本发明第二方面提供一种系统启动的装置,所述装置包括:启动模块,用于开机启动移动终端;判断模块,用于判断当前执行的开机启动操作是否为所述移动终端在刷机或恢复出厂设置后首次执行的开机启动操作;执行模块,用于若所述判断模块判断当前执行的开机启动操作是所述首次执行的开机启动操作,则执行.booting操作;所述执行模块,还用于若所述判断模块判断当前执行的开机启动操作不是所述首次执行的开机启动操作,则跳过所述.booting操作。

从上述本发明实施例可知,通过在移动终端每次开机启动时,判断当前执行的开机启动操作是否为移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,若是,则执行.booting操作,若不是,则跳过.booting操作,直接执行后续的开机启动操作,相较于现有技术,本发明一方面可以在移动终端在刷机或恢复出厂设置后首次开机启动时,通过执行.booting操作,确保移动终端不受/data/dalvik-cache中的内容因掉电而遭到破坏的影响,能够正常开机,从而维护了系统的稳定性,另一方面在非首次开机启动时,跳过执行.booting操作的步骤,从而加快开机速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

附图1示出了一种移动终端的结构框图;

附图2是本发明第一实施例提供的系统启动的方法的实现流程示意图;

附图3是本发明第二实施例提供的系统启动的方法的实现流程示意图;

附图4是本发明第三实施例提供的系统启动的装置的结构示意图;

附图5是本发明第四实施例提供的系统启动的装置的结构示意图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

附图1示出了一种移动终端的结构框图。该移动终端可以但不限于包括:具有射频功能的移动手机、平板电脑、智能穿戴设备以及多媒体播放器等等。如附图1所示,移动终端20包括存储器202、存储控制器204,一个或多个(图中仅示出一个)处理器206、外设接口208、射频模块210、按键模块212、音频模块214以及触控屏幕216。这些组件通过一条或多条通讯总线/信号线222相互通讯。

可以理解,该附图1所示的结构仅为示意,其并不对移动终端20的结构造成限定。例如,移动终端20还可包括比该附图1所示更多或者更少的组件,或者具有与该附图1所示不同的配置。该附图1所示的各组件可以采用硬件、软件或其组合实现。

存储器202可用于存储软件程序以及模块,如本发明实施例中的系统启动的方法及装置对应的程序指令/模块,处理器206通过运行存储在存储器202内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系统启动的方法。

存储器202可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器202可进一步包括相对于处理器206远程设置的存储器,这些远程存储器可以通过网络连接至移动终端20。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。处理器206以及其他可能的组件对存储器202的访问可在存储控制器204的控制下进行。

外设接口208将各种输入/输入装置耦合至处理器206以及存储器202。处理器206运行存储器202内的各种软件、指令以执行移动终端20的各种功能以及进行数据处理。

在一些实例中,外设接口208,处理器206以及存储控制器204可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。

射频模块210用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。射频模块210可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。射频模块210可与各种网络如互联网、企业内部网、预置类型的无线网络进行通讯或者通过预置类型的无线网络与其他设备进行通讯。上述的预置类型的无线网络可包括蜂窝式电话网、无线局域网或者城域网。上述的预置类型的无线网络可以使用各种通信标准、协议及技术,包括但并不限于全球移动通信系统(Global System for Mobile Communication,GSM),增强型移动通信技术(Enhanced Data GSM Environment,EDGE),宽带码分多址技术(Wideband Code Division Multiple Access,W-CDMA),码分多址技术(Code Division Access,CDMA),时分多址技术(Time Division Multiple Access,TDMA),蓝牙,无线保真技术(Wireless-Fidelity,WiFi)(如美国电气和电子工程师协会标准IEEE 802.11a、IEEE 802.11b、IEEE802.11g和/或IEEE 802.11n),网络电话(Voice over Internet Protocol,VoIP),全球微波互联接入(Worldwide Interoperability for Microwave Access,Wi-Max),其他用于邮件、即时通讯及短消息的协议,以及任何其他合适的通讯协议,甚至可包括那些当前仍未被开发出来的协议。

按键模块212提供用户向移动终端20进行输入的接口,用户可以通过按下不同的按键以使移动终端20执行不同的功能。

音频模块214向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。音频电路从外设接口208处接收声音数据,将声音数据转换为电信息,将电信息传输至扬声器。扬声器将电信息转换为人耳能听到的声波。音频电路还从麦克风处接收电信息,将电信号转换为声音数据,并将声音数据传输至外设接口208中以进行进一步的处理。音频数据可以从存储器202处或者通过射频模块210获取。此外,音频数据也可以存储至存储器202中或者通过射频模块210进行发送。在一些实例中,音频模块214还可包括一个耳机播孔,用于向耳机或者其他设备提供音频接口。

触控屏幕216在移动终端20与用户之间同时提供一个输出及输入界面。具体地,触控屏幕216向用户显示视频输出,这些视频输出的内容可包括文字、图形、视频、及其任意组合。一些输出结果是对应于一些用户界面对象。触控屏幕216还接收用户的输入,例如用户的点击、滑动等手势操作,以便用户界面对象对这些用户的输入做出响应。检测用户输入的技术可以是基于电阻式、电容式或者其他任意可能的触控检测技术。触控屏幕216显示单元的具体实例包括但并不限于液晶显示器或发光聚合物显示器。

请参阅附图2,附图2为本发明第一实施例提供的系统启动的方法的实现流程示意图。本实施例提供的系统启动的方法可应用于如附图1所示的移动终端20中,该移动终端的操作系统为具有ART或类似模块的Android操作系统,或者,具有相同工作原理的其他操作系统。如附图2所示,该方法主要包括以下步骤:

S101、开机启动移动终端;

当检测到用户进行预置的开启启动操作时,如按压预置的电源键或点击用于重新启动移动终端的快捷图标时,触发执行开机启动操作,对移动终端进行上电开机启动。

S102、判断当前执行的开机启动操作是否为移动终端在刷机或恢复出厂设置后首次执行的开机启动操作;

具体的,可通过分析系统属性值的变化,或者,通过检测系统中是否存在预置的文件来判断当前执行的开机启动操作是否为移动终端在刷机或恢复出厂设置后首次执行的开机启动操作。若当前执行的开机启动操作,是移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,则执行步骤S103;若当前执行的开机启动操作,不是移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,则执行步骤S104。

S103、执行.booting操作;

具体的,若当前执行的开机启动操作,是移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,则判断是否存在/data/dalvik-cache/<isa>/.booting文件。若存在该文件,则清除/data/dalvik-cache/<isa>目录下的文件;生成/data/dalvik-cache/<isa>/.booting文件;执行AMS finishBooting()操作;执行Installd删掉./booting文件的操作。若不存在该文件,则生成/data/dalvik-cache/<isa>/.booting文件;执行AMS finishBooting()操作;执行Installd删掉./booting文件的操作。然后,在执行完.booting操作后进行后续剩余的正常开机启动流程。

S104、跳过.booting操作。

若当前执行的开机启动操作,不是移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,则跳过上述.booting操作,直接执行后续剩余的正常开机启动流程。

本发明实施例提供的系统启动的方法,通过在移动终端每次开机启动时,判断当前执行的开机启动操作是否为移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,若是,则执行.booting操作,若不是,则跳过.booting操作,直接执行后续的开机启动操作,相较于现有技术,本发明一方面可以在移动终端在刷机或恢复出厂设置后首次开机启动时,通过执行.booting操作,确保移动终端不受/data/dalvik-cache中的内容因掉电而遭到破坏的影响,能够正常开机,从而维护了系统的稳定性,另一方面在非首次开机启动时,跳过执行.booting操作的步骤,从而加快开机速度。

请参阅附图3,附图3为本发明第二实施例提供的系统启动的方法的实现流程示意图。本实施例提供的系统启动的方法可应用于如附图1所示的移动终端20中,该移动终端的操作系统为具有ART或类似模块的Android操作系统,或者,具有相同工作原理的其他操作系统。如附图3所示,该方法主要包括以下步骤:

S201、开机启动移动终端;

当检测到用户进行预置的开启启动操作时,如按压预置的电源键或点击用于重新启动移动终端的快捷图标时,触发执行开机启动操作,对移动终端进行上电开机启动。

S202、判断预置的系统属性值是否为预置的值;

可以理解的,可以在系统中预先设置一个或多个系统属性值,用于判断移动终端当前执行的开机启动操作是否为该移动终端在刷机或恢复出厂设置后首次执行的开机启动操作。其中,预置的系统属性值可以是系统中原生的系统属性的值或新增加的系统属性的值,在第一次开机启动后,预置的系统属性值会发生变化。根据该原理,可判断移动终端当前执行的开机启动操作是否为该移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,即,若预置的系统属性值是预置的值,则确定当前执行的开机启动操作是移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,执行步骤S203:判断当前运行的进程是否为预置的守护进程;若预置的系统属性值不是预置的值,则确定当前执行的开机启动操作不是移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,执行步骤S205:跳过.booting操作。其中,预置的值可选地为初始值。

可选的,预置的系统属性值为persist属性值,则判断预置的系统属性值是否为预置的值具体为判断persist属性值是否为空值,若是空值,则是首次开机,若不是空值,则不是首次开机。

于本发明其他实施例中,判断当前执行的开机启动操作是否为移动终端在刷机或恢复出厂设置后首次执行的开机启动,具体还可通过以下步骤进行:判断系统中是否存在预置的文件;若存在预置的文件,则确定当前执行的开机启动操作是移动终端在刷机或恢复出厂设置后首次执行的开机启动操作;若不存在预置的文件,则确定当前执行的开机启动操作不是移动终端在刷机或恢复出厂设置后首次执行的开机启动操作。

S203、判断当前运行的进程是否为预置的守护进程;

守护进程(daemon)是指在UNIX或其他多任务操作系统中在后台执行的计算机程序,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。预置的守护进程是指经过ART模块,且会生成32位和64位的boot.oat文件的守护进程,可以但不限于包括:zygote进程或zygote64进程。

若判断当前运行的进程是预置的守护进程,则执行步骤S204:执行.booting操作;若当前运行的进程不是预置的守护进程,则执行步骤S205:跳过.booting操作。

像这样,通过判断当前运行的进程是否为预置的守护进程,且只有当当前运行的进程是预置的守护进程,才执行.booting操作,可提高在首次开机时,非需要运行预置的守护进程的情况下终端的开机速度。

S204、执行.booting操作;

具体的,若当前运行的进程是预置的守护进程,则判断是否存在/data/dalvik-cache/<isa>/.booting文件。若存在该文件,则清除/data/dalvik-cache/<isa>目录下的文件;生成/data/dalvik-cache/<isa>/.booting文件;执行AMS finishBooting()操作;执行Installd删掉./booting文件的操作。若不存在该文件,则生成/data/dalvik-cache/<isa>/.booting文件;执行AMS finishBooting()操作;执行Installd删掉./booting文件的操作。然后,在执行完.booting操作后进行后续剩余的正常开机启动流程。

S205、跳过.booting操作。

具体的,若移动终端当前执行的开机启动操作,不是该移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,或者,虽然是首次执行的开机启动操作,但当前运行的进程不是预置的守护进程,则跳过上述.booting操作,直接执行后续剩余的正常开机启动流程。

本发明实施例提供的系统启动的方法,通过在移动终端每次开机启动时,判断当前执行的开机启动操作是否为移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,若是,则执行.booting操作,若不是,则跳过.booting操作,直接执行后续的开机启动操作,相较于现有技术,本发明一方面可以在移动终端在刷机或恢复出厂设置后首次开机启动时,通过执行.booting操作,确保移动终端不受/data/dalvik-cache中的内容因掉电而遭到破坏的影响,能够正常开机,从而维护了系统的稳定性,另一方面在非首次开机启动时,跳过执行.booting操作的步骤,从而加快开机速度。

请参阅附图4,附图4是本发明第三实施例提供的系统启动的装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。附图4示例的系统启动的装置可以是前述实施例提供的系统启动的方法的执行主体,其可以是移动终端或者移动终端的一个功能模块。附图4示例的系统启动的装置,主要包括:启动模块301、判断模块302以及执行模块303。

各功能模块详细说明如下:

启动模块301,用于开机启动移动终端。

当检测到用户进行预置的开启启动操作时,如按压预置的电源键或点击用于重新启动移动终端的快捷图标时,触发执行开机启动操作,对移动终端进行上电开机启动。

判断模块302,用于判断当前执行的开机启动操作是否为该移动终端在刷机或恢复出厂设置后首次执行的开机启动操作。

执行模块303,用于若该判断模块判断当前执行的开机启动操作是该首次执行的开机启动操作,则执行.booting操作。

具体的,若当前执行的开机启动操作,是移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,则判断是否存在/data/dalvik-cache/<isa>/.booting文件。若存在该文件,则清除/data/dalvik-cache/<isa>目录下的文件;生成/data/dalvik-cache/<isa>/.booting文件;执行AMS finishBooting()操作;执行Installd删掉./booting文件的操作。若不存在该文件,则生成/data/dalvik-cache/<isa>/.booting文件;执行AMS finishBooting()操作;执行Installd删掉./booting文件的操作。然后,在执行完.booting操作后进行后续剩余的正常开机启动流程。

执行模块303,还用于若该判断模块判断当前执行的开机启动操作不是该首次执行的开机启动操作,则跳过该.booting操作。

本实施例中各模块实现各自功能的过程,详见前述附图2所示实施例的描述,此处不再赘述。

需要说明的是,以上附图4示例的系统启动的装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将系统启动的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,本说明书提供的各个实施例都可应用上述描述原则。

从上述附图4示例的系统启动的装置可知,通过在移动终端每次开机启动时,判断当前执行的开机启动操作是否为移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,若是,则执行.booting操作,若不是,则跳过.booting操作,直接执行后续的开机启动操作,相较于现有技术,本发明一方面可以在移动终端在刷机或恢复出厂设置后首次开机启动时,通过执行.booting操作,确保移动终端不受/data/dalvik-cache中的内容因掉电而遭到破坏的影响,能够正常开机,从而维护了系统的稳定性,另一方面在非首次开机启动时,跳过执行.booting操作的步骤,从而加快开机速度。

请参阅附图5,附图5是本发明第四实施例提供的系统启动的装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。附图5示例的系统启动的装置可以是前述实施例提供的系统启动的方法的执行主体,其可以是移动终端或者移动终端中的一个功能模块。附图5示例的系统启动的装置,与附图4的不同之处在于:

其中,判断模块302还用于若当前执行的开机启动操作是该首次执行的开机启动操作,则判断当前运行的进程是否为预置的守护进程。

守护进程(daemon)是指在UNIX或其他多任务操作系统中在后台执行的计算机程序,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。预置的守护进程是指经过ART模块,且会生成32位和64位的boot.oat文件的守护进程。其中,该预置的守护进程包括:zygote进程或zygote64进程。

执行模块303,还用于若是该预置的守护进程,则执行该.booting操作;若不是该预置的守护进程,则跳过该.booting操作。

进一步地,判断模块302可包括:第一判断子模块3021,第二判断子模块3022;

其中,第一判断子模块3021,用于判断预置的系统属性值是否为预置的值;若是该预置的值,则确定当前执行的开机启动操作是该移动终端在刷机或恢复出厂设置后首次执行的开机启动操作;若不是该预置的值,则确定当前执行的开机启动操作不是该移动终端在刷机或恢复出厂设置后首次执行的开机启动操作。

其中,该预置的系统属性值为persist属性值,则第一判断子模块3021,具体用于判断该persist属性值是否为空值。

可以在系统中预先设置一个或多个系统属性值,用于判断移动终端当前执行的开机启动操作是否为该移动终端在刷机或恢复出厂设置后首次执行的开机启动操作。其中,预置的系统属性值可以是系统中原生的系统属性的值或新增加的系统属性的值,在第一次开机启动后,预置的系统属性值会发生变化。根据该原理,可判断移动终端当前执行的开机启动操作是否为该移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,即,若预置的系统属性值是预置的值,则确定当前执行的开机启动操作是移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,触发判断当前运行的进程是否为预置的守护进程。

若预置的系统属性值不是预置的值,则确定当前执行的开机启动操作不是移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,则跳过.booting操作。其中,预置的值可选地为初始值。

第二判断子模块3022,用于判断系统中是否存在预置的文件;若存在预置的文件,则确定当前执行的开机启动操作是该移动终端在刷机或恢复出厂设置后首次执行的开机启动操作;若不存在预置的文件,则确定当前执行的开机启动操作不是该移动终端在刷机或恢复出厂设置后首次执行的开机启动操作。

从上述附图5示例的系统启动的装置可知,通过在移动终端每次开机启动时,判断当前执行的开机启动操作是否为移动终端在刷机或恢复出厂设置后首次执行的开机启动操作,若是,则执行.booting操作,若不是,则跳过.booting操作,直接执行后续的开机启动操作,相较于现有技术,本发明一方面可以在移动终端在刷机或恢复出厂设置后首次开机启动时,通过执行.booting操作,确保移动终端不受/data/dalvik-cache中的内容因掉电而遭到破坏的影响,能够正常开机,从而维护了系统的稳定性,另一方面在非首次开机启动时,跳过执行.booting操作的步骤,从而加快开机速度。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

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

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上为对本发明所提供的系统启动的方法及装置的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

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