具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本说明书实施例保护的范围。
插件化的应用程序广泛应用于各种客户终端,例如个人计算机上安装的应用程序,又例如智能手机、平板电脑等移动终端上安装的应用程序等等。因此,本说明书实施例提供的插件加载方法适用于各类安装有插件化的应用程序的客户终端。应当指出的是,本说明书实施例提供的插件加载方法也不排除在其他设备上实现的可能性,例如,若服务器端也安装了插件化的应用程序,本说明书实施例提供的方法也可以应用在服务器上。
本说明书实施例提供的应用程序的插件加载方法,如图1所示,在应用程序的启动过程中,该方法包括如下步骤:
步骤101、获取上述应用程序的启动原因参数。
本说明书实施例中,具体获取哪些参数作为应用程序的启动原因参数是可以预先配置确定的。
应用程序的启动原因参数是指能够反映应用程序被启动的原因的参数。
步骤103、将上述启动原因参数作为行为预测模型的输入,利用该行为预测模型预测上述应用程序启动后被调用的业务。
其中,行为预测模型是将应用程序历次启动过程中获取的启动原因参数以及应用程序启动后被调用的业务作为样本训练得到的。
本说明书实施例中,预测的结果,即应用程序启动后被调用的业务可以是指应用程序启动后被调用的第一个业务,也可以是应用程序启动后被调用的前N个业务,其中N为配置的正整数,还可以是应用程序启动后被调用的第一个业务以及该业务关联的业务。本说明书对此不作限定。
步骤105、加载上述业务对应的插件。
其中,预先配置应用程序的业务与插件的对应关系,该步骤中,根据预先配置的对应关系加载插件。其中,上述业务可以对应一个插件,也可以对应一组插件。
由于应用程序的启动原因参数能够反映用户的意图,即反映应用程序启动后可能被调用的业务,因此,可以预先训练行为预测模型,用来对应用程序启动后被调用的业务进行预测,相应的,在应用程序的启动过程中获取其启动原因参数,并将该启动原因参数作为行为预测模型的参数,利用行为预测模型预测应用程序启动后被调用的业务,从而加载该业务对应的插件,而非在应用程序启动过程中加载预先配置的“有必要”的插件。由于现有方案无法预测用户的行为,因此,会配置较多的“有必要”的插件,以保证应用程序启动后,首次操作的流畅度,而本说明书实施例提供的技术方案,可以利用行为预测模型对用户意图进行预测,仅加载预测得到的业务对应的插件,因此可以大概率提高应用程序启动的速度、缩短应用程序启动的时间,且保证了应用程序启动后首次操作的流畅度。
如上所述,应用程序的启动原因参数是指能够反映应用程序被启动的原因的参数,具体可以包括以下任意参数或参数的组合:上述应用程序的启动时间,该应用程序的启动指令来源,该应用程序所在终端的应用栈的当前栈顶应用,该终端的当前定位信息,该终端的网络连接状态信息,该终端的预定时间和/或预定数量的应用系统通知内容分类。
具体应用过程中,可以根据实际需要配置所需获取的启动原因参数。
其中,由于用户的某些行为具有时间规律行,因此应用程序的启动时间能够反映应用程序的启动原因,进而可以预测用户的意图。本说明书实施例不对启动时间进行具体限定,例如,可以将接收到启动应用程序的指令的时间作为应用程序的启动时间,也可以将该应用程序的进程或线程被加载的时间作为应用程序的启动时间等等。
其中,通过不同方式启动应用程序也能客观反映应用程序的启动原因,进而预测用户的意图,因此,应用程序的启动指令来源可作为启动原因参数。应用程序的启动指令来源可以但不仅限于包括:触发应用程序的图标而产生的启动指令(即通过点击桌面图标启动应用程序)、通过第三方应用程序调用而产生的启动指令(即通过第三方应用程序调用启动)、通过触发系统应用通知而产生的启动指令(即通过系统通知(notification)而调用启动)。
其中,用户的行为往往具有连贯性和关联性,因此,在本应用程序启动之前用户所使用的应用程序可以反映本应用程序的启动原因,进而预测用户的意图,具体的,可以查找应用程序所在终端的应用栈的当前栈顶应用从而确定在本应用程序启动之前用户所使用的应用程序。
其中,终端的当前定位信息也可以反映本应用程序的启动原因,进而预测用户的意图。本说明书实施例中,终端的定位信息可以但不仅限于包括坐标定位信息(例如GPS坐标信息)、终端所加入的局域网标识信息、终端所在蜂窝小区信息等等。
其中,该终端的网络连接状态信息也可以反映本应用程序的启动原因,进而预测用户的意图。网络连接状态包括GPRS连接、热点连接、局域网连接、无网络连接等。
其中,应用系统通知内容分类也可以反映本应用程序的启动原因,进而预测用户的意图。具体的,可以获取该终端的预定时间和/或预定数量的应用系统通知内容分类。
本说明书实施例中,上述行为预测模型可以仅根据本账户对应的样本数据进行训练,即利用同一账户的上述应用程序历次启动过程中的启动原因参数及启动后被调用的应用程序训练该账户对应的行为预测模型,利用该账户对应的行为预测模型对该账户的上述应用程序启动后被调用的业务进行预测。上述行为预测模型还可以根据多个账户对应的样本数据进行训练。下面分别进行说明:
情况一、仅利用本账户对应的样本数据训练行为预测模型
这种情况下,由于单一账户的样本数据量较小,因此需要时间对行为预测模型进行训练,相应的,在利用行为预测模型进行预测之前,可以先判断该行为预测模型是否可用;在判断该行为预测模型可用后,将上述启动原因参数作为行为预测模型的输入,利用该行为预测模型预测应用程序启动后被调用的业务。
若行为预测模型不可用,那么利用其进行预测的预测结果精度将无法保证,既不一定能够达到缩短启动时间的目的,也无法达到提高首次操作流畅度的目的。为了避免这种情况发生,预先进行判断,在判断行为预测模型可用时才利用其进行预测。
若判断行为预测模型不可用,意味着还需要样本对行为预测模型进行训练。本说明书实施例中,可以利用步骤101获取的启动原因参数训练上述行为预测模型。应当指出的是,也可以不在本终端上进行模型训练,而是将获取的启动原因参数上报给服务器,由服务器对同一账户多个终端上报的启动原因参数进行模型训练,也可以由服务器将接收到的启动原因参数发送给指定的终端进行模型训练。
其中,利用启动原因参数训练行为预测模型,具体是指利用本次应用程序启动的启动原因参数以及本次应用程序启动完成后被调用的业务的信息作为样本训练模型数据。
本发明实施例中,更进步的,可以在应用程序启动完成后,将模型训练结果与应用程序启动后调用业务的实际结果进行比对;在根据比对结果确定行为预测模型可用后,标记所述行为预测模型可用;在根据比对结果确定所述行为预测模型不可用后,标记所述行为预测模型不可用。
其中,对行为预测模型进行标记的实现方式有多种,例如设置行为预测模型的标志位,通过配置该标志位的取值表示行为预测模型是否可用。
在情况一的上述各个实施例中,上述行为预测模型可以在单终端上训练并使用,即,终端仅根据本终端获取的样本数据进行行为预测模型的训练以及使用;上述行为预测模型还可以在同一账户的多个终端上训练并使用,相应的,上述行为预测模型可以是从服务器获取的,即,在利用该行为预测模型进行预测之前,从服务器获取该应用程序当前登录账户对应的行为预测模型。若需要判断行为预测模型是否可用,则在从服务器获取了该行为预测模型之后进行判断。
若仅利用本账户对应的样本数据训练行为预测模型,尤其是利用单终端的样本数据进行行为预测模型的训练,由于样本量较小,优选采用无监督学习的方式进行模型训练,本说明书实施例不对模型训练所采用的具体算法进行限定。
情况二、利用多账户对应的样本数据训练行为预测模型
这种情况下,可以快速获取大量样本数据用于模型训练,因此既可以采用无监督学习算法,也可以采用有监督学习算法,本说明书实施例不对算法进行具体限定。相应的,可以从服务器获取上述行为预测模型。由于不同用户的行为习惯不同,为了使得该行为训练模型对本用户的意图预测更准确,可以利用本账户对应的样本数据对行为预测模型进行优化。
更进一步的,由于同类用户的行为习惯接近,因此,可以对帐户进行分类,利用同类账户的样本数据进行行为预测模型的训练。本说明书实施例不对账号分类的具体分类方式进行限定,可以根据实际需要及经验确定。
下面结合具体应用场景对本说明书实施例提供的应用程序的插件加载方法进行详细说明。
在本应用场景中,智能手机上安装有插件化的应用程序A,该应用程序A包括实现不同业务的多个插件,需要获取的启动原因参数配置信息,业务与插件的对应关系表以及机器学习引擎。如图2所示,在应用程序A启动过程中:
步骤201、根据启动原因参数配置信息获取应用程序A的启动原因参数。
步骤202、根据行为预测模型标志位的取值判断行为预测模型是否可用。
本实施例中,行为预测模型是本智能手机根据应用程序A历次启动获取的样本数据,利用机器学习引擎训练得到的。
应当指出的是,本说明书实施例不对步骤201和步骤202的时序进行限定。
若行为预测模型不可用,执行模型训练流程;
若行为预测模型可用,执行步骤203、将获取的启动原因参数输入到行为预测模型,利用该行为预测模型预测应用程序A启动后被调用的业务。
步骤204、根据业务与插件对应关系表查找上述业务对应的插件,提高查找到的插件的优先级并降低其他插件的优先级,以确保这些插件在应用程序A的启动过程中被加载,而不加载其他插件。
步骤205、根据插件的优先级加载插件。
由于加载插件时是根据插件的优先级顺序进行加载的,因此,可以通过调整插件的优先级,保证预测的业务对应的插件在应用程序A的启动过程中进行加载。在应用程序A启动完成后,若用户没有触发未加载的插件,则在CPU、线程和IO接口空闲时根据优先级顺序加载其他插件,若用户触发了某个未加载的插件,则立即加载该插件。
更进一步的,应用程序A启动完成后,可以根据本次启动过程中加载的插件进行显示,例如,将加载的插件对应的业务图标以彩色形式显示,表示该业务可操作,其他业务图标以灰色形式显示,表示该业务不可操作。
上述处理过程中,若判断行为预测模型不可用,则需要进行行为预测模型的训练,其处理过程如图3所示:
步骤301、在应用程序A的启动过程中,获取其启动原因参数。
其中,若在上述过程中已经获取了启动原因参数,则该步骤可跳过。
步骤302、在应用程序A启动完成后,获取被调用的第一个业务的信息。
步骤303、根据本次获取的启动原因参数及第一个业务的信息生成样本数据。
步骤304、将生成的样本数据输入机器学习引擎,进行行为预测模型的训练。
步骤305、将本次获取的启动原因参数输入到本次训练得到的行为预测模型进行预测,将预测结果与上述第一个业务的信息进行比对。
比对的具体实现方式有多种,例如,可以将预测结果与第一个业务的信息量化,从而计算两个量化值的距离或差值。又或者,判断预测结果与第一个业务的信息是否符合,若符合,则对正计数器的取值加一,否则,对负计数器的取值加一,根据这两个计数器的取值判断该行为预测模型是否可用,例如,其比值达到设定阈值,则认为行为预测模型可用。
步骤306、根据比对结果判断该行为预测模型是否可用。
若行为预测模型可用,执行步骤307、标记该行为预测模型可用。
若行为预测模型不可用,执行步骤308、标记该行为预测模型不可用。
与上述方法实施例相对应,本说明书实施例还提供一种应用程序的插件加载装置,如图4所示,包括启动原因参数获取模块401、行为预测模块402和插件加载模块403,所述应用程序启动过程中:
所述启动原因参数获取模块401用于获取所述应用程序的启动原因参数;
所述行为预测模块402用于将所述启动原因参数作为行为预测模型的输入,利用所述行为预测模型预测所述应用程序启动后被调用的业务;
所述插件加载模块403用于加载所述业务对应的插件。
由于应用程序的启动原因参数能够反映用户的意图,即反映应用程序启动后可能被调用的业务,因此,可以预先训练行为预测模型,用来对应用程序启动后被调用的业务进行预测,相应的,在应用程序的启动过程中获取其启动原因参数,并将该启动原因参数作为行为预测模型的参数,利用行为预测模型预测应用程序启动后被调用的业务,从而加载该业务对应的插件,而非在应用程序启动过程中加载预先配置的“有必要”的插件。由于现有方案无法预测用户的行为,因此,会配置较多的“有必要”的插件,以保证应用程序启动后,首次操作的流畅度,而本说明书实施例提供的技术方案,可以利用行为预测模型对用户意图进行预测,仅加载预测得到的业务对应的插件,因此可以大概率提高应用程序启动的速度、缩短应用程序启动的时间,且保证了应用程序启动后首次操作的流畅度。
本说明书实施例中,上述行为预测模型可以仅根据本账户对应的样本数据进行训练,即利用同一账户的上述应用程序历次启动过程中的启动原因参数及启动后被调用的应用程序训练该账户对应的行为预测模型,利用该账户对应的行为预测模型对该账户的上述应用程序启动后被调用的业务进行预测。上述行为预测模型还可以根据多个账户对应的样本数据进行训练。下面分别进行说明:
情况一、仅利用本账户对应的样本数据训练行为预测模型
这种情况下,由于单一账户的样本数据量较小,因此需要时间对行为预测模型进行训练,相应的,所述装置还包括模型可用判断模块,用于判断所述行为预测模型是否可用;
所述行为预测模块用于在判断所述行为预测模型可用后,将所述启动原因参数作为行为预测模型的输入,利用所述行为预测模型预测所述应用程序启动后被调用的业务。
若行为预测模型不可用,那么利用其进行预测的预测结果精度将无法保证,既不一定能够达到缩短启动时间的目的,也无法达到提高首次操作流畅度的目的。为了避免这种情况发生,预先进行判断,在判断行为预测模型可用时才利用其进行预测。
若判断行为预测模型不可用,意味着还需要样本对行为预测模型进行训练。本说明书实施例中,所述装置还包括模型训练模块,用于在判断所述行为预测模型不可用后,利用所述启动原因参数训练所述行为预测模型。
应当指出的是,也可以不在本终端上进行模型训练,而是将获取的启动原因参数上报给服务器,由服务器对同一账户多个终端上报的启动原因参数进行模型训练,也可以由服务器将接收到的启动原因参数发送给指定的终端进行模型训练。
其中,利用启动原因参数训练行为预测模型,具体是指利用本次应用程序启动的启动原因参数以及本次应用程序启动完成后被调用的业务的信息作为样本训练模型数据。
本说明书实施例中,所述装置还包括模型可用标记模块,用于所述应用程序启动完成后,将模型训练结果与所述应用程序启动后调用业务的实际结果进行比对;在根据比对结果确定所述行为预测模型可用后,标记所述行为预测模型可用;在根据比对结果确定所述行为预测模型不可用后,标记所述行为预测模型不可用。
其中,对行为预测模型进行标记的实现方式有多种,例如设置行为预测模型的标志位,通过配置该标志位的取值表示行为预测模型是否可用。
在情况一的上述各个实施例中,上述行为预测模型可以在单终端上训练并使用,即,终端仅根据本终端获取的样本数据进行行为预测模型的训练以及使用;上述行为预测模型还可以在同一账户的多个终端上训练并使用,相应的,上述行为预测模型可以是从服务器获取的,即,所述装置还包括第一模型获取模块,用于:
从服务器获取所述应用程序当前登录账户对应的行为预测模型。
若仅利用本账户对应的样本数据训练行为预测模型,尤其是利用单终端的样本数据进行行为预测模型的训练,由于样本量较小,优选采用无监督学习的方式进行模型训练,本说明书实施例不对模型训练所采用的具体算法进行限定。
情况二、利用多账户对应的样本数据训练行为预测模型
这种情况下,可以快速获取大量样本数据用于模型训练,因此既可以采用无监督学习算法,也可以采用有监督学习算法,本说明书实施例不对算法进行具体限定。相应的,所述装置还包括第二模型获取模块,用于:从服务器获取所述行为预测模型。由于不同用户的行为习惯不同,为了使得该行为训练模型对本用户的意图预测更准确,可以利用本账户对应的样本数据对行为预测模型进行优化。
更进一步的,由于同类用户的行为习惯接近,因此,可以对帐户进行分类,利用同类账户的样本数据进行行为预测模型的训练。本说明书实施例不对账号分类的具体分类方式进行限定,可以根据实际需要及经验确定。相应的,所述行为预测模型是利用所述应用程序当前登陆账户的同类账户对应的启动原因参数训练得到的。
在上述任意装置实施例的基础上,所述应用程序的启动原因参数包括以下至少一种:
所述应用程序的启动时间,所述应用程序的启动指令来源,所述应用程序所在终端的应用栈的当前栈顶应用,所述终端的当前定位信息,所述终端的网络连接状态信息,所述终端的预定时间和/或预定数量的应用系统通知内容分类。
另外,本申请实施例还提供了一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行上述计算机程序时实现上述任意方法实施例中所描述方法的步骤。
本说明书实施例提供的计算机设备可以但不仅限于包括移动终端,个人计算机等。其中,移动终端可以但不仅限于包括智能手机、平板电脑等。
其中,图5示例性的展示出了计算机设备的架构,具体可以包括处理器510,视频显示适配器511,磁盘驱动器512,输入/输出接口513,网络接口514,以及存储器520。上述处理器510、视频显示适配器511、磁盘驱动器512、输入/输出接口513、网络接口514,与存储器520之间可以通过通信总线530进行通信连接。
其中,处理器510可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器520可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器520可以存储用于控制计算机系统500运行的操作系统521,用于控制计算机系统500的低级别操作的基本输入输出系统(BIOS)。另外,还可以存储网页浏览器523,数据存储管理系统524等。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器520中,并由处理器510来调用执行。
输入/输出接口513用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口514用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线530包括一通路,在设备的各个组件(例如处理器510、视频显示适配器511、磁盘驱动器512、输入/输出接口513、网络接口514,与存储器520)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器510、视频显示适配器511、磁盘驱动器512、输入/输出接口513、网络接口514,存储器520,总线530等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
另外,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意方法实施例所描述的方法的步骤。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或计算机设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及计算机设备实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本说明书实施例所提供的应用程序的插件加载方法、装置、计算机设备及存储介质,进行了详细介绍,本文中应用了具体个例对本说明书实施例的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本说明书实施例的方法及其核心思想;同时,对于本领域的一般技术人员,依据本说明书实施例的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。