一种终端系统启动方法及终端与流程

文档序号:16207191发布日期:2018-12-08 07:15阅读:228来源:国知局
一种终端系统启动方法及终端与流程

本申请涉及电子技术领域,尤其涉及一种终端系统启动方法及终端。

背景技术

安卓(android)系统是一种基于linux的开源操作系统,目前广泛应用于移动设备、智能家电等终端。在当前android消费产品竞争越来越激烈的情况下,如何改善产品方案以提升用户体验,是提高产品竞争力的关键要素之一。

目前,在android系统的启动过程中,用户按下终端的电源,终端将按照标准启动流程启动操作系统。现有的标准启动流程中,通常在启动初期加载各种驱动程序,例如在操作系统的内核启动阶段加载网卡驱动程序和声卡驱动程序等,然而对于网卡来说,除了需要通过网卡驱动程序来驱动之外,还需要通过网卡使能程序进行使能后才能工作。因此在操作系统启动的后期,终端请求网络服务时,如请求以太网(ethernet)服务或无线保真(wirelessfidelity,wifi)服务等,终端还需通过执行网卡使能程序来使能网卡,以便通过使能的网卡连接网络,才能实现对网络服务请求的响应。

可见,在操作系统的标准启动流程中,终端对于网卡的使能时间较晚,而终端又需要在网卡使能后才能进行网络连接,所以,对于具有开机联网需求的终端来说,其需要等待的时间较长,导致终端连接网络的效率较低。



技术实现要素:

本申请提供一种终端系统启动方法及终端,用于提高终端在系统启动时连接网络的效率。

第一方面,提供一种终端系统启动方法,该方法可以应用在安装有操作系统的终端中,该方法中,终端在自身的操作系统启动时,运行用于驱动终端的网络模块的网络模块驱动程序,在运行完成网络模块驱动程序之后,且在运行终端中的第一程序的过程中,终端将同步运行网络模块使能程序,而第一程序为终端的系统启动过程中执行顺序位于网络模块驱动程序之后、且执行顺序位于网络模块使能程序之前的任意程序,故通过在运行第一程序时同步运行网络模块使能程序,可以提前使能网络模块,进而终端可以通过被驱动和使能的网络模块进行网络连接。

本申请中在终端自身的操作系统启动时,终端运行网络模块驱动程序来驱动终端的网络模块,并在运行网络模块驱动程序之后,在运行终端中的第一程序的过程中,同步运行网络模块使能程序,由于第一程序是启动过程中执行顺序位于网络模块驱动程序之后、且执行顺序位于网络模块使能程序之前的任意程序,因此,通过在运行任意一个第一程序的过程中并行运行网络模块使能程序,可以提前使能网络模块,从而在终端请求网络服务时,可节省对网络模块进行使能的时间,使得终端在需要进行网络连接时能够直接通过已使能的网络模块快速连接网络,提高连接网络的效率。

结合第一方面,在第一方面的第一种可能的实现方式中,终端在运行完成网络模块驱动程序之后,运行网络模块使能程序之前,查询存储的网络模块的状态记录信息,该状态记录信息用于记录网络模块在终端最近一次关闭前的状态,且在终端确认状态记录信息所记录的网络模块的状态为开启状态时,则在运行第一程序的过程中,同步运行网络模块使能程序。

本申请中,终端通过对状态记录信息进行查询,可以确定网络模块在终端近期的关闭前的状态,并以此为依据,在系统启动过程中,控制网络模块的使能,使网络模块的状态与关闭前的状态一致,以符合用户的联网需求,从而提高用户体验。

结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,终端通过被驱动和使能的网络模块获取ip地址,并根据ip地址连接网络。

本申请中,终端在进行网络服务请求时,可通过被驱动和使能的网络模块直接获取ip地址,进而根据获取的ip地址实现网络连接,有助于提高终端连接网络的效率。

第二方面,提供一种终端系统启动方法,该方法可以应用在安装有操作系统的终端中,该方法中,终端在自身的操作系统启动时,运行用于驱动终端的网络模块的网络模块驱动程序,进而终端通过查询存储的网络模块的状态记录信息,该状态记录信息用于记录网络模块在终端最近一次关闭前的状态,若终端确定状态记录信息记录的网络模块的状态为开启状态,则终端在运行完成网络模块驱动程序之后,在运行终端中的第一程序的过程中,同步运行用于使能网络模块的网络模块使能程序,且第一程序为在终端的系统启动过程中执行顺序位于网络模块驱动程序之后、且执行顺序位于网络模块使能程序之前的任意程序,故通过查询记录状态信息确定记录的网络模块的状态为开启状态时,在运行第一程序时同步运行网络模块使能程序,提前使能网络模块,以便终端可以通过被驱动和使能的网络模块进行网络连接。

本申请中在终端自身的操作系统启动时,终端通过对状态记录信息的查询,在确定网络模块在终端最近一次关闭前的状态为开启状态,即可在运行终端中的第一程序的过程中,同步运行网络模块使能程序,由于第一程序是启动过程中执行顺序位于网络模块驱动程序之后、且执行顺序位于网络模块使能程序之前的任意程序,因此,通过在运行任意一个第一程序的过程中并行运行网络模块使能程序,可以提前使能网络模块,以使得需要联网的终端在开机后能够快速接入网络,便于有网络需求的用户及时使用网络,连接网络的效率较高。同时,开机后网络模块的状态与记录的状态相同,符合用户的使用习惯,有助于提高用户体验度。

结合第二方面,在第二方面的第一种可能的实现方式中,终端在查询存储的网络模块的状态记录信息之后,若确定记录的网络模块的状态为关闭状态,则终端在运行完成网络模块驱动程序之后,按照终端的系统启动过程中的执行顺序运行网络模块驱动程序之后的程序,且运行的网络模块驱动程序之后的程序不包括用于使能网络模块的网络模块使能程序,从而完成操作系统的启动。

本申请中,终端通过对状态记录信息的查询,确定网络模块在终端近期的关闭前的状态为关闭状态时,表明用户可能没有联网需求,此时,则在操作系统启动过程中无需运行网络模块使能程序,从而避免造成启动过程中的资源浪费。

结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,开启状态为网络模块处于连接网络的状态,关闭状态为网络模块处于未连接网络的状态。

本申请中由于状态记录信息记录的网络模块的状态可以表征终端在最近一次关闭前网络模块是否处于连接网络的状态,故根据网络模块的状态即可得知终端在关闭前是否进行了网络连接,便于了解用户的联网需求。

结合第二方面的第一种可能的实施方式或第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,终端在完成操作系统的启动之后,若接收了用于指示终端进行网络连接的输入指令,则终端根据将运行网络模块使能程序来使能网络模块,以通过被驱动和使能的网络模块连接网络。

本申请中,在操作系统启动后,若用户有联网需求,可以通过相应的输入指令,例如手动等方式,控制终端运行网络模块使能程序,实现对网络模块的使能,以便终端通过网络模块连接网络,实现方式较为便捷。

结合第二方面,在第二方面的第四种可能的实施方式中,在同步运行网络模块使能程序之后,终端通过被驱动和使能的网络模块连接网络。

本申请中终端在自身操作系统启动过程中,提前使能了网络模块后,即可通过网络模块连接网络,有助于提高终端连接网络的效率。

结合第二方面的第三种可能的实施方式或第二方面的第四种可能的实施方式中,在第二方面的第五种可能的实施方式中,终端通过被驱动和使能的网络模块获取ip地址,并根据ip地址连接网络。

本申请中,在网络模块被驱动和使能后,终端即可通过网络模块获取相应的ip地址,实现网络连接,提高网络连接的准确性。

第三方面,提供一种终端,该终端包括存储器、处理器和网络模块,终端所包括的模块用于执行第一方面中的终端系统启动方法。

第四方面,提供一种终端,该终端包括存储器、处理器和网络模块,终端所包括的模块用于执行第二方面中的终端系统启动方法。

第五方面,提供一种计算机存储介质,该计算机存储介质中存储有计算机程序指令,当指令在计算机上运行时,使得计算机执行第一方面及第二方面中的终端系统启动方法。

第六方面,提供一种计算机程序产品,该计算机程序产品包含指令,当指令在计算机上运行时,使得计算机执行第一方面及第二方面中的终端系统启动方法。

附图说明

图1为本申请的一种终端的结构框图;

图2为本申请的一种操作系统的架构图;

图3为现有技术中系统标准启动流程示意图;

图4为本申请的终端系统启动方法的一种流程图;

图5a-图5b为本申请中调用第一程序及网络使能程序的示意图;

图6为本申请中通过网络模块进行网络连接的示意图一;

图7为本申请中通过网络模块进行网络连接的示意图二。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。

首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。

1)终端,可以是安装了操作系统的设备,例如是安装有android系统的设备。在实际应用中,该终端可以经无线接入网(radioaccessnetwork,ran)与核心网进行通信,与ran交换语音及数据。该终端可以包括用户设备(userequipment,ue)、无线终端、移动终端、订户单元(subscriberunit)、订户站(subscriberstation),移动站(mobilestation)、移动台(mobile)、远程站(remotestation)、接入点(accesspoint,ap)、远程终端(remoteterminal)、接入终端(accessterminal)、用户终端(userterminal)、用户代理(useragent)、或用户装备(userdevice)等。例如,可以包括移动电话(或称为“蜂窝”电话),具有移动终端的计算机,便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,智能穿戴式设备等。例如,个人通信业务(personalcommunicationservice,pcs)电话、无绳电话、会话发起协议(sip)话机、无线本地环路(wirelesslocalloop,wll)站、个人数字助理(personaldigitalassistant,pda)、智能手表、智能头盔、智能眼镜、智能手环、等设备。

2)网络模块,可以是终端中设置的用于进行网络连接的模块,例如网卡。

下面结合附图介绍本申请的终端结构。

如图1所示,本申请提供一种终端100的框图,该终端100可以包括存储器120和网络模块170。当然,除这些模块外,该终端100还可以包括其他的一些模块,请仍参考图1,例如还包括输入单元130、显示单元140、处理器190、射频单元110、电源193和外部接口197等模块。

本领域技术人员可以理解,图1仅仅是终端100的举例,并不构成对终端100的限定,终端100可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。

其中,输入单元130可用于接收输入的数字或字符信息,以及产生与终端100的用户设置以及功能控制有关的键信号输入。实际应用中,输入单元130可包括触摸屏以及其他输入部件。其中,触摸屏可以提供终端100和用户之间的输入界面和输出界面。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触摸屏。其他输入设备可以包括但不限于物理键盘、功能键(例如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端100的各种菜单。进一步的,触摸屏可覆盖显示面板,当触摸屏检测到在其上或附近的触摸操作后,传送给处理器190以确定触摸事件的类型,随后处理器190根据触摸事件的类型在显示面板上提供相应的视觉输出。在本实施例中,触摸屏与显示单元可以集成为一个部件而实现终端100的输入、输出、显示功能;为便于描述,本申请以触摸屏代表触摸屏和显示单元的功能集合;在某些实施例中,触摸屏与显示单元也可以作为两个独立的部件。

存储器120可用于存储指令和数据,存储器120可主要包括存储指令区和存储数据区,存储数据区可存储开机操作与用于系统启动的程序的关联关系;存储指令区可存储操作系统、至少一个功能所需的指令等。

存储器120可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(randomaccessmemory,ram)、静态随机访问存储器(staticrandomaccessmemory,sram)、可编程只读存储器(programmablereadonlymemory,prom)、只读存储器(readonlymemory,rom)、带电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、磁性存储器、磁盘、光盘等等。

处理器190是终端100的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的指令以及调用存储在存储器120内的数据,执行终端100的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器190可包括一个或多个处理单元;优选的,处理器190可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可无需集成到处理器190中。

在一些实施例中,处理器190、存储器120可以在单一芯片上实现,在一些实施例中,他们也可以在独立的芯片上分别实现。本申请中,存储器120可以存储用于系统启动的相关程序以及网络模块170的状态信息等数据,处理器190能够从存储器120中读取数据,启动终端100的操作系统。

射频单元110可用于收发信息或通话过程中信号的接收和发送,特别地,将基站的下行信息接收后,给处理器190处理;另外,将设计上行的数据发送给基站。通常,rf电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(lownoiseamplifier,lna)、双工器等。此外,射频单元110还可以通过无线通信与网络设备和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemofmobilecommunication,gsm)、通用分组无线服务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、长期演进(longtermevolution,lte)、电子邮件、短消息服务(shortmessagingservice,sms)等。虽然图1示出了射频单元110,但是可以理解的是,其并不属于终端100的必须构成,完全可以根据需要在不改变本申请的本质的范围内而省略。

终端100通过网络模块170可以进行网络连接,从而帮助使用终端100的用户收发电子邮件、浏览网页和访问流式媒体等。

终端100还可以包括电源193(例如电池),其用于接收外部电力或为终端100内的各个部件供电。优选的,电源193可以通过电源管理系统与处理器190逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

终端100还包括外部接口197,外部接口可以是标准的microusb接口,也可以使多针连接器,可以用于连接终端100与其他装置进行通信,也可以用于连接充电器为终端100充电。

尽管未示出,终端100还可以包括摄像头、闪光灯、传感器、音频电路及麦克风等,在此不再赘述。

接下来,结合附图介绍本申请中终端100所安装的操作系统的架构。

本申请中,主要以终端100中安装的操作系统是android系统为例进行说明,如图2所示,为android系统的系统架构图。android系统通常分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux内核层。

其中,应用程序层包括多个应用程序(app),例如客户端程序、浏览器程序及联系人管理程序等。所有的应用程序都可以使用java语言编写,每一个应用程序由一个或者多个活动组成,活动类似于操作系统上的进程,可在多种状态之间进行切换。基于android框架开发的应用程序无需编译就能运行于任何一台安装有android系统的平台中。

应用程序框架层是通过对应用程序的分类来对应用程序进行结构化管理的,通常包括活动管理、资源管理、视图管理和通知管理等。

系统运行库层包含程序库和android运行时库。其中,程序库可以是c/c++库和浏览器库(webkit)等,android系统中不同的应用程序可以调用程序库中相应的功能函数,并通过应用程序框架层为开发者提供服务。android运行时库包含java编程语言核心库的大部分功能,可以提供应用程序运行时所需调用的功能函数。

linux内核层,包括电源管理、显示驱动和摄像头驱动等,用于为android内核提供核心系统服务,如安全性服务、网络服务、内存管理服务、检测管理服务和驱动模型等。android内核可以依赖于linux2.6内核实现,实质上是一个在linux内核内运行的java虚拟机。

在现有的标准启动流程中,在linux内核启动之后会首先加载初始化进程(init),以进入android内核,进而启动android系统相关的服务和应用。如图3所示,现有的android系统标准启动流程通常包括以下过程:

过程1、打开电源,进行系统启动。

在用户按下终端100的开机键时,终端100先执行基本输入输出系统(basicinputoutputsystem,bios)程序,在bios程序执行完成后,将启动终端100的操作系统,实现终端100开机。终端100的开机可以是指从打开终端100的电源直到终端100的显示屏幕显示用户登录画面的全过程。另外,本申请中所提到的“系统”,均指终端100的操作系统。

在实际应用中,终端100的存储器分为大容量存储器(通常为硬盘)和主存储器(即内存),操作系统(即android系统)安装在大容量存储器上。内存可以分为两部分:只读存储器(read-onlymemory,rom)部分和易失性存储器(randomaccessmemory,ram)部分。其中,rom部分存储有引导程序和bios程序,bios程序包括cpu的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、以及即插即用(plug-and-play,pnp)特性等等。

在执行bios程序后,终端100将读取硬盘的主引导记录(masterbootrecord,mbr),mbr也称为主引导扇区,该扇区包括两部分:第一部分为引导区,用于存放主引导程序的分区;第二部分为用于存储分区表的分区,该分区用于记录扇区的分区信息,如分区数量和每一分区的大小。

在终端100查找到bios所指定的硬盘的mbr后,就会将mbr存储的内容复制到物理内存中,该被复制到物理内存的内容就是引导程序(bootloader)。

过程2、执行引导程序(bootloader)。

在终端100开机时,在执行bios程序后,终端100将自动执行引导程序。引导程序具有两个执行阶段,第一阶段:检测操作系统外部的ram,以及加载对第二阶段有用的程序;第二阶段:设置网络参数以及对内存空间进行映射等。

通过执行第二阶段,可以指引终端100中的中央处理器(centralprocessingunit,cpu)将android系统从大容量存储器中传送到内存的ram部分。也就是说,执行引导程序处于第二阶段时,终端100将通过cpu执行一条转移指令,通过执行该转移指令,将把原本存放在大容量存储器中的android系统转存到内存。此时,android系统开始接管并控制终端100的活动,并为调用android内核做好一切准备。

过程3、启动内核进程(如kernel进程),加载系统内核(即android内核)。

android内核与linux内核启动的方式相似,在android内核启动过程中需要执行多个进程。启动android内核,主要用于完成设置缓存、加载驱动程序等操作。通常来说,在android内核启动阶段,终端100可以加载多种驱动程序,如显卡驱动程序、声卡驱动程序以及网卡驱动程序等。

过程4、启动init进程。

在android内核完成系统设置后,其将通过内核线程函数kenrel_thread()创建第一个系统内核线程,该系统内核线程将执行android内核中的init()函数,以引导下一阶段的启动任务。也就是说,在android内核启动后,运行的第一个程序便是init进程。init进程的主要功能是挂载目录,如/sys、/dev或/proc,等等。

过程5、启动zygote进程。

zygote进程是一个虚拟机进程。在操作系统运行期间,当接收到创建虚拟机的请求时,zygote进程将孵化dalvikvm实例,即初始化虚拟机,以启动虚拟机共享代码,降低内存使用。

过程6、初始化服务器管理器(servicemanager)及启动系统服务(systemservice)。

其中,服务管理器是用于管理系统服务的工具。在初始化服务管理器的过程中,系统将会启动系统服务,系统服务主要用于启动一些java层的android系统管理服务,包括硬件服务和系统框架核心平台服务,并将这些android系统管理服务注册成进程间通信(inter-processcommunication,ipc)服务对象,这些ipc服务对象的启动代码位于systemserver.java的run函数当中。

在完成系统服务的启动后,系统服务会发送系统准备完毕(systemready)的广播消息,表明系统已启动完毕,系统可进行相应系统服务,例如管理服务或网络服务等。其中,在终端100请求网络服务时,系统将对网卡进行使能。

通过以上过程,终端100的操作系统启动完成。

由此可见,在现有的标准启动流程中,网卡的驱动较为靠前,其通常在内核启动阶段通过加载网卡驱动程序实现。在网卡驱动后,网卡会被映射成系统的一个设备节点,该设备节点无法进行网络连接。为了使网卡具有网络连接功能,需要进一步对网卡进行使能。但目前的网卡使能通常在终端100请求网络服务时才会进行,而网卡的使能需要一定时间,那么,在终端100请求网络服务时,需要等待的时间较长,导致终端100连接网络的效率较低。

鉴于此,本申请中,终端100在启动自身的操作系统的过程中,由于在网络模块驱动程序执行完成后,在运行终端100中安装的任意一个第一程序的过程中同步运行网络模块使能程序,且第一程序的执行顺序位于网络模块驱动程序之后、且执行顺序位于网络模块使能程序之前的任意程序,因此,在操作系统启动过程中终端100可以并行执行第一程序和网络模块使能程序,缩短了终端100在操作系统启动过程中所需的时长,并且,由于在运行第一程序时同步运行了网络模块使能程序,能提前使能网络模块,有助于在终端100启动后快速进行网络连接,可以提高终端100连接网络的效率。

下面结合附图介绍本申请提供的技术方案。

如图4所示,本申请提供一种终端系统启动方法,该方法可由图1中的终端100执行。该方法的流程描述如下:

s41:终端100接收用于启动自身操作系统的指令,启动自身的操作系统。

s42:终端100在启动自身的操作系统时,运行网络模块驱动程序,驱动网络模块170。

s43:终端100运行第一程序,并在运行第一程序的过程中,运行网络模块使能程序,对网络模块170进行使能。其中,第一程序为执行顺序位于网络模块驱动程序之后、且执行顺序位于网络模块使能程序之前的任意程序。

s44:终端100通过被驱动和使能的网络模块170连接网络。

本申请中,在用户按下终端100的开机键时,终端100中生成相应的开机指令,终端100按照开机指令即可对自身的操作系统进行启动。

在s42中,终端100可以按照如前介绍的标准启动流程所指示的执行顺序运行相应的程序。本申请中所说的运行,可以是指通过调用等方式获取相应的程序,实现对程序进行执行的过程。例如,终端100可以通过处理器190对相应的程序进行调用,从而启动终端100的操作系统,例如处理器190在系统启动过程中调用网络模块驱动程序来驱动网络模块170。

s43中,第一程序为在终端100的系统启动过程中执行顺序位于网络模块驱动程序之后、且执行顺序位于网络模块使能程序之前的任意程序。第一程序可以是终端100中在系统启动过程中运行的任意一个应用程序,例如第一程序可以是系统程序,或者第一程序也可以是应用程序。网络模块驱动程序用于驱动终端100的网络模块170,网络模块使能程序用于使能网络模块170,终端100可通过被驱动和使能处理后的网络模块170连接网络。本申请中,网络模块170可以但不限于是网卡。

网络模块使能程序可以用于使能网络模块170,使能后的网络模块170就能进行网络连接。例如,若终端100的网络模块170为网卡,则在系统启动过程中,在终端100调用网卡驱动程序驱动网卡后,网卡会被映射成系统的一个处于down状态的设备节点,此时,设备节点无法进行网络连接。那么,在使能网卡后,相当于将设备节点由down状态置为up状态,从而,在终端100请求网络服务时,可以通过处于up状态的网卡进行网络连接。

根据现有的标准启动流程可知,在系统启动过程中按照执行顺序依次执行的程序之间通常具有一定的依赖关系。例如,在启动终端100时,处理器190将调用系统启动的相关程序,那么在处理器190调用init进程时,需要先通过内核启动阶段中的内核线程函数kenrel_thread()创建相应的系统内核线程来引导。

本申请中,在现有的标准启动流程的基础上,为了在终端100请求网络服务前提前进行准备,通过提前调用终端100中与网络服务相关的程序,即对网络服务相关的程序进行并行调用,从而避免在系统启动过程中打断具有依赖关系的程序在被执行时的连续性。则在终端100的系统启动过程中,在网络模块驱动程序执行完毕后,可以并行调用终端100中的第一程序及网络模块使能程序,以提前使能网络模块170,从而在终端100请求网络服务时,通过已使能的网络模块170即可进行网络连接,而无需在网络服务过程中对网络模块170进行使能操作,节省使能时间,可以提高终端100进行网络连接的效率。

本申请中,在内核启动阶段加载网络模块驱动程序之后,终端100在系统的后续各启动阶段,直至启动系统服务阶段所运行的任意程序均可作为第一程序,例如第一程序可以是内核启动阶段的程序,或者第一程序还可以是启动虚拟机阶段的程序等等。终端100在运行第一程序的过程中,可同步运行原本在终端100请求网络服务时才执行的网络模块使能程序,以实现提前对网络模块170的使能。

在一种实施方式中,网络模块驱动程序在内核启动阶段被运行完毕后,第一程序及网络模块使能程序的同步运行也可以发生在内核启动阶段。

例如,网络模块170为网卡,网络模块驱动程序为网卡驱动程序。如果处理器190在系统启动过程中的内核启动阶段执行了网卡驱动程序,那么,第一程序可以是处理器190在系统启动过程中执行顺序位于网卡驱动程序之后的程序,例如第一程序为kernel进程,则处理器190在运行kernel进程进行系统启动的过程中,也将并行运行网卡使能程序来使能终端100的网卡,此时,系统启动流程如图5a所示,如此可实现kernel进程和网卡使能程序的并行运行,以提高终端连接网络的效率。

在另一种实施方式中,网络模块驱动程序在内核启动阶段被运行完毕后,第一程序及网络模块使能程序的并行运行可以发生在内核启动之后的其它启动阶段。

例如,网络模块170为网卡,网络模块驱动程序为网卡驱动程序,网络模块使能程序为网卡使能程序。如果终端100通过处理器190在系统启动过程中的内核启动阶段执行了网卡驱动程序,那么在内核启动阶段执行完毕网卡驱动程序后,在终端100运行init进程、zygote进程、初始化虚拟机(即孵化dalvikvm实例)或系统服务这几个启动阶段中的任意一个阶段的任意一个程序时,均可并行运行网卡使能程序以对网卡进行使能,如图5b所示,为第一程序是init进程时,并行运行第一程序及网卡使能程序的示意图。

因此,在系统启动过程中,终端100通过与第一程序同时调用的网络模块使能程序对网络模块170进行使能,由于第一程序为执行顺序位于网络模块驱动程序之后,且执行顺序位于网络模块使能程序之前的任意程序,故调用网络模块使能程序使能网络模块170的时机较为灵活。

在网络模块170被驱动及使能之后,终端100可以通过被驱动和使能的网络模块170获取ip地址,进行网络连接。如图6所示,为本申请提供的在系统启动过程中通过网络模块170实现网络连接的示意图。图6中,以第一程序是执行顺序处于内核启动阶段的程序为例,且采用实线标注的步骤为本申请的主要方案,虚线标注的步骤为可选方案,其中处理器190、存储器120及网络模块170可以是来自图1的部件。

图6中,在启动终端100,处理器190读取用于启动系统的相关程序,这些程序可以是存储在终端100的存储器120中,处理器190可以按照系统启动过程中的执行顺序依次调用相关程序。在终端100通过处理器190运行网络模块驱动程序之后,网络模块170将被驱动,图中弧形箭头表示相应程序的执行,如标注为“驱动网络模块170”的弧形箭头可以理解为在网络模块驱动程序作用于网络模块170的过程,即驱动网络模块170的过程。而标注为“系统继续启动”的弧形箭头可以理解为处理器190按照系统启动中的执行顺序继续调用其它程序。

考虑到用户使用终端100时,改变终端100的联网需求的频率较低,终端100在开机后的联网需求通常与近期被使用时的联网需求一致。因此,在一种实施方式中,终端100还可以存储状态记录信息,该状态记录信息记录了网络模块170在终端100最近一次关闭前的状态。例如,网络模块170为网卡,则状态记录信息可以记录终端100在最近一次关机前的网卡的状态,网卡的状态可以是开启(up)状态或关闭(down)状态,该状态记录信息可以是存储在终端100的存储器120中。从而终端100在再次开机之后的状态可参考存储的状态记录信息所记录的状态。

通常来说,记录的网络模块170的状态可以表明终端100是否有联网需求。例如,若记录的网络模块170的状态为开启状态,即网络模块处于连接网络的状态,则表明终端100在被用户使用过程中有联网需求,此时,需要使能网络模块170,以便终端100通过被驱动及使能后的网络模块170连接网络。反之,若记录的网络模块170的状态为关闭状态,即网络模块170处于未连接网络的状态,则表明终端100在被使用过程中可能没有联网需求,此时,终端100无需使能网络模块170。

因此,本申请中,在调用终端100中的网络模块使能程序之前,终端100可以查询存储的状态记录信息,例如图6所示,终端100可以通过处理器190查询存储器120中的状态记录信息,那么,处理器190根据记录的网络模块170的状态可以确定终端100在开机后是否有联网需求,从而确定是否在调用第一程序的过程中也要调用网络模块使能程序。

在终端100查询状态记录信息后,若状态记录信息所记录的网络模块170的状态为开启状态,即图6所示的查询结果,则此时需要终端100使能网络模块170,那么终端100在网络模块驱动程序执行完毕之后,运行第一程序时,即可同步运行网络模块使能程序。图6中以第一程序为内核进程kernel为例,以在系统启动过程中对网络模块170进行提前使能,节省了在终端100请求网络服务时对网络模块170进行使能操作的时间。

在实际应用中,在调用网络模块使能程序后对网络模块170进行使能后,网络模块170在使能后其可将自身当前的状态进行记录及存储,如存储到存储器120中,图6中用虚线示意。

当然,若状态记录信息所记录的网络模块170的状态为关闭状态,则终端100在运行第一程序过程中,无需调用网络模块使能程序。也就是说,终端100在运行完毕网络模块驱动程序之后,按照终端100的系统启动过程中的执行顺序运行网络模块驱动程序之后的程序即可,且运行的网络模块驱动程序之后的程序不包括用于网络模块使能程序,进而完成操作系统的启动。也就是说,由于终端100无联网需求,因此,本申请中在后续系统启动过程中无需运行网络模块使能程序,节省对网络模块170的使能操作。

后期,若使用终端100的用户有联网需求,用户可通过手动或其它方式输入相应的指令来控制终端100使能网络模块170进行网络连接。例如,在一种实施方式中,在系统启动完毕后,若终端100接收用于指示终端100进行网络连接输入指令,那么,终端100将根据输入指令运行网络模块使能程序以对网络模块170进行使能,从而终端100通过被驱动和使能的网络模块170即可进行网络连接。

请继续参考图6,本申请中,在对网络模块170进行驱动后,在调用第一程序及网络模块使能程序之前,通过对状态记录信息进行查询,可以确定网络模块170在终端100近期在关闭前的状态,并以此为依据,在系统启动过程中,控制网络模块170的使能,使网络模块170的状态与关闭前的状态一致,以符合用户的联网需求,从而提高用户体验。

随着系统的继续启动,在终端100请求网络服务时,终端100可以检测网络模块170当前的状态,以确定网络模块使能程序是否已被成功执行,即网络模块170是否使能成功。

而,终端100在检测网络模块170当前的状态后,如果确定网络模块170当前的状态为开启状态,如图6所示,若终端100此时需要联网,则终端100可通过被驱动及使能的网络模块170获取互联网协议(internetprotocol,ip)地址,并根据获取的ip地址连接网络。

例如,若终端100通过处理器190检测网络模块170当前处于开启状态,则终端100可以开启动态主机配置协议(dynamichostconfigurationprotocol,dhcp)、以太网传输点对点协议(point-to-pointprotocoloverethernet,pppoe)等方式获取ip地址,通过获取的ip地址可以连网。或者,终端100也可以通过浏览器里的代理服务器上网。本申请对于连接的网络类型不作具体限制,只要能够实现终端100的网络连接即可。

需要说明的是,若终端100需要连接的网络为wifi网络,则终端100在获取ip地址之前需要先连接无线接入点(accsspoint,ap),进而通过ap进行网络连接。其连接程与现有方式一致,此处不再赘述。

终端100在检测网络模块170当前的状态后,如果确定网络模块170当前的状态为关闭状态,则终端100将查询存储的状态记录信息记录的网络模块170的状态。例如,如图7所示,若处理器190确定存储器120中存储的状态记录信息所记录的网络块的状态为开启状态,则表明网模块使能程序在s12中可能未调用成功,那么终端100可再次调用网络模块使能程序来使能网络模块170。通过这种方式,有助于避免出现因网络模块170未使能成功而导致系统无法响应终端100的网络服务请求的情况,以便需要网络连接的终端100在开机后能够正常进行网络连接。

当然,若状态记录信息记录的网络模块170的状态为关闭状态,表明终端100在开机后可能没有网络连接的需求,则在按照标准启动流程中的执行顺序继续执行时无需调用网络模块使能程序来使能网络模块170,节省网络模块170的使能操作。同理,若后续用户有网络连接的需求,则通过前述的手动等方式实现,此处不再赘述。

因此,本申请中,在终端100请求网络服务的阶段,通过对网络模块170当前的状态以及对记录的网络模块170的状态的查询及比对,可以在终端100请求网络服务之前,确保网络模块170当前的状态与终端100最近一次关闭前网络模块170的状态相同,实现将终端100开机后的网络状态自动调整为与上次关机时的网络状态一致,以提高用户体验。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如,固态硬盘solidstatedisk(ssd))等。

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