CN114327652B - 一种基于Android工业应用的快速启动方法 - Google Patents
一种基于Android工业应用的快速启动方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000008569 process Effects 0.000 claims description 17
- 238000005457 optimization Methods 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 8
- 230000001680 brushing effect Effects 0.000 claims 1
- 238000011161 development Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开一种基于Android工业应用的快速启动方法,属于Android工业应用技术领域。本发明通过去除一些特殊工业场景应用不到的程序,去除一些不相干的系统服务和驱动加载,简化preloader启动,从而从整体上精简系统的程序。本发明通过在保留了原始稳定的架构的基础上,极大地提高了开机速度,基本能做到即插即用的工业级智能产品的开机速度。原本的开机速度经过以上优化之后,工业设备开机速度在10秒以内。
Description
技术领域
本发明属于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。
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)
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系统启动速度的方法、装置、终端及存储介质 |
-
2021
- 2021-12-24 CN CN202111595338.2A patent/CN114327652B/zh active Active
Patent Citations (10)
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 |