CN107203386A - 一种基于ARM平台的Android系统加速启动方法 - Google Patents

一种基于ARM平台的Android系统加速启动方法 Download PDF

Info

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
Application number
CN201710431815.9A
Other languages
English (en)
Inventor
陈亮甫
赵瑞东
陈乃阔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Chaoyue Numerical Control Electronics Co Ltd
Original Assignee
Shandong Chaoyue Numerical Control Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Chaoyue Numerical Control Electronics Co Ltd filed Critical Shandong Chaoyue Numerical Control Electronics Co Ltd
Priority to CN201710431815.9A priority Critical patent/CN107203386A/zh
Publication of CN107203386A publication Critical patent/CN107203386A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading 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

一种基于ARM平台的Android系统加速启动方法
技术领域
本发明公开一种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系统启动完成,进入主界面。
CN201710431815.9A 2017-06-09 2017-06-09 一种基于ARM平台的Android系统加速启动方法 Pending CN107203386A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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技术的安卓操作系统快速启动方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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