一种手机应用程序快速启动的方法

文档序号:7682185阅读:806来源:国知局
专利名称:一种手机应用程序快速启动的方法
技术领域
本发明属于计算机软件技术,特别涉及一种手机应用程序快速启动的方法。
背景技术
随着3G时代和智能手机时代的到来,手机的功能变得强大,变得更有 开放性,可以在上面安装和运行各种各样的应用程序软件,从而满足手机用 户的各种个性化需求。为此,许多手机都以开放式的操作系统(如Windows) 为基础,以便可以灵活安装各种应用程序;而在开放操作系统上运行的应用 程序, 一般也以动态链接的方式运行,以节约系统的存储资源,提高应用程 序的扩展性及维护性,这其实跟桌面PC系统的模式是一样的。但是,手机 在CPU性能、内存大小与性能、外存储器大小与性能等方面与桌面PC有量 级上的巨大差异,因为手机受到体积、电源消耗等的限制,不可能采用桌面 PC那样的强大硬件配置。因此,手机采用桌面PC的模式运行应用程序, 不可避免会出现应用程序运行速度比起桌面PC偏慢的问题,从而降低了手 机用户的操作体验,其中最明显的降低操作体验是应用启动速度慢用户在 手机界面上启动应用程序后,要等候一段时间才能看到应用程序的界面,才 能对应用程序进行各种操作。应用程序的启动速度涉及到手机软件平台和应用程序自身。从应用程序 自身来说,应用程序在启动时主要是进行各种初始化操作、创建各种对象等。 应用程序应该尽量加快这些操作,减小不必要的操作,或者合理分配操作的 执行时间,有的操作可以;改在应用程序启动后再进行。从手机软件平台方面 来说,应该分析所有应用程序都要经历的操作,然后通过加快这些操作,从 而支持所有应用程序的启动加速。经过大量的实际测试数据,发现动态库的 加载、创建新的进程并设置进程环境在应用启动过程中花费了很多时间,而这两种操作又是所有应用程序在启动时都必然要经历的操作。对此,许多手机软件平台都采用了一种预启动的思想来解决以上的两个问题,其基本方法是1)把手机上的所有应用程序在启动时都要执行的公 共操作集中起来由系统提供的代码来完成,应用程序自己再提供一个初始化 函数作与自己应用特定相关的启动操作;2)手机软件平台在后台预先启动 一个特殊的应用程序进程在后台进行,该应用程序执行所有应用程序在启动 时都要执行的公共操作,然后进入事件主循环中,在该主循环中它要做的主 要工作是等待接受应用管理器的命令,这个进程可以称为快速启动后台进程 (quicklauncher进程);3)当手机要启动一个新的应用程序时,由应用管 理器向quicklauncher进程发送启动新应用程序的命令;4)运行中的 quicklauncher进程收到命令后,退出事件主循环,从收到的命令中得到需要 启动的应用程序的动态库文件,加载这个动态库文件,然后从动态库文件获 取该应用程序的初始化函数并执行,然后再次进入新的事件主循环,这样 quicklauncher进程就变成了可以执行要启动的应用程序的功能的进程,即把 quicklauncher进程变成了要启动的应用程序的进程,从而完成了应用程序的 启动;5 )手机软件平台又启动一个新的quicklauncher进程在后台运行,为 启动新应用程序作准备。从以上流程可以看出,预启动机制预先完成了应用程序的进程创建和进 程环境初始化操作、应用程序的公共共享库的加载及其他公共启动操作,有 效提高了应用程序的启动速度。然而,这种方法有个缺陷是当一个 quicklauncher进程被启动的应用程序所占用,在新的quicklauncher进程-故产 生并进入事件主循环之前这4殳时间内,如果又有新的应用程序要启动,就无 法使用这种方法了。由于新的quicklauncher进程被产生并进入事件主循环 这段时间仍然可能会耗时数秒,所以在手机上就会出现快速连续启动两个应 用程序时会导致后一个应用程序启动变慢或甚至启动失败(对于只釆用预启 动机制的系统来说)。发明内容本发明所要解决的技术问题是,提供一种手机应用程序快速启动的方法,从而可以让用户在不降低应用程序启动速度的前提下,在短时间内启动 多个应用程序。为了解决上述问题,本发明公开了一种手机应用程序快速启动的方法,如下应用管理器在系统启动过程中同时启动N个快速启动进程,当需要启 动一应用程序时,所述应用管理器从所述N个快速启动进程中任选一进程 向其发送启动应用程序命令,该选中的快速启动进程收到启动命令后,执行 启动操作,当所述启动操作结束后,所述应用管理器重新启动一快速启动进程。进一步地,上述的方法中,所述应用管理器向选中的快速启动进程发送 启动应用程序命令后,降低自身所在进程的优先级或暂时让出CPU,而所 述选中的快速启动进程提高自身优先级。该方法还包括当所述启动操作结束后,所述应用管理器恢复自身所在 进程的优先级,所述选中的快速启动进程恢复自身优先级为普通优先级。其中,所述启动操作是指,所述快速启动进程从所述应用管理器收到的 启动命令中,得到需要启动的应用程序的动态库文件后,加载该动态库文件 以及从该动态库文件获取该应用程序的初始化函数并执行。所述应用管理器启动快速启动进程时,将已启动的快速启动进程标识记 录在其运行的快速启动进程的标识链表中,该链表中的每个节点的内容表示 系统中当前可用的快速启动进程。所述快速启动进程,执行所有应用程序在启动时都要执行的公共操作, 然后进入事件主循环,在事件主循环中等待接受应用管理器的命令。所述选中的快速启动进程恢复自身优先级为普通优先级后,当其再次进 入事件主循环时,该快速启动进程为所要启动的应用程序进程。进一步地,上述方法中,所述N值由快速启动进程的启动时间除以在 该时间内启动的应用程序个凄史确定。本发明引入了多个quicklauncher进程以及对quicklauncher进程的优先级控制来满足短时间内快速启动多个应用程序的需求,同时保证了应用程序 启动速度不降低。


图l是本发明的实现手机应用程序快速启动的处理流程图;图2是图1所示流程中quickluancher进程进行快速启动的流程图;图3是图1所示流程中应用管理器创建quickluancher进程的流程图。
具体实施方式
本发明的主要构思是,如果引入多个quicklauncher进程并且对各 quicklauncher进程的优先级进行控制,这样就可以满足用户在短时间内快速 启动多个应用程序的需求。首先,多个quicklauncher进程在系统中的并存, 保证了用户需要快速启动多个应用程序时都能找到可用的quicklauncher进 程,从而使每个应用程序都可以通过quicklauncher进程实现快速启动;其 次,通过让运行的quicklauncher进程在处理应用管理器的启动命令这段时 间以高优先级运行的方式,使每个应用程序的启动过程不受打扰,避免了由 于系统中其它事件的影响导致的应用程序启动过程变慢。下面结合附图和具体实施方式
,对本发明采用的技术方案作进一步详细 说明。一种手机应用程序快速启动的过程包括以下步骤,如图l所示步骤101:在手机软件平台,提供有快速启动应用程序,运行这个应用 程序的进程就叫快速启动(quicklauncher)进程,该quicklauncher进程执行 所有应用程序在启动时都要执行的公共操作,然后进入事件主循环中,在该 主循环中它要做的主要工作是等待接受应用管理器的命令;步骤102:手机软件平台中的应用管理器在系统启动时就以普通优先级 同时启动N个快速启动进程,即quicklauncher进程;其中N值按照quicklauncher进程自身的启动时间除以在该时间内可能启动的应用程序个数来确定,且N大于等于2;步骤103:应用管理器接收到应用启动请求后,从系统中存在的 quicklauncher进程中任意选择一个进程;步骤104:应用管理器向选择的quicklauncher进程发送启动应用命令;步骤105:该quicklauncher进程收到启动命令后,执行启动操作;步骤106:应用管理器降低自身所在进程的优先级;步骤107:应用管理器启动一个新的quicklauncher进程运4亍;该步骤中,新启动的quicklauncher进程同步骤102中启动的 quicklauncher进程相同,用于弥补在步骤105中损失的一个quicklauncher 进程,从而保证系统中存在N个可用的quicklauncher进程。步骤108:应用管理器恢复自身所在进程的优先级。quicklauncher进程自身启动的过程进一步包括以下步骤,如图2所示步骤201: quicklauncher进程加载所有应用程序都要用到的共享库;步骤202: quicklauncher进程对所有应用程序都要用到的系统进行初始 化,例如,图形子系统库的初始化、事件处理子系统库、应用通讯子系统库 等;步骤203: quicklauncher进程进入事件主循环,在该循环中等待应用管 理器发送过来的应用启动命令;步骤204:当quicklauncher进程收到启动命令后,提高自身优先级,退 出事件主循环,即不再接收和处理外部的其它事件;步骤205: quicklauncher进程解析启动命令;步骤206: quicklauncher进程根据启动命令的解析结果,加载相应的应 用程序动态库;步骤207: quicklauncher进程执行加载的应用程序动态库中的应用初始 化函数,然后恢复自身优先级;步骤208: quicklauncher进程再次进入事件主循环(由于应用初始化函数对本应用的执行环境按照自己的需要重新进行了设置,因此,在这次进入 的事件主循环中,对事件的接收和处理都是按照新应用的逻辑的流程进行处理了,即原来的quicklauncher进程变成了完成新应用的功能的进程,也就 是新应用进程)。针对linux操作系统实现应用管理器启动quicklauncher进程的过程包括 如下步骤,如图3所示步骤301:应用管理器调用操作系统的fork()调用创建一个新的子进程;步骤302:判断fork()调用的返回值,如果等于0,说明是在新创建的子 进程中,这个新创建的子进程就是quickluancher将要在此运行的进程,转 入步骤303;如果不等于O,说明是在应用管理器所在的原进程中运行,转 入步骤305;步骤303:应用管理器为将要运行的quickluancher进程设置进程运行环 境,比如为本进程设置操作系统的信号处理、关闭不必要的从父进程继承下 来的系统资源、为本进程打开需要的系统资源等等;步骤304:在子进程中调用搡作系统的execv(...)函数,执行quicklauncher 应用的代码,应用管理器启动quickluancher进程的处理到此结束;步骤305:应用管理器就把fork()调用返回的子进程标识ID记录在其自 身运行的quickluancher子进程的ID链表中,这个链表中的每个节点的内容 代表了系统中当前可用的quicklauncher进程;步骤306:应用管理器继续其它的处理。上述应用管理器启动quicklauncher进程的过程可以在系统启动时或者 在图1所示流程的步骤106中使用,其中在系统启动时,应用管理器需要重 复执行以上流程N次。从上述实施例,可以看出多个quicklauncher进程在系统中的并存保证了 快速启动多个应用程序时都能找到可用的quicklauncher进程,从而使每个 应用程序都可以通过quicklauncher进程实现快速启动;另外在quicklauncher进程处理应用管理器的启动命令过程中,保证以高优先级运行,从而使每个 应用程序的启动过程不受打扰,避免了由于系统中其它事件的影响导致的应 用程序启动过程变慢。本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况 下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,这 些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1、一种手机应用程序快速启动的方法,其特征在于,应用管理器在系统启动过程中同时启动N个快速启动进程,当需要启动一应用程序时,所述应用管理器从所述N个快速启动进程中任选一进程向其发送启动应用程序命令,该选中的快速启动进程收到启动命令后,执行启动操作,当所述启动操作结束后,所述应用管理器重新启动一快速启动进程。
2、 如权利要求l所述的方法,其特征在于,所述应用管理器向选中的快速启动进程发送启动应用程序命令后,降低 自身所在进程的优先级或暂时让出CPU,而所述选中的快速启动进程提高 自身优先级。
3、 如权利要求1或2所述的方法,其特征在于,该方法还包括当所述启动操作结束后,所述应用管理器恢复自身所在 进程的优先级,所述选中的快速启动进程恢复自身优先级为普通优先级。
4、 如权利要求3所述的方法,其特征在于,所述启动操作是指,所述快速启动进程从所述应用管理器收到的启动命 令中,得到需要启动的应用程序的动态库文件后,加载该动态库文件以及从 该动态库文件获取该应用程序的初始化函数并执行。
5、 如权利要求3所述的方法,其特征在于,所述应用管理器启动快速启动进程时,将已启动的快速启动进程标识记 录在其运行的快速启动进程的标识链表中,该链表中的每个节点的内容表示 系统中当前可用的快速启动进程。
6、 如权利要求3所述的方法,其特征在于,所述快速启动进程,执行所有应用程序在启动时都要执行的公共操作, 然后进入事件主循环,在事件主循环中等待接受应用管理器的命令。
7、 如权利要求3所述的方法,其特征在于,所述选中的快速启动进程恢复自身优先级为普通优先级后,当其再次进 入事件主循环时,该快速启动进程为所要启动的应用程序进程。
8、 如权利要求l所述的方法,其特征在于,所述N值由快速启动进程的启动时间除以在该时间内启动的应用程序 个数确定。
全文摘要
本发明公开了一种手机应用程序快速启动的方法,属于计算机软件技术。该方法中,应用管理器在系统启动过程中同时启动N个快速启动进程,当需要启动一应用程序时,所述应用管理器从所述N个快速启动进程中任选一进程向其发送启动应用程序命令,该选中的快速启动进程收到启动命令后,执行启动操作,当所述启动操作结束后,所述应用管理器重新启动一快速启动进程。本发明引入了多个quicklauncher进程以及对quicklauncher进程的优先级控制来满足短时间内快速启动多个应用程序的需求,同时保证了应用程序启动速度不降低。
文档编号H04Q7/32GK101222709SQ20081000084
公开日2008年7月16日 申请日期2008年1月22日 优先权日2008年1月22日
发明者古幼鹏 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1