书签 分享 收藏 举报 版权申诉 / 8

ANDROID操作系统的快速启动方法.pdf

  • 上传人:a3
  • 文档编号:4529203
  • 上传时间:2018-10-18
  • 格式:PDF
  • 页数:8
  • 大小:2.40MB
  • 摘要
    申请专利号:

    CN201310257387.4

    申请日:

    2013.06.25

    公开号:

    CN104252365A

    公开日:

    2014.12.31

    当前法律状态:

    撤回

    有效性:

    无权

    法律详情:

    发明专利申请公布后的视为撤回IPC(主分类):G06F 9/445申请公布日:20141231|||实质审查的生效IPC(主分类):G06F9/445申请日:20130625|||公开

    IPC分类号:

    G06F9/445

    主分类号:

    G06F9/445

    申请人:

    上海博泰悦臻电子设备制造有限公司

    发明人:

    郭方强

    地址:

    200235 上海市徐汇区天钥桥路30号美罗大厦19楼

    优先权:

    专利代理机构:

    上海专利商标事务所有限公司 31100

    代理人:

    陆嘉

    PDF完整版下载: PDF下载
    内容摘要

    本发明提供了一种Android操作系统的快速启动方法,包括:在启动时,应用程序管理服务仅扫描Android操作系统自带的应用的最小子集,该最小子集的应用以保证所述Android操作系统正常开机启动桌面启动器为标准;在所述Android操作系统完成启动后,所述应用程序管理服务扫描所述最小子集的应用之外的其他应用。本发明能够显著缩短Android操作系统的启动时间,减少开机时间。

    权利要求书

    权利要求书
    1.  一种Android操作系统的快速启动方法,其特征在于,包括:
    在启动时,应用程序管理服务仅扫描Android操作系统自带的应用的最小子集,该最小子集的应用以保证所述Android操作系统正常开机启动桌面启动器为标准;
    在所述Android操作系统完成启动后,所述应用程序管理服务扫描所述最小子集的应用之外的其他应用。

    2.  根据权利要求1所述的方法,其特征在于,在启动时,应用程序管理服务仅扫描Android操作系统自带的应用的最小子集包括:
    设定最小子集参数,该最小子集参数定义所述Android操作系统正常开机启动桌面启动器的最小子集;
    启动所述应用程序管理服务时获取该最小子集参数;
    所述应用程序管理服务按照该最小子集参数的指示扫描相应的应用。

    3.  根据权利要求1或2所述的方法,其特征在于,在所述最小子集的应用扫描完成后,发出第一阶段启动完成消息以替代原生Android操作系统的启动完成消息。

    4.  根据权利要求3所述的方法,其特征在于,在所述最小子集的应用之外的其他应用扫描完成后,发出所述原生Android操作系统的启动完成消息。

    5.  根据权利要求1或2所述的方法,其特征在于,在所述最小子集的应用扫描完成后,还发出延迟扫描消息,以指示结束所述应用程序管理服务的扫描过程,所述延迟扫描消息包含延迟时间;在到达所述延迟时间时,所述应用程序管理服务开始扫描所述最小子集的应用之外的其他应用。

    6.  根据权利要求2所述的方法,其特征在于,所述最小子集参数以代码方式 定义或者以XML文件方式配置。

    说明书

    说明书Android操作系统的快速启动方法
    技术领域
    本发明涉及一种Android操作系统的快速启动方法。
    背景技术
    Android操作系统是一种基于Linux操作系统的自由及开放源代码的操作系统,由Google公司和开放手机联盟领导及开发,主要用于移动设备,如智能手机和平板电脑。Android操作系统的系统架构和其操作系统一样,采用了分层的架构。从架构图看,Android操作系统分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。
    Android操作系统具有良好的开发性,用户可以从应用商店或者其他途径下载和安装Android应用,Android应用通常以APK文件提供。当用户安装的应用很多时,会造成系统开机启动时间很长。
    现在Android操作系统的系统启动过程按先后包括:引导程序(bootloader),linux内核,本地(native)服务,dalvik虚拟机,Android服务以及应用程序。
    Android操作系统在启动的过程中,会启动应用程序管理服务(PackageManagerService),该应用程序管理服务负责扫描系统中特定的目录,找到其中的应用程序文件,即以APK为后缀的文件,然后对这些文件进行解析,得到应用程序的相关信息,完成应用程序的安装过程,当安装的APK文件越多时,所需要的时间越多,极大影响了Android操作系统的启动时间,从而影响安装有Android操作系统的设备的开机时间。
    发明内容
    本发明要解决的技术问题是提供一种Android操作系统的快速启动方法,能够显著缩短Android操作系统的启动时间。
    为解决上述技术问题,本发明提供了一种Android操作系统的快速启动方法, 包括:
    在启动时,应用程序管理服务仅扫描Android操作系统自带的应用的最小子集,该最小子集的应用以保证所述Android操作系统正常开机启动桌面启动器为标准;
    在所述Android操作系统完成启动后,所述应用程序管理服务扫描所述最小子集的应用之外的其他应用。
    根据本发明的一个实施例,在启动时,应用程序管理服务仅扫描Android操作系统自带的应用的最小子集包括:
    设定最小子集参数,该最小子集参数定义所述Android操作系统正常开机启动桌面启动器的最小子集;
    启动所述应用程序管理服务时获取该最小子集参数;
    所述应用程序管理服务按照该最小子集参数的指示扫描相应的应用。
    根据本发明的一个实施例,在所述最小子集的应用扫描完成后,发出第一阶段启动完成消息以替代原生Android操作系统的启动完成消息。
    根据本发明的一个实施例,在所述最小子集的应用之外的其他应用扫描完成后,发出所述原生Android操作系统的启动完成消息。
    根据本发明的一个实施例,在所述最小子集的应用扫描完成后,还发出延迟扫描消息,以指示结束所述应用程序管理服务的扫描过程,所述延迟扫描消息包含延迟时间;在到达所述延迟时间时,所述应用程序管理服务开始扫描所述最小子集的应用之外的其他应用。
    根据本发明的一个实施例,所述最小子集参数以代码方式定义或者以XML文件方式配置。
    与现有技术相比,本发明具有以下优点:
    本发明实施例的Android操作系统的快速启动方法中,将应用程序管理服务对应用的扫描过程分为两个阶段,在启动过程中先扫描系统自带的部分应用,保证系统正常开机启动桌面启动器(Launcher);在系统启动完成后,在扫描其他应用,从而显著缩短了启动时间。
    附图说明
    图1是本发明实施例的Android操作系统的快速启动方法的流程示意图。
    具体实施方式
    发明人对应用程序管理服务(PackageManagerService)的启动过程进行了分析,其启动时通过静态方法main()来实现的,也即通过PackageManagerService构造函数来返回一个IPackageManager的接口实现。应用程序管理服务的构造函数流程如下:
    步骤1:进行一些成员变量的初始化,比如mContext,mFactoryTest,mMetrics,mSettings等。另外,最重要的是初始化变量mInstaller,变量mInstaller建立与守护进程installd的套接字(socket)连接,守护进程installd主要用于安装(install)、移除(remove)、优化(dexopt)的底层实现。
    步骤2:建立PackageHandler消息循环,用于处理外部的apk文件安装请求消息,如adb install,packageinstaller安装apk文件时会发送消息。
    以上步骤1和步骤2总耗时大约为15ms左右。
    步骤3,解析/system/etc/permission下的xml文件(framework/base/data/etc/),包括platform.xml和系统支持的各种硬件模块的特性(feature)。步骤3耗时25ms左右。
    步骤4:解析/data/system/packages.xml,这个文件是在解析apk文件时由writeLP()创建的,里面记录有系统的许可(permissions),以及每个apk的name,codePath,flags,ts,version,uesrid等信息。步骤4耗时大约130ms左右。
    步骤5:检查BootClassPath,mSharedLibraries及/system/framework下的jar是否需要dexopt,需要的则通过dexopt进行优化。步骤5耗时大约30ms左右。
    步骤6:分别对/system/framework,/system/app,/data/app,/data/app-private目录下的apk进行解析,并启动AppDirObserver对上述目录进行监测。步骤6耗时根据apk的数量多少变化,目前安装5个常见应用,扫描时间在5s左右,如果安装15个apk文件,时间达到25s左右,应用越多耗时越长。
    步骤7:将解析的每个apk的信息保存到packages.xml和packages.list文件中。步骤7耗时大约70ms左右。
    从以上分析可知,Android操作系统的启动时间主要由步骤6占用。因此,本发明实施例对应用程序管理服务扫描应用的过程作了优化,在启动过程中仅扫描系统自带的部分应用,在系统启动完成后,再扫描其他应用,从而显著缩短了启动过程的时间,加快了启动速度。
    下面结合具体实施例和附图对本发明作进一步说明,但不应以此限制本发明的保护范围。
    参考图1,本实施例中的Android操作系统的快速启动方法包括如下步骤:
    步骤S11,在启动时,应用程序管理服务仅扫描Android操作系统自带的应用的最小子集,该最小子集的应用以保证所述Android操作系统正常开机启动桌面启动器为标准;
    步骤S12,在所述Android操作系统完成启动后,所述应用程序管理服务扫描所述最小子集的应用之外的其他应用。
    其中,步骤S11中Android操作系统自带的应用的最小子集是以不影响正常启动桌面启动器为标准的,也就是在仅扫描该最小子集内的应用时,可以正常启动至桌面启动器启动。
    步骤S12中,在Android操作系统完成启动后,应用程序管理服务继续扫描该最小子集之外的其他应用,以使各个应用都能正常使用。
    进一步而言,可以首先确定第一阶段需要扫描的应用,也就是在Android操作系统启动过程中需要扫描的应用。此类应用主要包括系统级别的服务(service)、提供方(provider)以及和桌面启动器(launcher)相关的应用,以能够保证桌面启动器(launcher)正常启动为标准。具体而言,可以通过设定最小子集参数来实现此类应用的指定,例如可以定义miniSystem数组,该数组中包含了第一阶段所要扫描的应用,miniSystem数组可以采用代码方式定义,也可以采用xml文件的方式配置,但并不限于此。
    之后,启动应用程序管理服务(PackageManagerService)时,获取miniSystem数组,仅扫描system/app下miniSystem数组里面有定义的应用。
    在一非限制性的例子中,实现的伪代码如下:


    在应用程序管理服务完成第一阶段的扫描过程后,可以发出第一阶段启动完成消息FIRST_BOOT_COMPLETED,以取代原生Android操作系统的启动完成消息BOOT_COMPLETED。进一步而言,第一阶段启动完成消息FIRST_BOOT_COMPLETED是新定义的,在第一阶段扫描完成后,发出.intent.action.FIRST_BOOT_COMPLETED,以替代原先的启动完成消息BOOT_COMPLETED。
    在第一阶段扫描完成后,可以发送延迟扫描消息,结束应用程序管理服务的启动,继续Android操作系统的其他开机启动流程,此时加载启动的内容、次序与现有技术相同,这里不再赘述。
    在一非限制性的例子中,具体实现的伪代码如下:

    延迟扫描消息中可以包含延迟时间,在到达该延迟时间时,可以进行第二阶段的扫描,用于扫描上述最小子集之外的其他应用。进一步而言,可以扫描system/app,data/app下不在miniSystem数组下的应用,并通知系统其他相关 服务,使得应用能够正常展示并供用户使用。
    在一非限制性的例子中,具体实现的伪代码如下:

    第二阶段的扫描完成之后,可以发出原生Android操作系统的启动完成消息,具体而言可以发出android.intent.action.BOOT_COMPLETED。换言之,常规的原生Android操作系统中,在启动阶段应用程序管理服务完成全部扫描时发出该启动完成消息BOOT_COMPLETED,而在本实施例中则改为启动完成后并且应用程序管理服务完成第二阶段扫描后再发出该启动完成消息BOOT_COMPLETED,而在启动过程中完成第一阶段扫描后发出的是自定义的第一阶段启动完成消息FIRST_BOOT_COMPLETED。
    按照上述方案,在采用IMX53平台的实例中,应用程序管理服务的启动时间可以固定在1s以内,大大缩短了开机时间。
    本实施例的方案可以应用于基于Android操作系统的车载设备、手机、平板电脑等多种场景。
    本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。

    关 键  词:
    ANDROID 操作系统 快速 启动 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:ANDROID操作系统的快速启动方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4529203.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1