一种基于ARM平台的Android系统加速启动方法与流程

文档序号:11276046阅读:581来源:国知局
一种基于ARM平台的Android系统加速启动方法与流程

本发明公开一种android系统加速启动方法,涉及移动终端操作系统领域,具体地说是一种基于arm平台的android系统加速启动方法。



背景技术:

近年来,由于android设备的大量普及,相对于经常开关机的设备,如平板电脑,其开启速度直接影响到用户体验,也是判断产品的优劣的一个重要标准。

而目前,对于加速开机速度常用的方式有:

一是采用电源管理技术,使用休眠或睡眠的方式对android系统进行非真正意义上的关机,当用户需要使用设备时再唤醒设备。但是这不是真正意义上的关机,很难满足用户的需求。另一种是将android启动过程的zygote预加载类和资源进行了裁剪,这种方式因打开应用程序的次数远远多于用户开关机的次数而使android启动后的后续性能不良。

因此在android系统中,上述优化方法存在一定的局限性,有些甚至带来android启动后的后续性能问题,所以都不能满足android启动加速需求。

本发明提供了一种基于arm平台的android系统加速启动方法,采用blcr(berkeleylabcheckpoint/restart)技术,对android启动过程中比较耗时的zygote进程预加载类和预加载资源过程进行断点设置,然后在进程启动到执行断点时,保存进程的当前状态和信息到镜像文件中,下次启动的时候直接从镜像文件中启动该进程,从而跳过了耗时的预加载类和预加载资源过程,实现的android加速,而且对android的后续性能没有影响。



技术实现要素:

本发明针对现有技术存在的不足和问题,提供一种基于arm平台的android系统加速启动方法,实现的android加速,而且对android的后续性能没有影响。

本发明提出的具体方案是:

一种基于arm平台的android系统加速启动方法,基于arm平台,利用blcr技术对blcr内核进行加载并进行修改以适应arm平台,同时对blcr的动态链接库进行修改,然后对android系统启动过程中zygote进程预加载类和预加载资源过程进行断点设置,并在进程启动执行到断点时,保存进程的当前状态和信息到镜像文件中,下次android系统启动直接从镜像文件中启动该进程,跳过zygote预加载类和预加载资源过程。

修改arm平台的linux内核镜像,以支持blcr内核的加载,修改blcr内核文件以支持arm平台,通过交叉编译,生成blcr内核模块。

所述修改android的bionic的线程库文件,添加blcr动态链接库所需的线程库函数接口,修改android的启动脚本init.rc,在系统进入用户空间后添加blcr内核模块的功能,供blcr动态链接库调用。

编写blcr动态链接库的android.mk文件,以支持android系统,并将blcr的函数接口库移植到arm平台。

编写android启动的init.rc调用脚本,用于判断镜像文件是否存在。

在zygoteinit.java文件中通过jni调用blcr内核模块,在预加载类和预加载资源过程进行时设置断点,将zygote进程启动执行到断点时,保存进程的当前状态和信息到镜像文件中。

android系统加速启动具体步骤为:

1)android启动开机;

2)kernel启动完成后,开始启动init进程,init进程通过读取init.rc完成进入android系统用户空间的初始化工作;

3)执行blcr内核模块的加载;

4)判断是否存在zygote进程的镜像文件来决定是否启动执行流程,如果存在则从镜像文件中创建zygote进程,从断点处开始往下执行,如果不存在,则执行正常android启动流程;

5)通过调研systemserver进程完成android系统在init进程启动所有其他服务的启动;

6)android系统启动完成,进入主界面。

本发明的有益之处是:

本发明提供了一种基于arm平台的android系统加速启动方法,采用blcr(berkeleylabcheckpoint/restart)技术,对android启动过程中比较耗时的zygote进程预加载类和预加载资源过程进行断点设置,然后在进程启动到执行断点时,保存进程的当前状态和信息到镜像文件中,下次启动的时候直接从镜像文件中启动该进程,从而跳过了耗时的预加载类和预加载资源过程;

与现有技术相比,本发明支持所有arm平台的android系统的应用;android启动时间缩短至少13秒,对android的目前启动速度提高了接近30%-40%,而且采用“冷启动”方式实现的加速,节约了设备的能源,也满足了android用户对真正意义上的关机服务的需求。实现的android加速,对android的后续性能没有影响。

附图说明

图1是本发明方法应用框架示意图;

图2是应用本发明方法android系统加速启动操作流程示意图。

具体实施方式

本发明提供一种基于arm平台的android系统加速启动方法,基于arm平台,利用blcr技术对blcr内核进行加载并进行修改以适应arm平台,同时对blcr的动态链接库进行修改,然后对android系统启动过程中zygote进程预加载类和预加载资源过程进行断点设置,并在进程启动执行到断点时,保存进程的当前状态和信息到镜像文件中,下次android系统启动直接从镜像文件中启动该进程,跳过zygote预加载类和预加载资源过程。

结合附图,对本发明做一步说明。

本发明方法,基于arm平台,利用blcr技术对blcr内核进行加载并进行修改以适应arm平台,其中修改arm平台的linux内核镜像,以支持blcr内核的加载,修改blcr内核文件以支持arm平台,通过交叉编译,生成blcr内核模块;

同时对blcr的动态链接库进行修改:编写blcr动态链接库的android.mk文件,以支持android系统,并将blcr的函数接口库移植到arm平台,修改android的bionic的线程库文件,添加blcr动态链接库所需的线程库函数接口,修改android的启动脚本init.rc,在系统进入用户空间后添加blcr内核模块的功能,供blcr动态链接库调用;

编写android系统下的jni接口函数,用于调用blcr动态链接库;在zygoteinit.java文件中通过jni调用blcr内核模块,在预加载类和预加载资源过程进行时设置断点,将zygote进程启动执行到断点时,保存进程的当前状态和信息到镜像文件中,下次启动时通过恢复进程的镜像文件,从断点处往下执行程序,跳过了耗时的预加载类和预加载资源的过程,从而提高了android的启动速度。

上述提及的镜像文件,可以通过编写android启动的init.rc调用脚本,判断镜像文件是否存在。如果存在则直接从镜像文件中启动,如果不存在,则通过调用blcr内核模块生成zygote进程的镜像文件。

利用上述方法,对android系统启动加速进行加速,具体步骤为:

1)android启动开机,包括bootloader、android底层linux内核的启动;

2)kernel启动完成之后,开始启动init进程,init进程通过读取init.rc完成进入android系统用户空间的初始化工作;

3)如果步骤2成功完成,接下来就是通过insmod的方式执行blcr动态内核模块的加载,为后续blcr技术加速android启动建立基础;

4)判断是否存在zygote进程的镜像文件来决定是否启动执行流程,如果存在则从镜像文件中创建zygote进程,从断点处开始往下执行,如果不存在,则执行正常android启动流程;

5)通过调研systemserver进程完成android系统在init进程启动所有其他服务的启动;

6)android系统启动完成,进入主界面。

利用本发明方法对android系统启动后的后续性能没有影响,弥补了传统加速方法如裁剪或定制android服务的方式对后续性能产生影响的缺陷。同时,采用了“冷启动”的方式,节约了设备的能源,也满足了android用户对真正意义上的关机服务的需求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1