CN111625289A - 应用程序快速启动方法、装置和电子设备 - Google Patents

应用程序快速启动方法、装置和电子设备 Download PDF

Info

Publication number
CN111625289A
CN111625289A CN202010374796.2A CN202010374796A CN111625289A CN 111625289 A CN111625289 A CN 111625289A CN 202010374796 A CN202010374796 A CN 202010374796A CN 111625289 A CN111625289 A CN 111625289A
Authority
CN
China
Prior art keywords
application program
class
target application
starting
preloading
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.)
Granted
Application number
CN202010374796.2A
Other languages
English (en)
Other versions
CN111625289B (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.)
Beijing Baige Feichi Technology Co ltd
Original Assignee
Xiaochuanchuhai Education Technology Beijing 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 Xiaochuanchuhai Education Technology Beijing Co ltd filed Critical Xiaochuanchuhai Education Technology Beijing Co ltd
Priority to CN202010374796.2A priority Critical patent/CN111625289B/zh
Publication of CN111625289A publication Critical patent/CN111625289A/zh
Application granted granted Critical
Publication of CN111625289B publication Critical patent/CN111625289B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种应用程序快速启动方法、装置及电子设备,其中方法包括:确定目标应用程序,对该目标应用程序进行编译;启动编译后的目标应用程序,预加载所述编译后的目标应用程序需要加载的类;当所述目标应用程序需要加载所需的类时,调用该预加载完成的类。本发明在移动终端的应用程序冷启动时通过利用多核CPU同时预加载应用程序所需的类,并且根据不同性能的移动终端自动调整预加载的类的数量,充分利用的移动终端多核CPU的性能,在未额外消耗资源的同时显著提升了启动应用程序的速度,提升用户体验。

Description

应用程序快速启动方法、装置和电子设备
技术领域
本发明属于计算机应用技术领域,特别适用于多核移动终端应用,更具体的是涉及一种应用程序快速启动方法、装置和电子设备。
背景技术
目前,诸如智能手机、平板电脑、笔记本电脑以及智能家电等终端已成为人们日常生活中必不可少的电子设备。随着终端设备不断地智能化,多数终端设备中都装载有操作系统,使得终端设备能够安装丰富多样的应用程序,满足用户不同的需求。随着终端设备的配置不断提升,多数终端设备中可以安装几十甚至上百个应用程序,而随着应用程序的功能日益丰富,应用程序运行时所需加载的资源也越来越多。
当用户选择启动一个应用程序时,终端会对该应用程序启动所需的资源进行加载,待加载完毕后,进入应用程序的初始界面,由于现有的应用在冷启动过程中,需要做一系列类的初始化操作,且初始化操作是在主线程(单线程)同步进行的,因而没有很好的利用现阶段多核cpu的性能,整个加载过程通常要花费数秒甚至十几秒的时间,导致应用程序的启动效率较低,应用程序启动速度较慢,仍需改进。
发明内容
(一)要解决的技术问题
为了解决现有的移动终端特别是多核移动终端启动应用程序时速度慢的问题,本发明提出了一种应用程序快速启动方法、装置和电子设备。
(二)技术方案
为解决上述技术问题,本发明的一方面提出一种应用程序快速启动方法,应用于移动终端,包括:
确定目标应用程序,对该目标应用程序进行编译;
启动编译后的目标应用程序,预加载所述编译后的目标应用程序需要加载的类;
当所述目标应用程序需要加载所需的类时,调用该预加载完成的类。
根据本发明的优选实施方式,所述确定目标应用程序,对该目标应用程序进行编译,进一步包括:
将所述目标应用程序编译为目标类型的文件;
判断所述目标类型的文件是否满足预设条件,其中,所述预设条件为当启动应用程序时,预加载所述应用程序需要加载的类;
修改不满足预设条件的目标类型的文件。
根据本发明的优选实施方式,所述启动编译后的目标应用程序,预加载所述编译后的目标应用程序需要加载的类,进一步包括:
遍历需要加载的类,检测所述移动终端是否存在与所述类对应的预加载文件,若存在,则读取所述预加载文件,进行类的预加载。
根据本发明的优选实施方式,当所述移动终端不存在与所述类对应的预加载文件时,所述方法还包括:
保存当前加载的类,形成对应的预加载文件;
创建所述应用程序需要加载的类的集合,将本次启动所述应用程序加载的类对应的预加载文件保存到所述集合中。
根据本发明的优选实施方式,所述启动编译后的目标应用程序,预加载所述编译后的目标应用程序需要加载的类,进一步包括:
启动所述应用程序,读取所述集合中的预加载文件,进行类的预加载。
根据本发明的优选实施方式,当启动所述应用程序时,所述方法还包括:
检测所述移动终端的CPU利用率;
设置所述CPU利用率的阈值范围;
控制所述CPU在同一时刻预加载所述类的数量,以满足所述CPU利用率在所述阈值范围内。
根据本发明的优选实施方式,所述当所述目标应用程序需要加载所需的类时,调用该预加载完成的类,进一步包括:
当所述目标应用程序需要加载所需的类时,检测该类是否预加载完成,若是,则跳过该类的加载阶段,进入该类的使用阶段。
本发明第二方面提出一种应用程序快速启动装置,应用于移动终端,包括:
编译模块,用于确定目标应用程序,对该目标应用程序进行编译;
预加载模块,用于启动编译后的目标应用程序,预加载所述编译后的目标应用程序需要加载的类;
运行模块,用于当所述目标应用程序需要加载所需的类时,调用该预加载完成的类。
根据本发明的优选实施方式,所述编译模块还包括:
类型转换单元,用于将所述目标应用程序编译为目标类型的文件;
判断单元,用于判断所述目标类型的文件是否满足预设条件,其中,所述预设条件为当启动应用程序时,预加载所述应用程序需要加载的类;
修改单元,用于修改不满足预设条件的目标类型的文件。
根据本发明的优选实施方式,所述预加载模块进一步包括:
预加载文件检测单元,用于遍历需要加载的类,检测所述移动终端是否存在与所述类对应的预加载文件,若存在,则读取所述预加载文件,进行类的预加载。
根据本发明的优选实施方式,所述预加载文件检测单元还用于:
保存当前加载的类,形成对应的预加载文件;
创建所述应用程序需要加载的类的集合,将本次启动所述应用程序加载的类对应的预加载文件保存到所述集合中。
根据本发明的优选实施方式,所述预加载模块进一步包括:
类预加载单元,用于启动所述应用程序,读取所述集合中的预加载文件,进行类的预加载。
根据本发明的优选实施方式,所述装置还包括:
CPU利用率控制模块,用于检测所述移动终端的CPU利用率;
设置所述CPU利用率的阈值范围;
控制所述CPU在同一时刻预加载所述类的数量,以满足所述CPU利用率在所述阈值范围内。
根据本发明的优选实施方式,所述运行模块进一步包括:
类运行单元,用于当所述目标应用程序需要加载所需的类时,检测该类是否预加载完成,若是,则跳过该类的加载阶段,进入该类的使用阶段。
本发明第三方面提出一种电子设备,包括处理器和存储器,所述存储器用于存储计算机可执行程序,当所述计算机程序被所述处理器执行时,所述处理器执行所述的方法。
本发明第四方面还提出一种计算机可读介质,存储有计算机可执行程序,所述计算机可执行程序被执行时,实现所述的方法。
(三)有益效果
本发明在应用程序编译阶段对所有的类文件进行编辑,插入加速代码,而后在应用冷启动过程中,利用多核CPU提前预加载应用程序需要的类,因此相对于其他方案具有通用性和复用性高,充分的利用了移动终端的CPU多核性能,并且根据不同性能的移动终端自动调整预加载的类数量,在未额外消耗资源的同时显著提升了启动应用程序的速度,提升用户体验。
附图说明
图1是现有技术中类加载过程示意图;
图2是本发明的一种应用程序快速启动方法流程图;
图3是本发明的一种对应用程序运行代码进行编译流程示意图;
图4a是本发明的一种类预加载过程示意图;
图4b是本发明的另一种类预加载过程示意图;
图5是本发明的一种应用程序快速启动装置示意图;
图6是本发明的一个实施例的电子设备的结构示意图;
图7是本发明的一个实施例的计算机可读记录介质的示意图。
具体实施方式
在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。
附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。
附图中的框图一般表示的是功能实体,并不一定必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理单元装置和/或微控制器装置中实现这些功能实体。
各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。
为解决上述技术问题,本发明提出一种应用程序快速启动方法、装置和电子设备,在应用程序编译阶段对所有的类文件进行编辑,插入加速代码,而后在应用冷启动过程中,利用多核CPU提前预加载应用程序需要的类,当应用程序需要加载需要的类时,直接读取并使用预加载完成的类,因此相对于其他方案具有通用性和复用性高,充分的利用了移动终端的CPU多核性能,并且根据不同性能的移动终端自动调整预加载的类数量,在未额外消耗资源的同时显著提升了启动应用程序的速度,提升用户体验。本发明所述的冷启动是指应用程序在移动终端开机后的首次运行,或移动终端运行进程被结束后再次运行。
在本发明的实施例中描述的类可以理解为一种用户定义的引用数据类型,预加载可以理解为现代软件开发中的一种优化方法,用于将应用中比较耗时逻辑提前在子线程中进行加载,从而达到应用需要的时候可以直接使用。
本发明所述的方法可以是在安卓系统中,分为编译阶段和运行阶段,在编译阶段对应用程序启动时所需的类进行编辑,找出其中应用程序预加载相关的类代码,在其中插入加速代码(即预加载代码),并覆盖原代码;在运行阶段启动该应用程序后,运行加速代码会控制系统开启多个子线程,利用CPU的多核性能预加载应用程序所需的所有类,若检测到移动终端内未存储所需类的预加载文件,则在加载的过程中会同时将预加载文件与对应的类进行绑定并存储,待下次启动该应用程序时会直接调用存储的类的预加载文件,从而实现提前预加载应用程序所需的类,提高了CPU的使用率和应用程序的启动速度。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。
附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。
附图中的框图一般表示的是功能实体,并不一定必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理单元装置和/或微控制器装置中实现这些功能实体。
各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。
图1是现有技术中类加载过程示意图。如图1所示,现有技术中,假设某应用程序启动需要依次加载多个页面,例如开场动画、剧情介绍、植入广告等等,在本发明实施例中包括三个页面A、B、C,其中,A页面为:初始化请求页面(Application),B页面为:闪屏页(Activity),C页面为:主页面(MainActivity),每个页面都包括多种类的支持,该应用程序正常的冷启动流程为:
当加载到页面A时,系统会去加载A页面需要用到的多种类;当加载到页面B时,系统会去加载B页面需要用到的多种类;当加载到页面C时,系统会去加载C页面需要用到的多种类,由此系统是按需同步进行加载的,而每个页面加载过程都要经过“加载、校验、准备、解析、初始化”的过程,最后才到使用过程,这样就会存在系统启动该应用程序缓慢耗时等缺陷。
为了解决上述缺陷,本发明提供了一种如图2所示的方法,图2是应用程序快速启动方法流程图,如图2所示,该方法包括:
S201、对所述应用程序的运行代码进行编译。
该步骤包括:将所述目标应用程序编译为目标类型的文件;
判断所述目标类型的文件是否满足预设条件,其中,所述预设条件为当启动应用程序时,预加载所述应用程序需要加载的类;
修改不满足预设条件的目标类型的文件。
具体来说,如图3所示,在应用程序的编译工程阶段(启动应用程序前),对该应用程序的运行代码通过编译器进行编译得到该应用程序的Class文件,遍历该应用程序启动时需要的所有类,并从中找出从用户点击该应用程序开始到进入主页面的过程中加载页面对应的代码,使用自定义的Gradle插件从这些代码中转换得到所有的类文件(.Class文件),使用字节码操控框架ASM对.Class文件进行修改,插入加速代码,使得运行编译后的程序时会自动预加载每个页面需要的类文件,将修改后的.Class文件覆盖原应用程序中对应的Class文件,最后将Class文件转换为虚拟机可以识别的dex文件。
在将修改后的.Class文件覆盖原应用程序中对应的Class文件后,可以运行一遍该应用程序,查看修改的文件是否满足预加载类的加速条件,若不满足可再次对代码进行修改,直到满足加速条件为止。
此外,在对原应用程序的代码进行编译的过程中,会在预加载前的步骤设置类初始化开关代码,开关通常情况下时关闭状态,不会对程序产生任何影响,当运行应用程序时,移动终端内没有需要的类的预加载文件,会开启所述类初始化开关,在进行页面加载初始化阶段,会自动存储加载的类及对应的预加载文件,以便后续预加载使用。
S202、启动编译后的应用程序时,预加载所述应用程序所需的类的预加载文件。
该步骤包括:检测所述移动终端是否存储有所述预加载文件,若有,则读取所述预加载文件,进行类的预加载;
若没有,则保存当前加载的类,形成对应的预加载文件;创建所述应用程序需要加载的类的集合,将本次启动所述应用程序加载的类对应的预加载文件保存到所述集合中。
具体来说,在运行经过编译的应用程序时,会自动检测移动终端内是否存储有该启动应用程序所需类的预加载文件,例如,会自动检测移动终端内是否存储有启动应用程序时加载页面A、B、C所需的类的预加载文件,若有,则根据移动终端CPU的使用情况开启多个子线程,分别调用页面A、B、C所需的类的预加载文件,并同时进行类的预加载,在预加载的过程中将类与对应的预加载文件进行绑定并进行合并存储,这样等到系统加载任一页面时,发现该页面需要的类已经加载,可以直接进行使用,从而大大提升加载速度。
若未在移动终端内检测到该应用程序所需的类预加载文件,说明该应用程序在此移动终端上从未开启过,此时会触发上述实施例中编译阶段设置的类初始化开关,在应用程序首次进行页面加载后,会保存本次加载所需的类,并形成对应的预加载文件。创建该应用程序加载页面所需的类集合,将需要加载的类形成的预加载文件全部存入该集合中。当再次启动该应用程序时,会读取该集合中存储的预加载文件,便可提前对页面所需的类进行预加载,从而大大提升加载速度。
S203、当所述应用程序需要加载任一所述类时,调用预加载完成的该类的预加载文件。
具体来说,当再次启动应用程序时,系统会检测该类是否预加载完成,若是,则调用移动终端内存储的所需类的预加载文件,跳过该类的加载阶段(加载、校验、准备、解析、初始化阶段),直接进入该类的使用阶段,页面需要的类越多,速度提升效果就越显著。
可选的,当再次启动应用程序时,系统可以从移动终端内的存储磁盘中调用所需类的预加载文件进行预加载,也可以通过网络将移动终端配置信息及应用程序信息发送到服务器,从服务器获取所需类的预加载文件。
图4a是本发明的一种类预加载过程示意图;图4b是本发明的另一种类预加载过程示意图。如图4a及4b所示,可以对比图1中的现有技术加载过程,本发明所述的方法可以不同程度的提高应用程序的启动速度。此外,经过本发明所述方法编译后的应用程序,在启动时会根据移动终端的性能调整同一时间内预加载的所述预加载文件的数量,首先检测所述移动终端的CPU利用率,然后设置所述CPU利用率的阈值范围,最后控制所述CPU在同一时刻预加载所述类的数量,以满足所述CPU利用率在所述阈值范围内。
例如图4a所示的加载过程,可以表示为性能较好的移动终端进行类预加载过程,当系统加载A页面时,检测该移动终端的CPU利用率,同时设置CPU利用率的阈值范围为70%-80%,假如此时检测到系统内的多核CPU利用率很低,仅为40%,会控制CPU同时异步使每个核去预加载A、B、C页面需要的类;图4b所示的加载过程,可以表示为性能一般的移动终端进行类预加载过程,当系统加载A页面时,检测该移动终端的CPU利用率,同时设置CPU利用率的阈值范围为70%-80%,假如此时检测到系统内的多核CPU利用率较低,为60%,会控制CPU同时异步使每个核去预加载A、B页面需要的类,此时若再同时加载C页面所需的类,则CPU的使用会超负荷,故等应用程序加载完成A页面需要的类后,再开始预加载C页面需要的类,以提升整体加载速度,同时还提高了移动终端的多核CPU使用效率。
本发明所述的实施例实现移动终端应用程序冷启动速度的优化,理论上可以应用在运行应用程序的任何模块中或者其他设备中,从而提升该模块或设备对该应用的初次冷启动的速度。
本领域技术人员可以理解,实现上述实施例的全部或部分步骤被实现为由计算机数据处理设备执行的程序(计算机程序)。在该计算机程序被执行时,可以实现本发明提供的上述方法。而且,所述的计算机程序可以存储于计算机可读存储介质中,该存储介质可以是磁盘、光盘、ROM、RAM等可读存储介质,也可以是多个存储介质组成的存储阵列,例如磁盘或磁带存储阵列。所述的存储介质不限于集中式存储,其也可以是分布式存储,例如基于云计算的云存储。
下面描述本发明的装置实施例,该装置可以用于执行本发明的方法实施例。对于本发明装置实施例中描述的细节,应视为对于上述方法实施例的补充;对于在本发明装置实施例中未披露的细节,可以参照上述方法实施例来实现。
图5是本发明的一种应用程序快速启动装置示意图。如图5所示,所述装置300包括:
编译模块301,用于确定目标应用程序,对该目标应用程序进行编译;
预加载模块302,用于启动编译后的目标应用程序,预加载所述编译后的目标应用程序需要加载的类;
运行模块303,用于当所述目标应用程序需要加载所需的类时,调用该预加载完成的类。
具体来说,在应用程序编译阶段,编译模块301对所有的类文件进行编辑,插入加速代码,而后在应用冷启动过程中,预加载模块302利用多核CPU提前预加载应用程序需要的类,当应用程序需要加载需要的类时,运行模块303直接读取并使用预加载模块302预加载完成的类,因此相对于其他方案具有通用性和复用性高,充分的利用了移动终端的CPU多核性能,并且根据不同性能的移动终端自动调整预加载的类数量,在未额外消耗资源的同时显著提升了启动应用程序的速度,提升用户体验。
所述编译模块301还包括:
类型转换单元,用于将所述目标应用程序编译为目标类型的文件;
判断单元,用于判断所述目标类型的文件是否满足预设条件,其中,所述预设条件为当启动应用程序时,预加载所述应用程序需要加载的类;
修改单元,用于修改不满足预设条件的目标类型的文件。
所述预加载模块302进一步包括:
预加载文件检测单元,用于遍历需要加载的类,检测所述移动终端是否存在与所述类对应的预加载文件,若存在,则读取所述预加载文件,进行类的预加载。
所述预加载文件检测单元还用于:
保存当前加载的类,形成对应的预加载文件;
创建所述应用程序需要加载的类的集合,将本次启动所述应用程序加载的类对应的预加载文件保存到所述集合中。
所述预加载模块302进一步包括:
类预加载单元,用于启动所述应用程序,读取所述集合中的预加载文件,进行类的预加载。
所述装置300还包括:
CPU利用率控制模块,用于检测所述移动终端的CPU利用率;
设置所述CPU利用率的阈值范围;
控制所述CPU在同一时刻预加载所述类的数量,以满足所述CPU利用率在所述阈值范围内。
所述运行模块303进一步包括:
类运行单元,用于当所述目标应用程序需要加载所需的类时,检测该类是否预加载完成,若是,则跳过该类的加载阶段,进入该类的使用阶段。
本领域技术人员可以理解,上述装置实施例中的各模块可以按照描述分布于装置中,也可以进行相应变化,分布于不同于上述实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
图6是本发明的一个实施例的电子设备的结构示意图,该电子设备包括处理器和存储器,所述存储器用于存储计算机可执行程序,当所述计算机程序被所述处理器执行时,所述处理器执行基于旋转角监测的车辆智能助力推行方法。
如图6所示,电子设备以通用计算设备的形式表现。其中处理器可以是一个,也可以是多个并且协同工作。本发明也不排除进行分布式处理,即处理器可以分散在不同的实体设备中。本发明的电子设备并不限于单一实体,也可以是多个实体设备的总和。
所述存储器存储有计算机可执行程序,通常是机器可读的代码。所述计算机可读程序可以被所述处理器执行,以使得电子设备能够执行本发明的方法,或者方法中的至少部分步骤。
所述存储器包括易失性存储器,例如随机存取存储单元(RAM)和/或高速缓存存储单元,还可以是非易失性存储器,如只读存储单元(ROM)。
可选的,该实施例中,电子设备还包括有I/O接口,其用于电子设备与外部的设备进行数据交换。I/O接口可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
应当理解,图6显示的电子设备仅仅是本发明的一个示例,本发明的电子设备中还可以包括上述示例中未示出的元件或组件。例如,有些电子设备中还包括有显示屏等显示单元,有些电子设备还包括人机交互元件,例如按扭、键盘等。只要该电子设备能够执行存储器中的计算机可读程序以实现本发明方法或方法的至少部分步骤,均可认为是本发明所涵盖的电子设备。
图7是本发明的一个实施例的计算机可读记录介质的示意图。如图7所示,计算机可读记录介质中存储有计算机可执行程序,所述计算机可执行程序被执行时,实现本发明上述的基于旋转角监测的车辆智能助力推行方法。所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
通过以上对实施方式的描述,本领域的技术人员易于理解,本发明可以由能够执行特定计算机程序的硬件来实现,例如本发明的系统,以及系统中包含的电子处理单元、服务器、客户端、手机、控制单元、处理器等,本发明也可以由包含上述系统或部件的至少一部分的车辆来实现。本发明也可以由执行本发明的方法的计算机软件来实现,例如由机车端的微处理器、电子控制单元,客户端、服务器端等执行的控制软件来实现。但需要说明的是,执行本发明的方法的计算机软件并不限于由一个或特定个的硬件实体中执行,其也可以是由不特定具体硬件的以分布式的方式来实现,例如计算机程序执行的某些方法步骤可以在机车端执行,另一部分可以在移动终端或智能头盔等中执行。对于计算机软件,软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中,也可以分布式存储于网络上,只要其能使得电子设备执行根据本发明的方法。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种应用程序快速启动方法,应用于移动终端,其特征在于,包括:
确定目标应用程序,对该目标应用程序进行编译;
启动编译后的目标应用程序,预加载所述编译后的目标应用程序需要加载的类;
当所述目标应用程序需要加载所需的类时,调用该预加载完成的类。
2.根据权利要求1所述的应用程序快速启动方法,其特征在于,所述确定目标应用程序,对该目标应用程序进行编译,进一步包括:
将所述目标应用程序编译为目标类型的文件;
判断所述目标类型的文件是否满足预设条件,其中,所述预设条件为当启动应用程序时,预加载所述应用程序需要加载的类;
修改不满足预设条件的目标类型的文件。
3.根据权利要求1或2所述的应用程序快速启动方法,其特征在于,所述启动编译后的目标应用程序,预加载所述编译后的目标应用程序需要加载的类,进一步包括:
遍历需要加载的类,检测所述移动终端是否存在与所述类对应的预加载文件,若存在,则读取所述预加载文件,进行类的预加载。
4.根据权利要求1至3任意一项所述的应用程序快速启动方法,其特征在于,当所述移动终端不存在与所述类对应的预加载文件时,所述方法还包括:
保存当前加载的类,形成对应的预加载文件;
创建所述应用程序需要加载的类的集合,将本次启动所述应用程序加载的类对应的预加载文件保存到所述集合中。
5.根据权利要求1至4任意一项所述的应用程序快速启动方法,其特征在于,所述启动编译后的目标应用程序,预加载所述编译后的目标应用程序需要加载的类,进一步包括:
启动所述应用程序,读取所述集合中的预加载文件,进行类的预加载。
6.根据权利要求1至5任意一项所述的应用程序快速启动方法,其特征在于,当启动所述应用程序时,所述方法还包括:
检测所述移动终端的CPU利用率;
设置所述CPU利用率的阈值范围;
控制所述CPU在同一时刻预加载所述类的数量,以满足所述CPU利用率在所述阈值范围内。
7.根据权利要求1至6任意一项所述的应用程序快速启动方法,其特征在于,所述当所述目标应用程序需要加载所需的类时,调用该预加载完成的类,进一步包括:
当所述目标应用程序需要加载所需的类时,检测该类是否预加载完成,若是,则跳过该类的加载阶段,进入该类的使用阶段。
8.一种应用程序快速启动装置,应用于移动终端,其特征在于,包括:
编译模块,用于确定目标应用程序,对该目标应用程序进行编译;
预加载模块,用于启动编译后的目标应用程序,预加载所述编译后的目标应用程序需要加载的类;
运行模块,用于当所述目标应用程序需要加载所需的类时,调用该预加载完成的类。
9.一种电子设备,包括处理器和存储器,所述存储器用于存储计算机可执行程序,其特征在于:
当所述计算机程序被所述处理器执行时,所述处理器执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读介质,存储有计算机可执行程序,其特征在于,所述计算机可执行程序被执行时,实现如权利要求1-7中任一项所述的方法。
CN202010374796.2A 2020-05-06 2020-05-06 应用程序快速启动方法、装置和电子设备 Active CN111625289B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010374796.2A CN111625289B (zh) 2020-05-06 2020-05-06 应用程序快速启动方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010374796.2A CN111625289B (zh) 2020-05-06 2020-05-06 应用程序快速启动方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN111625289A true CN111625289A (zh) 2020-09-04
CN111625289B CN111625289B (zh) 2023-03-24

Family

ID=72258900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010374796.2A Active CN111625289B (zh) 2020-05-06 2020-05-06 应用程序快速启动方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN111625289B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732365A (zh) * 2021-01-28 2021-04-30 北京字跳网络技术有限公司 预装应用程序启动方法、装置、电子设备及存储介质
CN113377378A (zh) * 2021-07-02 2021-09-10 北京百度网讯科技有限公司 用于小程序的处理方法、装置、设备及存储介质
CN114780167A (zh) * 2022-03-28 2022-07-22 上海幻电信息科技有限公司 基于ReactNative的预加载方法及系统
CN116302209A (zh) * 2023-05-15 2023-06-23 阿里云计算有限公司 应用进程加速启动的方法、分布式系统、节点和存储介质
CN116661909A (zh) * 2023-08-01 2023-08-29 北京小米移动软件有限公司 应用程序的运行方法、装置、终端设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595227A (zh) * 2018-05-10 2018-09-28 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
CN108647055A (zh) * 2018-05-10 2018-10-12 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及终端
CN108776599A (zh) * 2018-05-21 2018-11-09 Oppo广东移动通信有限公司 预加载应用的管理方法、装置、存储介质及智能终端
EP3575963A2 (en) * 2018-05-29 2019-12-04 Guangdong Oppo Mobile Telecommunications Corp., Ltd Method for preloading application, storage medium, and terminal
WO2019233241A1 (zh) * 2018-06-06 2019-12-12 Oppo广东移动通信有限公司 应用程序启动方法、装置、存储介质及终端
CN110704184A (zh) * 2019-09-19 2020-01-17 海南车智易通信息技术有限公司 一种应用内存优化方法、装置和移动终端

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595227A (zh) * 2018-05-10 2018-09-28 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
CN108647055A (zh) * 2018-05-10 2018-10-12 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及终端
CN108776599A (zh) * 2018-05-21 2018-11-09 Oppo广东移动通信有限公司 预加载应用的管理方法、装置、存储介质及智能终端
EP3575963A2 (en) * 2018-05-29 2019-12-04 Guangdong Oppo Mobile Telecommunications Corp., Ltd Method for preloading application, storage medium, and terminal
WO2019233241A1 (zh) * 2018-06-06 2019-12-12 Oppo广东移动通信有限公司 应用程序启动方法、装置、存储介质及终端
CN110704184A (zh) * 2019-09-19 2020-01-17 海南车智易通信息技术有限公司 一种应用内存优化方法、装置和移动终端

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732365A (zh) * 2021-01-28 2021-04-30 北京字跳网络技术有限公司 预装应用程序启动方法、装置、电子设备及存储介质
CN113377378A (zh) * 2021-07-02 2021-09-10 北京百度网讯科技有限公司 用于小程序的处理方法、装置、设备及存储介质
CN114780167A (zh) * 2022-03-28 2022-07-22 上海幻电信息科技有限公司 基于ReactNative的预加载方法及系统
CN116302209A (zh) * 2023-05-15 2023-06-23 阿里云计算有限公司 应用进程加速启动的方法、分布式系统、节点和存储介质
CN116302209B (zh) * 2023-05-15 2023-08-04 阿里云计算有限公司 应用进程加速启动的方法、分布式系统、节点和存储介质
CN116661909A (zh) * 2023-08-01 2023-08-29 北京小米移动软件有限公司 应用程序的运行方法、装置、终端设备及存储介质

Also Published As

Publication number Publication date
CN111625289B (zh) 2023-03-24

Similar Documents

Publication Publication Date Title
CN111625289B (zh) 应用程序快速启动方法、装置和电子设备
US8347272B2 (en) Call graph dependency extraction by static source code analysis
US10846101B2 (en) Method and system for starting up application
CN102741812B (zh) 通过元数据抽取执行动态语言
CN110990019B (zh) 一种Java类分析方法、装置、存储介质及电子设备
CN107077379B (zh) 一种虚拟机创建方法和装置
CN108021370B (zh) 字节码的优化方法、装置、存储介质、处理器及终端
CN111625290B (zh) 一种Android平台下布局文件预加载方法、装置及电子设备
EP3113019A1 (en) Policy-based compression of machine code generated by a virtual machine
CN113127050B (zh) 一种应用资源打包过程监控方法、装置、设备和介质
CN106850650B (zh) 用于游戏客户端访问数据的方法及客户端游戏系统
CN113986402A (zh) 函数调用方法、装置、电子设备及存储介质
US9639375B2 (en) Generation of language bindings for libraries using data from compiler generated debug information
CN113296786A (zh) 数据处理方法、装置、电子设备及存储介质
JP6042454B2 (ja) ユーザ生成によるデータセンターの省電力
US11036527B2 (en) Class splitting in object-oriented environments
US20140222410A1 (en) Hybrid emulation and kernel function processing systems and methods
CN107423093B (zh) 控制方法及装置、计算机装置和计算机可读存储介质
CN114911541B (zh) 配置信息的处理方法、装置、电子设备及存储介质
CN111352644A (zh) 小程序更新方法、装置、服务器及存储介质
CN114647411A (zh) 编程界面加载方法、装置、电子设备及存储介质
WO2017128589A1 (zh) 可运行文件生成方法、art虚拟机运行方法和装置
US9396044B2 (en) Memory efficient thread-level speculation
CN112650502A (zh) 批处理任务处理方法、装置、计算机设备和存储介质
CN113590166B (zh) 应用程序的更新方法、装置以及计算机可读存储介质

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230619

Address after: 6001, 6th Floor, No.1 Kaifeng Road, Shangdi Information Industry Base, Haidian District, Beijing, 100085

Patentee after: Beijing Baige Feichi Technology Co.,Ltd.

Address before: 100085 4001, 4th floor, No.1 Kaifa Road, Shangdi Information Industry base, Haidian District, Beijing

Patentee before: XIAOCHUANCHUHAI EDUCATION TECHNOLOGY (BEIJING) CO.,LTD.