CN101222709B - 一种手机应用程序快速启动的方法 - Google Patents
一种手机应用程序快速启动的方法 Download PDFInfo
- Publication number
- CN101222709B CN101222709B CN200810000846XA CN200810000846A CN101222709B CN 101222709 B CN101222709 B CN 101222709B CN 200810000846X A CN200810000846X A CN 200810000846XA CN 200810000846 A CN200810000846 A CN 200810000846A CN 101222709 B CN101222709 B CN 101222709B
- Authority
- CN
- China
- Prior art keywords
- application
- startup process
- application program
- quick startup
- startup
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种手机应用程序快速启动的方法,属于计算机软件技术。该方法中,应用管理器在系统启动过程中同时启动N个快速启动进程,当需要启动一应用程序时,所述应用管理器从所述N个快速启动进程中任选一进程向其发送启动应用程序命令,该选中的快速启动进程收到启动命令后,执行启动操作,当所述启动操作结束后,所述应用管理器重新启动一快速启动进程。本发明引入了多个quicklauncher进程以及对quicklauncher进程的优先级控制来满足短时间内快速启动多个应用程序的需求,同时保证了应用程序启动速度不降低。
Description
技术领域
本发明属于计算机软件技术,特别涉及一种手机应用程序快速启动的方法。
背景技术
随着3G时代和智能手机时代的到来,手机的功能变得强大,变得更有开放性,可以在上面安装和运行各种各样的应用程序软件,从而满足手机用户的各种个性化需求。为此,许多手机都以开放式的操作系统(如Windows)为基础,以便可以灵活安装各种应用程序;而在开放操作系统上运行的应用程序,一般也以动态链接的方式运行,以节约系统的存储资源,提高应用程序的扩展性及维护性,这其实跟桌面PC系统的模式是一样的。但是,手机在CPU性能、内存大小与性能、外存储器大小与性能等方面与桌面PC有量级上的巨大差异,因为手机受到体积、电源消耗等的限制,不可能采用桌面PC那样的强大硬件配置。因此,手机采用桌面PC的模式运行应用程序,不可避免会出现应用程序运行速度比起桌面PC偏慢的问题,从而降低了手机用户的操作体验,其中最明显的降低操作体验是应用启动速度慢:用户在手机界面上启动应用程序后,要等候一段时间才能看到应用程序的界面,才能对应用程序进行各种操作。
应用程序的启动速度涉及到手机软件平台和应用程序自身。从应用程序自身来说,应用程序在启动时主要是进行各种初始化操作、创建各种对象等。应用程序应该尽量加快这些操作,减小不必要的操作,或者合理分配操作的执行时间,有的操作可以放在应用程序启动后再进行。从手机软件平台方面来说,应该分析所有应用程序都要经历的操作,然后通过加快这些操作,从而支持所有应用程序的启动加速。经过大量的实际测试数据,发现动态库的加载、创建新的进程并设置进程环境在应用启动过程中花费了很多时间,而 这两种操作又是所有应用程序在启动时都必然要经历的操作。
对此,许多手机软件平台都采用了一种预启动的思想来解决以上的两个问题,其基本方法是:1)把手机上的所有应用程序在启动时都要执行的公共操作集中起来由系统提供的代码来完成,应用程序自己再提供一个初始化函数作与自己应用特定相关的启动操作;2)手机软件平台在后台预先启动一个特殊的应用程序进程在后台进行,该应用程序执行所有应用程序在启动时都要执行的公共操作,然后进入事件主循环中,在该主循环中它要做的主要工作是等待接受应用管理器的命令,这个进程可以称为快速启动后台进程(quicklauncher进程);3)当手机要启动一个新的应用程序时,由应用管理器向quicklauncher进程发送启动新应用程序的命令;4)运行中的quicklauncher进程收到命令后,退出事件主循环,从收到的命令中得到需要启动的应用程序的动态库文件,加载这个动态库文件,然后从动态库文件获取该应用程序的初始化函数并执行,然后再次进入新的事件主循环,这样quicklauncher进程就变成了可以执行要启动的应用程序的功能的进程,即把quicklauncher进程变成了要启动的应用程序的进程,从而完成了应用程序的启动;5)手机软件平台又启动一个新的quicklauncher进程在后台运行,为启动新应用程序作准备。
从以上流程可以看出,预启动机制预先完成了应用程序的进程创建和进程环境初始化操作、应用程序的公共共享库的加载及其他公共启动操作,有效提高了应用程序的启动速度。然而,这种方法有个缺陷是当一个quicklauncher进程被启动的应用程序所占用,在新的quicklauncher进程被产生并进入事件主循环之前这段时间内,如果又有新的应用程序要启动,就无法使用这种方法了。由于新的quicklauncher进程被产生并进入事件主循环这段时间仍然可能会耗时数秒,所以在手机上就会出现快速连续启动两个应用程序时会导致后一个应用程序启动变慢或甚至启动失败(对于只采用预启动机制的系统来说)。
发明内容
本发明所要解决的技术问题是,提供一种手机应用程序快速启动的方 法,从而可以让用户在不降低应用程序启动速度的前提下,在短时间内启动多个应用程序。
为了解决上述问题,本发明公开了一种手机应用程序快速启动的方法,如下:
应用管理器在系统启动过程中同时启动N个快速启动进程,当需要启动一应用程序时,所述应用管理器从所述N个快速启动进程中任选一进程向其发送启动应用程序命令,该选中的快速启动进程收到启动命令后,执行启动操作,当所述启动操作结束后,所述应用管理器重新启动一快速启动进程。
进一步地,上述的方法中,所述应用管理器向选中的快速启动进程发送启动应用程序命令后,降低自身所在进程的优先级或暂时让出CPU,而所述选中的快速启动进程提高自身优先级。
该方法还包括:当所述启动操作结束后,所述应用管理器恢复自身所在进程的优先级,所述选中的快速启动进程恢复自身优先级为普通优先级。
其中,所述启动操作是指,所述快速启动进程从所述应用管理器收到的启动命令中,得到需要启动的应用程序的动态库文件后,加载该动态库文件以及从该动态库文件获取该应用程序的初始化函数并执行。
所述应用管理器启动快速启动进程时,将已启动的快速启动进程标识记录在其运行的快速启动进程的标识链表中,该链表中的每个节点的内容表示系统中当前可用的快速启动进程。
所述快速启动进程,执行所有应用程序在启动时都要执行的公共操作,然后进入事件主循环,在事件主循环中等待接受应用管理器的命令。
所述选中的快速启动进程恢复自身优先级为普通优先级后,当其再次进入事件主循环时,该快速启动进程为所要启动的应用程序进程。
本发明引入了多个quicklauncher进程以及对quicklauncher进程的优先级控制来满足短时间内快速启动多个应用程序的需求,同时保证了应用程序 启动速度不降低。
附图说明
图1是本发明的实现手机应用程序快速启动的处理流程图;
图2是图1所示流程中quickluancher进程进行快速启动的流程图;
图3是图1所示流程中应用管理器创建quickluancher进程的流程图。
本发明的主要构思是,如果引入多个quicklauncher进程并且对各quicklauncher进程的优先级进行控制,这样就可以满足用户在短时间内快速启动多个应用程序的需求。首先,多个quicklauncher进程在系统中的并存,保证了用户需要快速启动多个应用程序时都能找到可用的quicklauncher进程,从而使每个应用程序都可以通过quicklauncher进程实现快速启动;其次,通过让运行的quicklauncher进程在处理应用管理器的启动命令这段时间以高优先级运行的方式,使每个应用程序的启动过程不受打扰,避免了由于系统中其它事件的影响导致的应用程序启动过程变慢。
具体实施方式
下面结合附图和具体实施方式,对本发明采用的技术方案作进一步详细说明。
一种手机应用程序快速启动的过程包括以下步骤,如图1所示:
步骤101:在手机软件平台,提供有快速启动应用程序,运行这个应用程序的进程就叫快速启动(quicklauncher)进程,该quicklauncher进程执行所有应用程序在启动时都要执行的公共操作,然后进入事件主循环中,在该主循环中它要做的主要工作是等待接受应用管理器的命令;
步骤102:手机软件平台中的应用管理器在系统启动时就以普通优先级同时启动N个快速启动进程,即quicklauncher进程;N大于等于2;
步骤103:应用管理器接收到应用启动请求后,从系统中存在的 quicklauncher进程中任意选择一个进程;
步骤104:应用管理器向选择的quicklauncher进程发送启动应用命令;
步骤105:应用管理器降低自身所在进程的优先级;
步骤106:该quicklauncher进程收到启动命令后,执行启动操作;
步骤107:应用管理器启动一个新的quicklauncher进程运行;
该步骤中,新启动的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;如果不等于0,说明是在应用管理器所在的原进程中运行,转入步骤305;
步骤303:应用管理器为将要运行的quickluancher进程设置进程运行环境,比如为本进程设置操作系统的信号处理、关闭不必要的从父进程继承下来的系统资源、为本进程打开需要的系统资源等等;
步骤304:在子进程中调用操作系统的execv(...)函数,执行quicklauncher应用的代码,应用管理器启动quickluancher进程的处理到此结束;
步骤305:应用管理器就把fork()调用返回的子进程标识ID记录在其自身运行的quickluancher子进程的ID链表中,这个链表中的每个节点的内容代表了系统中当前可用的quicklauncher进程;
步骤306:应用管理器继续其它的处理。
上述应用管理器启动quicklauncher进程的过程可以在系统启动时或者在图1所示流程的步骤106中使用,其中在系统启动时,应用管理器需要重复执行以上流程N次。
从上述实施例,可以看出多个quicklauncher进程在系统中的并存保证了快速启动多个应用程序时都能找到可用的quicklauncher进程,从而使每个应用程序都可以通过quicklauncher进程实现快速启动;另外在quicklauncher 进程处理应用管理器的启动命令过程中,保证以高优先级运行,从而使每个应用程序的启动过程不受打扰,避免了由于系统中其它事件的影响导致的应用程序启动过程变慢。
本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (7)
1.一种手机应用程序快速启动的方法,其特征在于,
应用管理器在系统启动过程中同时启动N个快速启动进程,当需要启动一应用程序时,所述应用管理器从所述N个快速启动进程中任选一进程向其发送启动应用程序命令,该选中的快速启动进程收到启动命令后,执行启动操作,当所述启动操作结束后,所述应用管理器重新启动一快速启动进程;N≥2。
2.如权利要求1所述的方法,其特征在于,
所述应用管理器向选中的快速启动进程发送启动应用程序命令后,降低自身所在进程的优先级或暂时让出CPU,而所述选中的快速启动进程提高自身优先级。
3.如权利要求2所述的方法,其特征在于,
该方法还包括:当所述启动操作结束后,所述应用管理器恢复自身所在进程的优先级,所述选中的快速启动进程恢复自身优先级为普通优先级。
4.如权利要求3所述的方法,其特征在于,
所述启动操作是指,所述快速启动进程从所述应用管理器收到的启动命令中,得到需要启动的应用程序的动态库文件后,加载该动态库文件以及从该动态库文件获取该应用程序的初始化函数并执行。
5.如权利要求3所述的方法,其特征在于,
所述应用管理器启动快速启动进程时,将已启动的快速启动进程标识记录在其运行的快速启动进程的标识链表中,该链表中的每个节点的内容表示系统中当前可用的快速启动进程。
6.如权利要求3所述的方法,其特征在于,
所述快速启动进程,执行所有应用程序在启动时都要执行的公共操作,然后进入事件主循环,在事件主循环中等待接受应用管理器的命令。
7.如权利要求3所述的方法,其特征在于,
所述选中的快速启动进程恢复自身优先级为普通优先级后,当其再次进入事件主循环时,该快速启动进程为所要启动的应用程序进程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810000846XA CN101222709B (zh) | 2008-01-22 | 2008-01-22 | 一种手机应用程序快速启动的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810000846XA CN101222709B (zh) | 2008-01-22 | 2008-01-22 | 一种手机应用程序快速启动的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101222709A CN101222709A (zh) | 2008-07-16 |
CN101222709B true CN101222709B (zh) | 2011-08-10 |
Family
ID=39632236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810000846XA Expired - Fee Related CN101222709B (zh) | 2008-01-22 | 2008-01-22 | 一种手机应用程序快速启动的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101222709B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2466050A (en) * | 2008-12-10 | 2010-06-16 | Symbian Software Ltd | Initiation of a telecommunications device |
CN101610316B (zh) * | 2009-07-24 | 2012-10-10 | 中兴通讯股份有限公司 | 手机应用程序的启动方法、装置和系统 |
CN101644990A (zh) * | 2009-08-21 | 2010-02-10 | 深圳华为通信技术有限公司 | 快捷启动应用程序的方法及设备 |
CN101639787B (zh) * | 2009-09-07 | 2013-02-27 | 中兴通讯股份有限公司 | 应用程序启动方法及装置 |
CN102298532B (zh) * | 2011-09-15 | 2014-12-10 | 奇智软件(北京)有限公司 | 一种基于启动项的管理方法及装置 |
CN103197962B (zh) * | 2012-01-04 | 2017-02-08 | 中国移动通信集团公司 | 多进程状态切换方法和装置 |
CN103516872A (zh) * | 2012-06-19 | 2014-01-15 | 联想(北京)有限公司 | 终端设备以及终端设备的开机控制方法 |
CN103853575B (zh) * | 2012-12-06 | 2017-08-22 | 腾讯科技(深圳)有限公司 | 智能终端应用程序管理的配置方法和装置 |
CN104572137B (zh) * | 2013-10-10 | 2019-09-27 | 南京中兴软件有限责任公司 | 一种网管客户端启动加速的实现方法及装置 |
US9600369B2 (en) | 2013-12-10 | 2017-03-21 | Huawei Technologies Co., Ltd. | Operating system recovery method and apparatus, and terminal device |
CN104461512A (zh) * | 2014-11-20 | 2015-03-25 | 乐视网信息技术(北京)股份有限公司 | 一种快速启动应用程序的方法和装置 |
CN104484193A (zh) * | 2014-11-20 | 2015-04-01 | 乐视网信息技术(北京)股份有限公司 | 一种快速启动应用程序的方法和装置 |
CN104899090B (zh) * | 2015-05-27 | 2018-12-21 | 努比亚技术有限公司 | 快速调度应用进程的方法、装置及移动终端 |
CN104898974A (zh) * | 2015-05-29 | 2015-09-09 | 努比亚技术有限公司 | 终端控制方法和装置 |
CN107193577B (zh) * | 2016-03-15 | 2021-08-03 | 斑马智行网络(香港)有限公司 | 一种应用启动方法、装置和智能终端 |
CN105893087A (zh) * | 2016-03-30 | 2016-08-24 | 珠海市魅族科技有限公司 | 一种应用程序启动的方法以及装置 |
CN106066804B (zh) * | 2016-05-27 | 2019-12-31 | 广东小天才科技有限公司 | 一种移动终端的应用程序访问控制方法及装置 |
CN106844033B (zh) * | 2017-01-23 | 2020-07-28 | 努比亚技术有限公司 | 一种应用快速启动方法和终端 |
EP3611615A4 (en) | 2017-04-19 | 2020-04-29 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | METHOD AND DEVICE FOR ACCELERATED START-UP OF AN APPLICATION AND TERMINAL |
CN107491330B (zh) * | 2017-08-08 | 2020-04-03 | 中国科学院声学研究所 | 一种提高嵌入式浏览器运行速度的方法 |
CN107943576B (zh) * | 2017-12-14 | 2020-09-29 | 中国平安人寿保险股份有限公司 | 应用程序的启动优化方法、装置、设备、系统及介质 |
CN108196892B (zh) * | 2017-12-29 | 2021-02-23 | 北京安云世纪科技有限公司 | 用于对系统启动过程进行定制的方法、装置以及移动终端 |
CN110286958B (zh) * | 2019-06-20 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 节点信息获取方法、装置及存储介质 |
CN112714215A (zh) * | 2021-01-22 | 2021-04-27 | 惠州Tcl移动通信有限公司 | 一种移动终端声音设置处理方法、装置、终端设备及存储介质 |
CN113918235B (zh) * | 2021-09-17 | 2023-11-17 | 贝壳找房(北京)科技有限公司 | 应用加载的方法及装置、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001086415A2 (en) * | 2000-05-08 | 2001-11-15 | Transilica, Inc. | Priority in a portable thread environment |
EP1376353A2 (en) * | 2002-06-20 | 2004-01-02 | Nokia Corporation | Method and system for executing applications sessions in an electronic device |
CN1684472A (zh) * | 2004-04-14 | 2005-10-19 | 日本电气株式会社 | 移动通信终端及其应用启动控制方法 |
-
2008
- 2008-01-22 CN CN200810000846XA patent/CN101222709B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001086415A2 (en) * | 2000-05-08 | 2001-11-15 | Transilica, Inc. | Priority in a portable thread environment |
EP1376353A2 (en) * | 2002-06-20 | 2004-01-02 | Nokia Corporation | Method and system for executing applications sessions in an electronic device |
CN1684472A (zh) * | 2004-04-14 | 2005-10-19 | 日本电气株式会社 | 移动通信终端及其应用启动控制方法 |
Non-Patent Citations (2)
Title |
---|
王继刚, 顾国昌, 徐立峰.《面向智能手机的嵌入式实时操作系统》.《中兴通讯技术》第2卷 第5期.2005,第2卷(第5期),41-44. |
王继刚, 顾国昌, 徐立峰.《面向智能手机的嵌入式实时操作系统》.《中兴通讯技术》第2卷 第5期.2005,第2卷(第5期),41-44. * |
Also Published As
Publication number | Publication date |
---|---|
CN101222709A (zh) | 2008-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101222709B (zh) | 一种手机应用程序快速启动的方法 | |
US9501319B2 (en) | Method and apparatus for scheduling blocking tasks | |
CN101639787B (zh) | 应用程序启动方法及装置 | |
CN101610316B (zh) | 手机应用程序的启动方法、装置和系统 | |
CN103699398A (zh) | 终端设备及其启动控制方法 | |
CN103631612A (zh) | 启动操作系统的方法与装置 | |
CN102663003A (zh) | 移动终端多web页面应用中的页面切换方法及系统 | |
CN108809683B (zh) | 部署云应用系统的方法及装置 | |
CN104516885A (zh) | 浏览程序双内核组件的实现方法及装置 | |
CN106095439A (zh) | 一种信息处理方法及电子设备 | |
CN115373861B (zh) | Gpu资源调度方法、装置、电子设备及存储介质 | |
CN102375759B (zh) | 利用有限状态机防止代码重入的方法 | |
CN105930190B (zh) | 一种基于操作系统的程序自启动方法和装置 | |
CN112423024A (zh) | 一种视频转码方法、装置、计算机设备和存储介质 | |
CN103870295A (zh) | 切换方法和电子设备 | |
CN113485812B (zh) | 基于大数据量任务的分区并行处理方法及系统 | |
CN107301089B (zh) | 一种app部署及调用方法和终端 | |
CN106708598B (zh) | 病毒分析环境搭建方法及装置 | |
CN115145722A (zh) | 切换微服务架构和单体架构的系统及方法 | |
CN111722888B (zh) | 一种操作执行方法、装置、设备及可读存储介质 | |
CN114466070A (zh) | 中间件系统、服务请求处理方法、电子设备及存储介质 | |
CN102122249A (zh) | 启动java应用的方法及装置 | |
CN105528226A (zh) | 一种智能终端的开机方法和装置 | |
CN111984275A (zh) | 基于cpu架构类型的系统部署方法、系统、终端及存储介质 | |
CN111399942A (zh) | 网卡配置方法、网卡配置装置、网卡配置设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110810 Termination date: 20170122 |