应用程序预加载方法、装置、存储介质及移动终端
技术领域
本申请实施例涉及计算机技术领域,尤其涉及应用程序预加载方法、装置、存储介质及移动终端。
背景技术
目前,随着移动终端技术的快速发展,诸如智能手机、平板电脑以及智能电视等智能设备已成为人们生活中必不可少的电子设备。
移动终端上安装有各种各样的应用程序(Application Software,APP),一般默认在用户打开一个应用程序时才开始加载这个应用程序,而应用程序占用的存储空间越来越大,加载时间也越来越长,浪费了用户的宝贵时间。为了使应用程序运行的更加流畅,有些移动终端会将提前将某些应用程序的加载资源准备好,即对某些应用程序提前进行预加载。
但是,不能对应用程序进行随意预加载,因为若预加载太多资源,则会占用较多的存储空间,同时功耗变大,会严重影响终端使用的流畅性。因此,优化预加载机制、降低终端功耗变得至关重要。
发明内容
本申请实施例提供一种应用程序预加载方法、装置、存储介质及移动终端,可以优化移动终端中应用程序的预加载方案。
第一方面,本申请实施例提供了一种应用程序预加载方法,包括:
检测到应用预加载预测事件被触发时,获取移动终端当前的第一状态特征信息;
对于预设应用程序集合中的每个应用程序,将所述第一状态特征信息输入至当前应用程序对应的决策树预测模型中,其中,所述决策树预测模型基于所述移动终端在对应历史状态特征信息时的应用程序使用规律生成;
根据所述决策树预测模型的输出结果预测出即将启动的目标应用程序;
对所述目标应用程序进行预加载。
第二方面,本申请实施例提供了一种应用程序预加载装置,包括:
第一状态获取模块,用于检测到应用预加载预测事件被触发时,获取移动终端当前的第一状态特征信息;
特征信息输入模块,用于对于预设应用程序集合中的每个应用程序,将所述第一状态特征信息输入至当前应用程序对应的决策树预测模型中,其中,所述决策树预测模型基于所述移动终端在对应历史状态特征信息时的应用程序使用规律生成;
应用预测模块,用于根据所述决策树预测模型的输出结果预测出即将启动的目标应用程序;
应用预加载模块,用于对所述目标应用程序进行预加载。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的应用程序预加载方法。
第四方面,本申请实施例提供了一种移动终端,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的应用程序预加载方法。
本申请实施例中提供的应用程序预加载方案,检测到应用预加载预测事件被触发时,获取移动终端当前的第一状态特征信息,对于预设应用程序集合中的每个应用程序,将第一状态特征信息输入至当前应用程序对应的决策树预测模型中,其中,决策树预测模型基于移动终端在对应历史状态特征信息时的应用程序使用规律生成,根据决策树预测模型的输出结果预测出即将启动的目标应用程序,并对目标应用程序进行预加载。通过采用上述技术方案,可以根据移动终端当前的使用状态和基于用户历史使用过程中记录的状态以及对应的应用程序使用规律生成的决策树预测模型来预测出当前即将启动的应用程序,对该应用程序进行预加载,从而准确地预测待启动应用程序,在节省存储空间的前提下,提升应用程序的启动速度。
附图说明
图1为本申请实施例提供的一种应用程序预加载方法的流程示意图;
图2为本申请实施例提供的另一种应用程序预加载方法的流程示意图;
图3为本申请实施例提供的又一种应用程序预加载方法的流程示意图;
图4为本申请实施例提供的一种应用程序预加载装置的结构框图;
图5为本申请实施例提供的一种移动终端的结构示意图;
图6为本申请实施例提供的又一种移动终端的结构示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本申请的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在移动终端上,对应用程序进行预加载是一种有效提升用户体验的方法,通过提前把某些应用的加载资源准备好,使其运行时更流畅。相关技术中,主要是基于统计的方法对应用程序进行预加载,比如用户最常用的应用程序可能只有几个,将其全部进行预加载。然而,移动终端中装载的应用程序通常有很多,不常用的并不代表用户当前不会使用,常用的也不代表用户当前就一定会使用,因此现有的预加载方法导致预加载应用程序的预测精度不够,且需要预加载过多资源,浪费了较多的存储空间,影响移动终端的整体性能。
图1为本申请实施例提供的一种应用程序预加载方法的流程示意图,该方法可以由应用程序预加载装置执行,其中该装置可由软件和/或硬件实现,一般可集成在移动终端中。如图1所示,该方法包括:
步骤101、检测到应用预加载预测事件被触发时,获取移动终端当前的第一状态特征信息。
示例性的,本申请实施例中的移动终端可包括智能手机、平板电脑以及笔记本电脑等移动设备。
本申请实施例中,对应用预加载预测事件的具体触发条件不做限定。示例性的,可以是检测到移动终端开机或移动终端的屏幕被点亮或者移动终端被成功解锁;还可以是检测到用户正在使用某一个应用程序或者正在使用预设的应用程序;还可以是检测到用户使用当前应用程序(或当前预设应用程序)的累计时长达到预设使用时长阈值;还可以是检测到移动终端处于预设使用状态,如被用户握持的状态,或被用户拿起。
本步骤中,在检测到应用预加载预测事件被触发时,获取移动终端当前的第一状态特征信息,用于后续步骤中输入应用程序对应的决策树预测模型中,该决策树模型基于移动终端在对应历史状态特征信息时的应用程序使用规律生成,用于预测某个应用程序成为下一个被用户打开的应用程序的可能性。
示例性的,本申请中的状态特征信息可包括时间信息,还可包括移动数据网络的开关状态或无线热点的连接状态等。
以包括时间信息为例,对于移动终端来说,在不同的时刻或时间段,用户对应用程序的使用需求可能不同,将时间信息作为状态特征信息中的一个特征(或属性)。具体的,时间信息可以是移动终端的当前系统时间或当前系统时间所处的时间段,时间段可以是一周的某一天(如周一或周日),还可以是一天中的某段时间(如早上6点到早上8点)。不同的时刻或者不同的时间段可以表明用户可能处于的状态不同。如周一到周五为工作日,用户一般处于工作状态,用户一般使用办公类或社交类应用程序较多,周六和周日以及法定假日为休息日,用户一般处于休闲状态,用户一般使用游戏类或休闲类应用程序较多;对于工作日来说,如早上6点到早上8点,用户一般在上班路上,可能在使用新闻客户端浏览新闻,上午9点到上午11点,用户一般在办公,可能在使用邮箱客户端,中午12点到下午1点,可能使用外卖应用程序订餐,晚上6点到6点10分下班时间,可能使用打车软件订车等等。此外,还可以获取用户的日程信息,根据日程信息对时间信息进行修正,如某个周一,日程信息表明用户在休假,则可将对应的工作日修正为休息日。
为了提高预测结果的准确度,本申请实施例中还可采用更多的移动终端的状态参数。当前,互联网技术发展迅速,移动终端中的应用程序的很多功能都依赖于网络来实现,如移动支付、浏览网页、在线观看视频以及通过社交软件聊天等,这里的网络可以是网络运营商(以中国为例,包括中国移动、中国联通及中国电信等)提供的移动数据网络(又称蜂窝移动网络),还可以是基于无线局域网技术,如无线保真(Wireless Fidelity,WiFi)技术,形成的无线局域网,该无线局域网具备访问互联网的能力,移动终端通过连接无线局域网中的无线热点,即可实现访问互联网。对于移动数据网络来说,用户需要向网络运营商支付一定的数据流量费用,所以用户在周围存在可用无线热点(如WiFi热点)的情况下,一般会优先选择通过连接无线热点的方式上网。此外,为了防止移动终端中的某些应用在用户不知情的情况下产生流量,很多用户还会选择关闭移动数据网络的开关。另外,移动终端中,不同的应用程序对联网功能的需求不同,使用过程中所消耗的数据流量也不同。综合考虑以上情况,本申请实施例中可将移动数据网络的开关状态和/或无线热点的连接状态作为状态特征信息中的特征,以增强预测待加载应用程序的准确度。当移动数据网络的开关状态为开启时,可以说明当前环境中可能不存在无线热点,用户可能选择使用流量消耗较少的应用,而当移动数据网络的开关状态为关闭时,用户可能选择使用不需要依赖网络的应用或者通过连接WiFi热点使用任意应用。当无线热点的连接状态为连接时,用户可能使用任意应用,当无线热点的连接状态为断开时,用户可能使用流量消耗较少的应用。
本申请实施例可结合时间信息、移动数据网络的开关状态和/或无线热点的连接状态,能够将移动终端的状态划分出更多的层次,从而更加准确地预测待启动的应用程序。当然,状态特征信息中还可以包含更多的特征,本申请不做限定。
步骤102、对于预设应用程序集合中的每个应用程序,将所述第一状态特征信息输入至当前应用程序对应的决策树预测模型中。
其中,所述决策树预测模型基于所述移动终端在对应历史状态特征信息时的应用程序使用规律生成。决策树是附加概率结果的一个树状的决策图,是直观的运用统计概率分析的图法,机器学习中决策树是一个预测模型,它表示对象属性和对象值之间的一种映射,树中的每一个节点表示对象属性的判断条件,其分支表示符合节点条件的对象,树的叶子节点表示对象所属的预测结果。本申请中的决策树预测模型可以是基于任意算法的决策树模型,例如ID3算法、分类回归树(Classification And Regression Tree,CART)算法、C4.5算法以及随机森林(Random Forest)等,本申请不做限定。为了便于说明,本申请将以ID3算法为例进行后续的说明。
示例性的,在用户使用移动终端的过程中,可按照预设采样策略采集移动终端对应的历史状态特征信息,并针对每个历史状态特征信息记录移动终端中的应用程序的使用规律数据,得到基于用户历史使用情况的样本及对应的样本标记。在经过一段时间的数据采集之后,当收集到的样本在时间跨度上和数量上都能够体现用户的使用习惯时,可根据所采集的及记录的数据构建出不同应用程序分别对应的决策树预测模型,用于预测在当前的状态下,用户可能打开哪个或哪些应用程序。
示例性的,预设应用程序集合可以包括移动终端中安装的所有应用程序,也可包括部分应用程序。部分应用程序可以不包含系统应用程序,还可以不包含用户很少使用的应用程序。本申请对预设应用程序集合中包含的应用程序的确定方式以及数量不做限定。具体的,可根据当前时刻之前的预设时段内各应用程序的使用次数和/或使用时长确定预设应用程序集合,预设时段例如是1个月,当使用次数和/或使用时长超过相应的阈值时,将所属的应用程序纳入预设应用程序集合中,或者,按照使用次数和/或使用时长对各应用程序进行排序,将排名靠前的应用程序纳入预设应用程序集合中。
可选的,决策树预测模型构建的过程可以由服务器来完成,也可以由移动终端来完成。当由服务器完成时,服务器可按照采样计划向移动终端发送样本采样指令,移动终端根据样本采样指令向服务器上传相应的数据,然后由服务器构建决策树预测模型,并将模型返回给移动终端,可减少移动终端的计算量;当由移动终端自身完成时,移动终端可以不用与服务器建立连接,即不需要具备网络访问功能,可保证样本采集的时效性和准确性,进而保证所构建的决策树预测模型更加贴合用户最近的使用习惯。
本步骤中,将获取到的移动终端当前的第一状态特征信息依次输入到预设应用程序集合中的每个应用程序对应的决策树预测模型中,从而可以得到每个应用程序分别对应的成为下一个被用户打开的应用程序的概率。
步骤103、根据所述决策树预测模型的输出结果预测出即将启动的目标应用程序。
示例性的,预设应用程序集合中的每个应用程序分别对应的决策树预测模型会输出一个概率值,可根据概率值的大小来确定对应的应用程序成为下一个被用户打开的应用程序的概率,可将概率值最高或较高的一个或多个应用程序确定为目标应用程序。例如,应用程序A对应的概率值为0.5,应用程序B对应的概率值为0.3,应用程序C对应的概率值为0.05……,可将应用程序A确定为目标应用程序,也可将应用程序A和B均确定为目标应用程序。
步骤104、对所述目标应用程序进行预加载。
本申请实施例中对预加载的具体过程以及所加载的数据资源不做限定,例如可为目标应用程序分配相应的硬件资源,并基于分配的硬件资源加载启动所需的相关数据。此外加载的数据资源可根据目标应用程序的具体类型来确定。例如,若目标应用程序为一个社交软件,可以预加载该应用程序中的启动画面、联系人列表以及近期的消息记录等;若目标应用程序为一个游戏,可以预加载该应用程序中的游戏背景相关数据等。
在对目标应用进行预加载之后,若用户真正想要使用目标应用程序,那么就会触发启动目标应用程序(如点击目标应用程序对应的应用图标),此时,由于用于启动的全部资源或部分资源已经进行了预加载,那么目标应用程序的启动速度就会明显得到提升,减少用户的等待时间。
可以理解的是,若目标应用程序已经处于运行状态,那么无需进行预加载,可以重新确定新的未启动的目标应用程序。另外,也可将当前时刻正在运行的应用程序从预设应用程序集合中排除,即,所述预设应用程序集合中不包括当前正在运行的应用功能程序,以减少运算量,提高预测效率。
本申请实施例中提供的应用程序预加载方法,检测到应用预加载预测事件被触发时,获取移动终端当前的第一状态特征信息,对于预设应用程序集合中的每个应用程序,将第一状态特征信息输入至当前应用程序对应的决策树预测模型中,其中,决策树预测模型基于移动终端在对应历史状态特征信息时的应用程序使用规律生成,根据决策树预测模型的输出结果预测出即将启动的目标应用程序,并对目标应用程序进行预加载。通过采用上述技术方案,可以根据移动终端当前的使用状态和基于用户历史使用过程中记录的状态以及对应的应用程序使用规律生成的决策树预测模型来预测出当前即将启动的应用程序,对该应用程序进行预加载,从而准确地预测待启动应用程序,在节省存储空间的前提下,提升应用程序的启动速度。
在一些实施例中,检测到应用预加载预测事件被触发时,获取移动终端当前的第一状态特征信息,可包括:检测到应用预加载预测事件被触发时,获取所述移动终端中的存储空间信息,根据所述存储空间信息判断剩余存储空间是否达到预设存储阈值,若达到,则获取移动终端当前的第一状态特征信息。这样设置的好处在于,当移动终端中存储空间不足时,若对应用程序进行预加载,预加载的资源会占用一定的存储空间,影响移动终端的整体运行,因此,可不进行后面的操作,节省系统资源。
在一些实施例中,所述状态特征信息还可包括以下至少一项:日期类别、所连接的无线热点的身份信息、当前运行的应用程序、上一个前景应用程序、当前应用程序在后台停留的时长、耳机插孔的插拔状态、充电状态、电池电量信息、屏幕显示时长、移动终端的运动状态和位置信息。这样设置的好处在于,能够进一步丰富移动终端的状态被划分的维度和层次,进而更加准确地预测待启动的应用程序。
示例性的,日期类别可包括工作日和休息日,休息日可包括周末,还可包括法定节假日或日程信息中的休假日等。在不同类型的日期中,用户可能会做的事情一般差异较大,那么所打开的应用程序一般也不相同,因此,也可将日期类别作为一个特征纳入状态特征信息中。
当移动终端已连接无线热点时,可进一步获取所连接的无线热点的身份信息,身份信息可以是身份标识,以WiFi为例,可以是服务集标识(Service Set Identifier,SSID)或基本服务集标识(Basic Service Set Identifier,BSSID)。在连接不同的无线热点时,可以说明用户所处环境不同,如在家里、办公室或公共区域等。此外,不同的无线热点还可能存在公共热点及个人热点之分,以及加密热点和未加密热点之分。出于使用场合以及安全性等因素的考量,那么用户可能使用不同的应用程序,因此可将所连接的无线热点的身份信息作为状态特征信息的一个特征。
用户在使用移动终端的过程中,两个以上(包括两个)的应用程序被启动的时序可能是存在关联的,例如,用户在使用淘宝时,可能接下来会使用京东商城或苏宁易购等应用程序进行商品的比价等操作,因此,当前正在运行的应用程序可能会对接下来要启动的应用程序产生影响,此处当前正在运行的应用程序可包括前台运行应用程序和/或后台运行应用程序。本申请实施例中,可将当前运行的应用程序作为状态特征信息的一个特征。
如上文所述,两个以上的应用程序被启动的时序可能是存在关联的,那么上一个前景(或前台运行的)应用程序也可能会对即将启动的应用程序产生影响,因此,申请实施例中,也可将上一个前景应用程序作为状态特征信息的一个特征。
应用程序曾经在后台停留的时长也能够在一定程度上反映出用户对应用程序的使用需求。其中,停留时长可以是当前状态特征采集时刻之前最近的一次停留时长。当前应用程序在后台停留的时长,其中的当前应用程序,具体可以是样本采集过程中所针对的当前的应用程序。具体的,针对应用程序A,若应用程序A在9点10分被打开,9点15分被切换至后台,当前样本采集时刻为9点30分,在9点30分之前应用程序A始终在后台运行,那么在后台停留的时长为15分钟,若应用程序A在9点20分被关闭,那么在后台停留的时长为5分钟。此外,对于同一个样本采集时刻,不同应用程序曾经在后台停留的时长也可能影响用户打开的下一个应用程序具体是哪一个应用程序,因此,本申请实施例中,对于应用程序A以及当前样本采集时刻,也可将所有应用程序分别在后台停留的时长作为状态特征信息中的一个特征。另外,对于样本采集过程中所针对的当前的应用程序,其最近一次被切换至后台的时间也可能会影响用户会不会在当前时刻打开该应用程序,因此,也可将当前应用程序上一次的启动时间作为状态特征信息中的一个特征。
移动终端上通常设置有耳机插孔,用户可根据使用环境或收听体验的需求来选择是否通过耳机收听移动终端的声音。一般的,若耳机插孔的插拔状态为插入时,可能需要使用多媒体播放器类的应用程序;若耳机插孔的插拔状态为未插入时,若处于公共场所等环境中,一般不会使用多媒体播放器类的应用程序,而选择使用一些较少播放声音的应用程序。考虑上述因素,可将耳机插孔的插拔状态作为状态特征信息的一个特征。
移动终端的移动属性决定了其需要使用电池来供电,当移动终端的充电状态为正在充电时,可能会对移动终端的使用产生一定的影响,一般用户会避免使用移动终端,所以此时打开的应用程序一般是需求程度较高的应用;当移动终端的充电状态为未充电时,所使用的应用程序可能不受限制。因此,可将充电状态作为状态特征信息的一个特征,充电状态可以包括正在充电和未处于充电状态,当正在充电时,充电状态还可以包括充电模式,充电模式可包括快速充电模式和普通充电模式,快速充电模式可以是通过快充电源适配器(如移动电源)进行充电,普通充电模式可以是通过普通的电源适配器(如移动终端的原装充电器)进行充电。
当移动终端中的电量较低时,为了延长待机时间,用户一般不会打开耗电量较大的应用程序,如视频播放器等;而当移动终端中的电量较充足时,所使用的应用程序可能不受限制。因此,可将电池电量信息作为状态特征信息的一个特征。
屏幕显示时长可以是移动终端亮起后保持显示的时长,可用于表示用户连续使用移动终端的累计时长,经过不同的使用累计时长后,用户可能选择打开的下一个应用程序也可能不同,例如,屏幕显示时长达到1小时后,用户可能需要休息眼睛,此时可能会打开音乐播放器。本申请实施例中,可将屏幕显示时长作为状态特征信息的一个特征。
移动终端的运动状态可以在一定程度上反映出移动终端的使用场景,如跑步场景、开车场景、步行场景或静止场景等等不同的运动状态下,用户对应用程序的使用需求也可能不同,如跑步时可能需要使用音乐播放器听歌,开车时可能需要使用导航应用进行导航等等。此外,静止状态还可包括移动终端的姿态,如倾斜角度等等,可反映用户使用移动终端时的状态,如在桌面上使用,躺在床上使用等等。本申请实施例中,可将移动终端的运动状态作为状态特征信息的一个特征。
移动终端的位置信息可以在一定程度上反映出移动终端的使用环境,如在室内或室外,在办公室或家里,在商场、影院或旅游景点等等,用户在不同的位置可能也会选择使用不同的应用程序。本申请实施例中,可将移动终端的位置信息作为状态特征信息的一个特征。
需要说明的是,上述针对状态特征信息的每个特征进行了举例说明,为了表明任一特征取值不同的情况下均有可能对预测结果产生影响,但上述举例并不会对本申请实施例构成限定。当状态特征信息中的特征数量越多时,一般预测结果越准确,可根据实际情况进行特征的选取,且并不限于上述所列举的特征。
在一些实施例中,所述状态特征信息中的信息为实数,如为归一化后的实数,即可将样本中的特征的取值进行归一化处理,得到归一化后的实数,如归一化成0到1之间的实数。这样设置的好处在于,方便特征值的比对以及相关计算,可减少运算量。例如,可将每个特征对应的取值转化成相应的编号,如将WiFiSSID“abcd”转化为编号1,将WiFiSSID“xyz”转化为编号2等等,然后再进行归一化处理。其中,不同特征之间的编号可以均不相同,也可以复用(如充电状态和电池电量信息对应的编号中都可存在编号1),因为不同特征在样本中所处的位置不同。
在一些实施例中,构建决策树预测模型的相关操作可由移动终端来完成。示例性的,在检测到应用预加载预测事件被触发之前,还包括:在预设采集周期内针对预设应用集合中的应用程序进行样本采集,并分别构建每个应用程序对应的决策树预测模型。这样设置的好处在于,移动终端可以不用与服务器建立连接,即不需要具备网络访问功能,可保证样本采集的时效性和准确性,进而保证所构建的决策树预测模型更加贴合用户最近的使用习惯。预设采集周期可表示连续采集样本的时长,在预设采集周期内以预设采样频率进行样本采集。预设采集周期可根据移动终端的特性或用户使用需求等情况来确定,本申请不做限定,例如智能手机,多数用户几乎每天都会使用,预设采集周期可设置得短一些,如半个月,若用户的使用强度比较大(如每天使用的时间很长),可以设置得更短一些,如一周。本申请实施例中对采样频率也不做限定,例如可根据用户使用应用程序的频率或频次来确定。
可选的,所述在预设采集周期内针对预设应用集合中的应用程序进行样本采集,并分别构建每个应用程序对应的决策树预测模型,包括:对于预设应用程序集合中的每个应用程序,在预设采集周期内获取所述移动终端在样本采集时刻的第二状态特征信息,作为当前应用程序的样本,监测当前应用程序在所述样本采集时刻之后的预设时间段内是否被使用,并将监测结果记为当前样本的样本标记,根据所述预设采集周期内所采集的样本及对应的样本标记构建当前应用程序对应的决策树预测模型。其中,应用程序被使用,可包括应用程序启动,或应用程序从后台运行切换至前台运行等使用情况。示例性的,若当前应用程序在样本采集时刻之后的预设时间段内启动,可将样本标记记录为1,若未启动,可将样本标记记录为0,方便后续的模型构建。预设时段的长度可根据仿真或试验等方式来确定,本申请实施例不做限定,例如,可以是5分钟。
在一些实施例中,所述根据所述决策树预测模型的输出结果预测出即将启动的目标应用程序,包括:对于预设应用程序集合中的每个应用程序对应的决策树预测模型,获取当前决策树预测模型中与所述第一状态特征信息相匹配的叶子节点输出的概率值;从所得到的概率值中选取N个数值最大的概率值;将所选取的N个概率值分别对应的应用程序确定为即将启动的目标应用程序。其中,N可以是大于或等于1的正整数。从所得到的概率值中选取N个数值最大的概率值,具体可以是将所得到的概率值从大至小进行排序,选取排在前面的N个概率值。对于本申请实施例中的ID3决策树,每一棵树中有且仅有一个叶子节点与当前的第一状态特征信息相匹配,在该叶子节点,可以得到相应的输出概率值,概率值越大,其对应的应用程序即将被用户用到的可能性越高,也就是说即将被启动的可能性越高,因此,可将对应概率值较高的应用程序确定为目标应用程序,进行预加载操作。
进一步的,所述从所得到的概率值中选取N个数值最大的概率值,包括:获取所述移动终端中的存储空间信息,根据所述存储空间信息确定N的取值;从所得到的概率值中选取N个数值最大的概率值。这样设置的好处在于,可根据移动终端中当前剩余的存储空间的大小来确定预加载的应用程序的数目,当剩余存储空间较多时,可选择预加载多个应用程序,以提高预测结果的命中率,而当剩余存储空间较少时,可选择预加载一个应用程序,以节省存储空间,保证移动终端整体的运行流畅度。存储空间与N的对应关系可预先设置并存储于移动终端中。
在一些实施例中,样本的采集过程可以与应用程序预加载的预测过程并行执行,可定期删除样本集合中的陈旧部分,只保留最近的预设采集周期内的样本,以反映用户最新的使用习惯,同时还可减小预测操作的运算量,节省样本集占用的存储空间。
图2为本申请实施例提供的另一种应用程序预加载方法的流程示意图,该方法包括如下步骤:
步骤201、检测到应用预加载预测事件被触发时,获取移动终端当前的第一状态特征信息。
示例性的,状态特征信息中可包含时间信息、日期类别、移动数据网络的开关状态、无线热点的连接状态、所连接的无线热点的身份信息、当前运行的应用程序、上一个前景应用程序、当前应用程序在后台停留的时长、当前应用程序最近一次被切换至后台的时间、耳机插孔的插拔状态、充电状态、电池电量信息、屏幕显示时长、移动终端的运动状态和位置信息。
步骤202、对于预设应用程序集合中的每个应用程序,将所述第一状态特征信息输入至当前应用程序对应的决策树预测模型中。
其中,决策树预测模型可通过以下方式构建:
对于预设应用程序集合中的每个应用程序,在预设采集周期内获取所述移动终端在样本采集时刻的第二状态特征信息,作为当前应用程序的样本,监测当前应用程序在所述样本采集时刻之后的预设时间段内是否被使用,并将监测结果记为当前样本的样本标记,根据所述预设采集周期内所采集的样本及对应的样本标记构建当前应用程序对应的决策树预测模型。
下面以决策树预测模型为基于ID3算法的决策树预测模型为例进行详细的说明。
预设采集周期可以是2周,预设时间段内可以是从样本采集时刻开始计时的5分钟内。以预设应用程序集合中的一个应用程序A为例,介绍应用程序A对应的决策树预测模型的构建过程。可以理解的是,预设应用程序集合中的每个应用程序对应的样本采集时段以及构建决策树预测模型的过程均可以是相同或类似的,本申请不做一一说明。
针对预设应用程序集合中的每个应用程序,在2周内以预设采样频率(如10分钟一次)采集移动终端在每个样本采集时刻的第二状态特征信息,作为当前应用程序的样本,在每个样本采集时刻,监测当前应用程序在接下来的5分钟里是否被用户使用到,若被使用,则记为1,若未被使用,则记为0。样本以及对应的样本标记可被记为(x1,x2,...,xn,y),样本标记为y,样本中的特征可记为X,而每个特征记为xi。
当经过2周的样本采集后,收集到的样本时间跨度和数量足以体现用户的使用习惯,以应用程序A为例(应用程序A表示预设应用程序集合中的任意一个应用程序),基于ID3算法为应用程序A构建决策树。从数据库中提取出应用程序A的所有样本,初始化为训练数据集Y,构建算法描述如下:
(1)初始化初始输入样本空间为提取出来的应用程序A的所有样本。
(2)选择对于结果分类信息增益最大的特征作为当前节点分类特征。
对于当前节点对应的样本(首次执行时,当前节点为根节点,对应的样本为所提取的所有样本),计算样本分布的概率:
p1=正样本数/总样本数,p2=负样本数/总样本数,其中,正样本指样本标记为1的样本,负样本指样本标记为0的样本。
计算出样本的经验熵:
分别计算(1)中列出的所有特征X对于样本Y分类结果的条件熵:
其中,n为特征X的取值总数。若特征X为移动数据网络的开关状态,那么取值包括开启(x1为开启)和关闭(x2为关闭)两个值,那么n为2;若为上一个前景应用程序,那么n的取值可以是移动终端中装载的所有应用程序的总数,xi为具体的应用程序的名称。需要说明的是,计算条件熵公式中的pi与计算经验熵公式中的pi含义不同,条件熵公式中,根据X实际的取值,可将当前的所有样本分成n个子样本集,对于第i个子样本集,其对应的pi为该子样本集中包含的样本的数目与总样本数的比值。
在得到每个特征的条件熵以后,继续计算各特征对于样本的分类的信息增益:
g(Y,X)=H(Y)-H(Y|X)
比较各个特征的信息增益大小,选取信息增益最大的一个特征,作为目标特征。
(3)判断所选的目标特征对应的信息增益是否大于或等于预设增益阈值ε,若是,则选取该目标特征作为当前节点的划分特征,根据目标特征的取值分布,将样本划分为若干个空间,结合剩余的特征,分配给各子节点,对各子节点依次调用上述(2),其中,如果某个子节点只含有一类样本,则将该子节点作为叶子结点,其概率输出为1(均为正样本)或者0(均为负样本);如果目标特征的信息增益小于预设增益阈值ε,将当前节点作为叶子节点,将此节点中正样本数/总数得到的值作为该节点输出的出现正结果的概率值。
可以理解的是,当再次调用上述(2)时,当前节点为上一个节点的子节点,相应的,正样本数、负样本数以及总样本数均会重新确定,是与当前子节点相对应的。
经过上述(1)、(2)及(3)的操作,不断地选出对结果分类信息增益最大的特征作为分割点,直至叶子节点的所有样本为同一类,或者信息增益小于预设增益阈值为止,或所有特征遍历完毕,最终构建出应用程序A对应的决策树预测模型。
步骤203、获取每个决策树预测模型中与第一状态特征信息相匹配的叶子节点输出的概率值。
在每一棵树中,都有且仅有一个叶子节点与当前的第一状态特征信息匹配,在该叶子节点,得到相应的输出概率值。
步骤204、将输出的概率值最高的决策树预测模型对应的应用程序确定为目标应用程序。
步骤205、对所述目标应用程序进行预加载。
本申请实施例中提供的应用程序预加载方法,将移动终端当前的状态特征信息分别输入至预设应用程序集合中每个应用程序分别对应的基于ID3算法的决策树预测模型中,根据模型输出的概率值,得到接下来最有可能被启动的应用程序,对该应用程序进行预加载,从而准确地预测待启动应用程序,在节省存储空间的前提下,提升应用程序的启动速度。
图3为本申请实施例提供的又一种应用程序预加载方法的流程示意图,决策树预测模型在移动终端中进行构建,该方法包括:
步骤301、在预设采集周期内针对预设应用集合中的应用程序进行样本采集,并分别构建每个应用程序对应的决策树预测模型。
具体的,对于预设应用程序集合中的每个应用程序,在预设采集周期内获取所述移动终端在样本采集时刻的第二状态特征信息,作为当前应用程序的样本,监测当前应用程序在所述样本采集时刻之后的预设时间段内是否被使用,并将监测结果记为当前样本的样本标记,根据所述预设采集周期内所采集的样本及对应的样本标记构建当前应用程序对应的决策树预测模型。
示例性的,状态特征信息中可包含时间信息、日期类别、移动数据网络的开关状态、无线热点的连接状态、所连接的无线热点的身份信息、当前运行的应用程序、上一个前景应用程序、当前应用程序在后台停留的时长、当前应用程序最近一次被切换至后台的时间、耳机插孔的插拔状态、充电状态、电池电量信息、屏幕显示时长、移动终端的运动状态和位置信息。
步骤302、检测到应用预加载预测事件被触发时,获取移动终端当前的第一状态特征信息。
步骤303、对于预设应用程序集合中的每个应用程序,将所述第一状态特征信息输入至当前应用程序对应的决策树预测模型中。
步骤304、获取每个决策树预测模型中与第一状态特征信息相匹配的叶子节点输出的概率值。
步骤305、获取移动终端中的存储空间信息,根据存储空间信息确定N的数值。
示例性的,存储空间信息可以是剩余内存。可通过仿真或实验等手段预先测试不同剩余内存状态下,加载不同数量的应用程序时,移动终端的性能,从而确定不同的存储空间信息对应的N值,将对应关系存储至移动终端中。
此外,对于不同的应用程序来说,需要预加载的资源占用存储空间的情况也可能不同,也可根据当前的存储空间信息确定能够进行预加载的资源所占用的存储空间大小的总量,将应用程序按照对应的决策树预测模型输出的概率值从大至小的顺序进行排序,根据所述总量确定可以预加载的应用程序的总数,将该总数确定为N的取值。
步骤306、从所得到的概率值中选取N个数值最大的概率值,将所选取的N个概率值分别对应的应用程序确定为即将启动的目标应用程序。
步骤307、对N个目标应用程序进行预加载。
本申请实施例提供的应用程序预加载方法,样本中包含多个维度的特征,可全面地体现用户的使用习惯,将移动终端当前的状态特征信息分别输入至预设应用程序集合中每个应用程序分别对应的基于ID3算法的决策树预测模型中,根据模型输出的概率值以及移动终端当前的存储空间信息,能够快速准确地预测出一个或多个用户可能将要使用到的应用程序,提前预加载预测出的一个或多个应用程序,提高预测结果的命中率,从而有效提升应用程序的启动速度。
图4为本申请实施例提供的一种应用程序预加载装置的结构框图,该装置可由软件和/或硬件实现,一般集成在移动终端中,可通过执行应用程序预加载方法来对移动终端中的应用程序进行预加载。如图4所示,该装置包括:
第一状态获取模块401,用于检测到应用预加载预测事件被触发时,获取移动终端当前的第一状态特征信息;
特征信息输入模块402,用于对于预设应用程序集合中的每个应用程序,将所述第一状态特征信息输入至当前应用程序对应的决策树预测模型中,其中,所述决策树预测模型基于所述移动终端在对应历史状态特征信息时的应用程序使用规律生成;
应用预测模块403,用于根据所述决策树预测模型的输出结果预测出即将启动的目标应用程序;
应用预加载模块404,用于对所述目标应用程序进行预加载。
本申请实施例提供的应用程序预加载装置,检测到应用预加载预测事件被触发时,获取移动终端当前的第一状态特征信息,对于预设应用程序集合中的每个应用程序,将第一状态特征信息输入至当前应用程序对应的决策树预测模型中,其中,决策树预测模型基于移动终端在对应历史状态特征信息时的应用程序使用规律生成,根据决策树预测模型的输出结果预测出即将启动的目标应用程序,并对目标应用程序进行预加载。通过采用上述技术方案,可以根据移动终端当前的使用状态和基于用户历史使用过程中记录的状态以及对应的应用程序使用规律生成的决策树预测模型来预测出当前即将启动的应用程序,对该应用程序进行预加载,从而准确地预测待启动应用程序,在节省存储空间的前提下,提升应用程序的启动速度。
可选的,该装置还包括:
样本采集模块,用于在检测到应用预加载预测事件被触发之前,在预设采集周期内针对预设应用集合中的应用程序进行样本采集,并分别构建每个应用程序对应的决策树预测模型。
进一步的,所述在预设采集周期内针对预设应用集合中的应用程序进行样本采集,并分别构建每个应用程序对应的决策树预测模型,包括:
对于预设应用程序集合中的每个应用程序,在预设采集周期内获取所述移动终端在样本采集时刻的第二状态特征信息,作为当前应用程序的样本,监测当前应用程序在所述样本采集时刻之后的预设时间段内是否被使用,并将监测结果记为当前样本的样本标记,根据所述预设采集周期内所采集的样本及对应的样本标记构建当前应用程序对应的决策树预测模型。
可选的,所述根据所述预设采集周期内所采集的样本及对应的样本标记构建当前应用程序对应的决策树预测模型,包括:
根据所述预设采集周期内所采集的样本及对应的样本标记构建当前应用程序对应的基于ID3算法的决策树预测模型。
可选的,所述根据所述决策树预测模型的输出结果预测出即将启动的目标应用程序,包括:
对于预设应用程序集合中的每个应用程序对应的决策树预测模型,获取当前决策树预测模型中与所述第一状态特征信息相匹配的叶子节点输出的概率值;
从所得到的概率值中选取N个数值最大的概率值;
将所选取的N个概率值分别对应的应用程序确定为即将启动的目标应用程序。
可选的,所述从所得到的概率值中选取N个数值最大的概率值,包括:
获取所述移动终端中的存储空间信息,根据所述存储空间信息确定N的取值;
从所得到的概率值中选取N个数值最大的概率值。
可选的,所述状态特征信息包括以下至少一项:
时间信息、日期类别、移动数据网络的开关状态、无线热点的连接状态、所连接的无线热点的身份信息、当前运行的应用程序、上一个前景应用程序、当前应用程序在后台停留的时长、当前应用程序最近一次被切换至后台的时间、耳机插孔的插拔状态、充电状态、电池电量信息、屏幕显示时长、移动终端的运动状态和位置信息。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行应用程序预加载方法,该方法包括:
检测到应用预加载预测事件被触发时,获取移动终端当前的第一状态特征信息;
对于预设应用程序集合中的每个应用程序,将所述第一状态特征信息输入至当前应用程序对应的决策树预测模型中,其中,所述决策树预测模型基于所述移动终端在对应历史状态特征信息时的应用程序使用规律生成;
根据所述决策树预测模型的输出结果预测出即将启动的目标应用程序;
对所述目标应用程序进行预加载。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的应用程序预加载操作,还可以执行本申请任意实施例所提供的应用程序预加载方法中的相关操作。
本申请实施例提供了一种移动终端,该移动终端中可集成本申请实施例提供的应用程序预加载装置。图5为本申请实施例提供的一种移动终端的结构示意图。移动终端500可以包括:存储器501,处理器502及存储在存储器501上并可在处理器502运行的计算机程序,所述处理器502执行所述计算机程序时实现如本申请实施例所述的应用程序预加载方法。
本申请实施例提供的移动终端,可以根据移动终端当前的使用状态和基于用户历史使用过程中记录的状态以及对应的应用程序使用规律生成的决策树预测模型来预测出当前即将启动的应用程序,对该应用程序进行预加载,从而准确地预测待启动应用程序,在节省存储空间的前提下,提升应用程序的启动速度。
图6为本申请实施例提供的另一种移动终端的结构示意图,该移动终端可以包括:壳体(图中未示出)、存储器601、中央处理器(central processing unit,CPU)602(又称处理器,以下简称CPU)、电路板(图中未示出)和电源电路(图中未示出)。所述电路板安置在所述壳体围成的空间内部;所述CPU602和所述存储器601设置在所述电路板上;所述电源电路,用于为所述移动终端的各个电路或器件供电;所述存储器601,用于存储可执行程序代码;所述CPU602通过读取所述存储器601中存储的可执行程序代码来运行与所述可执行程序代码对应的计算机程序,以实现以下步骤:
检测到应用预加载预测事件被触发时,获取移动终端当前的第一状态特征信息;
对于预设应用程序集合中的每个应用程序,将所述第一状态特征信息输入至当前应用程序对应的决策树预测模型中,其中,所述决策树预测模型基于所述移动终端在对应历史状态特征信息时的应用程序使用规律生成;
根据所述决策树预测模型的输出结果预测出即将启动的目标应用程序;
对所述目标应用程序进行预加载。
所述移动终端还包括:外设接口603、RF(Radio Frequency,射频)电路605、音频电路606、扬声器611、电源管理芯片608、输入/输出(I/O)子系统609、其他输入/控制设备610、触摸屏612、其他输入/控制设备610以及外部端口604,这些部件通过一个或多个通信总线或信号线607来通信。
应该理解的是,图示移动终端600仅仅是移动终端的一个范例,并且移动终端600可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
下面就本实施例提供的用于应用程序预加载的移动终端进行详细的描述,该移动终端以手机为例。
存储器601,所述存储器601可以被CPU602、外设接口603等访问,所述存储器601可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
外设接口603,所述外设接口603可以将设备的输入和输出外设连接到CPU602和存储器601。
I/O子系统609,所述I/O子系统609可以将设备上的输入输出外设,例如触摸屏612和其他输入/控制设备610,连接到外设接口603。I/O子系统609可以包括显示控制器6091和用于控制其他输入/控制设备610的一个或多个输入控制器6092。其中,一个或多个输入控制器6092从其他输入/控制设备610接收电信号或者向其他输入/控制设备610发送电信号,其他输入/控制设备610可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮。值得说明的是,输入控制器6092可以与以下任一个连接:键盘、红外端口、USB接口以及诸如鼠标的指示设备。
触摸屏612,所述触摸屏612是用户移动终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。
I/O子系统609中的显示控制器6091从触摸屏612接收电信号或者向触摸屏612发送电信号。触摸屏612检测触摸屏上的接触,显示控制器6091将检测到的接触转换为与显示在触摸屏612上的用户界面对象的交互,即实现人机交互,显示在触摸屏612上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。
RF电路605,主要用于建立手机与无线网络(即网络侧)的通信,实现手机与无线网络的数据接收和发送。例如收发短信息、电子邮件等。具体地,RF电路605接收并发送RF信号,RF信号也称为电磁信号,RF电路605将电信号转换为电磁信号或将电磁信号转换为电信号,并且通过该电磁信号与通信网络以及其他设备进行通信。RF电路605可以包括用于执行这些功能的已知电路,其包括但不限于天线系统、RF收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、CODEC(COder-DECoder,编译码器)芯片组、用户标识模块(Subscriber Identity Module,SIM)等等。
音频电路606,主要用于从外设接口603接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器611。
扬声器611,用于将手机通过RF电路605从无线网络接收的语音信号,还原为声音并向用户播放该声音。
电源管理芯片608,用于为CPU602、I/O子系统及外设接口所连接的硬件进行供电及电源管理。
上述实施例中提供的应用程序预加载装置、存储介质及移动终端可执行本申请任意实施例所提供的应用程序预加载方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的应用程序预加载方法。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。