CN114327652B - 一种基于Android工业应用的快速启动方法 - Google Patents

一种基于Android工业应用的快速启动方法 Download PDF

Info

Publication number
CN114327652B
CN114327652B CN202111595338.2A CN202111595338A CN114327652B CN 114327652 B CN114327652 B CN 114327652B CN 202111595338 A CN202111595338 A CN 202111595338A CN 114327652 B CN114327652 B CN 114327652B
Authority
CN
China
Prior art keywords
starting
program
preloader
loading
android
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.)
Active
Application number
CN202111595338.2A
Other languages
English (en)
Other versions
CN114327652A (zh
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.)
Hangzhou Boogoob Technology Co ltd
Original Assignee
Hangzhou Boogoob Technology 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 Hangzhou Boogoob Technology Co ltd filed Critical Hangzhou Boogoob Technology Co ltd
Priority to CN202111595338.2A priority Critical patent/CN114327652B/zh
Publication of CN114327652A publication Critical patent/CN114327652A/zh
Application granted granted Critical
Publication of CN114327652B publication Critical patent/CN114327652B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开一种基于Android工业应用的快速启动方法,属于Android工业应用技术领域。本发明通过去除一些特殊工业场景应用不到的程序,去除一些不相干的系统服务和驱动加载,简化preloader启动,从而从整体上精简系统的程序。本发明通过在保留了原始稳定的架构的基础上,极大地提高了开机速度,基本能做到即插即用的工业级智能产品的开机速度。原本的开机速度经过以上优化之后,工业设备开机速度在10秒以内。

Description

一种基于Android工业应用的快速启动方法
技术领域
本发明属于Android工业应用技术领域,尤其与一种基于Android工业应用的快速启动方法有关。
背景技术
随着Android平台自08年第一个商用版本开放以来,经过广大平台厂商的不断开拓,每1~2年就会有一个全新功能特点的版本发布出来。这些版本遵从市场和用户体验,增加了很多优秀的功能,满足各类用户不同场景的应用体验。安全机制也在不断的升级加固,新的漏洞发现就会有新的补丁合入;并对用户数据的安全做了更多的保护,从各个角度限制了用户数据的直接访问。为了解耦原来的程序,架构也进行着不断的调整,方便OEM厂商的开发。
随着Android系统不断的完善优化,为了不同的用处,新的程序功能也不停的融入,用户体验度也更加满意,使得Android在市场的地位不断提升。但Android系统却有一个明显的缺点,随着新代码的合入,整个系统变得更加庞大,开机时需要加载运行更多的代码。一般有一些内置应用的设备,开机时最少的也要接近30秒。对比一些工业级应用场景,比如linux系统,开机速度就会显得非常慢,是难以接受的。
发明内容
针对上述背景技术存在的问题,本发明旨在提供一种基于Android工业应用的快速启动方法。
为此,本发明采用以下技术方案:一种基于Android工业应用的快速启动方法,将开机启动过程
preloader>lk>kernel>initcall>zygoteinit>SystemServer中串行的执行过程中,将耗时的有四个点:preloader,initcall,zygoteinit,SystemServer startServices,PackageManagerService Scan App(服务扫描程序)进行以下操作:针对preloader的优化去掉USB握手的过程;针对Initcall的程序进行简化,且将针对一些修改权限的程序放在uevent.rc中执行;ZygoteInit中针对class的加载项进行缩减,保留class的加载;SystemServer中启动服务时去掉非必须的服务启动,PMS的优化减少scanApp数量。
作为对上述技术方案的补充和完善,本发明还包括以下技术特征。
Preloader,预加载程序;lk是(L)ittle (K)ernel的缩写。 高通平台android普遍采用LK作为其bootloader,LK是一个开源项目,LK是整个系统的引导部分;initcall为初始化调用;zygoteinit为服务器启动;SystemServer startServices为系统预装软件启动。
减少scanApp数量后可使用异步进程去执行scanAppp。
本发明可以达到以下有益效果:1、本发明通过在保留了原始稳定的架构的基础上,极大地提高了开机速度,基本能做到即插即用的工业级智能产品的开机速度。。
具体实施方式
下面对本发明的具体实施方式进行详细描述,所描述的实施例只是对本发明的说明和解释,并不构成对本发明的唯一限定。
本发明基于Android工业应用的快速启动方法,将开机启动过程
preloader>lk>kernel>initcall>zygoteinit>SystemServer中串行的执行过程中,将耗时的有四个点:preloader,initcall,zygoteinit,SystemServer startServices,PackageManagerService Scan App进行以下操作:针对preloader的优化去掉USB握手的过程;针对Initcall的程序进行简化,且将针对一些修改权限的程序放在uevent.rc中执行;ZygoteInit中针对class的加载项进行缩减,保留class的加载;SystemServer中启动服务时去掉非必须的服务启动,PMS的优化减少scanApp数量。
正常的开机启动过程
preloader>lk>kernel>initcall>zygoteinit>SystemServer(PMS,
AMS)等,是一个串行的执行过程。通过分析比较耗时的有四个点,preloader,initcall,zygoteinit,SystemServer startServices, PackageManagerService ScanApp的过程。
具体应用如下:
一、去除preloader的usb握手程序,改用fastboot模式刷机。工业设备大多数使用的usb供电的方式,但mtk平台在关机状态下插入USB会去主动进行USB握手,判断是否进入刷机模式。这里可以用明确的fastboot模式刷机去替代,直接去除USB握手的过程。
二、删减kernel中无用的驱动,比如项目不需要显示相关,可以去掉LCM,HDMI等驱动的加载。
三、删减init.{project}.rc中的一些无用的启动项。
四、 对init.{project}.rc一些对权限和属性的修改程序,可以放到uevent.rc中延后执行。
五、去除bootanimation程序。
六、优化ZygoteInit。修改PRELOAD_RESOURCES为false,不预加载资源文件。简化preloaded-classes文件列表,减少预加载的class数量。这个kernelinit后第一个启动的程序,之后的启动流程就是系统framework层。
七、优化SystemServer。服务的加载都在这里进行,可以去除一些无关的服务启动。除了几个核心的服务启动方法不能动,比如startBootStrapService,startCoreService,以及startOtherService中的InputMethodService,其他Service基本都可以去掉,减少服务加载时间。
八、优化PackageManagerService加载时间。这里方法有三个:1、Scan和Load App的程序放在异步进程中执行。 2、尽可能的减少应用的内置,甚至系统级应用SystemUI,Settings等的加载都可以去除。3、启用MTK针对APP的编译优化方案,build/core/dex_preopt.mk打开WITH_DEXPREOPT=true。
本发明针对preloader的优化主要是去掉了USB握手的过程。Initcall的程序进行简化,针对一些修改权限的程序放在uevent.rc中执行,ZygoteInit中主要针对class的加载项进行缩减,保留主要的class的加载,SystemServer中启动服务时去掉了一些非必须的服务启动,PMS的优化主要在减少scanApp数量,但实际有些APP还是需要scan的,所以这里可以使用异步进程去执行scanAppp。另外在去除APP时要保留桌面等CoreApp,否则会造成系统开启失败。本发明在原本的开机速度经过以上优化之后,android5.1 MTK6580平台的工业设备开机速度在10秒以内对上层framework部分的深度修改精简,通过对SystemServer的修改对比测试,确定哪些部分服务可以删除,对PMS ScanApp的异步程序加载的做法。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (3)

1.一种基于Android工业应用的快速启动方法,其特征在于:将开机启动过程
preloader>lk>kernel>initcall>zygoteinit>SystemServer中串行的执行过程中,将耗时的点:preloader,initcall,zygoteinit,SystemServer startServices,PackageManagerService Scan App进行以下操作:针对preloader的优化去掉USB握手的过程;针对Initcall的程序进行简化,且将针对修改权限的程序放在uevent.rc中执行;ZygoteInit中针对class的加载项进行缩减,保留class的加载;SystemServer中启动服务时去掉非必须的服务启动,PackageManagerService Scan App的优化减少scan App数量;
具体方法如下:
一、去除preloader的usb握手程序,改用fastboot模式刷机;工业设备大多数使用的usb供电的方式,但mtk平台在关机状态下插入USB会去主动进行USB握手,判断是否进入刷机模式,用明确的fastboot模式刷机去替代,直接去除USB握手的过程;
二、删减kernel中无用的驱动;
三、删减init.{project}.rc中的无用的启动项;
四、 对init.{project}.rc对权限和属性的修改程序,放到uevent.rc中延后执行;
五、去除bootanimation程序;
六、优化ZygoteInit,修改PRELOAD_RESOURCES为false,不预加载资源文件;简化preloaded-classes文件列表,减少预加载的class数量;kernelinit作为第一个启动程序,之后的启动流程就是系统framework层;
七、优化SystemServer;服务的加载都在这里进行,去除无关的服务启动;
八、优化PackageManagerService加载时间;具有方法有三个:(1)、Scan和Load App的程序放在异步进程中执行; (2)、减少应用内置,去除系统级应用SystemU,Settings的加载;(3)、启用MTK针对APP的编译优化方案,build/core/dex_preopt.mk打开WITH_DEXPREOPT=true。
2.根据权利要求1所述的一种基于Android工业应用的快速启动方法,其特征在于:Preloader,预加载程序;lk是Little Kernel的缩写,高通平台android普遍采用LK作为其bootloader,LK是一个开源项目,LK是整个系统的引导部分;initcall为初始化调用;zygoteinit为服务器启动;SystemServer为系统预装软件启动。
3.根据权利要求1或2所述的一种基于Android工业应用的快速启动方法,其特征在于:减少scanApp数量后使用异步进程去执行scanApp。
CN202111595338.2A 2021-12-24 2021-12-24 一种基于Android工业应用的快速启动方法 Active CN114327652B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111595338.2A CN114327652B (zh) 2021-12-24 2021-12-24 一种基于Android工业应用的快速启动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111595338.2A CN114327652B (zh) 2021-12-24 2021-12-24 一种基于Android工业应用的快速启动方法

Publications (2)

Publication Number Publication Date
CN114327652A CN114327652A (zh) 2022-04-12
CN114327652B true CN114327652B (zh) 2023-11-10

Family

ID=81013617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111595338.2A Active CN114327652B (zh) 2021-12-24 2021-12-24 一种基于Android工业应用的快速启动方法

Country Status (1)

Country Link
CN (1) CN114327652B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008098741A (ja) * 2006-10-06 2008-04-24 Promedia Works:Kk テロップ生成装置およびテロップ合成方法
CN104252363A (zh) * 2013-06-25 2014-12-31 上海博泰悦臻电子设备制造有限公司 基于Android系统的车载系统的快速启动方法
CN104679631A (zh) * 2015-03-23 2015-06-03 重庆蓝岸通讯技术有限公司 用于基于Android系统的设备的测试方法及系统
CN104731600A (zh) * 2015-03-31 2015-06-24 上海盈方微电子有限公司 一种将安卓系统服务插件化的实现方法
CN104778060A (zh) * 2015-04-07 2015-07-15 珠海全志科技股份有限公司 一种嵌入式Linux系统快速安全启动方法
CN105308908A (zh) * 2013-06-09 2016-02-03 苹果公司 减少无线通信设备的网络服务扫描时间
CN107203386A (zh) * 2017-06-09 2017-09-26 山东超越数控电子有限公司 一种基于ARM平台的Android系统加速启动方法
CN111124519A (zh) * 2019-12-27 2020-05-08 珠海全志科技股份有限公司 基于输入响应优化安卓应用程序启动速度的方法及系统
CN112395015A (zh) * 2020-11-18 2021-02-23 珠海全志科技股份有限公司 基于Android系统加速开机的优化方法及装置
CN115098190A (zh) * 2022-06-30 2022-09-23 苏州浪潮智能科技有限公司 一种提高ssd系统启动速度的方法、装置、终端及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008098741A (ja) * 2006-10-06 2008-04-24 Promedia Works:Kk テロップ生成装置およびテロップ合成方法
CN105308908A (zh) * 2013-06-09 2016-02-03 苹果公司 减少无线通信设备的网络服务扫描时间
CN104252363A (zh) * 2013-06-25 2014-12-31 上海博泰悦臻电子设备制造有限公司 基于Android系统的车载系统的快速启动方法
CN104679631A (zh) * 2015-03-23 2015-06-03 重庆蓝岸通讯技术有限公司 用于基于Android系统的设备的测试方法及系统
CN104731600A (zh) * 2015-03-31 2015-06-24 上海盈方微电子有限公司 一种将安卓系统服务插件化的实现方法
CN104778060A (zh) * 2015-04-07 2015-07-15 珠海全志科技股份有限公司 一种嵌入式Linux系统快速安全启动方法
CN107203386A (zh) * 2017-06-09 2017-09-26 山东超越数控电子有限公司 一种基于ARM平台的Android系统加速启动方法
CN111124519A (zh) * 2019-12-27 2020-05-08 珠海全志科技股份有限公司 基于输入响应优化安卓应用程序启动速度的方法及系统
CN112395015A (zh) * 2020-11-18 2021-02-23 珠海全志科技股份有限公司 基于Android系统加速开机的优化方法及装置
CN115098190A (zh) * 2022-06-30 2022-09-23 苏州浪潮智能科技有限公司 一种提高ssd系统启动速度的方法、装置、终端及存储介质

Also Published As

Publication number Publication date
CN114327652A (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
US10235149B2 (en) Preinstalled application management method for mobile terminal and mobile terminal
US7703090B2 (en) Patch un-installation
KR101702700B1 (ko) 고속 컴퓨터 시동
US8677345B2 (en) System for creating virtual application, method for installing virtual application, method for calling native API and method for executing virtual application
CN103136002B (zh) 一种基于UBoot的自动升级的控制方法及系统
US11016785B2 (en) Method and system for mirror image package preparation and application operation
US20190129733A1 (en) Android dynamic framework and a method thereof
CN104102506A (zh) 一种基于ARM平台的Android启动加速方法
CN108229148B (zh) 一种基于Android虚拟机的沙箱脱壳方法及系统
CN101788915A (zh) 基于可信进程树的白名单更新方法
CN102520881A (zh) 一种云计算平台的虚拟机快照管理方法和系统
CN107368343B (zh) 一种基于安卓系统的终端开机方法、终端及存储介质
CN110045992B (zh) 一种适用于多核板卡的通用系统及方法
US20190310874A1 (en) Driver management method and host
CN102135923A (zh) 将操作系统集成到bios芯片的方法及启动该操作系统的方法
CN114327652B (zh) 一种基于Android工业应用的快速启动方法
CN113190279B (zh) 一种预启动功能控制方法、系统及介质
CN113849200B (zh) 一种安卓应用在安卓兼容环境中的安装优化方法及系统
CN101840337B (zh) 一种适用于捕包应用的裁减系统定制方法
WO2017128589A1 (zh) 可运行文件生成方法、art虚拟机运行方法和装置
CN109634685B (zh) Pch万兆以太网的pxe功能的启停方法及相关装置
Al-Bokhaiti et al. Customization and Optimization of Android Operating System for Custom Board with the Implementation of an Administrative Tool
KR101420026B1 (ko) 부팅 프로세스 중에 파일들을 로딩하기 위한 방법, 장치 및 컴퓨터 판독가능 저장 매체
Lim et al. BB: Booting Booster for consumer electronics with modern OS
KR101384929B1 (ko) 사용자 단말의 저장 매체를 위한 미디어 스캐닝 방법 및 미디어 스캐닝 장치

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
GR01 Patent grant
GR01 Patent grant