嵌入式系统启动方法和智能终端的制作方法_3

文档序号:9787166阅读:来源:国知局
[0102]本发明实施例一中图2a、2b所示的智能终端中的各个模块的具体功能实现可以参考实施例一提供的嵌入式系统启动方法中各个步骤的具体实现,在此不再赘述。
[0103]相比现有单任务循环顺序对嵌入式系统中已安装的应用进行扫描解析的方法,本发明实施例一的技术方案中,将嵌入式系统中已安装的应用分为两个阶段进行扫描解析,并在扫描解析完核心应用之后启动Launcher,使得用户无需等待所有应用完成扫描解析即可使用核心应用来进行基本操作,提高了嵌入式系统的启动速度。
[0104]实施例二
[0105]本发明实施例二提供了一种嵌入式系统启动方法,其具体流程如图3所示,包括如下步骤:
[0106]S301:创建Zygote进程后,获取中央处理器的核数;根据获取的核数,将所有预加载类分为相应数量的组。
[0107]实际应用中,本发明实施例二提供的嵌入式系统的启动方法,其在创建Zygote(孵化器)进程之前,需要进行系统上电、系统引导程序、启动内核(Kernel)、以及创建初始化进程(Init)。之后,可以通过创建的初始化进程来创建Zygote进程。实际应用中,通过初始化进程还可以创建Runtime(系统运行所需软件库)、以及Daemon(守护进程
[0?08] 本发明实施例二中,Zygote进程在创建之后,可以创建VM(Virtual Memory,虚拟存储器),并且在创建的VM启动时赋予各种参数。比如,一般情况下一个应用程序加载的内存不能超过16mb,因此,通过Zygote进程可以设置heapsize参数为16mb来。其中,heapsize参数表示单个进程可用的最大内存。
[0?09] Zygote进程创建并启动VM虚拟机之后,可以为java的类注册JNI (Java NativeInterface,Java本地接口)函数,以便Zygote进程能够调用Java代码。进而加载嵌入式系统所需的java类以及一些嵌入式系统资源。实际应用中,嵌入式系统所需的预加载类往往具有一千多个,并且存在大量的加载时间超过1250微秒的预加载类。若按照现有单任务循环顺序加载这些预加载类,将会耗费大量的时间,严重影响嵌入式系统的启动时间。
[0110]而本发明的发明人发现,实际应用中,随着多核技术的发展,目前的智能终端可以在一枚处理器中集成两个或多个完整的计算引擎(内核)。因此,本发明的发明人考虑可以通过划分任务,使得线程应用能够充分利用多个执行内核,并可在特定的时间内执行更多任务。
[0111]具体地,本发明实施例二中,创建Zygote进程后,可以在加载预加载类之前,先获取中央处理器的核数。
[0112]实际应用中,可以通过读取系统文件cat/proc/cpuinfo,过滤其中的processor字段,以此获取CPU的核数。例如,如果嵌入系统中有两个核,则通过上述方法过滤过得到的结果将为:
[0113]processor:O
[0114]processor:1
[0115]在获取中央处理器的核数之后,智能终端可以根据获取的核数,将嵌入式系统所需的所有预加载类分为相应数量的组。例如,在中央处理器的核数具体为4个的情况下,可以将嵌入式系统所需的所有预加载类分为4个组。
[0116]本发明实施例二中,考虑到嵌入式系统所需的预加载类中存在一些相互依赖或影响的预加载类。因此,为了避免预加载类之间的相互影响,可以按照如下规则来进行预加载类的分组:各组中的预加载类不依赖于其它组的预加载类。
[0117]例如,预加载的类A与类B之间存在依赖关系,如果要加载类A必须加载类B。因此,需要将类A和类B放到同一分组,这样,就会产生某一个分组产生阻塞现象。
[0118]S302:根据获取的核数,通过Zygote进程启动相应数量的任务,分别加载各组的预加载类。
[0119]实际应用中,智能终端中央处理器的各个内核可以分别执行任务。因此,为了提高嵌入式系统中所需的预加载类的加载速度,可以根据智能终端的中央处理器的核数,通过Zygote进程启动相应数量的任务,由启动的各个任务分别加载各组的预加载类。
[0120]例如,在中央处理器的核数为4个的情况下,可以通过Zygote进程启动4个任务。由于在中央处理器的核数为4个的情况下,通过步骤SlOl可以得到4个组的预加载类。因此,在通过Zygote进程启动4个任务之后,可以为每个任务分配对应的组,并由该任务来加载该组的预加载类。
[0121]这样,通过多任务同时来加载嵌入式系统所需的预加载类,相比现有单任务循环的方式来加载预加载类,大大减少了预加载类的加载时间,从而有利于提高嵌入式系统的启动速度。
[0122]S303:加载完所有的预加载类后,启动嵌入式系统的Launcher。
[0123]本发明实施例二中,智能终端通过步骤S302加载完嵌入系统所需的所有预加载类之后,可以进一步地通过Zygote进程创建嵌入式系统的系统服务System Server进程。之后,由创建的System Server进程所启动的Activity Manager Service(活动管理器服务)来启动嵌入式系统的Launcher(应用启动器)。
[0124]实际应用中,ActivityManager Service和Package Manager Service(应用程序管理服务)一样,都是在嵌入式系统启动时由System Server(系统服务)进程启动的。
[0125]具体地,SystemServer进程首先是启动Package Manager Service,并由PackageManager Service来负责安装嵌入式系统的应用程序。嵌入式系统中的应用程序安装好了以后,System Server进程接下来就要通过Activity Manager Service来启动应用程序Launcher了 0
[0126]进而,Launcher在启动的时候可以通过Package Manager Service把嵌入式系统中已经安装好的应用程序以快捷图标的形式展示在智能终端的桌面上,就完成了嵌入式系统的启动,这样用户就可以使用这些应用程序了。
[0127]实际应用中,Package Manager Service可以通过如下方法来负责安装嵌入式系统的应用程序:
[0128]Package Manager Service扫描嵌入式系统中特定的目录,从中找出应用程序文件(比如,以Apk为后缀的文件);然后,Package Manager Service对查找出的应用程序文件进行解析,得到应用程序的相关信息;基于得到的应用程序的相关信息,完成应用程序的安装过程。
[0129]本发明实施例二中,在通过上述步骤S302加载完所有的预加载类后,可以采用本领域技术人员常用的技术手段来扫描解析嵌入式系统中已安装的应用并完成后续Launcher的启动过程,以此完成嵌入式系统的启动。
[0130]更优地,本发明实施例二中,为了进一步提高嵌入式系统的启动速度,在通过Zygote进程创建嵌入式系统的System Server进程之后,可以通过如下方式来扫描解析嵌入式系统中已安装的应用并完成Launcher的启动过程:
[0131]通过SystemServer进程扫描解析预定义的核心应用;核心应用的解析任务完成后,由System Server进程广播第一消息Ml;智能终端接收到第一消息Ml后,启动Launcher。
[0132]具体地,可以预先从嵌入式系统中已安装的应用中定义满足用户基本操作需要、以及嵌入式系统启动所必须加载的应用为核心应用。
[0133]例如,预定义的核心应用可以包括:Launcher、System UI ( Sy stem UserInterface,系统用户界面)、Live TV (Live Televis1n,直播电视)、V0D(Video onDemand,视频点播)等等用户主要或必须使用的应用。
[0134]进而,智能终端通过System Server进程启动Package Manager Service之后,由Package Manager Service扫描嵌入式系统中特定的目录,从中找出核心应用对应的应用程序文件;然后,Package Manager Service对查找出的核心应用的应用程序文件进解析,得到核心应用的应用程序的相关信息;基于得到的核心应用的应用程序的相关信息,完成核心应用的解析任务。
[0135]本发明实施例二中,在核心应用的解析任务完成后,由SystemServer进程广播第一消息Ml ο
[0136]实际应用中,第一消息Ml可以由本领域技术人员进行设置,比如,将第一消息Ml设置为 B00T_C0MPLETED_TMP。
[ΟΙ37] 第一消息Ml发出后,智能终端可以通过System Server进程启动ActivityManager Service,并通过Activity Manager Service启动Launcher。进而,Launcher在启动的时候可以通过Package Manager Service把嵌入式系统中已完成扫描解析的核心应用以快捷图标的形式展示在智能终端的桌面上,使得嵌入式系统启动成功。这样,用户在看到嵌入式系统启动成功后,就可以使用已经完成扫描解析的核心应用,无需等待所有已安装的应用完成扫描解析。
[0138]为了实现嵌入式系统的完整启动,本发明实施例二中,智能终端在接收到第一消息Ml之后,除了启动Launcher,还可以通过System Server进程启动新任务扫描解析其它已安装的应用。
[0139]具体地,通过System Server进程所启动的Package Manager Service对嵌入式系统中除了核心应用以外的其它已安装的应用进行扫描解析。其它已安装的应用的扫描解析过程与核心应用的扫描解析过程可以相同。[OMO]其它已安装的应用的解析任务完成后,由System Server进程广播第二消息M2;智能终端接收到第二消息M2后,结束嵌入式系统的启动。其中,第二消息Ml为嵌入式系统标准的启动完成的消息,通常为BOOT_COMPLETED。
[0141]实际应用中,接收到第二消息M2后,可以把嵌入式系统中已完成扫描解析的其它已安装的应用以快捷图标的形式展示在智能终端的桌面上,结束嵌入式系统的启动。
[0142]基于上述实施例二提供的嵌入式系统启动方法,本发
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1