应用程序预加载方法、装置、存储介质及终端与流程

文档序号:15980891发布日期:2018-11-17 00:19阅读:192来源:国知局

本申请实施例涉及应用程序预加载技术领域,尤其涉及应用程序预加载方法、装置、存储介质及终端。

背景技术

目前,诸如智能手机、平板电脑、笔记本电脑以及智能家电等终端已成为人们日常生活中必不可少的电子设备。随着终端设备不断地智能化,多数终端设备中都装载有操作系统,使得终端设备能够安装丰富多样的应用程序,满足用户不同的需求。

随着终端设备的配置不断提升,多数终端设备中可以安装几十甚至上百个应用程序,而随着应用程序的功能日益丰富,应用程序运行时所需加载的资源也越来越多。当用户选择启动一个应用程序时,终端会对该应用程序启动所需的资源进行加载,待加载完毕后,进入应用程序的初始界面,整个过程通常要花费数秒甚至十几秒的时间,导致应用程序的启动效率较低,亟需改进。



技术实现要素:

本申请实施例提供应用程序预加载方法、装置、存储介质及终端,可以优化终端中应用程序的预加载方案。

第一方面,本申请实施例提供了一种应用程序预加载方法,包括:

检测到应用程序预加载事件被触发时,确定待预加载应用程序;

当存在以当前时刻为起始时刻向前追溯预设时间窗口长度内新安装的应用程序时,判断所述新安装的应用程序是否属于所述待预加载应用程序;

当所述新安装的应用程序不属于所述待预加载应用程序时,对所述新安装的应用程序和所述待预加载应用程序进行预加载。

第二方面,本申请实施例提供了一种应用程序预加载装置,包括:

应用确定模块,用于检测到应用程序预加载事件被触发时,确定待预加载应用程序;

应用判断模块,用于当存在以当前时刻为起始时刻向前追溯预设时间窗口长度内新安装的应用程序时,判断所述新安装的应用程序是否属于所述待预加载应用程序;

应用预加载模块,用于当所述新安装的应用程序不属于所述待预加载应用程序时,对所述新安装的应用程序和所述待预加载应用程序进行预加载。

第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例第一方面所述的应用程序预加载方法。

第四方面,本申请实施例提供了一种终端,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例第一方面所述的应用程序预加载方法。

本申请实施例中提供的应用程序预加载方案,检测到应用程序预加载事件被触发时,确定待预加载应用程序,当存在以当前时刻为起始时刻向前追溯预设时间窗口长度内新安装的应用程序时,判断新安装的应用程序是否属于待预加载应用程序,并当新安装的应用程序不属于待预加载应用程序时,对新安装的应用程序和待预加载应用程序进行预加载。通过采用上述技术方案,对新安装的应用程序和待预加载应用程序进行预加载,可提高对用户真实启动的应用程序进行预加载的命中率,不仅可以提高待预加载应用程序的启动速度,还可以提高新安装的应用程序的启动速度。

附图说明

图1为本申请实施例提供的一种应用程序预加载方法的流程示意图;

图2为本申请实施例提供的一种预加载活动窗口堆栈与显示屏幕显示区域的相对位置关系示意图;

图3为本申请实施例提供的又一种预加载活动窗口堆栈与显示屏幕显示区域的相对位置关系示意图;

图4为本申请实施例提供的一种应用界面迁移示意图;

图5为本申请实施例提供的另一种应用程序预加载方法的流程示意图;

图6为本申请实施例提供的又一种应用程序预加载方法的流程示意图;

图7为本申请实施例提供的一种应用程序预加载装置的结构示意图;

图8为本申请实施例提供的一种终端的结构示意图;

图9为本申请实施例提供的另一种终端的结构示意图。

具体实施方式

下面结合附图并通过具体实施方式来进一步说明本申请的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

图1为本申请实施例提供的应用程序预加载方法的流程示意图,该方法可以由应用程序预加载装置执行,其中该装置可由软件和/或硬件实现,一般可集成在终端中。如图1所示,该方法包括:

步骤101、检测到应用预加载事件被触发时,确定待预加载应用程序。

示例性的,本申请实施例中的终端可包括手机、平板电脑、笔记本电脑以及智能家电等终端设备。终端中装载有操作系统。

示例性的,应用预加载事件的触发条件可以根据实际情况设置,本申请实施例不作具体限定。例如,可以在检测到用户的动作满足预设条件(如拿起终端、输入屏幕解锁操作或输入终端解锁操作等)时,触发应用预加载事件;或者可以在检测到前台应用程序发生变更时,触发应用预加载事件;或者可以在预加载应用的预测流程结束后,立即(或经过预设时长后)触发应用预加载事件;或者可以定时间隔触发等等。当应用预加载事件被触发后,系统可以通过读取标志位或接收触发指令等方式检测到应用预加载事件已被触发,具体的检测方式本申请实施例也不做限定。

示例性的,待预加载的应用程序可以理解为用户可能即将打开的应用程序,可以是预先设置好的固定的应用程序,也可以是采用一定的方式预测出来的应用程序等。待预加载的应用程序可以包括一个或多个。

可选的,可采用预测模型对待预加载的应用程序进行预测。该预测模型可以是机器学习模型,所采用的算法可以包括循环神经网络(recurrentneuralnetworks,rnn)、长短期记忆(longshort-termmemory,lstm)网络、门限循环单元、简单循环单元、自动编码器、决策树、随机森林、特征均值分类、分类回归树、隐马尔科夫、k最近邻(k-nearestneighbor,knn)算法、逻辑回归模型、贝叶斯模型、高斯模型以及kl散度(kullback–leiblerdivergence)等等。

可选的,可在用户使用终端的过程中,采集训练样本,采用训练样本对预设初始模型进行训练,最终得到用于预测待预加载的应用程序的预测模型。示例性的,训练样本中包含的元素可包括应用程序被打开的时间序列或次序序列;可包括应用程序被打开的时间、地点以及频次等;可包括终端的运行状态,如移动数据网络的开关状态、无线热点的连接状态、所连接的无线热点的身份信息、当前运行的应用程序、上一个前景应用程序、当前应用程序在后台停留的时长、当前应用程序最近一次被切换至后台的时间、耳机插孔的插拔状态、充电状态、电池电量信息以及屏幕显示时长等等;还可包括终端中集成的传感器采集到的数据,如运动传感器、光线传感器、温度传感器以及湿度传感器等等。

示例性的,可根据所选用的机器学习模型选择合适的样本元素,也可根据所选的样本元素确定所选用的机器学习模型,还可结合对预测准确度以及预设速度等方面的需求进行模型及样本元素的选择等,本申请实施例不做限定。

本申请实施例中,确定待预加载应用程序可以包括根据预测模型之前的输出结果确定待预加载应用程序,也可以包括利用预测模型进行预测,将预测模型的当前输出结果确定待预加载应用程序。

本申请实施例中,当待预加载应用程序为多个(n个)时,预测模型可以输出候选应用程序集合中每个候选应用集合的启动概率,将启动概率较高的候选应用确定为待预加载应用程序。可选的,所述确定待预加载应用程序,包括:预测候选应用程序的启动概率;将启动概率较高的预设数值个候选应用程序确定为待预加载应用程序。示例性的,候选应用程序可包括终端中安装的所有应用程序,也可包括部分应用程序。部分应用程序可以不包含系统应用程序,还可以不包含用户很少使用的应用程序。本申请实施例对候选应用程序的确定方式以及数量不做限定。可选的,可根据当前时刻之前的预设时段内各应用程序的使用次数和/或使用时长确定候选应用程序,预设时段例如是1个月,当使用次数和/或使用时长超过相应的阈值时,将所对应的应用程序确定为候选应用程序,或者,按照使用次数和/或使用时长对各应用程序进行排序,将排名靠前的应用程序确定为候选应用程序。

示例性的,可采用上文所述的预测模型来确定各候选应用程序的启动概率。例如,按照预测模型训练时的训练样本,采集当前样本,将当前样本输入至预测模型中,得到各候选应用程序的启动概率。可对启动概率进行由高到低的排序,将排在前n(n为预设数值)的候选应用程序确定为待加载应用程序。这样设置的好处在于,能够对多个应用程序进行预加载,且这多个应用程序是根据启动概率来确定的,可以提高预测的准确性。

步骤102、当存在以当前时刻为起始时刻向前追溯预设时间窗口长度内新安装的应用程序时,判断所述新安装的应用程序是否属于所述待预加载应用程序。

在本申请实施例中,用户在使用终端的过程中,会根据需要安装新的应用程序,通常,在一段时间内,用户会频繁使用新安装的应用程序。而通过步骤101确定的待预加载应用程序中通常不会或者很少包含新安装的应用程序,尤其是新安装的应用程序安装时间不是很久的这段时间内,经常由于没有对新安装的应用程序进行预加载,造成新安装的应用程序启动速度慢。因此,检测到应用程序预加载事件被触发,并当确定好待预加载应用程序后,判断终端设备中是否存在以当前时刻为起始时刻向前追溯预设时间窗口长度内新安装的应用程序,若是,则进一步判断所述新安装的应用程序是否属于所述待预加载应用程序,以根据判断结果方便后续确定需要真正进行预加载的应用程序。

在本申请实施例中,当前时刻可以理解为应用程序预加载事件被触发的时刻,也可以理解为所述待预加载应用程序的确定时刻。以当前时刻为起始时刻向前追溯预设时间窗口长度,可理解为从当前时刻向前追溯的预设时间段。示例性的,当前时刻为12:00,也即应用程序预加载事件被触发的时刻为12:00,也即,在12:00这一刻确定好待预加载应用程序。将预设时间窗口长度设置为30分钟,则判断11:30-12:00这段时间内是否存在新安装的应用程序,也即判断是否在11:30-12:00这段时间内安装新的应用程序。例如,用户在11:45时安装了美团外卖,则确定在11:30-12:00这段时间内存在新安装的应用程序——美团外卖。又如,用户在11:35时安装了摩拜单车,11:50时安装了高德地图,则确定在11:30-12:00这段时间内存在新安装的应用程序——摩拜单车和高德地图。需要说明的是,本申请实施例对新安装的应用程序的数量不做限定。另外,本申请实施例对预设时间窗口长度也不做具体限定,可以为30分钟,1小时或1天等等。

示例性的,当存在以当前时刻为起始时刻向前追溯预设时间窗口长度内新安装的应用程序时,进一步判断所述新安装的应用程序是否属于所述待预加载应用程序,也即判断所述待预加载应用程序中是否包含新安装的应用程序。例如,通过步骤101确定的待预加载应用程序包括应用程序a、应用程序b、应用程序c及应用程序d,则判断新安装的应用程序是否属于应用程序a、应用程序b、应用程序c或应用程序d。若确定的新安装的应用程序为应用程序d,则新安装的应用程序属于待预加载应用程序;若确定的新安装的应用程序为应用程序e,则新安装的应用程序不属于待预加载应用程序。

步骤103、当所述新安装的应用程序不属于所述待预加载应用程序时,对所述新安装的应用程序和所述待预加载应用程序进行预加载。

在本申请实施例中,当新安装的应用程序不属于所述待预加载应用程序时,为了提高对新安装的应用程序的启动速度,将新安装的应用程序也作为待预加载应用程序,也对此进行预加载,也即,将新安装的应用程序和步骤101中确定的待预加载应用程序均作为最终进行预加载的应用程序,执行预加载操作。其中,可以同时对新安装的应用程序和所述待预加载应用程序进行预加载,也就是说新安装的应用程序和所述待预加载应用程序的预加载过程可以是并行进行的。也可以在对新安装的应用程序进行预加载之后,再对所述待预加载应用程序进行预加载,还可以在对所述待预加载应用程序进行预加载之后,再对新安装的应用程序进行预加载。需要说明的是,本申请实施例对新安装的应用程序和所述待预加载应用程序进行预加载的顺序不做限定。

本申请实施例中对预加载的具体过程以及所加载的资源不做限定,以对待预加载应用程序进行预加载为例进行说明。例如可为待预加载应用程序分配相应的硬件资源,并基于分配的硬件资源加载启动所需的相关数据。示例性的,可包括应用进程启动、应用服务启动、内存分配、文件内容读取、网络数据获取以及界面渲染等。此外,预加载的资源可根据待预加载应用程序的具体类型来确定。例如,若待预加载应用程序为一个社交软件,可以预加载该待预加载应用程序中的启动画面、联系人列表以及近期的消息记录等;若待预加载应用程序为一个游戏,可以预加载该待预加载应用程序中的游戏背景相关数据等。

可选的,当不存在以当前时刻为起始时刻向前追溯预设时间窗口长度内新安装的应用程序时,则可只对步骤101中确定的待预加载应用程序进行预加载。

本申请实施例中提供的应用程序预加载方法,检测到应用程序预加载事件被触发时,确定待预加载应用程序,当存在以当前时刻为起始时刻向前追溯预设时间窗口长度内新安装的应用程序时,判断新安装的应用程序是否属于待预加载应用程序,并当新安装的应用程序不属于待预加载应用程序时,对新安装的应用程序和待预加载应用程序进行预加载。通过采用上述技术方案,对新安装的应用程序和待预加载应用程序进行预加载,可提高对用户真实启动的应用程序进行预加载的命中率,不仅可以提高待预加载应用程序的启动速度,还可以提高新安装的应用程序的启动速度。

在一些实施例中,当所述新安装的应用程序不属于所述待预加载应用程序时,对所述新安装的应用程序和所述待预加载应用程序进行预加载,包括:当所述新安装的应用程序不属于所述待预加载应用程序时,确定所述新安装的应用程序的应用类型;当所述待预加载应用程序中存在与所述新安装的应用程序的应用类型相同的第一目标应用程序时,对所述新安装的应用程序和所述待预加载应用程序进行预加载。这样设置的好处在于,可以根据预测出的待预加载应用程序中,是否包含与新安装的应用程序的应用类型相同的目标应用程序的判断结果,合理确定是否对新安装的应用程序进行预加载,更贴合用户需求。

可以理解的是,有时虽然确定的待预加载应用程序中不包含新安装的应用程序,可能是预测出此刻用户真的不需要使用新安装的应用程序。如果当新安装的应用程序不属于所述待预加载应用程序时,就直接对新安装的应用程序进行预加载,可能会占用大量内存,浪费系统资源,影响前台运行应用程序运行的流畅性,尤其是,游戏类、视频类等启动资源占用存储空间较多的应用程序。可根据实际情况进行设置。因此,可当待预加载应用程序中存在与新安装的应用程序的应用类型相同的第一目标应用程序时,再对新安装的应用程序进行预加载。

本申请实施例中,对应用类型的划分规则不做限定,例如,可按照与其他应用程序间的关联关系进行分类(如支付宝和微信均为与购物类应用程序强关联的应用程序,可将支付宝和微信视作支付类应用程序),也可按照应用商店中的默认分类(如分为社交类、办公类、游戏类、摄影与录像类以及教育类等等)对应用程序进行分类等。可以理解的是,当待预加载应用程序中存在与新安装的应用程序的应用类型相同的第一目标应用程序时,说明用户对所述新安装的应用程序启动的可能性也较大,出于提高对用户真实启动的应用程序进行预加载的命中率的角度考虑,此时,可对所述新安装的应用程序和所述待预加载应用程序进行预加载。

示例性的,待预加载应用程序包括微信、淘宝、相机、酷狗音乐及高德地图,而新安装的应用程序包括京东商场。新安装的应用程序——京东商场属于购物类应用程序,而待预加载应用程序中的淘宝也属于购物类应用程序,即所述待预加载应用程序中存在与新安装的应用程序(京东商场)的应用类型相同的第一目标应用程序(淘宝),说明预测出用户启动淘宝和京东商场等购物类应用程序的可能性较大,也对新安装的应用程序——京东商场进行预加载,即对微信、淘宝、京东商场、相机、酷狗音乐及高德地图进行预加载。

可选的,当所述待预加载应用程序中存在与所述新安装的应用程序的应用类型相同的第一目标应用程序时,判断所述第一目标应用程序对应的启动概率是否大于预设概率阈值,若是,则对所述新安装的应用程序和所述待预加载应用程序进行预加载,否则,可只对所述待预加载应用程序进行预加载。可以理解的是,当第一目标应用程序对应的启动概率较低时,如在所述待预加载应用程序中第一目标应用程序对应的启动概率最小,说明用户对第一目标应用程序启动的可能性较小,也可以进一步说明用户对新安装的应用程序启动的可能性也较小,出于节省存储空间的角度考虑,可不对新安装的应用程序进行预加载。而当第一目标应用程序对应的启动概率较高时,如在所述待预加载应用程序中第一目标应用程序对应的启动概率最大,说明用户对第一目标应用程序启动的可能性较大,也可以进一步说明用户对新安装的应用程序启动的可能性也较大,出于提高新安装的应用程序的启动速度的角度考虑,可对新安装的应用程序进行预加载。这样设置的好处在于,可当与新安装的应用程序的应用类型相同的第一目标应用程序对应的启动概率较高时,再对新安装的应用程序进行预加载,可综合考虑节省存储空间和提高新安装的应用程序的启动速度两方面的因素。

在一些实施例中,当所述待预加载应用程序中存在与所述新安装的应用程序的应用类型相同的第一目标应用程序时,对所述新安装的应用程序和所述待预加载应用程序进行预加载,包括:当所述待预加载应用程序中存在与所述新安装的应用程序的应用类型相同的第一目标应用程序时,按照所述新安装的应用程序和所述待预加载应用程序对应的启动概率由高到低的顺序,对所述新安装的应用程序和所述待预加载应用程序进行预加载;其中,所述新安装的应用程序对应的启动概率与所述第一目标应用程序对应的启动概率相同。这样设置的好处在于,启动概率高,说明用户更有可能选择该应用程序,为了加快启动概率高的待预加载应用程序和新安装的应用程序被用户选择而真正启动时的速度,本申请实施例使启动概率高的待预加载应用程序优先被预加载,且尽量保证其预加载完成度。示例性的,可以先预加载启动概率最高的待预加载应用程序,当该待加载应用程序预加载完毕后,再开始预加载下一个待预加载应用程序;或者,还可以先预加载启动概率最高的待预加载应用程序,当该待加载应用程序即将预加载完毕时,再开始预加载下一个待预加载应用程序。此外,顺次预加载还能够为当前正在进行预加载的应用程序提供更多的支持,如分配更多的硬件资源,提高预加载速度,也能够避免并行预加载所带来的卡顿等不良影响,保证前台应用程序的正常运行。另外,将新安装的应用程序对应的启动概率视作与第一目标应用程序对应的启动概率相同,可对新安装的应用程序和第一目标应用程序同时进行预加载,还可以对新安装的应用程序和第一目标应用程序按先后顺序顺次进行预加载,可合理确定新安装的应用程序在所有进行预加载的应用程序中的加载顺序,使其更加贴合用户需求。

在一些实施例中,当所述新安装的应用程序不属于所述待预加载应用程序时,对所述新安装的应用程序和所述待预加载应用程序进行预加载,包括:当所述新安装的应用程序不属于所述待预加载应用程序时,获取所述新安装的应用程序在所述以当前时刻为起始时刻向前追溯预设时间窗口长度内的使用次数;当所述使用次数大于预设次数阈值时,对所述新安装的应用程序和所述待预加载应用程序进行预加载。这样设置的好处在于,可以根据新安装的应用程序的使用次数的多少,合理确定是否对所述新安装的应用程序进行预加载,可有效避免用户对新安装的应用程序不常使用时,依然对新安装的应用程序进行预加载的情况发生。

在本申请实施例中,当新安装的应用程序不属于所述待预加载应用程序时,获取新安装的应用程序在以当前时刻为起始时刻向前追溯预设时间窗口长度内的使用次数,并根据使用次数的多少,合理确定是否对新安装的应用程序进行预加载操作。可选的,当使用次数大于预设次数阈值时,可对新安装的应用程序和所述待预加载应用程序进行预加载;当使用次数小于或等于预设次数阈值时,可只对所述待预加载应用程序进行预加载。示例性的,新安装的应用程序包括王者荣耀和开心消消乐,预设时间窗口长度为2天,分别获取王者荣耀和开心消消乐从当前时间向前追溯2天这一时间段内的使用次数。例如,王者荣耀的使用次数为10次,开心消消乐的使用次数为3次,如预设次数阈值为5次,则王者荣耀的使用次数大于预设次数阈值,说明用户对新安装的应用程序——王者荣耀使用较频繁,可对王者荣耀和所述待预加载应用程进行预加载。而开心消消乐的使用次数小于预设次数阈值,说明用户对新安装的应用程序——开心消消乐使用频率较低,可不对开心消消乐进行预加载,而只对所述待预加载应用程进行预加载。

在一些实施例中,当所述新安装的应用程序不属于所述待预加载应用程序时,对所述新安装的应用程序和所述待预加载应用程序进行预加载,包括:当所述新安装的应用程序不属于所述待预加载应用程序时,对于所述待预加载应用程序中的每个待预加载应用程序,确定与当前待预加载应用程序呈预设关联关系的第二目标应用程序;当所述新安装的应用程序的应用类型与所述第二目标应用程序的应用类型相同时,在对所述当前待预加载应用程序进行预加载的同时,或在对所述当前待预加载应用程序进行预加载之后,对所述新安装的应用程序和所述第二目标应用程序进行预加载。这样设置的好处在于,可提高对用户真实启动的应用程序进行预加载的命中率,并进一步提升对呈预设关联关系的应用程序和新安装的应用程序的启动速度。

可选的,当所述新安装的应用程序不属于所述待预加载应用程序时,对于所述待预加载应用程序中的每个待预加载应用程序,确定与当前待预加载应用程序呈预设关联关系的第二目标应用程序;当所述新安装的应用程序的应用类型与所述第二目标应用程序的应用类型不相同时,在对所述当前待预加载应用程序进行预加载的同时,或在对所述当前待预加载应用程序进行预加载之后,可只对所述第二目标应用程序进行预加载。

在本申请实施例中,当确定的待预加载应用程序只包括一个时,确定与该预加载应用程序呈预设关联关系的第二目标应用程序。当待预加载应用程序包含多个时,针对多个待预加载应用程序中的每个待预加载应用程序,确定与当前待预加载应用程序呈预设关联关系的第二目标应用程序。示例性的,待预加载应用程序包括五个应用程序,分别为应用程序a、应用程序b、应用程序c、应用程序d及应用程序e,则分别确定与这五个应用程序(在本申请实施例中以应用程序a、应用程序b、应用程序c、应用程序d及应用程序e为例)呈预设关联关系的第二目标应用程序。需要说明的是,一个或多个待预加载应用程序中,并不一定每个待预加载应用程序均存在与之呈预设关联关系的第二目标应用程序。

示例性的,应用程序间的预设关联关系可以理解为应用程序使用序列存在的关联性。预设关联关系可以包括关联启动关系。例如,网络购物类应用程序经常关联启动网络支付类应用程序,则可以将网络购物类应用程序和网络支付类应用程序视为关联启动应用程序,也即可以将网络支付类程序作为与网络购物类应用程序呈预设关联关系的应用程序。又如,用户在使用新闻阅读类应用程序的过程中,经常将有趣的、重大的或感兴趣的新闻消息,通过社交类应用程序分享给其他用户,则可以将新闻阅读类应用程序和社交类应用程序视为关联启动应用程序,也即可以将社交类应用程序作为与新闻阅读类应用程序呈预设关联关系的应用程序。预设关联关系还可以包括按固定先后顺序启动的关系。例如,用户经常在使用完应用程序a后,打开应用程序b,则可将应用程序a和应用程序b视为呈固定先后顺序启动关系的应用程序,也即将应用程序b作为与应用程序a呈预设关联关系的应用程序。

示例性的,可以基于预设关联应用列表,确定与当前待预加载应用程序呈预设关联关系的第二目标应用程序,还可以根据关联应用预测模型确定与当前待预加载应用程序呈预设关联关系的第二目标应用程序,也可以根据用户选择确定与当前待预加载应用程序呈预设关联关系的第二目标应用程序。需要说明的是本申请实施例对确定与当前待预加载应用程序呈预设关联关系的第二目标应用程序的方式不做限定。

可选的,当待预加载应用程序包括多个时,可以判断多个待预加载应用程序中,是否包含与当前待预加载应用程序呈预设关联关系的应用程序,若存在,则将该应用程序作为与当前待预加载应用程序呈预设关联关系的第二目标应用程序。可以理解的是,此时,与当前待预加载应用程序呈预设关联关系的第二目标应用程序也属于待预加载应用程序,也即待预加载应用程序中包含一组呈预设关联关系的应用程序。可选的,与当前待预加载应用程序呈预设关联关系的第二目标应用程序,也可以是待预加载应用程序之外的其他应用程序。本申请实施例对此不做限定。

在本申请实施例中,当新安装的应用程序的应用类型与第二目标应用程序的应用类型相同时,在对当前待预加载应用程序进行预加载的同时,或在对所述当前待预加载应用程序进行预加载之后,对所述新安装的应用程序和所述第二目标应用程序进行预加载。例如,当前待预加载应用程序为淘宝,与淘宝呈预设关联关系的第二目标应用程序为支付宝,新安装的应用程序为微信,微信和支付宝均可视作与网络支付类应用程序,因为支付宝为与淘宝呈预设关联关系的应用程序,所以,也可将微信视作有淘宝呈预设关联关系的应用程序,则在对淘宝进行预加载的同时或之后,对微信和支付包也进行预加载操作。

在一些实施例中,对所述新安装的应用程序和所述待预加载应用程序进行预加载,包括:基于预先创建的预加载活动窗口堆栈预加载所述新安装的应用程序和所述待预加载应用程序对应的应用界面,其中,所述预加载活动窗口堆栈对应的边界坐标位于显示屏幕的坐标范围之外。下面以对待预加载应用程序进行预加载为例进行下面的说明。

本申请实施例中,活动窗口可理解为一个独立的直接面向用户提供交互和操作的界面,在不同的操作系统中可能采用不同的名词来命名该界面。为了便于理解,下面以安卓(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,如homestack表示桌面应用显示的stack,appstack表示第三方应用显示,还可以有其他分屏stack等。本申请实施例中,新增了预加载活动窗口堆栈(预加载stack),用于表示预加载应用显示的stack,并设置预加载stack的边界坐标位于显示屏幕的坐标范围之外,待预加载的应用程序可以显示在该stack。对于android系统来说,可以基于android系统的多窗口机制,新建一个专门用于显示预加载应用的stack。本申请实施例中,新建stack是因为可以让新建的预加载stack拥有自己的size以及可见性,从而实现在显示屏幕外预加载的目的。

本申请实施例中,对预加载stack的创建时机不做限定,可以是在终端出厂前默认设置预加载stack处于常驻状态,即预加载stack一直存在;也可以在终端开机时或终端解锁成功后创建;还可以在应用预加载事件被触发后(可以在确定待预加载应用程序之前)创建等等。可选的,所述基于预先创建的预加载活动窗口堆栈预加载所述待预加载应用程序对应的应用界面,包括:判断是否存在预先创建的预加载活动窗口堆栈;若不存在,则按照预设规则创建预加载活动窗口堆栈;基于所创建的预加载活动窗口堆栈预加载所述待预加载应用程序对应的应用界面。这样设置的好处在于,在确定待预加载的待预加载应用程序之后,判断预加载stack是否存在,若存在,则无需新建,若不存在,则进行创建,可以节省系统资源。可以理解的是,当待预加载应用程序包含多个时,也即需要在短时间内连续预加载多个应用程序时,在第一个待预加载应用程序开始加载前,预加载stack已创建完毕,那么第二个待预加载应用程序开始加载前,预加载stack是存在的,可以不必进行上述判断。

本申请实施例中,对基于预加载stack预加载待预加载应用程序对应的应用界面的具体过程不做限定,例如可以基于预加载stack的size进行应用界面的绘制并显示等。

在一些实施例中,所述基于预先创建的预加载活动窗口堆栈预加载所述待预加载应用程序对应的应用界面,包括:创建所述待预加载应用程序对应的目标进程;在预先创建的预加载活动窗口堆栈中创建所述待预加载应用程序对应的任务栈;基于所述目标进程在所述任务栈中启动所述待预加载应用程序对应的活动窗口;基于所启动的活动窗口绘制并显示所述待预加载应用程序对应的应用界面。这样设置的好处在于,能够基于屏幕坐标范围之外的预加载活动窗口堆栈对待预加载应用程序的应用界面进行绘制并显示,不会干扰前台应用程序的运行及显示,保证系统稳定性,同时有效提高待预加载应用程序启动时的速度。在创建目标进程的同时,还可包括目标进程的初始化过程。在上述步骤的执行过程中,还可能涉及其他资源的预加载,如应用服务启动、内存分配、文件内容读取及网络数据获取等,本申请实施例对其他资源的预加载过程不做限定。

在一些实施例中,还包括:向所述待预加载应用程序发送伪造焦点通知,并基于所述伪造焦点通知在预设时间段内保持所述待预加载应用程序对应的应用界面的持续绘制以及显示更新。这样设置的好处在于,能够在待预加载应用程序获得焦点并对系统可见的情况下完成应用界面的绘制及显示,提高预加载的完成度,且不对前台应用的焦点产生影响。本申请实施例中的焦点又称为输入焦点,伪造焦点与前台应用对应的焦点相互独立。一般的,对于目前的android系统来说,焦点是唯一的,例如触摸等输入操作只对焦点生效,对于输入焦点信息,系统端和应用端是一致的,系统端一旦修改输入焦点信息,就会向应用发送输入焦点信息发生变化的信息,以此方法保证系统端和应用端输入焦点信息一致。本申请实施例中,通过分离系统端和应用端输入焦点信息的方式,实现应用端可伪造焦点的目的。具体的,本申请实施例中,对预加载应用伪造焦点通知,使预加载应用具有焦点信息,而系统端的焦点信息仍然是正确的,这样处理可以使得预加载应用能够正常绘制,达到全部加载的目的。焦点存在于系统端和应用端,可认为是服务端(server)和客户端(client),系统端记录拥有焦点的应用,应用端保存标志位(flag)标识自己是否有焦点。伪造输入焦点的时机可以是当android的窗口系统新增窗口,需要更新焦点时,生成伪造焦点通知并进行发送。伪造焦点的方法可以是调用窗口的client端的改变窗口焦点的方法,使得该窗口获取焦点。具体的,可基于binder机制进行伪造焦点通知的发送,binder机制是android系统的进程间通信的最常用的方式,采用c/s架构,即客户/服务架构。

本申请实施例中,预设时间段可根据实际情况设计,例如可以是开始预加载后的固定时长范围内,也可以是开始预加载到完成预加载的时段等。在一些实施例中,所述预设时间段的长度包括所述待预加载应用程序中启动广告或启动动画的播放时长。一些应用程序在启动的过程中,通常会播放一些广告或动画,广告或动画的播放时长通常为3秒至十几秒不等,在播放广告或动画期间,用户可能没办法进行任何操作,只能等待播放完毕,浪费用户的宝贵时间。本申请实施例这样设置的好处在于,能够在待预加载应用程序启动之前,在屏幕外播放完启动广告或启动动画,当待预加载应用程序启动时,可直接进入应用程序的主页面或其他用户可操作的界面,从而将待预加载应用程序的可操作时间点进一步提前,减少等待时间。

在一些实施例中,在基于预先创建的预加载活动窗口堆栈预加载所述新安装的应用程序和所述待预加载应用程序对应的应用界面之后,还包括:在接收到所述新安装的应用程序和所述待预加载应用程序中包含的第三目标应用程序的启动指令时,将所述预加载活动窗口堆栈中包含的所述第三目标应用程序对应的应用界面迁移至所述显示屏幕进行显示。这样设置的好处在于,在第三目标应用程序真正需要启动的时候,直接将已经绘制好的应用界面迁移到显示屏幕进行显示,能够达到应用界面的快速切换,提高启动速度。

在一些实施例中,所述将所述预加载活动窗口堆栈中包含的所述第三目标应用程序对应的应用界面迁移至所述显示屏幕进行显示,包括:将所述预加载活动窗口堆栈中包含的所述第三目标应用程序对应的任务栈迁移至应用活动窗口堆栈的顶部;更新所述任务栈的尺寸信息、配置信息和可见性,以实现所述第三目标应用程序对应的应用界面在所述显示屏幕进行显示。这样设置的好处在于,能够保证界面迁移过程的稳定性,保证恢复过程不会出现卡屏、黑屏或迁移速度慢等问题。

对于一些终端来说,尤其是手机及平板电脑等移动终端,为了方便用户的使用,显示屏幕的显示方式通常包括竖屏显示和横屏显示,许多应用程序默认采用竖屏方式进行显示,而有些应用程序默认采用横屏方式进行显示(如一些网络游戏),在终端的使用过程中,有些应用程序还会随着用户握持终端的方向而进行横竖屏显示的切换。在本申请的一些实施例中,所述预加载活动窗口堆栈对应的边界坐标为(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应用为了更好的设计用户界面(userinterface,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、检测到应用预加载事件被触发时,利用应用程序预测模型确定待预加载应用程序。

步骤502、判断是否存在以当前时刻为起始时刻向前追溯预设时间窗口长度内新安装的应用程序,若是,则执行步骤503,否则,执行步骤508。

示例性的,当前时刻可以理解为所述待预加载应用程序的确定时刻。以当前时刻为起始时刻向前追溯预设时间窗口长度,可理解为从当前时刻向前追溯的预设时间段。例如,当前时刻为2018年5月22日12:00,预设时间窗口长度设置为1天,则判断2018年5月22日12:00至2018年5月21日12:00这一天时间内是否存在新安装的应用程序。

步骤503、判断所述新安装的应用程序是否属于所述待预加载应用程序,若是,则执行步骤508,否则,执行步骤504。

步骤504、确定所述新安装的应用程序的应用类型。

例如,新安装的应用程序为高德地图,属于导航类应用程序。

步骤505、判断所述待预加载应用程序中存在与所述新安装的应用程序的应用类型相同的第一目标应用程序,若是,则执行步骤506,否则,执行步骤508。

例如,步骤501确定的待预加载应用程序中包括百度地图,则确定待预加载应用程序中包括与高德地图的应用类型相同的第一目标应用程序。

步骤506、按照所述新安装的应用程序和所述待预加载应用程序对应的启动概率由高到低的顺序,对所述新安装的应用程序和所述待预加载应用程序进行预加载。

其中,所述新安装的应用程序对应的启动概率与所述第一目标应用程序对应的启动概率相同。

示例性的,按照待预加载应用程序对应的启动概率由高到低的顺序,对所述待预加载应用程序进行排序的结果为:微信、百度地图、qq、淘宝及支付宝,则可按照微信、百度地图、高德地图、qq、淘宝及支付宝的顺序对各个应用程序进行预加载。当然百度地图和高德地图的预加载顺序可调换,也可对百度地图和高德地图同时进行预加载。

步骤507、在接收到新安装的应用程序和待加载应用程序中包含的第三目标应用程序的启动指令时,基于已预加载资源启动所述第三目标应用程序。

示例性的,当用户点击淘宝对应的桌面图标后,接收到淘宝的运行指令,基于已预加载资源启动淘宝,可有效提升淘宝的启动速度。又如,当用户点击高德地图对应的桌面图标后,接收到高德地图的启动指令,基于已预加载资源启动高德地图,可有效提升高德地图的启动速度。

步骤507、只对待预加载应用程序进行预加载。

本申请实施例提供的应用程序预加载方法,当待预加载应用程序中存在与新安装的应用程序的应用类型相同的第一目标应用程序时,按照新安装的应用程序和待预加载应用程序对应的启动概率由高到低的顺序,对新安装的应用程序和待预加载应用程序进行预加载;其中,新安装的应用程序对应的启动概率与第一目标应用程序对应的启动概率相同,可以根据预测出的待预加载应用程序中,是否包含与新安装的应用程序的应用类型相同的目标应用程序的判断结果,合理确定是否对新安装的应用程序进行预加载,更贴合用户需求,并可加快启动概率高的待预加载应用程序和新安装的应用程序被用户选择而真正启动时的速度。

图6为本申请实施例提供的另一种应用程序预加载方法的流程示意图,该方法包括如下步骤:

步骤601、检测到应用预加载事件被触发时,利用应用程序预测模型确定待预加载应用程序。

步骤602、判断是否存在以当前时刻为起始时刻向前追溯预设时间窗口长度内新安装的应用程序,若是,则执行步骤603,否则,执行步骤612。

步骤603、判断所述新安装的应用程序是否属于所述待预加载应用程序,若是,则执行步骤612,否则,执行步骤604。

步骤604、获取所述新安装的应用程序在所述以当前时刻为起始时刻向前追溯预设时间窗口长度内的使用次数。

步骤605、判断所述使用次数是否大于预设次数阈值,若是,则执行步骤611,否则,执行步骤606。

步骤606、对于所述待预加载应用程序中的每个待预加载应用程序,确定与当前待预加载应用程序呈预设关联关系的第二目标应用程序。

步骤607、判断新安装的应用程序的应用类型与所述第二目标应用程序的应用类型是否相同,若是,则执行步骤608,否则,执行步骤610。

步骤608、基于预先创建的预加载活动窗口堆栈预加载所述当前待预加载应用程序对应的应用界面,并在第一预设时长之后,基于预先创建的预加载活动窗口堆栈预加载所述新安装的应用程序和所述第二目标应用程序对应的应用界面。

其中,所述预加载活动窗口堆栈对应的边界坐标位于显示屏幕的坐标范围之外。

步骤609、在接收到待加载应用程序、所述新安装的应用程序及所述第二目标应用程序中包含的第三目标应用程序的启动指令时,将预加载活动窗口堆栈中包含的第三目标应用程序对应的应用界面迁移至显示屏幕进行显示。

步骤610、基于预先创建的预加载活动窗口堆栈预加载所述当前待预加载应用程序对应的应用界面,并在第二预设时长之后,基于预先创建的预加载活动窗口堆栈预加载所述第二目标应用程序对应的应用界面。

步骤611、对所述新安装的应用程序和所述待预加载应用程序进行预加载。

步骤612、只对待预加载应用程序进行预加载。

本申请实施例提供的应用程序预加载方法,判断新安装的应用程序在以当前时刻为起始时刻向前追溯预设时间窗口长度内的使用次数是否大于预设次数阈值,若是,对新安装的应用程序和待预加载应用程序进行预加载,否则,对于待预加载应用程序中的每个待预加载应用程序,确定与当前待预加载应用程序呈预设关联关系的第二目标应用程序,并当新安装的应用程序的应用类型与第二目标应用程序的应用类型相同时,在对当前待预加载应用程序进行预加载的同时,或在对当前待预加载应用程序进行预加载之后,对新安装的应用程序和第二目标应用程序进行预加载,可提高对用户真实启动的应用程序进行预加载的命中率,并进一步提升对呈预设关联关系的应用程序和新安装的应用程序的启动速度。

图7为本申请实施例提供的一种应用程序预加载装置的结构示意图,该装置可由软件和/或硬件实现,一般集成在终端中,可通过执行应用程序预加载方法来对待启动的应用程序进行预加载。如图7所示,该装置包括:

应用确定模块701,用于检测到应用程序预加载事件被触发时,确定待预加载应用程序;

应用判断模块702,用于当存在以当前时刻为起始时刻向前追溯预设时间窗口长度内新安装的应用程序时,判断所述新安装的应用程序是否属于所述待预加载应用程序;

应用预加载模块703,用于当所述新安装的应用程序不属于所述待预加载应用程序时,对所述新安装的应用程序和所述待预加载应用程序进行预加载。

本申请实施例中提供的应用程序预加载装置,检测到应用程序预加载事件被触发时,确定待预加载应用程序,当存在以当前时刻为起始时刻向前追溯预设时间窗口长度内新安装的应用程序时,判断新安装的应用程序是否属于待预加载应用程序,并当新安装的应用程序不属于待预加载应用程序时,对新安装的应用程序和待预加载应用程序进行预加载。通过采用上述技术方案,对新安装的应用程序和待预加载应用程序进行预加载,可提高对用户真实启动的应用程序进行预加载的命中率,不仅可以提高待预加载应用程序的启动速度,还可以提高新安装的应用程序的启动速度。

可选的,所述应用预加载模块,包括:

应用类型确定单元,用于当所述新安装的应用程序不属于所述待预加载应用程序时,确定所述新安装的应用程序的应用类型;

应用预加载单元,用于当所述待预加载应用程序中存在与所述新安装的应用程序的应用类型相同的第一目标应用程序时,对所述新安装的应用程序和所述待预加载应用程序进行预加载。

可选的,所述应用预加载单元,用于:

当所述待预加载应用程序中存在与所述新安装的应用程序的应用类型相同的第一目标应用程序时,按照所述新安装的应用程序和所述待预加载应用程序对应的启动概率由高到低的顺序,对所述新安装的应用程序和所述待预加载应用程序进行预加载;其中,所述新安装的应用程序对应的启动概率与所述第一目标应用程序对应的启动概率相同。

可选的,所述应用预加载模块,用于:

当所述新安装的应用程序不属于所述待预加载应用程序时,获取所述新安装的应用程序在所述以当前时刻为起始时刻向前追溯预设时间窗口长度内的使用次数;

当所述使用次数大于预设次数阈值时,对所述新安装的应用程序和所述待预加载应用程序进行预加载。

可选的,所述应用预加载模块,用于:

当所述新安装的应用程序不属于所述待预加载应用程序时,对于所述待预加载应用程序中的每个待预加载应用程序,确定与当前待预加载应用程序呈预设关联关系的第二目标应用程序;

当所述新安装的应用程序的应用类型与所述第二目标应用程序的应用类型相同时,在对所述当前待预加载应用程序进行预加载的同时,或在对所述当前待预加载应用程序进行预加载之后,对所述新安装的应用程序和所述第二目标应用程序进行预加载。

可选的,所述应用预加载模块,用于:

基于预先创建的预加载活动窗口堆栈预加载所述新安装的应用程序和所述待预加载应用程序对应的应用界面,其中,所述预加载活动窗口堆栈对应的边界坐标位于显示屏幕的坐标范围之外。

可选的,该装置还包括:

应用界面迁移模块,用于在接收到所述新安装的应用程序和所述待预加载应用程序中包含的第三目标应用程序的启动指令时,将所述预加载活动窗口堆栈中包含的所述第三目标应用程序对应的应用界面迁移至所述显示屏幕进行显示。

本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行应用程序预加载方法,该方法包括:

检测到应用程序预加载事件被触发时,确定待预加载应用程序;

当存在以当前时刻为起始时刻向前追溯预设时间窗口长度内新安装的应用程序时,判断所述新安装的应用程序是否属于所述待预加载应用程序;

当所述新安装的应用程序不属于所述待预加载应用程序时,对所述新安装的应用程序和所述待预加载应用程序进行预加载。

存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如cd-rom、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如dram、ddrram、sram、edoram,兰巴斯(rambus)ram等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。

当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的应用程序预加载操作,还可以执行本申请任意实施例所提供的应用程序预加载方法中的相关操作。

本申请实施例提供了一种终端,该终端中可集成本申请实施例提供的应用程序预加载装置。图8为本申请实施例提供的一种终端的结构示意图。终端800可以包括:存储器801,处理器802及存储在存储器上并可在处理器运行的计算机程序,所述处理器802执行所述计算机程序时实现如本申请实施例所述的应用程序预加载方法。

本申请实施例提供的终端,对新安装的应用程序和待预加载应用程序进行预加载,可提高对用户真实启动的应用程序进行预加载的命中率,不仅可以提高待预加载应用程序的启动速度,还可以提高新安装的应用程序的启动速度。

图9为本申请实施例提供的另一种终端的结构示意图,该终端可以包括:壳体(图中未示出)、存储器901、中央处理器(centralprocessingunit,cpu)902(又称处理器,以下简称cpu)、电路板(图中未示出)和电源电路(图中未示出)。所述电路板安置在所述壳体围成的空间内部;所述cpu902和所述存储器901设置在所述电路板上;所述电源电路,用于为所述终端的各个电路或器件供电;所述存储器901,用于存储可执行程序代码;所述cpu902通过读取所述存储器901中存储的可执行程序代码来运行与所述可执行程序代码对应的计算机程序,以实现以下步骤:

检测到应用程序预加载事件被触发时,确定待预加载应用程序;

当存在以当前时刻为起始时刻向前追溯预设时间窗口长度内新安装的应用程序时,判断所述新安装的应用程序是否属于所述待预加载应用程序;

当所述新安装的应用程序不属于所述待预加载应用程序时,对所述新安装的应用程序和所述待预加载应用程序进行预加载。

所述终端还包括:外设接口903、rf(radiofrequency,射频)电路905、音频电路906、扬声器911、电源管理芯片908、输入/输出(i/o)子系统909、其他输入/控制设备910、触摸屏912、其他输入/控制设备910以及外部端口904,这些部件通过一个或多个通信总线或信号线907来通信。

应该理解的是,图示终端900仅仅是终端的一个范例,并且终端900可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。

下面就本实施例提供的用于应用程序预加载的终端进行详细的描述,该终端以手机为例。

存储器901,所述存储器901可以被cpu902、外设接口903等访问,所述存储器901可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

外设接口903,所述外设接口903可以将设备的输入和输出外设连接到cpu902和存储器901。

i/o子系统909,所述i/o子系统909可以将设备上的输入输出外设,例如触摸屏912和其他输入/控制设备910,连接到外设接口903。i/o子系统909可以包括显示控制器9091和用于控制其他输入/控制设备910的一个或多个输入控制器9092。其中,一个或多个输入控制器9092从其他输入/控制设备910接收电信号或者向其他输入/控制设备910发送电信号,其他输入/控制设备910可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮。值得说明的是,输入控制器9092可以与以下任一个连接:键盘、红外端口、usb接口以及诸如鼠标的指示设备。

触摸屏912,所述触摸屏912是用户终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。

i/o子系统909中的显示控制器9091从触摸屏912接收电信号或者向触摸屏912发送电信号。触摸屏912检测触摸屏上的接触,显示控制器9091将检测到的接触转换为与显示在触摸屏912上的用户界面对象的交互,即实现人机交互,显示在触摸屏912上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。

rf电路905,主要用于建立手机与无线网络(即网络侧)的通信,实现手机与无线网络的数据接收和发送。例如收发短信息、电子邮件等。具体地,rf电路905接收并发送rf信号,rf信号也称为电磁信号,rf电路905将电信号转换为电磁信号或将电磁信号转换为电信号,并且通过该电磁信号与通信网络以及其他设备进行通信。rf电路905可以包括用于执行这些功能的已知电路,其包括但不限于天线系统、rf收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、codec(coder-decoder,编译码器)芯片组、用户标识模块(subscriberidentitymodule,sim)等等。

音频电路906,主要用于从外设接口903接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器911。

扬声器911,用于将手机通过rf电路905从无线网络接收的语音信号,还原为声音并向用户播放该声音。

电源管理芯片908,用于为cpu902、i/o子系统及外设接口所连接的硬件进行供电及电源管理。

上述实施例中提供的应用程序预加载装置、存储介质及终端可执行本申请任意实施例所提供的应用程序预加载方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的应用程序预加载方法。

注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1