CN108595230B - 应用程序预加载方法、装置、存储介质及终端 - Google Patents
应用程序预加载方法、装置、存储介质及终端 Download PDFInfo
- Publication number
- CN108595230B CN108595230B CN201810462440.7A CN201810462440A CN108595230B CN 108595230 B CN108595230 B CN 108595230B CN 201810462440 A CN201810462440 A CN 201810462440A CN 108595230 B CN108595230 B CN 108595230B
- Authority
- CN
- China
- Prior art keywords
- application program
- preloaded
- interface
- application
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 230000001960 triggered effect Effects 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims description 25
- 238000012549 training Methods 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 21
- 230000009471 action Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 11
- 238000005070 sampling Methods 0.000 claims description 10
- 238000010801 machine learning Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 16
- 230000008901 benefit Effects 0.000 description 13
- 230000000694 effects Effects 0.000 description 12
- 239000002609 medium Substances 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 9
- 230000036316 preload Effects 0.000 description 9
- 210000001508 eye Anatomy 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000003825 pressing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005242 forging Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000011022 operating instruction Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000011230 binding agent Substances 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000005252 bulbus oculi Anatomy 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 210000004279 orbit Anatomy 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000011895 specific detection Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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/44594—Unloading
Abstract
本申请实施例公开了应用程序预加载方法、装置、存储介质及终端。该方法包括:检测到应用预加载事件被触发时,确定待预加载应用程序;对待预加载应用程序对应的启动资源进行预加载;预测待预加载应用程序中包含的目标界面,其中,目标界面包括根据待预加载应用程序的历史运行规律预测出的即将被用户打开的界面;对目标界面进行预加载。本申请实施例通过采用上述技术方案,可以在对预测出来的用户即将打开的应用程序的启动资源进行预加载的基础上,预测用户即将打开的界面,对该界面进行预加载,在提高应用程序启动速度的基础上,进一步提高界面打开速度。
Description
技术领域
本申请实施例涉及应用程序加载技术领域,尤其涉及应用程序预加载方法、装置、存储介质及终端。
背景技术
目前,诸如智能手机、平板电脑、笔记本电脑以及智能家电等终端已成为人们日常生活中必不可少的电子设备。随着终端设备不断地智能化,多数终端设备中都装载有操作系统,使得终端设备能够安装丰富多样的应用程序,满足用户不同的需求。
随着终端设备的配置不断提升,多数终端设备中可以安装几十甚至上百个应用程序,而随着应用程序的功能日益丰富,应用程序运行时所需加载的资源也越来越多。当用户选择启动一个应用程序时,终端会对该应用程序启动所需的资源进行加载,待加载完毕后,进入应用程序的初始界面,整个过程通常要花费数秒甚至十几秒的时间,导致应用程序的启动效率较低,亟需改进。
发明内容
本申请实施例提供一种应用程序预加载方法、装置、存储介质及终端,可以优化应用程序的加载方案。
第一方面,本申请实施例提供了一种应用程序预加载方法,包括:
检测到应用预加载事件被触发时,确定待预加载应用程序;
对所述待预加载应用程序对应的启动资源进行预加载;
预测所述待预加载应用程序中包含的目标界面,其中,所述目标界面包括根据所述待预加载应用程序的历史运行规律预测出的即将被用户打开的界面;
对所述目标界面进行预加载。
第二方面,本申请实施例提供了一种应用程序预加载装置,包括:
应用确定模块,用于在检测到应用预加载事件被触发时,确定待预加载应用程序;
第一预加载模块,用于对所述待预加载应用程序对应的启动资源进行预加载;
界面预测模块,用于预测所述待预加载应用程序中包含的目标界面,其中,所述目标界面包括根据所述待预加载应用程序的历史运行规律预测出的即将被用户打开的界面;
第二预加载模块,用于对所述目标界面进行预加载。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的应用程序预加载方法。
第四方面,本申请实施例提供了一种终端,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的应用程序预加载方法。
本申请实施例中提供的应用程序预加载方案,检测到应用预加载事件被触发时,确定待预加载应用程序并对待预加载应用程序对应的启动资源进行预加载,预测待预加载应用程序中包含的即将被用户打开的目标界面,对目标界面进行预加载。通过采用上述技术方案,可以在对预测出来的用户即将打开的应用程序的启动资源进行预加载的基础上,预测用户即将打开的界面,对该界面进行预加载,在提高应用程序启动速度的基础上,进一步提高界面打开速度。
附图说明
图1为本申请实施例提供的一种应用程序预加载方法的流程示意图;
图2为本申请实施例提供的一种预加载活动窗口堆栈与显示屏幕显示区域的相对位置关系示意图;
图3为本申请实施例提供的又一种预加载活动窗口堆栈与显示屏幕显示区域的相对位置关系示意图;
图4为本申请实施例提供的一种应用界面迁移示意图;
图5为本申请实施例提供的另一种应用程序预加载方法的流程示意图;
图6为本申请实施例提供的一种桌面示意图;
图7为本申请实施例提供的又一种应用程序预加载方法的流程示意图;
图8为本申请实施例提供的又一种桌面示意图;
图9为本申请实施例提供的一种应用程序预加载装置的结构框图;
图10为本申请实施例提供的一种终端的结构示意图;
图11为本申请实施例提供的又一种终端的结构示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本申请的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
图1为本申请实施例提供的一种应用程序预加载方法的流程示意图,该方法可以由应用程序预加载装置执行,其中该装置可由软件和/或硬件实现,一般可集成在终端中。如图1所示,该方法包括:
步骤101、检测到应用预加载事件被触发时,确定待预加载应用程序。
示例性的,本申请实施例中的终端可包括手机、平板电脑、笔记本电脑以及智能家电等终端设备。终端中装载有操作系统。
示例性的,应用预加载事件的触发条件可以根据实际情况设置,本申请实施例不作具体限定。例如,可以在检测到用户的动作满足预设条件(如拿起终端、输入屏幕解锁操作或输入终端解锁操作等)时,触发应用预加载事件;或者可以在检测到前台应用程序发生变更时,触发应用预加载事件;或者可以在预加载应用的预测流程结束后,立即(或经过预设时长后)触发应用预加载事件;或者可以定时间隔触发等等。当应用预加载事件被触发后,系统可以通过读取标志位或接收触发指令等方式检测到应用预加载事件已被触发,具体的检测方式本申请实施例也不做限定。
示例性的,待预加载的应用程序可以理解为用户可能即将打开的应用程序,可以是预先设置好的固定的应用程序,也可以是采用一定的方式预测出来的应用程序等。待预加载的应用程序可以包括一个或多个。
可选的,可采用预测模型对待预加载的应用程序进行预测。该预测模型可以是机器学习模型,所采用的算法可以包括循环神经网络(Recurrent neural networks,RNN)、长短期记忆(Long Short-Term Memory,LSTM)网络、门限循环单元、简单循环单元、自动编码器、决策树、随机森林、特征均值分类、分类回归树、隐马尔科夫、K最近邻(k-NearestNeighbor,KNN)算法、逻辑回归模型、贝叶斯模型、高斯模型以及KL散度(Kullback–Leibler divergence)等等。
可选的,可在用户使用终端的过程中,采集训练样本,采用训练样本对预设初始模型进行训练,最终得到用于预测待预加载的应用程序的预测模型。示例性的,训练样本中包含的元素可包括应用程序被打开的时间序列或次序序列;可包括应用程序被打开的时间、地点以及频次等;可包括终端的运行状态,如移动数据网络的开关状态、无线热点的连接状态、所连接的无线热点的身份信息、当前运行的应用程序、上一个前景应用程序、当前应用程序在后台停留的时长、当前应用程序最近一次被切换至后台的时间、耳机插孔的插拔状态、充电状态、电池电量信息以及屏幕显示时长等等;还可包括终端中集成的传感器采集到的数据,如运动传感器、光线传感器、温度传感器以及湿度传感器等等。
示例性的,可根据所选用的机器学习模型选择合适的样本元素,也可根据所选的样本元素确定所选用的机器学习模型,还可结合对预测准确度以及预设速度等方面的需求进行模型及样本元素的选择等,本申请实施例不做限定。
本申请实施例中,确定待预加载应用程序可以包括根据预测模型之前的输出结果确定待预加载应用程序,也可以包括利用预测模型进行预测,将预测模型的当前输出结果确定待预加载应用程序。
本申请实施例中,当待预加载应用程序为多个(N个)时,预测模型可以输出候选应用程序集合中每个候选应用集合的启动概率,将启动概率较高的候选应用确定为待预加载应用程序。可选的,所述确定待预加载应用程序,包括:预测候选应用程序的启动概率;将启动概率较高的预设数值个候选应用程序确定为待预加载应用程序。示例性的,候选应用程序可包括终端中安装的所有应用程序,也可包括部分应用程序。部分应用程序可以不包含系统应用程序,还可以不包含用户很少使用的应用程序。本申请实施例对候选应用程序的确定方式以及数量不做限定。可选的,可根据当前时刻之前的预设时段内各应用程序的使用次数和/或使用时长确定候选应用程序,预设时段例如是1个月,当使用次数和/或使用时长超过相应的阈值时,将所对应的应用程序确定为候选应用程序,或者,按照使用次数和/或使用时长对各应用程序进行排序,将排名靠前的应用程序确定为候选应用程序。
示例性的,可采用上文所述的预测模型来确定各候选应用程序的启动概率。例如,按照预测模型训练时的训练样本,采集当前样本,将当前样本输入至预测模型中,得到各候选应用程序的启动概率。可对启动概率进行由高到低的排序,将排在前N(N为预设数值)的候选应用程序确定为待加载应用程序。这样设置的好处在于,能够对多个应用程序进行预加载,且这多个应用程序是根据启动概率来确定的,可以提高预测的准确性。
步骤102、对所述待预加载应用程序对应的启动资源进行预加载。
本申请实施例中,当待预加载应用程序仅有一个时,无需考虑应用的预加载顺序;而当待预加载应用程序有多个时,可将多个待预加载应用程序逐一确定为当前待预加载应用程序,并依次进行预加载操作,也可将2个以上待预加载的应用程序确定为当前待预加载应用程序,并同时进行预加载操作,也就是说多个应用程序的预加载过程可以是并行进行的。
本申请实施例中对预加载的具体过程以及所加载的启动资源不做限定,例如可为待预加载应用程序分配相应的硬件资源,并基于分配的硬件资源加载启动所需的相关数据。示例性的,可包括应用进程启动、应用服务启动、内存分配、文件内容读取、网络数据获取以及界面渲染(如绘制应用程序的启动画面)等。此外,预加载的资源也可根据待预加载应用程序的具体类型来确定。
步骤103、预测所述待预加载应用程序中包含的目标界面。
其中,所述目标界面包括根据所述待预加载应用程序的历史运行规律预测出的即将被用户打开的界面。
本申请实施例中,对目标界面的数量不做限定,可以包括一个或多个。用户在使用应用程序的过程中,通常都会有自己的使用习惯,并按照自己的使用习惯对应用程序进行操作,使得应用程序在用户的操作下会呈现出一定的运行规律,如打开各界面的顺序或频次、在各个界面停留的时长等等,可采集上述运行规律相关的数据(如应用程序对应的日志信息),统计或分析出应用程序的历史运行规律,需要预测目标界面时,根据该应用程序对应的历史运行规律预测即将被用户打开的界面。此外,还可根据当前使用场景进行目标界面的预测等。
步骤104、对所述目标界面进行预加载。
本申请实施例中,当目标界面仅有一个时,无需考虑目标界面的预加载顺序;而当目标界面有多个时,可将多个目标界面逐一确定为当前待预加载的目标界面,并依次进行预加载操作,也可将2个以上的目标界面确定为当前待预加载的目标界面,并同时进行预加载操作,也就是说多个目标界面的预加载过程可以是并行进行的。
本申请实施例中,对目标界面的预加载过程不做限定。例如,可以包括目标界面对应的网络数据获取、界面内容获取以及界面绘制等,可根据目标界面的具体类型或包含的内容等情况进行设计。
在对目标界面进行预加载之后,若用户选择启动已经进行了预加载的应用程序,那么会基于已预加载的启动资源启动该应用程序,在需要打开目标界面时,可基于已预加载的界面资源快速打开目标界面,提高目标界面的打开速度。
本申请实施例中提供的应用程序预加载方法,检测到应用预加载事件被触发时,确定待预加载应用程序并对待预加载应用程序对应的启动资源进行预加载,预测待预加载应用程序中包含的即将被用户打开的目标界面,对目标界面进行预加载。通过采用上述技术方案,可以在对预测出来的用户即将打开的应用程序的启动资源进行预加载的基础上,预测用户即将打开的界面,对该界面进行预加载,在提高应用程序启动速度的基础上,进一步提高界面打开速度。
在一些实施例中,所述对所述目标界面进行预加载包括:当检测到作用于所述待预加载应用程序中包含的目标应用程序的预设动作时,对所述目标应用程序中包含的目标界面进行预加载。这样设置的好处在于,在检测到用户的预设操作时,才会对预设操作对应的用户极有可能打开的目标应用程序的目标界面进行预加载,避免因预加载过多应用程序对应的目标界面而影响预加载效率以及浪费系统资源。此外,对于目标界面的预测操作已经完成,在确定目标应用程序后,可直接进行目标界面的预加载,提高预加载速度。
本申请实施例中,当待预加载应用程序为一个时,目标应用程序即为待预加载应用程序,即检测到作用于待预加载应用程序的预设动作时,将该待预加载应用程序确定为目标应用程序。当待预加载应用程序为多个时,可根据用户的预设动作的作用对象来确定目标应用程序,此时,目标应用程序可以是一个或多个,可由预设动作来确定。
示例性的,所述预设动作可包括触发显示所述目标应用程序的启动入口的操作。这样设置的好处在于,能够快速确定目标应用程序。其中,启动入口例如可以是应用程序的图标(如桌面图标),还可以是如应用管理器界面中的应用名称等入口。一般的,终端中会有很多个应用程序,桌面或应用管理界面中可能无法一次性显示所有的应用程序,当终端在用户的操作下显示桌面或显示应用管理界面时,可将当前桌面或当前应用管理界面中出现的待预加载应用程序确定为目标应用程序。具体的,当所述启动入口包括桌面图标时,所述触发显示所述目标应用程序的启动入口的操作,包括:触发显示桌面界面的操作,所述桌面界面中包含所述目标应用程序对应的桌面图标。
示例性的,所述预设动作可包括即将触发所述目标应用程序的启动入口的手势操作。这样设置的好处在于,可准确确定目标应用程序。在本申请实施例中,可通过传感器或摄像头等部件来检测即将触发目标应用程序的启动入口的手势操作。可选的,即将触发目标应用程序的启动入口的手势操作可包括如:手指在空中逐渐接近屏幕中显示的目标应用程序的启动入口,或者,手指按下目标应用程序的启动入口等。以终端屏幕为触摸屏为例,例如,可通过摄像头(如前置摄像头或当前位置位于终端正面的可旋转摄像头)实时获取屏幕前方的环境图像,当识别到用户手指不断接近屏幕时,可对环境图像进行分析,预测出手指即将与屏幕相接触的坐标,进而确定用户即将触发哪个应用程序的启动入口。又如,用户想要触发某个应用程序的启动入口时,通常首先要做的事情就是让手指与屏幕接触,即手指按下屏幕的某个位置,然后再进行手势动作的输入,如点击(按下后抬起)、长按(按下后停留一定时间再抬起)、或拖动(按下后在屏幕上滑动)等,进而触发启动入口,因此,本申请实施例中可以将按下目标应用程序的启动入口认为是即将触发所述目标应用程序的启动入口的手势操作。
具体的,当所述启动入口包括桌面图标时。所述即将触发所述目标应用程序的启动入口的手势操作,包括:相对于显示屏处于隔空状态的手指逐渐接近所述目标应用程序对应的桌面图标,且两者之间的直线距离达到预设距离值;或,手指按下所述目标应用程序对应的桌面图标。这样设置的好处在于,能够更加明确地确定目标应用程序。其中,预设距离值可自由设置,例如为1厘米或其他数值。
示例性的,所述预设动作可包括注视所述目标应用程序的启动入口。这样设置的好处在于,可快速确定目标应用程序。示例性的,可以通过摄像头采集用户的人脸图像或人眼图像,对图像进行分析,利用眼睛与终端屏幕的终端位置以及眼球与眼眶的相对位置来判断出用户眼睛注视的焦点,该焦点对应的启动入口所属应用程序即目标应用程序。可以理解的是,用户的眼睛注视的焦点可能是动态变化的,因为用户可能在寻找目标应用程序的启动入口,当用户找到目标应用程序后,一般会将目光停留一定的时间(如1秒),依照该规律可快速判断出用户想要打开哪个应用程序,进而将该应用程序确定为目标应用程序。
本申请实施例中,先通过预测模型等手段预测用户即将启动的应用程序,该预测的准确度一般会受到一定的限制,因为用户实际想要打开哪个应用程序可能会受到多重因素的影响,因此,先对该应用程序的启动资源进行预加载,并对完成启动资源预加载的应用程序进行目标界面的预测。当检测到用户的预设动作时,该预设动作对应的目标应用程序极有可能是用户当前将要打开的应用程序,在真正打开该应用程序之前,利用之前的预测结果,直接对对应的目标界面进行预加载,可提高目标界面的打开速度。
在一些实施例中,所述预测所述待预加载应用程序中包含的目标界面,包括:当检测到作用于所述待预加载应用程序中包含的目标应用程序的预设动作时,预测所述待预加载应用程序中包含的目标界面。这样设置的好处在于,在检测到用户的预设操作时,才会对预设操作对应的用户极有可能打开的目标应用程序的目标界面进行预测,在避免因预加载过多应用程序对应的目标界面而影响预加载效率以及浪费系统资源的基础上,进一步避免过多的预测操作(仅需针对目标应用程序进行目标页面的预测,而目标应用程序以外的已进行启动资源预加载的待预加载应用程序则无需进行目标界面的预测)占用系统资源。关于目标应用程序的确定以及预设动作的说明可参考前文相应内容,此处不再赘述。
在一些实施例中,所述预测所述待预加载应用程序中包含的目标界面包括:根据所述待预加载应用程序在历史采样周期内的运行过程中,所包含的各个界面被打开的顺序、被打开的频次或停留时长,预测所述待预加载应用程序中包含的目标界面。示例性的,历史采样周期可包括从当前时刻开始向前追溯预设时长后得到的时间段。例如从今天开始向前追溯30天,历史采样周期的长度为1个月;又如从当前上午9点开始向前追溯24小时,历史采样周期的长度为1天。此外,历史采样周期也可以是固定的周期,例如每个月的1日到当月最后以前,或者每天的0点到24点等。对于一个应用程序来说,可能具备多个功能,每个功能下可能包含多个界面,以微信为例,包括聊天列表界面、聊天界面、通讯录界面、朋友圈界面、扫一扫界面、摇一摇界面以及钱包界面等。用户在使用应用程序的过程中,终端可以记录应用程序在用户操作下的运行规律。示例性的,各个界面被打开的顺序可包括应用程序启动后在用户操作下打开的第1个界面、第2个界面,……第N个界面,形成打开顺序序列,其中,第1个界面不是应用程序启动时默认打开的启动界面,而是需要用户主动打开的界面,同一个界面首次被打开之后再被打开时可忽略不计,即不列入打开顺序序列中。一个界面被打开的频次可包括在历史采样周期内该界面被打开的总次数,或历史采样周期内的单位时长(例如5分钟)内被打开的次数等。一个界面的停留时长可包括该界面持续在显示屏上进行显示的时长,在显示期间,用户可以查看界面内容或对界面进行滑动等操作。一般的,被打开的顺序越靠前、被打开的频次越高、或停留时间越长,对应的界面成为目标界面的概率越高,可根据该规律为应用程序中包含的各界面进行综合评分,得到每个界面成为目标界面的概率,进而将概率较高的一个或多个界面确定为目标界面。
在一些实施例中,所述预测所述待预加载应用程序中包含的目标界面包括:获取当前使用场景信息,根据所述当前使用场景信息预测所述待预加载应用程序中包含的目标界面。示例性的,使用场景信息可包括如终端所处地点,终端的运行状态(如移动数据网络的开关状态、无线热点的连接状态、所连接的无线热点的身份信息、耳机插孔的插拔状态、充电状态、电池电量信息以及屏幕显示时长等等),终端中集成的传感器(如运动传感器、光线传感器、温度传感器以及湿度传感器)采集到的数据等等。这样设置的好处在于,能够更加准确地预测出目标界面。
在一些实施例中,在所述检测到应用预加载事件被触发时,确定待预加载应用程序之前,还包括:在应用程序的运行过程中,当发生界面切换时,采集使用场景信息作为训练样本,将切换后的界面记为所述训练样本对应的样本标记,根据所述训练样本和对应的样本标记对预设机器学习模型进行训练,得到界面预测模型。相应的,所述根据所述当前使用场景信息预测所述待预加载应用程序中包含的目标界面,包括将所述当前使用场景信息输入至所述界面预测模型中,根据所述界面预测模型的输出结果确定目标界面。这样设置的好处在于,利用采集到的训练样本对机器学习模型进行训练,在需要进行目标界面预测时,根据预测模型的输出结果进行预测,预测速度快且结果准确性高。
在一些实施例中,也可根据所述待预加载应用程序在历史采样周期内的运行过程中,所包含的各个界面被打开的顺序、被打开的频次或停留时长,以及预测模型的输出结果综合确定目标界面。这样设置的好处在于,能够进一步提高预测准确度。另外,也可将各个界面被打开的顺序、被打开的频次或停留时长作为训练样本的一部分,加入到上述包含使用场景信息的训练样本中,对预设机器学习模型进行训练,得到界面预测模型,使得模型的输出结果更加准确。
在一些实施例中,所述对所述目标界面进行预加载,包括:基于预先创建的预加载活动窗口堆栈预加载所述目标界面,其中,所述预加载活动窗口堆栈对应的边界坐标位于显示屏幕的坐标范围之外。这样设置的好处在于,在对目标界面进行预加载的过程中,不会影响到前台应用程序的显示内容在显示屏幕上的显示。
本申请实施例中,活动窗口可理解为一个独立的直接面向用户提供交互和操作的界面,在不同的操作系统中可能采用不同的名词来命名该界面。为了便于理解,下面以安卓(Android)操作系统为例进行下面的说明。
在Android系统中,活动窗口被称为Activity。Activity是一个负责与用户交互的组件,其提供一个屏幕(可以理解为屏幕界面,而非实体的显示屏幕),以供用户交互完成某项任务。在一个android应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件。在对Activity进行管理中,有这样两个概念:Task(任务栈)和Stack(活动窗口堆栈)。Task对应一个应用程序,Task用于存放Activity,一个Task中可以存放一个或多个Activity,且这些Activity遵循“先进后出,后进先出”的原则。而Stack又用于对Task进行管理,通常,一个Stack对一个屏幕所需展示的各Activity所属的Task进行管理,一个Stack可以管理一个或多个Task,当然,Stack也同样遵循堆栈的基本管理原则。这里所述的屏幕并不一定是完整独立的显示屏,以“两个屏幕”为例,这两个屏幕可能只是一个完整显示屏中两个独立显示各自显示内容的区域。当然,如果终端具备两个甚至是两个以上的独立显示屏,则“两个屏幕”也可以是两个独立的显示屏。
在Android系统中,支持多窗口模式,可包括分屏模式、画中画模式以及自由模式(FreeForm)。在多窗口模式下,应用程序所在的Stack可以有自己的尺寸(size),可以包括以终端屏幕左上角为原点的坐标系中的上下左右坐标。例如,(a,b,c,d),一般描述的是一个矩形的边界,可采用矩形左上角的坐标和右下角的坐标进行表示,即矩形的左上角坐标为(a,b),右下角坐标为(c,d),这样的矩形区域就对应Stack的size。Stack中的应用内布局是以Stack的size为准的,也就是说Activity对应的应用界面是在size的边界范围内进行显示的。
在多窗口模式下,可以允许多个应用程序处于可见状态,包括系统和用户均可见和仅系统可见。系统和用户均可见指的是在显示屏幕上进行显示,且用户能够看到;仅系统可见指的是操作系统可见,而用户不可见,可能被前台的应用遮挡或者如本申请所要实现的在显示屏幕外显示。
本申请实施例中,在显示屏幕外对目标界面进行预加载,可以基于操作系统的多窗口机制来实现,通过多窗口机制将应用程序对应的size设在显示屏幕外而达到对用户不可见的目的,从而不会影响到前台应用程序的显示内容在显示屏幕上的显示。
一般的,多窗口模式下,可以存在多种类型的Stack,如Home Stack表示桌面应用显示的Stack,App Stack表示第三方应用显示的Stack,还可以有其他分屏Stack等,上述三种Stack中包含的内容可在显示屏幕上显示,本申请实施例中统称为应用活动窗口堆栈。本申请实施例中,新增了预加载活动窗口堆栈(预加载Stack),用于表示预加载应用显示的Stack,并设置预加载Stack的边界坐标位于显示屏幕的坐标范围之外,待预加载的应用程序可以显示在该Stack。对于Android系统来说,可以基于Android系统的多窗口机制,新建一个专门用于显示预加载应用的Stack。本申请实施例中,新建Stack是因为可以让新建的预加载Stack拥有自己的size以及可见性,从而实现在显示屏幕外预加载的目的。
本申请实施例中,对预加载Stack的创建时机不做限定,可以是在终端出厂前默认设置预加载Stack处于常驻状态,即预加载Stack一直存在;也可以在终端开机时或终端解锁成功后创建;还可以在应用预加载事件被触发后(可以在确定目标应用程序之前)创建等等。
在一些实施例中,对待预加载应用程序对应的启动资源进行预加载可包括:对待预加载应用程序对应的启动界面(包括启动动画和/或启动后进入的应用主界面)进行预加载。具体的,可基于预先创建的预加载活动窗口堆栈预加载待预加载应用程序对应的启动界面,也即先基于预加载Stack预加载待预加载应用程序的启动界面,再基于该预加载Stack预加载目标界面。在预加载启动界面时,可包括:创建待预加载应用程序对应的目标进程;在预先创建的预加载活动窗口堆栈中创建待预加载应用程序对应的任务栈;基于所述目标进程在所述任务栈中启动待预加载应用程序对应的活动窗口;基于所启动的活动窗口绘制并显示待预加载应用程序对应的启动界面。随后,可在上述任务栈下启动新的活动窗口,基于新的活动窗口绘制并显示目标界面。
在一些实施例中,还可包括:向待预加载应用程序发送伪造焦点通知,并基于所述伪造焦点通知进行界面的绘制以及显示。这样设置的好处在于,能够在待预加载应用程序获得焦点并对系统可见的情况下完成应用界面(包括启动界面和目标界面)的绘制及显示,且不对前台应用的焦点产生影响。本申请实施例中的焦点又称为输入焦点,伪造焦点与前台应用对应的焦点相互独立。一般的,对于目前的Android系统来说,焦点是唯一的,例如触摸等输入操作只对焦点生效,对于输入焦点信息,系统端和应用端是一致的,系统端一旦修改输入焦点信息,就会向应用发送输入焦点信息发生变化的信息,以此方法保证系统端和应用端输入焦点信息一致。本申请实施例中,通过分离系统端和应用端输入焦点信息的方式,实现应用端可伪造焦点的目的。具体的,本申请实施例中,对预加载应用伪造焦点通知,使预加载应用具有焦点信息,而系统端的焦点信息仍然是正确的,这样处理可以使得预加载应用能够正常绘制。焦点存在于系统端和应用端,可认为是服务端(server)和客户端(client),系统端记录拥有焦点的应用,应用端保存标志位(flag)标识自己是否有焦点。伪造输入焦点的时机可以是当Android的窗口系统新增窗口,需要更新焦点时,生成伪造焦点通知并进行发送。伪造焦点的方法可以是调用窗口的client端的改变窗口焦点的方法,使得该窗口获取焦点。具体的,可基于Binder机制进行伪造焦点通知的发送,Binder机制是Android系统的进程间通信的最常用的方式,采用c/s架构,即客户/服务架构。
在一些实施例中,在对所述目标界面进行预加载之后,还包括:在接收到已进行预加载的应用程序的运行指令时,基于已预加载的启动资源启动所述应用程序,在接收到针对目标界面的打开操作时,基于已预加载的界面资源打开所述目标界面;或者,在接收到已进行预加载的应用程序的运行指令时,基于已预加载的启动资源启动所述应用程序,并基于已预加载的界面资源进入所述目标界面。
对于上述第一种方案,在用户真正启动某个已进行预加载的应用程序后,终端会接收到针对该应用程序的运行指令,此时可基于已预加载的启动资源启动该应用程序,但暂时不会打开预加载的目标界面,而是当用户真正想要打开已预加载的目标界面时,再基于已预加载的界面资源打开目标界面,在尊重用户当前操作需求的情况下,提高目标界面的打开速度。
对于上述第二种方案,在用户真正启动某个已进行预加载的应用程序后,终端会接收到针对该应用程序的运行指令,此时可基于已预加载的启动资源启动该应用程序,同时,由于目标界面是之前预测出来的用户即将打开的界面,那么可在启动该应用程序的同时,直接进入目标界面,节省用户寻找并打开目标界面的操作,节省用户时间的同时,提高目标界面的打开速度,也使得终端更加智能化。
在一些实施例中,如果目标界面是基于预先创建的预加载活动窗口堆栈进行预加载的,那么,基于已预加载的界面资源打开目标界面,可包括:将所述预加载活动窗口堆栈中包含的目标界面迁移至显示屏幕进行显示。具体的过程可包括:将预加载活动窗口堆栈中包含的与所述目标界面对应的任务栈迁移至应用活动窗口堆栈的顶部;更新所述任务栈的尺寸信息、配置信息和可见性,以实现所述目标界面在显示屏幕进行显示。这样设置的好处在于,能够保证界面迁移过程的稳定性,保证恢复过程不会出现卡屏、黑屏或迁移速度慢等问题。
对于一些终端来说,尤其是手机及平板电脑等移动终端,为了方便用户的使用,显示屏幕的显示方式通常包括竖屏显示和横屏显示,许多应用程序默认采用竖屏方式进行显示,而有些应用程序默认采用横屏方式进行显示(如一些网络游戏),在终端的使用过程中,有些应用程序还会随着用户握持终端的方向而进行横竖屏显示的切换。在本申请的一些实施例中,所述预加载活动窗口堆栈对应的边界坐标为(H,0,2H,H),所述边界坐标对应的坐标系为系统坐标,所述系统坐标的原点为所述显示屏幕的左上角,H为所述显示屏幕的显示区域的长边长度。也就是说,H对应的边是显示屏幕的显示区域的最大边,在竖屏显示时为显示屏幕的高,在横屏显示时为显示屏幕的宽。这样设置的目的是考虑到显示屏幕横屏、预加载应用横屏显示,以及一些应用程序的正常显示。图2为本申请实施例提供的一种预加载活动窗口堆栈与显示屏幕显示区域的相对位置关系示意图。如图2所示,此时显示屏幕为竖屏方式,终端系统坐标的原点为显示屏幕201的左顶点(0,0),显示屏幕201的宽度方向为X轴,高度方向为Y轴,预加载Stack202对应的边界坐标为(H,0,2H,H),H为屏幕高,即左边实线矩形范围内的区域为主屏幕显示区域,右边虚线矩形范围内的区域为预加载显示区域。图3为本申请实施例提供的又一种预加载活动窗口堆栈与显示屏幕显示区域的相对位置关系示意图。如图3所示,此时显示屏幕为横屏方式,终端系统坐标的原点为显示屏幕301的左顶点(0,0),显示屏幕301的高度方向为X轴,宽度方向为Y轴,预加载Stack202对应的边界坐标为(H,0,2H,H),H为屏幕高,即左边实线矩形范围内的区域为主屏幕显示区域,右边虚线矩形范围内的区域为预加载显示区域。
预加载Stack各个边界如此设置的原因在于:
左上角的横坐标为H,是为了防止横屏时显示屏幕(也可称为主屏幕)显示到预加载应用的界面,因为主屏幕除了竖屏模式,还有横屏模式,当主屏幕横屏的时候,为了防止主屏幕显示区域显示了预加载的应用的局部,所以将预加载Stack对应的矩形区域的左上角横坐标设为屏幕高。
左上角的纵坐标为0,是为了预加载应用能够正确计算状态栏高度。Android应用为了更好的设计用户界面(User Interface,UI),会自定义顶部状态栏,如果上边对应的纵坐标不等于0,那么状态栏的高度可能会错误。
右下角的横坐标为2H(2倍屏幕高),即预加载Stack对应的矩形的宽=屏幕高,是为了预加载Stack的size能够包含预加载时候的横屏应用(即应用界面为横屏显示方式的应用程序)。
右下角的纵坐标为H,即预加载Stack对应的矩形的高=屏幕高,是为了预加载Stack的size能够包含预加载时候的竖屏应用。
基于上述的原因,发明人将预加载Stack的size设置为(H,0,2H,H)。
此外,图4为本申请实施例提供的一种应用界面迁移示意图,如图4所示,在需要显示目标界面时,将预加载活动窗口堆栈中包含的目标界面401迁移至显示屏幕201进行显示,具体的,将目标界面所属的task迁移至应用活动窗口Stack的顶部,并更新该task的尺寸信息、配置信息和可见性,从而目标界面能够在显示屏幕上正常显示。
图5为本申请实施例提供的另一种应用程序预加载方法的流程示意图,该方法包括如下步骤:
步骤501、检测到应用预加载事件被触发时,利用预设应用预测模型预测候选应用程序的启动概率。
示例性的,预设数值为4个。假设预测出来的待预加载应用程序包括微信、QQ、支付宝和百度地图。
步骤502、将启动概率较高的预设数值个候选应用程序确定为待预加载应用程序。
步骤503、对待预加载应用程序对应的启动资源进行预加载。
步骤504、利用预设界面预测模型预测待预加载应用程序中包含的目标界面。
示例性的,预测出微信对应的目标界面为朋友圈界面,QQ对应的目标界面为QQ空间界面,支付宝对应的目标界面为公交码界面,百度地图对应的目标界面为输入目的地界面。
步骤505、检测到触发显示应用程序的启动入口的操作。
示例性的,触发显示应用程序的启动入口的操作可以是进入终端的桌面,桌面中当前显示的应用图标即应用程序的启动入口。图6为本申请实施例提供的一种桌面示意图,如图6所示,该桌面中包含了7个应用程序,每个应用程序的桌面图标即对应的启动入口,用户可通过点击桌面图标来启动对应的应用程序。
步骤506、判断启动入口对应的应用程序中是否包含待预加载应用程序,若是,则执行步骤507;否则,结束流程。
示例性的,将步骤502中预测出来的待预加载应用程序与当前桌面中显示的应用程序进行比较,可以得出启动入口对应的应用程序中包含了待预加载应用程序微信和QQ。
步骤507、将所包含的待预加载应用程序确定为目标应用程序。
示例性的,将微信和QQ均作为目标应用程序。
步骤508、对目标应用程序中包含的目标界面进行预加载。
示例性的,可包括对微信的朋友圈界面和QQ的QQ空间界面进行预绘制,还可包括在屏幕坐标范围外预显示。
步骤509、在接收到目标应用程序的运行指令时,基于已预加载的启动资源启动目标应用程序。
示例性的,当用户点击微信对应的桌面图标后,接收到微信的运行指令,基于已预加载的启动资源启动微信,可有效提升微信的启动速度。
步骤510、在接收到针对目标界面的打开操作时,基于已预加载的界面资源打开目标界面。
示例性的,在用户点击朋友圈图标后,接收到打开朋友圈的操作,基于已预加载的界面资源打开朋友圈界面,可提升界面打开速度。
本申请实施例提供的应用程序预加载方法,在检测到应用预加载事件被触发时,利用应用预测模型预测出用户可能会使用的概率较高的几个应用程序,对这几个应用程序的启动资源进行预加载,并预测每个应用程序对应的目标界面,当检测到触发显示应用程序的启动入口的操作时,根据显示的启动入口进一步确定用户可能打开的应用程序,进一步缩小目标范围,对目标应用程序的目标界面进行预加载,从而在提升目标应用程序的启动速度的基础上能够进一步提升目标界面的打开速度。
图7为本申请实施例提供的又一种应用程序预加载方法的流程示意图,如图7所示,该方法包括:
步骤701、检测到前台应用程序变更时,利用预设应用预测模型预测候选应用程序的启动概率。
本申请实施例中,应用预加载事件的触发条件可以检测到前台应用程序变更。
步骤702、将启动概率较高的预设数值个候选应用程序确定为待预加载应用程序。
示例性的,预设数值为4个。假设预测出来的待预加载应用程序包括微信、今日头条、支付宝和百度地图。
步骤703、对待预加载应用程序对应的启动资源进行预加载。
步骤704、检测到即将触发应用程序的启动入口的手势操作。
示例性的,终端可在用户的操作下显示应用程序的启动入口,例如进入终端的桌面,桌面中当前显示的应用图标即应用程序的启动入口。图8为本申请实施例提供的又一种桌面示意图,如图8所示,该桌面中包含了7个应用程序,每个应用程序的桌面图标即对应的启动入口,用户可通过点击桌面图标的方式来触发启动入口。
可选的,即将触发应用程序的启动入口的手势操作可包括如:手指在空中逐渐接近屏幕中的应用程序的启动入口,或者,手指按下应用程序的启动入口等。
步骤705、判断手势操作对应的应用程序是否包含于待预加载应用程序中,若包含,则执行步骤706;否则,结束流程。
示例性的,如图8所示,用户手指即将点击微信的桌面图标,或者按下微信的桌面图标,判断微信是否包含于步骤702中预测出来的待预加载应用程序中,若包含于,则执行步骤706。
步骤706、将手势操作对应的应用程序确定为目标应用程序。
示例性的,将微信作为目标应用程序。
步骤707、利用预设界面预测模型预测目标应用程序中包含的目标界面。
示例性的,预测出微信对应的目标界面为朋友圈界面。
步骤708、基于预先创建的预加载活动窗口堆栈预加载所述目标界面。
其中,所述预加载活动窗口堆栈对应的边界坐标位于显示屏幕的坐标范围之外。
步骤709、在接收到目标应用程序的运行指令时,基于已预加载的启动资源启动目标应用程序,并将预加载活动窗口堆栈中包含的目标界面迁移至显示屏幕进行显示。
可选的,当用户按下微信对应的桌面图标并抬起手指后(区别于长按操作),接收到微信的运行指令,基于已预加载资源启动微信,并直接显示已经预加载好的朋友圈界面,可有效提升微信的启动速度及界面进入速度,且直接进入用户想要进入的界面,节省用户操作。
本申请实施例提供的应用程序预加载方法,在检测到前台应用程序变更时,利用应用预测模型预测出用户可能会使用的概率较高的几个应用程序,对这几个应用程序的启动资源进行预加载,当检测到即将触发应用程序的启动入口的手势操作时,确定用户要启动哪个应用程序,并预测用户可能打开哪个界面,对预测的目标界面进行预加载,在真正启动目标应用程序时,基于启动资源快速启动目标应用程序并直接显示目标界面,节省用户操作,使终端更加智能化。
图9为本申请实施例提供的一种应用程序预加载装置的结构框图,该装置可由软件和/或硬件实现,一般集成在终端中,可通过执行应用程序预加载方法来进行应用程序的预加载。如图9所示,该装置包括:
应用确定模块901,用于在检测到应用预加载事件被触发时,确定待预加载应用程序;
第一预加载模块902,用于对所述待预加载应用程序对应的启动资源进行预加载;
界面预测模块903,用于预测所述待预加载应用程序中包含的目标界面,其中,所述目标界面包括根据所述待预加载应用程序的历史运行规律预测出的即将被用户打开的界面;
第二预加载模块904,用于对所述目标界面进行预加载。
本申请实施例中提供的应用程序预加载装置,检测到应用预加载事件被触发时,确定待预加载应用程序并对待预加载应用程序对应的启动资源进行预加载,预测待预加载应用程序中包含的即将被用户打开的目标界面,对目标界面进行预加载。通过采用上述技术方案,可以在对预测出来的用户即将打开的应用程序的启动资源进行预加载的基础上,预测用户即将打开的界面,对该界面进行预加载,在提高应用程序启动速度的基础上,进一步提高界面打开速度。
可选的,所述对所述目标界面进行预加载,包括:当检测到作用于所述待预加载应用程序中包含的目标应用程序的预设动作时,对所述目标应用程序中包含的目标界面进行预加载。
可选的,所述预测所述待预加载应用程序中包含的目标界面,包括:当检测到作用于所述待预加载应用程序中包含的目标应用程序的预设动作时,预测所述待预加载应用程序中包含的目标界面。
可选的,所述预设动作包括触发显示所述目标应用程序的启动入口的操作,或即将触发所述目标应用程序的启动入口的手势操作,或注视所述目标应用程序的启动入口。
可选的,所述预测所述待预加载应用程序中包含的目标界面包括:
根据所述待预加载应用程序在历史采样周期内的运行过程中,所包含的各个界面被打开的顺序、被打开的频次或停留时长,预测所述待预加载应用程序中包含的目标界面。
可选的,所述预测所述待预加载应用程序中包含的目标界面包括:
获取当前使用场景信息,根据所述当前使用场景信息预测所述待预加载应用程序中包含的目标界面。
可选的,该装置还包括:
训练样本采集模块,用于在所述检测到应用预加载事件被触发时,确定待预加载应用程序之前,在应用程序的运行过程中,当发生界面切换时,采集使用场景信息作为训练样本,将切换后的界面记为所述训练样本对应的样本标记;
模型训练模块,用于根据所述训练样本和对应的样本标记对预设机器学习模型进行训练,得到界面预测模型;
相应的,所述根据所述当前使用场景信息预测所述待预加载应用程序中包含的目标界面,包括:
将所述当前使用场景信息输入至所述界面预测模型中,根据所述界面预测模型的输出结果确定目标界面。
可选的,所述对所述目标界面进行预加载,包括:
基于预先创建的预加载活动窗口堆栈预加载所述目标界面,其中,所述预加载活动窗口堆栈对应的边界坐标位于显示屏幕的坐标范围之外。
可选的,该装置还包括:
应用启动模块,用于在对所述目标界面进行预加载之后,在接收到已进行预加载的应用程序的运行指令时,基于已预加载的启动资源启动所述应用程序,在接收到针对目标界面的打开操作时,基于已预加载的界面资源打开所述目标界面;或者用于在对所述目标界面进行预加载之后,在接收到已进行预加载的应用程序的运行指令时,基于已预加载的启动资源启动所述应用程序,并基于已预加载的界面资源进入所述目标界面。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行应用程序预加载方法,该方法包括:
检测到应用预加载事件被触发时,确定待预加载应用程序;
对所述待预加载应用程序对应的启动资源进行预加载;
预测所述待预加载应用程序中包含的目标界面,其中,所述目标界面包括根据所述待预加载应用程序的历史运行规律预测出的即将被用户打开的界面;
对所述目标界面进行预加载。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的应用程序预加载操作,还可以执行本申请任意实施例所提供的应用程序预加载方法中的相关操作。
本申请实施例提供了一种终端,该终端中可集成本申请实施例提供的应用程序预加载装置。图10为本申请实施例提供的一种终端的结构示意图。终端1000可以包括:存储器1001,处理器1002及存储在存储器1001上并可在处理器1002运行的计算机程序,所述处理器1002执行所述计算机程序时实现如本申请实施例所述的应用程序预加载方法。
本申请实施例提供的终端,可以在对预测出来的用户即将打开的应用程序的启动资源进行预加载的基础上,预测用户即将打开的界面,对该界面进行预加载,在提高应用程序启动速度的基础上,进一步提高界面打开速度。
图11为本申请实施例提供的又一种终端的结构示意图,该终端可以包括:壳体(图中未示出)、存储器1101、中央处理器(central processing unit,CPU)1102(又称处理器,以下简称CPU)、电路板(图中未示出)和电源电路(图中未示出)。所述电路板安置在所述壳体围成的空间内部;所述CPU1102和所述存储器1101设置在所述电路板上;所述电源电路,用于为所述终端的各个电路或器件供电;所述存储器1101,用于存储可执行程序代码;所述CPU1102通过读取所述存储器1101中存储的可执行程序代码来运行与所述可执行程序代码对应的计算机程序,以实现以下步骤:
检测到应用预加载事件被触发时,确定待预加载应用程序;
对所述待预加载应用程序对应的启动资源进行预加载;
预测所述待预加载应用程序中包含的目标界面,其中,所述目标界面包括根据所述待预加载应用程序的历史运行规律预测出的即将被用户打开的界面;
对所述目标界面进行预加载。
所述终端还包括:外设接口1103、RF(Radio Frequency,射频)电路1105、音频电路1106、扬声器1111、电源管理芯片1108、输入/输出(I/O)子系统1109、其他输入/控制设备1110、触摸屏1112、其他输入/控制设备1110以及外部端口1104,这些部件通过一个或多个通信总线或信号线1107来通信。
应该理解的是,图示终端1100仅仅是终端的一个范例,并且终端1100可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
下面就本实施例提供的用于应用预加载的终端进行详细的描述,该终端以手机为例。
存储器1101,所述存储器1101可以被CPU1102、外设接口1103等访问,所述存储器1101可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
外设接口1103,所述外设接口1103可以将设备的输入和输出外设连接到CPU1102和存储器1101。
I/O子系统1109,所述I/O子系统1109可以将设备上的输入输出外设,例如触摸屏1112和其他输入/控制设备1110,连接到外设接口1103。I/O子系统1109可以包括显示控制器11091和用于控制其他输入/控制设备1110的一个或多个输入控制器11092。其中,一个或多个输入控制器11092从其他输入/控制设备1110接收电信号或者向其他输入/控制设备1110发送电信号,其他输入/控制设备1110可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮。值得说明的是,输入控制器11092可以与以下任一个连接:键盘、红外端口、USB接口以及诸如鼠标的指示设备。
触摸屏1112,所述触摸屏1112是用户终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。
I/O子系统1109中的显示控制器11091从触摸屏1112接收电信号或者向触摸屏1112发送电信号。触摸屏1112检测触摸屏上的接触,显示控制器11091将检测到的接触转换为与显示在触摸屏1112上的用户界面对象的交互,即实现人机交互,显示在触摸屏1112上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。
RF电路1105,主要用于建立手机与无线网络(即网络侧)的通信,实现手机与无线网络的数据接收和发送。例如收发短信息、电子邮件等。具体地,RF电路1105接收并发送RF信号,RF信号也称为电磁信号,RF电路1105将电信号转换为电磁信号或将电磁信号转换为电信号,并且通过该电磁信号与通信网络以及其他设备进行通信。RF电路1105可以包括用于执行这些功能的已知电路,其包括但不限于天线系统、RF收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、CODEC(COder-DECoder,编译码器)芯片组、用户标识模块(Subscriber Identity Module,SIM)等等。
音频电路1106,主要用于从外设接口1103接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器1111。
扬声器1111,用于将手机通过RF电路1105从无线网络接收的语音信号,还原为声音并向用户播放该声音。
电源管理芯片1108,用于为CPU1102、I/O子系统及外设接口所连接的硬件进行供电及电源管理。
上述实施例中提供的应用程序预加载装置、存储介质及终端可执行本申请任意实施例所提供的应用程序预加载方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的应用程序预加载方法。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (10)
1.一种应用程序预加载方法,其特征在于,包括:
检测到应用预加载事件被触发时,确定待预加载应用程序;
对所述待预加载应用程序对应的启动资源进行预加载;
预测所述待预加载应用程序中包含的目标界面,其中,所述目标界面包括根据所述待预加载应用程序的历史运行规律预测出的即将被用户打开的界面;
对所述目标界面进行预加载;
所述对所述目标界面进行预加载,包括:
基于预先创建的预加载活动窗口堆栈预加载所述目标界面,其中,所述预加载活动窗口堆栈对应的边界坐标位于显示屏幕的坐标范围之外,向所述待预加载应用程序发送伪造焦点通知,并基于所述伪造焦点通知进行界面的绘制以及显示。
2.根据权利要求1所述的方法,其特征在于,
所述对所述目标界面进行预加载,包括:当检测到作用于所述待预加载应用程序中包含的目标应用程序的预设动作时,对所述目标应用程序中包含的目标界面进行预加载;
或者,
所述预测所述待预加载应用程序中包含的目标界面,包括:当检测到作用于所述待预加载应用程序中包含的目标应用程序的预设动作时,预测所述待预加载应用程序中包含的目标界面。
3.根据权利要求2所述的方法,其特征在于,所述预设动作包括触发显示所述目标应用程序的启动入口的操作,或即将触发所述目标应用程序的启动入口的手势操作,或注视所述目标应用程序的启动入口。
4.根据权利要求1所述的方法,其特征在于,所述预测所述待预加载应用程序中包含的目标界面包括:
根据所述待预加载应用程序在历史采样周期内的运行过程中,所包含的各个界面被打开的顺序、被打开的频次或停留时长,预测所述待预加载应用程序中包含的目标界面。
5.根据权利要求1所述的方法,其特征在于,所述预测所述待预加载应用程序中包含的目标界面包括:
获取当前使用场景信息,根据所述当前使用场景信息预测所述待预加载应用程序中包含的目标界面。
6.根据权利要求5所述的方法,其特征在于,在所述检测到应用预加载事件被触发时,确定待预加载应用程序之前,还包括:
在应用程序的运行过程中,当发生界面切换时,采集使用场景信息作为训练样本,将切换后的界面记为所述训练样本对应的样本标记;
根据所述训练样本和对应的样本标记对预设机器学习模型进行训练,得到界面预测模型;
相应的,所述根据所述当前使用场景信息预测所述待预加载应用程序中包含的目标界面,包括:
将所述当前使用场景信息输入至所述界面预测模型中,根据所述界面预测模型的输出结果确定目标界面。
7.根据权利要求1-6任一所述的方法,其特征在于,在对所述目标界面进行预加载之后,还包括:
在接收到已进行预加载的应用程序的运行指令时,基于已预加载的启动资源启动所述应用程序,在接收到针对目标界面的打开操作时,基于已预加载的界面资源打开所述目标界面;或者,
在接收到已进行预加载的应用程序的运行指令时,基于已预加载的启动资源启动所述应用程序,并基于已预加载的界面资源进入所述目标界面。
8.一种应用程序预加载装置,其特征在于,包括:
应用确定模块,用于在检测到应用预加载事件被触发时,确定待预加载应用程序;
第一预加载模块,用于对所述待预加载应用程序对应的启动资源进行预加载;
界面预测模块,用于预测所述待预加载应用程序中包含的目标界面,其中,所述目标界面包括根据所述待预加载应用程序的历史运行规律预测出的即将被用户打开的界面;
第二预加载模块,用于对所述目标界面进行预加载,基于预先创建的预加载活动窗口堆栈预加载所述目标界面,其中,所述预加载活动窗口堆栈对应的边界坐标位于显示屏幕的坐标范围之外,向所述待预加载应用程序发送伪造焦点通知,并基于所述伪造焦点通知进行界面的绘制以及显示。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的应用程序预加载方法。
10.一种终端,其特征在于,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7任一所述的应用程序预加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810462440.7A CN108595230B (zh) | 2018-05-15 | 2018-05-15 | 应用程序预加载方法、装置、存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810462440.7A CN108595230B (zh) | 2018-05-15 | 2018-05-15 | 应用程序预加载方法、装置、存储介质及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108595230A CN108595230A (zh) | 2018-09-28 |
CN108595230B true CN108595230B (zh) | 2020-03-27 |
Family
ID=63631023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810462440.7A Active CN108595230B (zh) | 2018-05-15 | 2018-05-15 | 应用程序预加载方法、装置、存储介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108595230B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109960539A (zh) | 2017-12-21 | 2019-07-02 | 广东欧珀移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
CN111857857B (zh) * | 2019-04-24 | 2023-10-20 | 钉钉控股(开曼)有限公司 | 界面展示方法、装置和设备 |
CN110134485B (zh) * | 2019-05-22 | 2023-05-23 | 维沃移动通信有限公司 | 应用内容查看方法和移动终端 |
CN110231963B (zh) * | 2019-06-12 | 2022-11-15 | Oppo广东移动通信有限公司 | 应用控制方法及相关装置 |
CN110262659B (zh) * | 2019-06-18 | 2022-03-15 | Oppo广东移动通信有限公司 | 应用控制方法及相关装置 |
CN110377361A (zh) * | 2019-07-15 | 2019-10-25 | 北京奇艺世纪科技有限公司 | 数据加载方法、装置、计算机设备和存储介质 |
CN110471711A (zh) * | 2019-07-31 | 2019-11-19 | 维沃移动通信有限公司 | 应用程序预加载方法及终端设备 |
CN112732434A (zh) * | 2019-10-28 | 2021-04-30 | 华为终端有限公司 | 一种应用管理方法及装置 |
CN110941473B (zh) * | 2019-11-27 | 2023-10-24 | 维沃移动通信有限公司 | 预加载方法、装置、电子设备及介质 |
CN113132526B (zh) * | 2019-12-31 | 2022-07-22 | 华为技术有限公司 | 一种页面绘制方法及相关装置 |
CN113504862A (zh) * | 2021-09-11 | 2021-10-15 | 腾讯科技(深圳)有限公司 | 视图数据处理方法、装置、目标设备及存储介质 |
CN115016921B (zh) * | 2021-10-22 | 2023-10-13 | 荣耀终端有限公司 | 资源调度方法、装置及存储介质 |
CN115061740B (zh) * | 2021-11-19 | 2023-05-26 | 荣耀终端有限公司 | 应用程序处理方法及装置 |
CN115562772B (zh) * | 2022-03-31 | 2023-10-27 | 荣耀终端有限公司 | 一种场景识别和预处理方法及电子设备 |
CN117130765A (zh) * | 2023-01-16 | 2023-11-28 | 荣耀终端有限公司 | 计算资源的配置方法和电子设备 |
CN116700878B (zh) * | 2023-08-03 | 2023-10-27 | 中航信移动科技有限公司 | 一种客户端界面展示方法、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155480A (zh) * | 2016-06-27 | 2016-11-23 | 维沃移动通信有限公司 | 一种应用程序的界面显示方法及移动终端 |
CN106201241A (zh) * | 2016-06-24 | 2016-12-07 | 北京奇虎科技有限公司 | 终端屏幕的分屏显示方法、装置及终端 |
CN106919313A (zh) * | 2017-04-21 | 2017-07-04 | 维沃移动通信有限公司 | 一种应用程序的启动方法及移动终端 |
CN107783801A (zh) * | 2017-11-06 | 2018-03-09 | 广东欧珀移动通信有限公司 | 应用程序预测模型建立、预加载方法、装置、介质及终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246526B (zh) * | 2012-02-07 | 2016-05-04 | 腾讯科技(深圳)有限公司 | 客户端预加载方法及客户端预加载装置 |
-
2018
- 2018-05-15 CN CN201810462440.7A patent/CN108595230B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201241A (zh) * | 2016-06-24 | 2016-12-07 | 北京奇虎科技有限公司 | 终端屏幕的分屏显示方法、装置及终端 |
CN106155480A (zh) * | 2016-06-27 | 2016-11-23 | 维沃移动通信有限公司 | 一种应用程序的界面显示方法及移动终端 |
CN106919313A (zh) * | 2017-04-21 | 2017-07-04 | 维沃移动通信有限公司 | 一种应用程序的启动方法及移动终端 |
CN107783801A (zh) * | 2017-11-06 | 2018-03-09 | 广东欧珀移动通信有限公司 | 应用程序预测模型建立、预加载方法、装置、介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN108595230A (zh) | 2018-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595230B (zh) | 应用程序预加载方法、装置、存储介质及终端 | |
CN108762843B (zh) | 应用程序的预加载方法、装置、存储介质及智能终端 | |
CN108614722B (zh) | 应用程序预加载方法、装置、存储介质及终端 | |
CN108647055B (zh) | 应用程序预加载方法、装置、存储介质及终端 | |
EP3579104B1 (en) | Method and apparatus for establishing an application prediction model, storage medium and terminal | |
CN108363593B (zh) | 应用程序预加载方法、装置、存储介质及终端 | |
CN108647052B (zh) | 应用程序预加载方法、装置、存储介质及终端 | |
CN108710513B (zh) | 应用程序启动方法、装置、存储介质及终端 | |
CN108595231B (zh) | 应用程序预加载方法、装置、存储介质及智能终端 | |
CN108958830B (zh) | 应用程序启动方法、装置、存储介质及终端 | |
CN108829457B (zh) | 应用程序预测模型更新方法、装置、存储介质及终端 | |
CN108681475B (zh) | 应用程序预加载方法、装置、存储介质及移动终端 | |
CN108595224B (zh) | 应用程序提示方法、装置、存储介质及终端 | |
CN108776599B (zh) | 预加载应用的管理方法、装置、存储介质及智能终端 | |
CN108762837B (zh) | 应用程序预加载方法、装置、存储介质及终端 | |
EP3579105A1 (en) | Application preloading method and device, storage medium and terminal | |
CN108920202B (zh) | 应用预加载管理方法、装置、存储介质及智能终端 | |
CN108762831B (zh) | 应用程序预加载方法、装置、存储介质及终端 | |
CN108804153B (zh) | 应用程序的预加载方法、装置、存储介质及终端 | |
CN108647056B (zh) | 应用程序预加载方法、装置、存储介质及终端 | |
CN108958828B (zh) | 应用程序预加载方法、装置、存储介质及终端 | |
CN108762844B (zh) | 应用程序预加载方法、装置、存储介质及终端 | |
CN108647057B (zh) | 屏幕方向设置方法、装置、存储介质及终端 | |
CN108664286B (zh) | 应用程序预加载方法、装置、存储介质及移动终端 | |
CN108762836B (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: 20210617 Address after: Room 01, 8th floor, No.1 Lane 61, shengxia Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 200120 Patentee after: Zheku Technology (Shanghai) Co., Ltd Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Patentee before: OPPO Guangdong Mobile Communications Co.,Ltd. |