一种基于Android平台加速应用启动方法技术

技术编号:33537114 阅读:16 留言:0更新日期:2022-05-19 02:20
本发明专利技术公开了一种基于Android平台加速应用启动方法,包括以下步骤:S110、配置预加载文件;S120、读取XML配置文件;S130、包管理机制查找XML配置文件中的APK;S140、启动XML配置文件中的进程;S150、后台生成热启动模式。本发明专利技术将应用启动直接切到了热启动模式,在用户无感知的情况下极大的提高了应用启动速度,实现了没有做过启动优化的应用程序亦能很快的展示出来,做过常规启动优化的应用程序更能大幅提升各自的启动效率。各自的启动效率。各自的启动效率。

【技术实现步骤摘要】
一种基于Android平台加速应用启动方法


[0001]本专利技术涉及计算机
,具体涉及一种基于Android平台加速应用启动方法。

技术介绍

[0002]Android(安卓)系统是一种以Linux为基础的开放源代码操作系统,作为一款开放式的操作系统,随着Android系统的快速发展,如今已允许开发全者使用多种编程语言来开发Android应用程序,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。与此同时,用户也通过下载和安装各种应用程序来满足自己各方面的需求,比如导航、语音、阅读等。然而部分应用开发者为了自身利益,在其开发的应用在启动界面、应用内界面展示广告等,这些广告大多作为图片类型的资源文件打包在应用安装包中,由此致使应用启动缓慢,影响了用户的情绪和体验。为致力于更快的应用启动,为用户带来愉悦的体验,通常采用以下几种方式加速应用启动:1、通过设置window背景,替换主题theme背景,利用提前展示window的方式,快速预览一个画面,给用户一个直观体验。
[0003]2、通过延迟加载的技术,首次不加载相关数据,待系统启动后延迟一定时间加载资源。
[0004]3、如公开号为CN108762833A的专利技术专利公开了安卓系统中的应用启动方法,该技术方案将原本作为应用启动过程中串行执行的资源文件加载过程独立出来,进行并行化操作,大大节约了应用启动时间,对于冷启动、即智能终端开机后第一次启动应用的场景来说,可以节约100毫秒左右的时间,用户能够明显感知应用启动加速,同时也保证了应用本身的内容得到了完整展现。该方案在应用启动时判断是否需要预加载资源文件,将资源文件加载到缓冲区,对于应用启动时间也仅是提高了100毫秒,这对于用户感知来说是微乎其微的。
[0005]上述几种方式都没有本质的解决加速应用启动时间,再加上得首页开屏启动后,大多厂商都会启动广告页面,通过TCP访问网络下载对应的广告资源,更是延迟了应用的启动时间。

技术实现思路

[0006]针对上述现有技术的不足,本专利技术所要解决的技术问题是:如何提供一种基于Android平台加速应用启动方法,解决应用启动时间效率不高的问题。
[0007]为了解决上述技术问题,本专利技术采用了如下的技术方案:一种基于Android平台加速应用启动方法,包括以下步骤:S110、配置预加载文件;S120、读取XML配置文件;S130、包管理机制查找XML配置文件中的APK;S140、启动XML配置文件中的进程;
S150、后台生成热启动模式。
[0008]进一步地,在步骤S110中,配置预加载文件时,采用XML语言描述,写入需预加载应用程序包名,进而生成XML配置文件。
[0009]进一步地,在步骤S120中,读取XML配置文件时,通过NIO或SAX解析XML配置文件,并生成缓存信息。
[0010]进一步地,在步骤S130中,通过Binder发送跨进程通信,调用包管理机制遍历查找XML配置文件中的APK,并保存到系统缓存中。
[0011]进一步地,启动XML配置文件中的进程时,通过步骤S130中查找到的APK列表,发送消息给ActivityManagerService通知启动列表中的进程,ActivityManagerService发送消息给Zygote启动对应的应用进程。
[0012]进一步地,根据XML配置文件属性,判断是否拉取应用进程的根Activity,如不需则进入热启动模式。
[0013]与现有技术相比,本专利技术的有益效果在于:1、本方案将应用启动直接切到了热启动模式,在用户无感知的情况下极大的提高了应用启动速度,实现了没有做过启动优化的应用程序亦能很快的展示出来,做过常规启动优化的应用程序更能大幅提升各自的启动效率,解决了应用启动时间效率不高的问题。
[0014]2、实际测试(通过命令adb shell am start
ꢀ–
W xxx进行测试)从冷启动切到热启动模式启动时间从1439ms降低到3ms,极大的优化了用户使用体验。
附图说明
[0015]为了使专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步的详细描述,其中:图1为本专利技术整体结构流程图;图2为本专利技术进程启动流程图。
具体实施方式
[0016]下面结合附图对本专利技术作进一步的详细说明。
[0017]如图1所示,本实施例中公开了一种基于Android平台加速应用启动方法,包括以下步骤:S110、配置预加载文件;S120、读取XML配置文件;S130、包管理机制查找XML配置文件中的APK(AndroidPackage的缩写,即Android安装包);S140、启动XML配置文件中的进程;S150、后台生成热启动模式。
[0018]本专利技术中,通过开机自读取XML配置文件,并生成缓存信息;调用包管理机制查找XML配置文件中的APK,并保存到系统缓存中,且发送消息给ActivityManagerService(后续简称AMS)通知启动列表中的进程,AMS在发送消息给Zygote启动对应的应用进程。本方案直接切到了系统的热启动模式,在用户无感知的情况下极大的提高了应用启动速度,实现了
没有做过启动优化的应用程序亦能很快的展示出来,做过常规启动优化的应用程序更能大幅提升各自的启动效率,解决应用启动时间效率不高的问题。
[0019]具体配置预加载文件时,采用XML语言描述,写入需预加载应用程序包名,进而生成XML配置文件。XML配置文件包括OEM应用和第三方所需介入应用,例如导航、语音等。
[0020]开机自读取XML配置文件时,通过系统的NIO或SAX等工具类API(Application Programming Interface,应用程序接口)解析XML配置文件,并生成缓存信息,以备后续使用。
[0021]具体实施时,通过Binder发送跨进程通信,调用包管理机制遍历查找XML配置文件中的APK,并保存到系统缓存中。以便从进程启动APK。
[0022]参见图2所示,启动XML配置文件中的进程时,首先通过步骤S130中查找到的APK列表,发送消息给AMS通知启动列表中的进程,AMS发送消息给Zygote启动对应的应用进程。在启动应用程序自己的进程后,可通过hook技术或者修改系统源码,拦截应用程序原生的下一步操作,通常来说是启动当前应用程序的根Activity。通过读取当前配置的文件属性,判断是否需要拉起当前应用程序的界面,如需要则拉起,如不需则进入热启动模式。
[0023]这样,在用户后续操作当前应用时,默认从热启动模式启动,以快速展示,避免了首次冷启动的系列资源初始化。实际测试(通过命令adb shell am start
ꢀ–
W xxx进行测试)从冷启动切到热启动模式启动时间从1439ms降低到3ms,极大的优化了用户使用体验。
[0024]最后说明的是,以上实施例仅用以说明本专利技术本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Android平台加速应用启动方法,其特征在于,包括以下步骤:S110、配置预加载文件;S120、读取XML配置文件;S130、包管理机制查找XML配置文件中的APK;S140、启动XML配置文件中的进程;S150、后台生成热启动模式。2.根据权利要求1所述一种基于Android平台加速应用启动方法,其特征在于,在步骤S110中,配置预加载文件时,采用XML语言描述,写入需预加载应用程序包名,进而生成XML配置文件。3.根据权利要求1所述一种基于Android平台加速应用启动方法,其特征在于,在步骤S120中,读取XML配置文件时,通过NIO或SAX解析XML配置文件,并生成缓存信息。4.根据权利要求1所述一种基于Andro...

【专利技术属性】
技术研发人员:谭龙张磊张英鹏
申请(专利权)人:重庆长安汽车股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1