CN107943576A - 应用程序的启动优化方法、装置、设备、系统及介质 - Google Patents
应用程序的启动优化方法、装置、设备、系统及介质 Download PDFInfo
- Publication number
- CN107943576A CN107943576A CN201711346473.7A CN201711346473A CN107943576A CN 107943576 A CN107943576 A CN 107943576A CN 201711346473 A CN201711346473 A CN 201711346473A CN 107943576 A CN107943576 A CN 107943576A
- Authority
- CN
- China
- Prior art keywords
- sdk
- application program
- initialization
- starting guide
- startup
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/482—Application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
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
本发明公开了一种应用程序的启动优化方法,所述应用程序包括多个软件开发工具包SDK,包括:通过预先配置的启动策略参数表,初始化任务管理器,其中,所述启动策略参数表中包括各SDK的参数值;通过所述任务管理器,管理应用程序的启动优化并执行以下步骤:S1、任务管理器判断当前应用程序是否完成启动;S2、若未完成,则任务管理器触发一个SDK的初始化任务;S3、任务管理器基于该SDK的参数值,确定该初始化任务的启动策略并执行;S4、当完成一个SDK的初始化任务时,任务管理器更新该SDK的启动状态并执行S1。本发明还公开了一种启动优化装置、设备、系统及可读存储介质。本发明能够优化应用程序的启动速度,提升用户使用体验。
Description
技术领域
本发明涉及应用程序的初始化技术领域,尤其涉及一种应用程序的启动优化方法、装置、设备、系统及计算机可读存储介质。
背景技术
现有APP(Application program,应用程序)通常都集成了多个SDK(SoftwareDevelopment Kit,软件开发工具包),不同的SDK对应实现不同的应用功能,比如支付SDK、定位SDK等等,因而APP在启动过程中需要加载多个不同的SDK,同时由于设备资源的有限性,进而导致APP启动时间过长而影响用户使用体验。
发明内容
本发明的主要目的在于提供一种应用程序的启动优化方法、装置、设备、系统及计算机可读存储介质,旨在解决现有APP在启动过程中需要加载多个不同的SDK,进而导致APP启动时间过长的技术问题。
为实现上述目的,本发明提供一种应用程序的启动优化方法,所述应用程序包括多个软件开发工具包SDK,所述启动优化方法包括:
通过预先配置的启动策略参数表,初始化任务管理器,其中,所述启动策略参数表中包括各SDK的参数值;
通过所述任务管理器,管理应用程序的启动优化并执行以下步骤:
S1、所述任务管理器判断当前应用程序是否完成启动;
S2、若未完成,则所述任务管理器触发一个SDK的初始化任务;
S3、所述任务管理器基于该SDK的参数值,确定该初始化任务的启动策略并执行;
S4、当完成一个SDK的初始化任务时,所述任务管理器更新该SDK的启动状态并执行S1。
可选地,所述启动优化方法还包括:
在初始化任务的执行过程中,采集与应用程序启动相关的数据信息,并将所述数据信息异步上报后台服务器,以供后台服务器基于所述数据信息,配置更优的启动策略参数表。
可选地,所述数据信息至少包括以下几种:SDK的初始化时间、应用程序的启动时间、应用程序启动过程中的CPU使用率变化、应用程序启动过程中的内存占用率变化、运行应用程序的设备信息;
其中,SDK的初始化时间用于反映SDK启动速度的快慢;
SDK的初始化时间与应用程序的启动时间之间的比值用于反映启动SDK对应用程序启动速度的影响程度;
应用程序启动过程中的CPU使用率变化与内存占用率变化用于反映启动SDK所导致的CPU使用率变化与内存占用率变化;
运行应用程序的设备信息用于反映设备运行SDK所能提供的资源能力。
可选地,所述启动策略参数表至少包括各SDK的如下参数值:名称、初始化进程、初始化线程、触发时机、启动优先级、延时执行时长;
其中,当SDK的初始化任务被触发时,SDK在所述初始化进程内,基于所述初始化线程的控制,在所述触发时机开始进行启动;若存在其他SDK的初始化任务,则启动优先级高的先启动,若启动存在延时执行时长,则在达到延时执行时长后再进行启动。
可选地,所述任务管理器基于该SDK的参数值,确定该初始化任务的启动策略包括:
所述任务管理器基于该SDK的参数值,对该初始化任务进行参数赋值处理,以得到该初始化任务的启动策略;
所述参数赋值处理包括:为该初始化任务分配初始化进程、初始化线程、初始化触发时机、延时执行时长,其中,在相同参数值条件下,高优先级的优先启动,相同优先级的并发启动。
进一步地,为实现上述目的,本发明还提供一种应用程序的启动优化装置,所述应用程序包括多个软件开发工具包SDK,所述启动优化装置包括:
初始化模块,用于通过预先配置的启动策略参数表,初始化任务管理器,其中,所述启动策略参数表中包括各SDK的参数值;
优化管理模块,用于通过所述任务管理器,管理应用程序的启动优化;
其中,所述优化管理模块包括:
判断单元,用于判断当前应用程序是否完成启动;
触发单元,用于若当前应用程序启动未完成,则触发一个SDK的初始化任务;
执行单元,用于基于该SDK的参数值,确定该初始化任务的启动策略并执行;
更新单元,用于当完成一个SDK的初始化任务时,更新该SDK的启动状态。
进一步地,为实现上述目的,本发明还提供一种应用程序的启动优化设备,所述启动优化设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的启动优化程序,所述启动优化程序被所述处理器执行时实现上述任一项所述的应用程序的启动优化方法的步骤。
进一步地,为实现上述目的,本发明还提供一种应用程序的启动优化系统,所述启动优化系统包括后台服务器以及如上所述的启动优化设备;
所述后台服务器,与所述启动优化设备建立无线连接,接收所述启动优化设备异步上报的数据信息,并基于所述数据信息,配置更优的启动策略参数表,并将配置的启动策略参数表下发所述启动优化设备以进行更新;
其中,所述数据信息至少包括以下几种:SDK的初始化时间、应用程序的启动时间、应用程序启动过程中的CPU使用率变化、应用程序启动过程中的内存占用率变化、运行应用程序的设备信息。
可选地,所述后台服务器采用层次分析法对多条启动策略进行评价,并根据评价结果,配置启动策略参数表;
其中,所述层次分析法的评价过程包括:
步骤一、建立三层阶梯层次结构模型;其中,第一层为目标层,为通过评价想要达到的目标;第二层为准则层,为针对目标而评价各方案时所考虑的各种要素;第三层为方案层,为待进行评价的方案;
步骤二、建立本层级要素与上一层级要素两两进行判断比较的判断矩阵;
步骤三、计算本层级要素与上一层级要素的相对重要度以及判断矩阵的最大特征值;
步骤四、基于所述最大特征值,对各判断矩阵进行相容性判断,若判断矩阵具有相容性,则执行步骤五;
步骤五、基于所述相对重要度,计算各层级要素关于整个层级要素的综合重要度,并根据综合重要度的数值排序,确定最优方案。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有启动优化程序,所述启动优化程序被所述处理器执行时实现如上述任一项所述的应用程序的启动优化方法的步骤。
本发明中引入任务管理器,以对应用程序启动过程中的SDK初始化进行管理,进而实现对应用程序启动过程的优化。具体通过预先配置的启动策略参数表,初始化任务管理器,并由任务管理器触发SDK的初始化任务,从而形成该初始化任务的启动策略并执行。本发明能够按照预先配置的启动策略参数表来管控应用程序中各SDK的初始化,在避免非必要SDK启动的同时,优化必要的SDK的启动速度,从而在整体上提升应用程序的启动速度。
附图说明
图1是本发明实施例方案涉及的设备硬件运行环境的结构示意图;
图2为本发明应用程序的启动优化系统一实施例的功能模块示意图;
图3为本发明应用程序的启动优化系统一实施例中后台服务器建立的三层阶梯层次结构模型示意图;
图4为本发明应用程序的启动优化方法一实施例的流程示意图;
图5为本发明应用程序的启动优化装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的设备硬件运行环境的结构示意图。
本发明实施例启动优化设备可以是PC机、服务器,也可以是智能手机、平板电脑、便携计算机等具有显示功能的设备。
如图1所示,该启动优化设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
本领域技术人员可以理解,图1中示出的启动优化设备的硬件结构并不构成对启动优化设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及启动优化程序。其中,操作系统是管理和控制启动优化设备与软件资源的程序,支持网络通信模块、用户接口模块、启动优化程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;用户接口模块用于管理和控制用户接口1003。
在图1所示的启动优化设备硬件结构中,网络接口1004主要用于连接系统后台,与系统后台进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;启动优化设备通过处理器1001调用存储器1005中存储的启动优化程序,并执行以下步骤:
通过预先配置的启动策略参数表,初始化任务管理器,其中,所述启动策略参数表中包括各SDK的参数值;
通过所述任务管理器,管理应用程序的启动优化并执行以下步骤:
S1、所述任务管理器判断当前应用程序是否完成启动;
S2、若未完成,则所述任务管理器触发一个SDK的初始化任务;
S3、所述任务管理器基于该SDK的参数值,确定该初始化任务的启动策略并执行;
S4、当完成一个SDK的初始化任务时,所述任务管理器更新该SDK的启动状态并执行S1。
进一步地,所述启动优化设备通过处理器1001调用存储器1005中存储的启动优化程序,以执行以下操作:
在初始化任务的执行过程中,采集与应用程序启动相关的数据信息,并将所述数据信息异步上报后台服务器,以供后台服务器基于所述数据信息,配置更优的启动策略参数表。
进一步地,所述启动优化设备通过处理器1001调用存储器1005中存储的启动优化程序,以执行以下操作:
基于该SDK的参数值,对该初始化任务进行参数赋值处理,以得到该初始化任务的启动策略;
所述参数赋值处理包括:为该初始化任务分配初始化进程、初始化线程、初始化触发时机、延时执行时长,其中,在相同参数值条件下,高优先级的优先启动,相同优先级的并发启动。
参照图2,图2为本发明应用程序的启动优化系统一实施例的功能模块示意图。
本实施例中,启动优化系统包括:后台服务器10、启动优化设备20。其中,启动优化设备20中安装有应用程序APP客户端,启动优化设备20通过该APP客户端可实现与后台服务器10建立无线连接。
本实施例中,APP客户端包含有多种不同的SDK。
后台服务器10与启动优化设备10建立无线连接后,接收启动优化设备20异步上报的数据信息,比如:
(1)SDK的初始化时间,指一个SDK初始化任务从开始到结束的时间;
(2)应用程序的启动时间,指应用程序的整个启动流程的总计时间;
(3)应用程序启动过程中的CPU使用率变化,指启动优化设备10的CPU使用率变化,比如应用程序启动前后的CPU使用率上升了30%;
(4)应用程序启动过程中的内存占用率变化,指启动优化设备10的内存占用率变化,比如应用程序启动前后的内存占用率增加了50%;
(5)运行应用程序的设备信息,指启动优化设备10的设备信息,比如内存大小、CPU性能等。
本实施例中,后台服务器10基于上述数据信息,配置更优的启动策略参数表,并将配置的启动策略参数表下发启动优化设备20,以对启动优化设备20本地的启动策略参数表进行更新。
可选的,在本发明启动优化系统一实施例中,后台服务器10采用层次分析法对多条启动策略进行评价,并根据评价结果,配置启动策略参数表。
本实施例中,应用程序的开发人员将根据SDK启动过程中采集的数据信息以及自身的开发经验,配置每一SDK的多条启动策略,并通过后台服务器10采用层次分析法对多条启动策略进行评价,并根据评价结果,配置启动策略参数表。
本实施例中,层次分析法的评价过程包括:
步骤一、建立三层阶梯层次结构模型,如图3所示。
第一层为目标层A,为通过评价想要达到的目标;本模型设置为SDK启动效果最优;
第二层为准则层C,为针对目标而评价各方案时所考虑的各种要素;本模型设置五个要素,分别为:单个SDK的启动时间C1、整个APP的启动总时间C2、启动过程中CPU使用率变化C3、启动过程中内存占用率变化C4、APP所在设备的机器性能C5;
第三层为方案层P,为待进行评价的方案;例如针对定位SDK的三条启动策略A1、A2、A3。
步骤二、建立本层级要素与上一层级要素两两进行判断比较的判断矩阵;
设对于准则C,其下一层有n个要素A1,A2,…,An。以上一层的要素作为判断准则,对下一层的n个要素进行两两比较来确定矩阵的元素值,其形式如下:
aij表示以判断准则C的角度考虑要素Ai对Aj的相对重要程度。若假设在准则C下要素A1,A2,...,An的权重分别为w1,w1,....,wn,即W=(w1,w2,...,wn)T,则
则判断矩阵为:
步骤三、计算本层级要素与上一层级要素的相对重要度以及判断矩阵的最大特征值;
在应用层次分析法进行系统评价和决策时,需要知道Ai关于C的相对重要度,也就是Ai关于C的权重。我们的问题归结为:
已知
求W=(w1,w2,...,wn)T。
由
知W是矩阵A的特征值为n的特征向量。
当矩阵A的元素aij满足
aii=1;aij=1/aji;aij=aik/ajk
时,A具有唯一的非零最大特征值λmax,且λmax=n(∑iλi=∑iaii=n)。
由于判断矩阵A的最大特征值所对应的特征向量即为W,为此,可以先求出判断矩阵的最大特征值所对应的特征向量,再经过归一化处理,即可求出Ai关于C的相对重要度。
步骤四、基于最大特征值,对各判断矩阵进行相容性判断,若判断矩阵具有相容性,则执行步骤五;
由于判断矩阵的一致性不易保证,若所建立的判断矩阵有偏差,则称为不相容判断矩阵,这时就有
A′W′=λmaxW′
若矩阵A完全相容,则有λmaz=n,否则λmaz>n。这就提示我们可以用λmaz-n的大小来度量相容的程度。
度量相容性的指标为C.I.(Consistence Index),
一般情况下,若C.I.≤0.10,就可认为判断矩阵A′有相容性,据此计算的W′是可以接受的,否则重新进行两两比较判断。
步骤五、基于相对重要度,计算各层级要素关于整个层级要素的综合重要度,并根据综合重要度的数值排序,确定最优方案。
在计算了各层次要素对其上一级要素的相对重要度以后,即可自上而下的求出各层要素关于系统总体的综合重要度(也叫做系统总体权重)。其计算过程如下:
设有目标层A、准则层C、方案层P构成的层次模型,准则层C对目标层A的相对权重为:
方案层n个方案对准则层的各准则的相对权重为:
这n个方案对目标而言,其相对权重是通过权重与组合而得到的,其计算可采用如下表1所示方式。
表1
这时得到为P层各方案的相对权重,根据数值大小进行排序即可确定最优方案。
参照图4,图4为本发明应用程序的启动优化方法一实施例的流程示意图。
本实施例中,应用程序集成有多个软件开发工具包SDK,包括自身的SDK以及第三方应用的SDK,比如定位SDK、支付SDK等。
本实施例中,启动优化方法包括:
步骤S10,通过预先配置的启动策略参数表,初始化任务管理器,其中,启动策略参数表中包括各SDK的参数值;
本实施例中,启动策略参数表是用于构成应用程序的启动策略的参数列表,对于具体参数类型及数值的设置不限。
可选的,启动策略参数表至少包括各SDK的如下参数值:名称、初始化进程、初始化线程、触发时机、启动优先级、延时执行时长,具体参照表2所示。
其中,初始化进程:用于指定SDK初始化任务进行初始化的位置空间,即在哪执行;
初始化线程:用于指定SDK初始化任务在哪个线程中执行,即由谁来执行;
触发时机,即触发SDK进行初始化的时机,包括:应用启动第一时间,第一个可触界面显示前、显示时、显示后,第一个可交互界面显示前、显示时、显示后;
启动优先级:在同一个初始化进程中已经触发的初始化任务,具体根据优先级高低排序执行,其中,在相同参数值条件下,高优先级的优先启动,相同优先级的并发启动;
延时执行时长:用于指定SDK的初始化任务触发后需要延时执行的时间长度。
表2
本实施例中,启动优化设备20具体通过任务管理器,管理应用程序的启动优化。
在进行应用程序的启动优化之前,启动优化设备20需要对任务管理器进行初始化,具体通过预先配置的启动策略参数表对任务管理器进行初始化,从而使得完成初始化处理后的任务管理器可以自动完成应用程序的启动优化。
本实施例中,任务管理器具体为本发明引入的一种软件程序管理小工具,用于执行应用程序的启动优化整个过程。通过初始化任务管理器,可将启动策略参数表中各SDK转换为标准化的初始化任务并以待执行,从而实行应用程序的启动优化。
本实施例中,通过任务管理器具体执行以下步骤:
步骤S20、判断当前应用程序是否完成启动;
步骤S30、若完成,则结束启动优化;
步骤S40、若未完成,则触发一个SDK的初始化任务;
本实施例中,任务管理器实时监听应用程序的整个启动过程,并在每次完成一个SDK的初始化任务,判断当前应用程序是否完成了启动,如果完成了启动,则结束启动优化,否则触发一个SDK的初始化任务。
本实施例对于判断当前应用程序是否完成启动的方式及条件不限,具体根据实际需要进行设置。比如任务管理器中缓存的SDK初始化任务是否全部完成,若是,则确定当前应用程序完成启动。
步骤S50、基于该SDK的参数值,确定该初始化任务的启动策略并执行;
步骤S60、当完成一个SDK的初始化任务时,更新该SDK的启动状态并执行S20。
本实施例中,在触发一个SDK的初始化任务后,任务管理器将基于启动策略参数表中该SDK的参数值,确定该初始化任务的启动策略。
可选的,任务管理器具体采用如下方式确定该初始化任务的启动策略:
基于该SDK的参数值,对该初始化任务进行参数赋值处理,以得到该初始化任务的启动策略;其中,参数赋值处理包括:为该初始化任务分配初始化进程、初始化线程、初始化触发时机、延时执行时长,其中,在相同参数值条件下,高优先级的优先启动,相同优先级的并发启动。
通过上述参数赋值处理,即可得到SDK进行初始化的启动策略,然后执行该启动策略,即可完成当前SDK的启动优化,更新该SDK的启动状态并通过任务管理器以触发下一个SDK的初始化任务,进而实现对整个应用程序的启动优化。
本实施例中引入任务管理器,以对应用程序启动过程中的SDK初始化进行管理,进而实现对应用程序启动过程的优化。具体通过预先配置的启动策略参数表,初始化任务管理器,并由任务管理器触发SDK的初始化任务,从而形成该初始化任务的启动策略并执行。本实施例能够按照预先配置的启动策略参数表来管控应用程序中各SDK的初始化,在避免非必要SDK启动的同时,优化必要的SDK的启动速度,从而在整体上提升应用程序的启动速度。
进一步可选的,在本发明应用程序的启动优化方法另一实施例中,所述启动优化方法还包括:
在初始化任务的执行过程中,采集与应用程序启动相关的数据信息,并将数据信息异步上报后台服务器,以供后台服务器基于数据信息,配置更优的启动策略参数表。
本实施例中,考虑到应用程序中SDK的启动策略的好坏可以通过某些数据信息来进行评价,因此,反过来说,收集这些数据信息将有助于进一步配置更优的启动策略参数表。
因此,为进一步优化和提升应用程序的启动速度,本实施例中,在初始化任务的执行过程中,启动优化设备20采集与应用程序启动相关的数据信息,并将数据信息异步上报后台服务器10,以供后台服务器10基于所述数据信息,配置更优的启动策略参数表。
可选的,数据信息至少包括以下几种:
(1)SDK的初始化时间,指一个SDK初始化任务从开始到结束的时间;
(2)应用程序的启动时间,指应用程序的整个启动流程的总计时间;
其中,SDK的初始化时间用于反映SDK启动速度的快慢;SDK的初始化时间与应用程序的启动时间之间的比值用于反映启动SDK对应用程序启动速度的影响程度。
例如,某个SDK启动速度快,则在应用程序启动时可以启动该SDK,而若SDK启动速度慢,则在应用程序启动之后再启动该SDK;
如果某个SDK启动速度对应用程序启动速度影响较大,则在应用程序启动之后再启动该SDK,并减少该SDK的冷启动次数。
(3)应用程序启动过程中的CPU使用率变化,指启动优化设备10的CPU使用率变化,比如应用程序启动前后的CPU使用率上升了30%;
(4)应用程序启动过程中的内存占用率变化,指启动优化设备10的内存占用率变化,比如应用程序启动前后的内存占用率增加了50%;
其中,应用程序启动过程中的CPU使用率变化与内存占用率变化用于反映启动SDK所导致的CPU使用率变化与内存占用率变化。
例如,某SDK启动不会导致CPU使用率、内存占用率大幅增加,则可优先启动该SDK,反之则延迟启动。
(5)运行应用程序的设备信息,指启动优化设备10的设备信息,比如内存大小、CPU性能等,用于反映设备运行SDK所能提供的资源能力。
例如,某设备的内存较大且CPU性能较好,则应用程序启动时可启动多个SDK,反之,则减少SDK的启动数量。
参照图5,图5为本发明应用程序的启动优化装置一实施例的功能模块示意图。
本实施例中,应用程序集成有多个软件开发工具包SDK,所述启动优化装置包括:
初始化模块10,用于通过预先配置的启动策略参数表,初始化任务管理器,其中,启动策略参数表中包括各SDK的参数值;
优化管理模块20,用于通过任务管理器,管理应用程序的启动优化;
其中,优化管理模块20包括:
判断单元201,用于判断当前应用程序是否完成启动;
触发单元202,用于若当前应用程序启动未完成,则触发一个SDK的初始化任务;
执行单元203,用于基于该SDK的参数值,确定该初始化任务的启动策略并执行;
更新单元204,用于当完成一个SDK的初始化任务时,更新该SDK的启动状态。
本实施例在启动优化装置中引入任务管理器,以对应用程序启动过程中的SDK初始化进行管理,进而实现对应用程序启动过程的优化。具体通过预先配置的启动策略参数表,初始化任务管理器,并由任务管理器触发SDK的初始化任务,从而形成该初始化任务的启动策略并执行。启动优化装置能够按照预先配置的启动策略参数表来管控应用程序中各SDK的初始化,在避免非必要SDK启动的同时,优化必要的SDK的启动速度,从而在整体上提升应用程序的启动速度。
本发明还提供一种应用于启动优化设备的计算机可读存储介质。
计算机可读存储介质上存储有启动优化程序,启动优化程序被处理器执行时实现上述启动优化方法任一实施例中的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。
Claims (10)
1.一种应用程序的启动优化方法,所述应用程序包括多个软件开发工具包SDK,其特征在于,所述启动优化方法包括:
通过预先配置的启动策略参数表,初始化任务管理器,其中,所述启动策略参数表中包括各SDK的参数值;
通过所述任务管理器,管理应用程序的启动优化并执行以下步骤:
S1、所述任务管理器判断当前应用程序是否完成启动;
S2、若未完成,则所述任务管理器触发一个SDK的初始化任务;
S3、所述任务管理器基于该SDK的参数值,确定该初始化任务的启动策略并执行;
S4、当完成一个SDK的初始化任务时,所述任务管理器更新该SDK的启动状态并执行S1。
2.如权利要求1所述的启动优化方法,其特征在于,所述启动优化方法还包括:
在初始化任务的执行过程中,采集与应用程序启动相关的数据信息,并将所述数据信息异步上报后台服务器,以供后台服务器基于所述数据信息,配置更优的启动策略参数表。
3.如权利要求2所述的启动优化方法,其特征在于,所述数据信息至少包括以下几种:SDK的初始化时间、应用程序的启动时间、应用程序启动过程中的CPU使用率变化、应用程序启动过程中的内存占用率变化、运行应用程序的设备信息;
其中,SDK的初始化时间用于反映SDK启动速度的快慢;
SDK的初始化时间与应用程序的启动时间之间的比值用于反映启动SDK对应用程序启动速度的影响程度;
应用程序启动过程中的CPU使用率变化与内存占用率变化用于反映启动SDK所导致的CPU使用率变化与内存占用率变化;
运行应用程序的设备信息用于反映设备运行SDK所能提供的资源能力。
4.如权利要求1所述的启动优化方法,其特征在于,所述启动策略参数表至少包括各SDK的如下参数值:名称、初始化进程、初始化线程、触发时机、启动优先级、延时执行时长;
其中,当SDK的初始化任务被触发时,SDK在所述初始化进程内,基于所述初始化线程的控制,在所述触发时机开始进行启动;若存在其他SDK的初始化任务,则启动优先级高的先启动,若启动存在延时执行时长,则在达到延时执行时长后再进行启动。
5.如权利要求4所述的启动优化方法,其特征在于,所述任务管理器基于该SDK的参数值,确定该初始化任务的启动策略包括:
所述任务管理器基于该SDK的参数值,对该初始化任务进行参数赋值处理,以得到该初始化任务的启动策略;
所述参数赋值处理包括:为该初始化任务分配初始化进程、初始化线程、初始化触发时机、延时执行时长,其中,在相同参数值条件下,高优先级的优先启动,相同优先级的并发启动。
6.一种应用程序的启动优化装置,所述应用程序包括多个软件开发工具包SDK,其特征在于,所述启动优化装置包括:
初始化模块,用于通过预先配置的启动策略参数表,初始化任务管理器,其中,所述启动策略参数表中包括各SDK的参数值;
优化管理模块,用于通过所述任务管理器,管理应用程序的启动优化;
其中,所述优化管理模块包括:
判断单元,用于判断当前应用程序是否完成启动;
触发单元,用于若当前应用程序启动未完成,则触发一个SDK的初始化任务;
执行单元,用于基于该SDK的参数值,确定该初始化任务的启动策略并执行;
更新单元,用于当完成一个SDK的初始化任务时,更新该SDK的启动状态。
7.一种应用程序的启动优化设备,其特征在于,所述启动优化设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的启动优化程序,所述启动优化程序被所述处理器执行时实现如权利要求1至5中任一项所述的应用程序的启动优化方法的步骤。
8.一种应用程序的启动优化系统,其特征在于,所述启动优化系统包括后台服务器以及权利要求7所述的启动优化设备;
所述后台服务器,与所述启动优化设备建立无线连接,接收所述启动优化设备异步上报的数据信息,并基于所述数据信息,配置更优的启动策略参数表,并将配置的启动策略参数表下发所述启动优化设备以进行更新;
其中,所述数据信息至少包括以下几种:SDK的初始化时间、应用程序的启动时间、应用程序启动过程中的CPU使用率变化、应用程序启动过程中的内存占用率变化、运行应用程序的设备信息。
9.如权利要求8所述的启动优化系统,其特征在于,所述后台服务器采用层次分析法对多条启动策略进行评价,并根据评价结果,配置启动策略参数表;
其中,所述层次分析法的评价过程包括:
步骤一、建立三层阶梯层次结构模型;其中,第一层为目标层,为通过评价想要达到的目标;第二层为准则层,为针对目标而评价各方案时所考虑的各种要素;第三层为方案层,为待进行评价的方案;
步骤二、建立本层级要素与上一层级要素两两进行判断比较的判断矩阵;
步骤三、计算本层级要素与上一层级要素的相对重要度以及判断矩阵的最大特征值;
步骤四、基于所述最大特征值,对各判断矩阵进行相容性判断,若判断矩阵具有相容性,则执行步骤五;
步骤五、基于所述相对重要度,计算各层级要素关于整个层级要素的综合重要度,并根据综合重要度的数值排序,确定最优方案。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有启动优化程序,所述启动优化程序被所述处理器执行时实现如权利要求1至5中任一项所述的应用程序的启动优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711346473.7A CN107943576B (zh) | 2017-12-14 | 2017-12-14 | 应用程序的启动优化方法、装置、设备、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711346473.7A CN107943576B (zh) | 2017-12-14 | 2017-12-14 | 应用程序的启动优化方法、装置、设备、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107943576A true CN107943576A (zh) | 2018-04-20 |
CN107943576B CN107943576B (zh) | 2020-09-29 |
Family
ID=61943459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711346473.7A Active CN107943576B (zh) | 2017-12-14 | 2017-12-14 | 应用程序的启动优化方法、装置、设备、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107943576B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669735A (zh) * | 2018-12-07 | 2019-04-23 | 武汉斗鱼鱼乐网络科技有限公司 | 基于延时注册的应用启动方法、装置和存储介质 |
CN109753321A (zh) * | 2019-01-11 | 2019-05-14 | 武汉瓯越网视有限公司 | 基于协议注册的应用启动方法、装置、终端和存储介质 |
CN110083405A (zh) * | 2019-04-28 | 2019-08-02 | 北京邮电大学 | 一种函数启动方法及装置 |
CN110187935A (zh) * | 2019-05-30 | 2019-08-30 | 努比亚技术有限公司 | 一种移动终端的应用程序启动方法、移动终端及存储介质 |
CN110531985A (zh) * | 2019-08-09 | 2019-12-03 | 浙江大搜车软件技术有限公司 | Sdk初始化方法及系统、电子设备、存储介质 |
CN110597575A (zh) * | 2019-09-11 | 2019-12-20 | 阿里巴巴集团控股有限公司 | 一种sdk执行方法及系统 |
CN110865846A (zh) * | 2019-11-14 | 2020-03-06 | 北京无限光场科技有限公司 | 应用管理的方法、装置、终端、系统及存储介质 |
CN111061516A (zh) * | 2018-10-15 | 2020-04-24 | 华为技术有限公司 | 加速应用的冷启动的方法、装置和终端 |
CN112506626A (zh) * | 2020-11-17 | 2021-03-16 | 华帝股份有限公司 | 一种应用程序的启动方法、计算机设备及存储介质 |
CN112559070A (zh) * | 2020-12-09 | 2021-03-26 | 北京展心展力信息科技有限公司 | 应用程序启动时的初始化方法、装置、电子设备及介质 |
CN112988554A (zh) * | 2019-12-12 | 2021-06-18 | 阿里巴巴集团控股有限公司 | Sdk检测方法、装置、sdk、应用程序、设备和存储介质 |
CN113377462A (zh) * | 2021-07-01 | 2021-09-10 | 北京百度网讯科技有限公司 | 用于小程序的处理方法、装置、设备和存储介质 |
CN114625457A (zh) * | 2020-12-11 | 2022-06-14 | 深信服科技股份有限公司 | 桌面云环境优化方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222709A (zh) * | 2008-01-22 | 2008-07-16 | 中兴通讯股份有限公司 | 一种手机应用程序快速启动的方法 |
GB2465768A (en) * | 2008-11-27 | 2010-06-02 | Symbian Software Ltd | Launching applications by executing two operations at the same time |
CN103186386A (zh) * | 2011-12-27 | 2013-07-03 | 腾讯科技(深圳)有限公司 | 应用加载方法及系统 |
CN104268019A (zh) * | 2014-09-23 | 2015-01-07 | 广州金山网络科技有限公司 | 一种软件运行方法、装置及终端 |
CN106951298A (zh) * | 2017-04-25 | 2017-07-14 | 广州优视网络科技有限公司 | 一种提升应用启动速度的方法和装置 |
CN107193577A (zh) * | 2016-03-15 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种应用启动方法、装置和智能终端 |
-
2017
- 2017-12-14 CN CN201711346473.7A patent/CN107943576B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222709A (zh) * | 2008-01-22 | 2008-07-16 | 中兴通讯股份有限公司 | 一种手机应用程序快速启动的方法 |
GB2465768A (en) * | 2008-11-27 | 2010-06-02 | Symbian Software Ltd | Launching applications by executing two operations at the same time |
CN103186386A (zh) * | 2011-12-27 | 2013-07-03 | 腾讯科技(深圳)有限公司 | 应用加载方法及系统 |
CN104268019A (zh) * | 2014-09-23 | 2015-01-07 | 广州金山网络科技有限公司 | 一种软件运行方法、装置及终端 |
CN107193577A (zh) * | 2016-03-15 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种应用启动方法、装置和智能终端 |
CN106951298A (zh) * | 2017-04-25 | 2017-07-14 | 广州优视网络科技有限公司 | 一种提升应用启动速度的方法和装置 |
Non-Patent Citations (1)
Title |
---|
黄炜等: "移动应用程序(APP)评价指标体系研究", 《图书与情报》 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061516B (zh) * | 2018-10-15 | 2021-09-14 | 华为技术有限公司 | 加速应用的冷启动的方法、装置和终端 |
CN111061516A (zh) * | 2018-10-15 | 2020-04-24 | 华为技术有限公司 | 加速应用的冷启动的方法、装置和终端 |
CN109669735B (zh) * | 2018-12-07 | 2022-02-22 | 武汉斗鱼鱼乐网络科技有限公司 | 基于延时注册的应用启动方法、装置和存储介质 |
CN109669735A (zh) * | 2018-12-07 | 2019-04-23 | 武汉斗鱼鱼乐网络科技有限公司 | 基于延时注册的应用启动方法、装置和存储介质 |
CN109753321B (zh) * | 2019-01-11 | 2022-02-08 | 武汉瓯越网视有限公司 | 基于协议注册的应用启动方法、装置、终端和存储介质 |
CN109753321A (zh) * | 2019-01-11 | 2019-05-14 | 武汉瓯越网视有限公司 | 基于协议注册的应用启动方法、装置、终端和存储介质 |
CN110083405A (zh) * | 2019-04-28 | 2019-08-02 | 北京邮电大学 | 一种函数启动方法及装置 |
CN110187935A (zh) * | 2019-05-30 | 2019-08-30 | 努比亚技术有限公司 | 一种移动终端的应用程序启动方法、移动终端及存储介质 |
CN110531985A (zh) * | 2019-08-09 | 2019-12-03 | 浙江大搜车软件技术有限公司 | Sdk初始化方法及系统、电子设备、存储介质 |
CN110597575B (zh) * | 2019-09-11 | 2023-06-16 | 创新先进技术有限公司 | 一种sdk执行方法及系统 |
CN110597575A (zh) * | 2019-09-11 | 2019-12-20 | 阿里巴巴集团控股有限公司 | 一种sdk执行方法及系统 |
CN110865846B (zh) * | 2019-11-14 | 2023-12-12 | 北京有竹居网络技术有限公司 | 应用管理的方法、装置、终端、系统及存储介质 |
CN110865846A (zh) * | 2019-11-14 | 2020-03-06 | 北京无限光场科技有限公司 | 应用管理的方法、装置、终端、系统及存储介质 |
CN112988554A (zh) * | 2019-12-12 | 2021-06-18 | 阿里巴巴集团控股有限公司 | Sdk检测方法、装置、sdk、应用程序、设备和存储介质 |
CN112988554B (zh) * | 2019-12-12 | 2024-05-17 | 阿里巴巴集团控股有限公司 | Sdk检测方法、装置、sdk、程序、设备和存储介质 |
CN112506626A (zh) * | 2020-11-17 | 2021-03-16 | 华帝股份有限公司 | 一种应用程序的启动方法、计算机设备及存储介质 |
CN112559070A (zh) * | 2020-12-09 | 2021-03-26 | 北京展心展力信息科技有限公司 | 应用程序启动时的初始化方法、装置、电子设备及介质 |
CN112559070B (zh) * | 2020-12-09 | 2024-06-14 | 北京展心展力信息科技有限公司 | 应用程序启动时的初始化方法、装置、电子设备及介质 |
CN114625457A (zh) * | 2020-12-11 | 2022-06-14 | 深信服科技股份有限公司 | 桌面云环境优化方法、装置、设备及存储介质 |
CN114625457B (zh) * | 2020-12-11 | 2024-02-27 | 深信服科技股份有限公司 | 桌面云环境优化方法、装置、设备及存储介质 |
CN113377462A (zh) * | 2021-07-01 | 2021-09-10 | 北京百度网讯科技有限公司 | 用于小程序的处理方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107943576B (zh) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107943576A (zh) | 应用程序的启动优化方法、装置、设备、系统及介质 | |
JP5795349B2 (ja) | アプリケーションをローカルで起動すべきかまたはリモートでウェブアプとして起動すべきかを決定する装置 | |
CN105979009B (zh) | 一种针对云应用容器的增加负载自动均衡方法 | |
CN109144688B (zh) | 异构多核可重构计算平台上任务调度的方法和装置 | |
CN103238136B (zh) | 对于异构迁移环境的虚拟机变化 | |
CN104410672B (zh) | 网络功能虚拟化应用升级的方法、转发业务的方法及装置 | |
CN110324164A (zh) | 一种网络切片的部署方法及装置 | |
US8850449B2 (en) | Method and apparatus for providing resource allocation policy | |
JP5749814B2 (ja) | プレディケートを用いた動的なデバイス・コンフィグレーション | |
CN106022007B (zh) | 面向生物组学大数据计算的云平台系统及方法 | |
CN104813327A (zh) | 用于移动通信和计算的装置及方法 | |
CN109067890A (zh) | 一种基于docker容器的CDN节点边缘计算系统 | |
CN108399132A (zh) | 一种调度测试方法、装置及存储介质 | |
US20190268404A1 (en) | Rolling capacity upgrade control | |
JPWO2007072544A1 (ja) | 情報処理装置、計算機、リソース割り当て方法及びリソース割り当てプログラム | |
US20210248016A1 (en) | Systems and methods for virtual machine resource optimization using machine learning techniques | |
US20220075665A1 (en) | Scheduling method for selecting optimal cluster within cluster of distributed collaboration type | |
CN109474459A (zh) | 域名配置管理方法、装置、计算机设备及存储介质 | |
CN108696373B (zh) | 虚拟资源分配方法、nfvo和系统 | |
CN114327881A (zh) | 任务调度方法及装置 | |
US9372731B1 (en) | Automated firmware settings framework | |
CN106997309A (zh) | 一种cpu核心的管理方法、装置及终端 | |
CN110795205B (zh) | 基于软件容器提供云端服务的系统及方法 | |
TWI493356B (zh) | 非同步通信的方法、非同步地與網路瀏覽器通信的方法,及用於與網路通信的系統 | |
US10423398B1 (en) | Automated firmware settings management |
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 |