CN107203386A - 一种基于ARM平台的Android系统加速启动方法 - Google Patents
一种基于ARM平台的Android系统加速启动方法 Download PDFInfo
- Publication number
- CN107203386A CN107203386A CN201710431815.9A CN201710431815A CN107203386A CN 107203386 A CN107203386 A CN 107203386A CN 201710431815 A CN201710431815 A CN 201710431815A CN 107203386 A CN107203386 A CN 107203386A
- Authority
- CN
- China
- Prior art keywords
- blcr
- android
- android system
- arm platforms
- breakpoint
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种基于ARM平台的Android系统加速启动方法,涉及移动终端操作系统领域;基于ARM平台,利用BLCR技术对BLCR内核进行加载并进行修改以适应ARM平台,同时对BLCR的动态链接库进行修改,然后对Android系统启动过程中Zygote进程预加载类和预加载资源过程进行断点设置,并在进程启动执行到断点时,保存进程的当前状态和信息到镜像文件中,下次Android系统启动直接从镜像文件中启动该进程,跳过Zygote预加载类和预加载资源过程。
Description
技术领域
本发明公开一种Android系统加速启动方法,涉及移动终端操作系统领域,具体地说是一种基于ARM平台的Android系统加速启动方法。
背景技术
近年来,由于Android设备的大量普及,相对于经常开关机的设备,如平板电脑,其开启速度直接影响到用户体验,也是判断产品的优劣的一个重要标准。
而目前,对于加速开机速度常用的方式有:
一是采用电源管理技术,使用休眠或睡眠的方式对Android系统进行非真正意义上的关机,当用户需要使用设备时再唤醒设备。但是这不是真正意义上的关机,很难满足用户的需求。另一种是将Android启动过程的Zygote预加载类和资源进行了裁剪,这种方式因打开应用程序的次数远远多于用户开关机的次数而使Android启动后的后续性能不良。
因此在Android系统中,上述优化方法存在一定的局限性,有些甚至带来Android启动后的后续性能问题,所以都不能满足Android启动加速需求。
本发明提供了一种基于ARM平台的Android系统加速启动方法,采用BLCR(Berkeley Lab Checkpoint/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(BerkeleyLab Checkpoint/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用户对真正意义上的关机服务的需求。
Claims (7)
1.一种基于ARM平台的Android系统加速启动方法,其特征是基于ARM平台,利用BLCR技术对BLCR内核进行加载并进行修改以适应ARM平台,同时对BLCR的动态链接库进行修改,然后对Android系统启动过程中Zygote进程预加载类和预加载资源过程进行断点设置,并在进程启动执行到断点时,保存进程的当前状态和信息到镜像文件中,下次Android系统启动直接从镜像文件中启动该进程,跳过Zygote预加载类和预加载资源过程。
2.根据权利要求1所述的方法,其特征是修改ARM平台的Linux内核镜像,以支持BLCR内核的加载,修改BLCR内核文件以支持ARM平台,通过交叉编译,生成BLCR内核模块。
3.根据权利要求1或2所述的方法,其特征是所述修改Android的bionic的线程库文件,添加BLCR动态链接库所需的线程库函数接口,修改Android的启动脚本init.rc,在系统进入用户空间后添加BLCR内核模块的功能,供BLCR动态链接库调用。
4.根据权利要求3所述的方法,其特征是编写BLCR动态链接库的Android.mk文件,以支持Android系统,并将BLCR的函数接口库移植到ARM平台。
5.根据权利要求4所述的方法,其特征是编写Android启动的init.rc调用脚本,用于判断镜像文件是否存在。
6.根据权利要求5所述的方法,其特征是在ZygoteInit.java文件中通过JNI调用BLCR内核模块,在预加载类和预加载资源过程进行时设置断点,将Zygote进程启动执行到断点时,保存进程的当前状态和信息到镜像文件中。
7.根据权利要求5或6所述的方法,其特征是Android系统加速启动具体步骤为:
1)Android启动开机;
2)kernel启动完成后,开始启动Init进程,init进程通过读取init.rc完成进入Android系统用户空间的初始化工作;
3)执行BLCR内核模块的加载;
4)判断是否存在Zygote进程的镜像文件来决定是否启动执行流程,如果存在则从镜像文件中创建Zygote进程,从断点处开始往下执行,如果不存在,则执行正常Android启动流程;
5)通过调研Systemserver进程完成Android系统在init进程启动所有其他服务的启动;
6)Android系统启动完成,进入主界面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710431815.9A CN107203386A (zh) | 2017-06-09 | 2017-06-09 | 一种基于ARM平台的Android系统加速启动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710431815.9A CN107203386A (zh) | 2017-06-09 | 2017-06-09 | 一种基于ARM平台的Android系统加速启动方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107203386A true CN107203386A (zh) | 2017-09-26 |
Family
ID=59908212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710431815.9A Pending CN107203386A (zh) | 2017-06-09 | 2017-06-09 | 一种基于ARM平台的Android系统加速启动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107203386A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284137A (zh) * | 2018-09-21 | 2019-01-29 | 武汉光庭信息技术股份有限公司 | 一种基于Hypervisor的QNX操作系统启动方法及装置 |
CN114327652A (zh) * | 2021-12-24 | 2022-04-12 | 杭州荣旗科技有限公司 | 一种基于Android工业应用的快速启动方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902300A (zh) * | 2012-12-24 | 2014-07-02 | 珠海市君天电子科技有限公司 | 一种Android模拟器快速安装APK程序的方法及系统 |
CN104102506A (zh) * | 2014-04-25 | 2014-10-15 | 华南理工大学 | 一种基于ARM平台的Android启动加速方法 |
CN104216776A (zh) * | 2014-08-25 | 2014-12-17 | 成都三零凯天通信实业有限公司 | 一种基于blcr技术的安卓操作系统快速启动方法 |
-
2017
- 2017-06-09 CN CN201710431815.9A patent/CN107203386A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902300A (zh) * | 2012-12-24 | 2014-07-02 | 珠海市君天电子科技有限公司 | 一种Android模拟器快速安装APK程序的方法及系统 |
CN104102506A (zh) * | 2014-04-25 | 2014-10-15 | 华南理工大学 | 一种基于ARM平台的Android启动加速方法 |
CN104216776A (zh) * | 2014-08-25 | 2014-12-17 | 成都三零凯天通信实业有限公司 | 一种基于blcr技术的安卓操作系统快速启动方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284137A (zh) * | 2018-09-21 | 2019-01-29 | 武汉光庭信息技术股份有限公司 | 一种基于Hypervisor的QNX操作系统启动方法及装置 |
CN109284137B (zh) * | 2018-09-21 | 2022-02-11 | 武汉光庭信息技术股份有限公司 | 一种基于Hypervisor的QNX操作系统启动方法及装置 |
CN114327652A (zh) * | 2021-12-24 | 2022-04-12 | 杭州荣旗科技有限公司 | 一种基于Android工业应用的快速启动方法 |
CN114327652B (zh) * | 2021-12-24 | 2023-11-10 | 杭州荣旗科技有限公司 | 一种基于Android工业应用的快速启动方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104102506B (zh) | 一种基于ARM平台的Android启动加速方法 | |
CN102207881B (zh) | 一种基于Android的操作系统快速启动方法 | |
CN101526901B (zh) | 一种电脑中查看文件的方法及装置 | |
US20060200738A1 (en) | System and method for modifying a mobile device application | |
CN103488466B (zh) | 用于执行应用程序的方法和装置 | |
CN106201756A (zh) | 日志获取装置、移动终端及方法 | |
CN101980157B (zh) | 移动终端开机启动方法及移动终端 | |
CN103577212A (zh) | 系统启动预加载方法及装置 | |
CN102663003A (zh) | 移动终端多web页面应用中的页面切换方法及系统 | |
CN106095439A (zh) | 一种信息处理方法及电子设备 | |
CN106547598A (zh) | 提升Android应用程序启动速度的方法 | |
US20120266171A1 (en) | Apparatus and method for carrying out a migration process of a virtual machine in a device | |
CN107066269A (zh) | 一种终端的分屏处理方法及装置 | |
CN107203386A (zh) | 一种基于ARM平台的Android系统加速启动方法 | |
CN102880477A (zh) | 一种实现计算机启动的方法和计算机 | |
CN112650487B (zh) | 混合应用程序开发方法、系统、计算机设备和存储介质 | |
CN104216776A (zh) | 一种基于blcr技术的安卓操作系统快速启动方法 | |
CN106095493A (zh) | 双操作系统的加载方法和系统 | |
CN101794232A (zh) | 快速启动系统的方法 | |
CN111813305A (zh) | 应用程序启动方法及装置 | |
CN105808440A (zh) | 应用程序的低内存测试方法、装置和系统 | |
CN105607901A (zh) | 系统内存的优化方法、装置及终端设备 | |
CN106792206A (zh) | 一种电视菜单自适应更新方法及系统 | |
JP2012243287A (ja) | 情報処理装置および情報処理方法 | |
CN112230962A (zh) | 一种用于处理器平台的bios配置保存方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170926 |
|
RJ01 | Rejection of invention patent application after publication |