《ANDROID操作系统的快速启动方法.pdf》由会员分享,可在线阅读,更多相关《ANDROID操作系统的快速启动方法.pdf(8页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104252365 A (43)申请公布日 2014.12.31 CN 104252365 A (21)申请号 201310257387.4 (22)申请日 2013.06.25 G06F 9/445(2006.01) (71)申请人 上海博泰悦臻电子设备制造有限公 司 地址 200235 上海市徐汇区天钥桥路 30 号 美罗大厦 19 楼 (72)发明人 郭方强 (74)专利代理机构 上海专利商标事务所有限公 司 31100 代理人 陆嘉 (54) 发明名称 Android 操作系统的快速启动方法 (57) 摘要 本发明提供了一种 Android 操作系统的快 速启。
2、动方法, 包括 : 在启动时, 应用程序管理服务 仅扫描 Android 操作系统自带的应用的最小子 集, 该最小子集的应用以保证所述 Android 操作 系统正常开机启动桌面启动器为标准 ; 在所述 Android 操作系统完成启动后, 所述应用程序管 理服务扫描所述最小子集的应用之外的其他应 用。本发明能够显著缩短 Android 操作系统的启 动时间, 减少开机时间。 (51)Int.Cl. 权利要求书 1 页 说明书 5 页 附图 1 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书5页 附图1页 (10)申请公布号 CN 104252365 A。
3、 CN 104252365 A 1/1 页 2 1. 一种 Android 操作系统的快速启动方法, 其特征在于, 包括 : 在启动时, 应用程序管理服务仅扫描 Android 操作系统自带的应用的最小子集, 该最 小子集的应用以保证所述 Android 操作系统正常开机启动桌面启动器为标准 ; 在所述 Android 操作系统完成启动后, 所述应用程序管理服务扫描所述最小子集的应 用之外的其他应用。 2. 根据权利要求 1 所述的方法, 其特征在于, 在启动时, 应用程序管理服务仅扫描 Android 操作系统自带的应用的最小子集包括 : 设定最小子集参数, 该最小子集参数定义所述 Andr。
4、oid 操作系统正常开机启动桌面启 动器的最小子集 ; 启动所述应用程序管理服务时获取该最小子集参数 ; 所述应用程序管理服务按照该最小子集参数的指示扫描相应的应用。 3. 根据权利要求 1 或 2 所述的方法, 其特征在于, 在所述最小子集的应用扫描完成后, 发出第一阶段启动完成消息以替代原生 Android 操作系统的启动完成消息。 4. 根据权利要求 3 所述的方法, 其特征在于, 在所述最小子集的应用之外的其他应用 扫描完成后, 发出所述原生 Android 操作系统的启动完成消息。 5. 根据权利要求 1 或 2 所述的方法, 其特征在于, 在所述最小子集的应用扫描完成后, 还发出延。
5、迟扫描消息, 以指示结束所述应用程序管理服务的扫描过程, 所述延迟扫描消息 包含延迟时间 ; 在到达所述延迟时间时, 所述应用程序管理服务开始扫描所述最小子集的 应用之外的其他应用。 6. 根据权利要求 2 所述的方法, 其特征在于, 所述最小子集参数以代码方式定义或者 以 XML 文件方式配置。 权 利 要 求 书 CN 104252365 A 2 1/5 页 3 Android 操作系统的快速启动方法 技术领域 0001 本发明涉及一种 Android 操作系统的快速启动方法。 背景技术 0002 Android 操作系统是一种基于 Linux 操作系统的自由及开放源代码的操作系统, 由 。
6、Google 公司和开放手机联盟领导及开发, 主要用于移动设备, 如智能手机和平板电脑。 Android操作系统的系统架构和其操作系统一样, 采用了分层的架构。 从架构图看, Android 操作系统分为四个层, 从高层到低层分别是应用程序层、 应用程序框架层、 系统运行库层和 Linux 内核层。 0003 Android 操作系统具有良好的开发性, 用户可以从应用商店或者其他途径下载和 安装 Android 应用, Android 应用通常以 APK 文件提供。当用户安装的应用很多时 , 会造 成系统开机启动时间很长。 0004 现在 Android 操作系统的系统启动过程按先后包括 : 。
7、引导程序 (bootloader) , linux 内核, 本地 (native) 服务, dalvik 虚拟机, Android 服务以及应用程序。 0005 Android 操 作 系 统 在 启 动 的 过 程 中,会 启 动 应 用 程 序 管 理 服 务 (PackageManagerService) , 该应用程序管理服务负责扫描系统中特定的目录, 找到其中的 应用程序文件, 即以 APK 为后缀的文件, 然后对这些文件进行解析, 得到应用程序的相关信 息, 完成应用程序的安装过程, 当安装的 APK 文件越多时, 所需要的时间越多, 极大影响了 Android 操作系统的启动时间。
8、, 从而影响安装有 Android 操作系统的设备的开机时间。 发明内容 0006 本发明要解决的技术问题是提供一种 Android 操作系统的快速启动方法, 能够显 著缩短 Android 操作系统的启动时间。 0007 为解决上述技术问题, 本发明提供了一种 Android 操作系统的快速启动方法, 包 括 : 0008 在启动时, 应用程序管理服务仅扫描 Android 操作系统自带的应用的最小子集, 该最小子集的应用以保证所述 Android 操作系统正常开机启动桌面启动器为标准 ; 0009 在所述 Android 操作系统完成启动后, 所述应用程序管理服务扫描所述最小子集 的应用之。
9、外的其他应用。 0010 根据本发明的一个实施例, 在启动时, 应用程序管理服务仅扫描 Android 操作系 统自带的应用的最小子集包括 : 0011 设定最小子集参数, 该最小子集参数定义所述 Android 操作系统正常开机启动桌 面启动器的最小子集 ; 0012 启动所述应用程序管理服务时获取该最小子集参数 ; 0013 所述应用程序管理服务按照该最小子集参数的指示扫描相应的应用。 0014 根据本发明的一个实施例, 在所述最小子集的应用扫描完成后, 发出第一阶段启 说 明 书 CN 104252365 A 3 2/5 页 4 动完成消息以替代原生 Android 操作系统的启动完成消。
10、息。 0015 根据本发明的一个实施例, 在所述最小子集的应用之外的其他应用扫描完成后, 发出所述原生 Android 操作系统的启动完成消息。 0016 根据本发明的一个实施例, 在所述最小子集的应用扫描完成后, 还发出延迟扫描 消息, 以指示结束所述应用程序管理服务的扫描过程, 所述延迟扫描消息包含延迟时间 ; 在 到达所述延迟时间时, 所述应用程序管理服务开始扫描所述最小子集的应用之外的其他应 用。 0017 根据本发明的一个实施例, 所述最小子集参数以代码方式定义或者以 XML 文件方 式配置。 0018 与现有技术相比, 本发明具有以下优点 : 0019 本发明实施例的 Androi。
11、d 操作系统的快速启动方法中, 将应用程序管理服务对应 用的扫描过程分为两个阶段, 在启动过程中先扫描系统自带的部分应用, 保证系统正常开 机启动桌面启动器 (Launcher) ; 在系统启动完成后, 在扫描其他应用, 从而显著缩短了启动 时间。 附图说明 0020 图 1 是本发明实施例的 Android 操作系统的快速启动方法的流程示意图。 具体实施方式 0021 发明人对应用程序管理服务 (PackageManagerService) 的启动过程进行了分析, 其启动时通过静态方法main()来实现的, 也即通过PackageManagerService构造函数来返 回一个 IPacka。
12、geManager 的接口实现。应用程序管理服务的构造函数流程如下 : 0022 步骤 1 : 进行一些成员变量的初始化, 比如 mContext, mFactoryTest, mMetrics, mSettings 等。另外, 最重要的是初始化变量 mInstaller, 变量 mInstaller 建立与守护进 程 installd 的套接字 (socket) 连接, 守护进程 installd 主要用于安装 (install) 、 移除 (remove) 、 优化 (dexopt) 的底层实现。 0023 步骤 2 : 建立 PackageHandler 消息循环, 用于处理外部的 ap。
13、k 文件安装请求消息, 如 adb install,packageinstaller 安装 apk 文件时会发送消息。 0024 以上步骤 1 和步骤 2 总耗时大约为 15ms 左右。 0025 步骤 3, 解析 /system/etc/permission 下的 xml 文件 (framework/base/data/ etc/), 包括platform.xml和系统支持的各种硬件模块的特性 (feature) 。 步骤3耗时25ms 左右。 0026 步骤 4 : 解析 /data/system/packages.xml, 这个文件是在解析 apk 文件时由 writeLP() 创建的,。
14、 里面记录有系统的许可 (permissions) , 以及每个 apk 的 name,codePat h,flags,ts,version,uesrid 等信息。步骤 4 耗时大约 130ms 左右。 0027 步骤 5 : 检查 BootClassPath, mSharedLibraries 及 /system/framework 下的 jar 是否需要 dexopt, 需要的则通过 dexopt 进行优化。步骤 5 耗时大约 30ms 左右。 0028 步骤 6 : 分别对 /system/framework,/system/app,/data/app,/data/ app-privat。
15、e 目录下的 apk 进行解析, 并启动 AppDirObserver 对上述目录进行监测。步骤 说 明 书 CN 104252365 A 4 3/5 页 5 6 耗时根据 apk 的数量多少变化, 目前安装 5 个常见应用, 扫描时间在 5s 左右, 如果安装 15 个 apk 文件, 时间达到 25s 左右, 应用越多耗时越长。 0029 步骤7 : 将解析的每个apk的信息保存到packages.xml和packages.list文件中。 步骤 7 耗时大约 70ms 左右。 0030 从以上分析可知, Android 操作系统的启动时间主要由步骤 6 占用。因此, 本发明 实施例对应用。
16、程序管理服务扫描应用的过程作了优化, 在启动过程中仅扫描系统自带的部 分应用, 在系统启动完成后, 再扫描其他应用, 从而显著缩短了启动过程的时间, 加快了启 动速度。 0031 下面结合具体实施例和附图对本发明作进一步说明, 但不应以此限制本发明的保 护范围。 0032 参考图 1, 本实施例中的 Android 操作系统的快速启动方法包括如下步骤 : 0033 步骤 S11, 在启动时, 应用程序管理服务仅扫描 Android 操作系统自带的应用的 最小子集, 该最小子集的应用以保证所述 Android 操作系统正常开机启动桌面启动器为标 准 ; 0034 步骤 S12, 在所述 Andr。
17、oid 操作系统完成启动后, 所述应用程序管理服务扫描所述 最小子集的应用之外的其他应用。 0035 其中, 步骤 S11 中 Android 操作系统自带的应用的最小子集是以不影响正常启动 桌面启动器为标准的, 也就是在仅扫描该最小子集内的应用时, 可以正常启动至桌面启动 器启动。 0036 步骤S12中, 在Android操作系统完成启动后, 应用程序管理服务继续扫描该最小 子集之外的其他应用, 以使各个应用都能正常使用。 0037 进一步而言, 可以首先确定第一阶段需要扫描的应用, 也就是在 Android 操 作系统启动过程中需要扫描的应用。此类应用主要包括系统级别的服务 (servi。
18、ce) 、 提供方 (provider)以及和桌面启动器 (launcher)相关的应用, 以能够保证桌面启动 器 (launcher)正常启动为标准。具体而言, 可以通过设定最小子集参数来实现此类应 用的指定, 例如可以定义 miniSystem 数组, 该数组中包含了第一阶段所要扫描的应用, miniSystem 数组可以采用代码方式定义, 也可以采用 xml 文件的方式配置, 但并不限于此。 0038 之后, 启动应用程序管理服务 (PackageManagerService) 时, 获取 miniSystem 数 组, 仅扫描 system/app 下 miniSystem 数组里面有。
19、定义的应用。 0039 在一非限制性的例子中, 实现的伪代码如下 : 0040 0041 说 明 书 CN 104252365 A 5 4/5 页 6 0042 在应用程序管理服务完成第一阶段的扫描过程后, 可以发出第一阶段启动完 成消息 FIRST_BOOT_COMPLETED, 以取代原生 Android 操作系统的启动完成消息 BOOT_ COMPLETED。进一步而言, 第一阶段启动完成消息 FIRST_BOOT_COMPLETED 是新定义的, 在第 一阶段扫描完成后, 发出 .intent.action.FIRST_BOOT_COMPLETED, 以替代原先的启动完成 消息 BOO。
20、T_COMPLETED。 0043 在第一阶段扫描完成后, 可以发送延迟扫描消息, 结束应用程序管理服务的启动, 继续 Android 操作系统的其他开机启动流程, 此时加载启动的内容、 次序与现有技术相同, 这里不再赘述。 0044 在一非限制性的例子中, 具体实现的伪代码如下 : 0045 0046 延迟扫描消息中可以包含延迟时间, 在到达该延迟时间时, 可以进行第二阶段的 扫描, 用于扫描上述最小子集之外的其他应用。进一步而言, 可以扫描 system/app, data/ app 下不在 miniSystem 数组下的应用, 并通知系统其他相关服务, 使得应用能够正常展示 并供用户使用。
21、。 0047 在一非限制性的例子中, 具体实现的伪代码如下 : 0048 说 明 书 CN 104252365 A 6 5/5 页 7 0049 第二阶段的扫描完成之后, 可以发出原生 Android 操作系统的启动完成消息, 具 体而言可以发出 android.intent.action.BOOT_COMPLETED。换言之, 常规的原生 Android 操作系统中, 在启动阶段应用程序管理服务完成全部扫描时发出该启动完成消息 BOOT_ COMPLETED, 而在本实施例中则改为启动完成后并且应用程序管理服务完成第二阶段扫描 后再发出该启动完成消息 BOOT_COMPLETED, 而在启动。
22、过程中完成第一阶段扫描后发出的是 自定义的第一阶段启动完成消息 FIRST_BOOT_COMPLETED。 0050 按照上述方案, 在采用 IMX53 平台的实例中, 应用程序管理服务的启动时间可以 固定在 1s 以内, 大大缩短了开机时间。 0051 本实施例的方案可以应用于基于 Android 操作系统的车载设备、 手机、 平板电脑 等多种场景。 0052 本发明虽然以较佳实施例公开如上, 但其并不是用来限定本发明, 任何本领域技 术人员在不脱离本发明的精神和范围内, 都可以做出可能的变动和修改, 因此本发明的保 护范围应当以本发明权利要求所界定的范围为准。 说 明 书 CN 104252365 A 7 1/1 页 8 图 1 说 明 书 附 图 CN 104252365 A 8 。