CN116048648B - 应用预加载方法、应用的启动方法及电子设备 - Google Patents

应用预加载方法、应用的启动方法及电子设备 Download PDF

Info

Publication number
CN116048648B
CN116048648B CN202210901775.0A CN202210901775A CN116048648B CN 116048648 B CN116048648 B CN 116048648B CN 202210901775 A CN202210901775 A CN 202210901775A CN 116048648 B CN116048648 B CN 116048648B
Authority
CN
China
Prior art keywords
application
mobile phone
dimension
electronic equipment
app
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
Application number
CN202210901775.0A
Other languages
English (en)
Other versions
CN116048648A (zh
Inventor
李文军
陈飞
王英超
谢泽雄
孙文涌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202210901775.0A priority Critical patent/CN116048648B/zh
Publication of CN116048648A publication Critical patent/CN116048648A/zh
Application granted granted Critical
Publication of CN116048648B publication Critical patent/CN116048648B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Telephone Function (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种应用预加载方法、应用的启动方法及电子设备,涉及人工智能技术领域。电子设备先根据用户日常使用电子设备的行为数据以及场景信息训练初始的预测模型,得到训练好的预测模型,该训练好的预测模型能够预测电子设备在不同场景下需预加载的应用。之后,电子设备在处于某个场景下时,利用训练好的预测模型预测在该场景下用户将要启动的应用,即确定预加载的应用。之后,电子设备预加载该应用,将该应用的启动进程数据加载至内存。如果用户启动该应用,电子设备可以响应于该应用的启动操作,直接显示该应用的初始可操作界面,而无需再加载该应用的相关启动内容,实现应用的快速启动,减少用户的等待时间。

Description

应用预加载方法、应用的启动方法及电子设备
技术领域
本申请涉及人工智能(artificial intelligence,AI)技术领域,尤其涉及一种应用预加载方法、应用的启动方法及电子设备。
背景技术
随着手机的发展,手机的配置得到了提升,手机能够安装的应用(application,APP)的数目也越来也多。为了使用户能够使用APP提供的服务,手机在接收到用户对APP的启动操作后,启动该APP。并在启动成功后,手机显示APP的初始可操作界面(如登录页面、游戏开始界面),以使用户在对初始可操作界面进行相关操作后,便可以使用APP提供的服务。
然而,手机在启动APP的过程中,需要先加载APP的启动动画、广告等启动内容。在该启动内容加载完成后,手机才能显示用户所需的初始可操作界面,导致APP的启动时间较长,需要用户等待较长的时间才能够使用APP,降低用户体验。
发明内容
有鉴于此,本申请提供了一种应用预加载方法、应用的启动方法及电子设备,可以缩短APP的启动时间,从而缩短用户的等待时间。
第一方面,本申请提供一种应用预加载方法,该方法可以应用于包括多个APP的电子设备,该电子设备中包括多个预设场景对应的预测模型,该预测模型可以预测所述电子设备在不同预设场景下预加载的APP。该电子设备在运行的过程中,可以获取当前状态信息;其中,该操作数据用于指示用户在预设时长内在该电子设备上触发的操作,该设备数据包括以下中的至少一项:该电子设备的时间信息、位置信息、接收到的通知消息、该电子设备连接的外部设备的标识和该电子设备运行的APP的标识;
该电子设备在确定该当前状态信息满足第一预设场景对应的触发条件的情况下,可以将该当前状态信息输入至训练好的预测模型中,并获取该训练好的预测模型输出的预测结果;该预测结果包括至少一个应用的信息,该应用的信息包括该应用的标识,该至少一个应用包括第一应用和/或第二应用;该第一应用指示预测预加载的APP,该第二应用指示预测不预加载的APP,该第一预设场景为上述多个预设场景中的至少一个预设场景;在该应用的信息包括第一应用的信息的情况下,该电子设备根据至少一个第一应用的信息,将该至少一个第一应用预加载至该电子设备的内存中。
其中,上述电子设备运行的APP的标识可以为电子设备在前台运行的APP的标识。
在本申请实施例中,电子设备在运行的过程中,根据用户当前输入的操作数据和电子设备当前采集的设备数据确定电子设备的当前状态信息。电子设备先判断该当前状态信息是否满足预设场景对应的触发条件,以确定该电子设备是否处于某个预设场景下,实现场景的识别。之后,在确定当前状态信息满足第一预设场景对应的触发条件时,表明该电子设备处于该第一预设场景下,则电子设备将该当前状态信息输入至训练好的预测模型,该训练好的预测模型利用训练好的预测模型预测用户在该第一预设场景下将要启动的APP,即确定预加载的APP,并输出预测结果,该预测结果包括应用的标识,该应用包括第一应用(即预测的预加载的APP)和/或第二应用(预测不预加载的APP)的信息,可以实现预加载APP的准确预测。然后,在该预测结果包括第一应用的标识的情况下,该电子设备对该第一应用进行预加载,使用户在启动该第一应用时,电子设备可以直接显示该第一应用的初始可操作界面,而无需在加载该第一应用的启动内容后才能显示该第一应用的初始可操作界面,即无需显示该第一设备的加载过程,缩短了第一应用的启动时间,从而缩短用户等待APP的启动时间,用户体验高。
其中,上述预测模型是端侧算法模型,即可以在电子设备端便可以实现预加载APP的预测,无需将电子设备上的数据上传至相关服务器,以供利用该服务器进行APP的预测,并且该预测模型占用的资源较小,从而在保证APP的预测速度的同时,可以避免数据的泄露,保护数据的隐私性。
其中,上述当前状态信息包括至少一个预设维度对应的参数信息。上述时间信息包括电子设备的当前时间,上述位置信息包括电子设备的当前位置。该预设维度可以包括时间维度、位置维度、屏幕锁维度、关联使用维度、返回桌面维度、通知消息维度、运行的APP维度、连接的外部设备维度中的一个或多个。
其中,上述多个预设场景中的每个预设场景对应的触发条件包括该预设场景的各个预设维度对应的触发条件。该预设场景的各个预设维度对应的触发条件是基于用户的行为习惯确定的。相应的,上述确定该当前状态信息满足第一预设场景对应的触发条件为该当前状态信息满足该第一预设场景的所有预设维度的触发条件。
在本申请实施例中,对于每个预设场景,在电子设备可以从当前状态信息中获取到该预设场景的各个预设维度对应的参数信息的情况下,电子设备判断该各个预设维度对应的参数信息是否对应预设维度对应的触发条件,如果该各个维度对应的参数信息分别满足对应预设维度所对应的触发条件,则电子设备可以将该预设场景作为第一预设场景,并可以确定电子设备当前处于该预设场景下,实现场景的准确识别。在该当前状态信息中未存在该预设场景的至少一个维度对应的参数信息的情况下,电子设备可以直接确定该当前状态信息不满足该预设场景对应的触发条件,即确定电子设备当前未处于该预设场景下。
下面通过几种示例介绍确定该当前状态信息是否满足预设场景对应的触发条件的过程。
一种示例中,上述预设场景包括第一场景,该第一场景的预设维度包括连接的外部设备维度;该第一场景指示设备场景;电子设备在可以从当前状态信息中获取到电子设备连接的外部设备标识的情况下,如果该外部设备标识包括第一预设设备标识,则确定该当前状态信息满足该第一场景对应的触发条件,电子设备可以将该第一场景作为上述第一预设场景。其中,该外部设备标识为当前状态信息中的该连接的外部设备维度对应的参数信息。
另一种示例中,上述预设场景包括第二场景,该第二场景的预设维度包括时间维度和位置维度;该第二场景指示时间+地点场景;电子设备在可以从当前状态信息中获取到电子设备的当前时间及当前位置的情况下,如果该当前时间属于第一预设时间,且该当前位置属于第一预设位置,则确定该当前状态信息满足该第二场景对应的触发条件,电子设备可以将该第二场景作为上述第一预设场景。其中,该当前时间为该当前状态信息中的时间维度对应的参数信息;该当前位置为当前状态信息中的该位置维度对应的参数信息。
另一种示例中,上述预设场景包括第三场景,该第三场景的预设维度包括时间维度;该第三场景指示时间场景;电子设备在可以从当前状态信息中获取到电子设备的当前时间的情况下,如果该当前时间属于第二预设时间,则确定该当前状态信息满足该第三场景对应的触发条件,电子设备可以将该第三场景作为上述第一预设场景。该当前时间为当前状态信息中的该时间维度对应的参数信息。
另一种示例中,上述预设场景第四场景,该第四场景的预设维度包括位置维度;该第四场景指示地点场景;电子设备在可以从当前状态信息中获取到电子设备的当前位置的情况下,如果该当前位置属于第二预设位置,则确定该当前状态信息满足该第四场景对应的触发条件,电子设备可以将该第四场景作为上述第一预设场景。该当前位置为当前状态信息中的该位置维度对应的参数信息。
另一种示例中,上述预设场景第五场景,该第五场景的预设维度包括通知消息维度;该第五场景指示通知消息场景;电子设备在可以从当前状态信息中获取到通知消息的情况下,确定该当前状态信息满足该第五场景对应的触发条件,电子设备可以将该第五场景作为上述第一预设场景。该通知消息为当前状态信息中的该通知消息维度对应的参数信息。
另一种示例中,上述预设场景包括第六场景,该第六场景的预设维度包括关联使用维度;该第六场景指示关联使用场景;电子设备在可以从当前状态信息中获取到启动的应用的标识的情况下,如果该应用的标识属于第一预设应用标识,则确定该当前状态信息满足该第六场景对应的触发条件,电子设备可以将该第六场景作为上述第一预设场景。该启动的应用的标识为当前状态信息中的该关联使用维度对应的参数信息。
另一种示例中,上述预设场景包括第七场景,该第七场景的预设维度包括屏幕锁维度;该第七场景指示屏幕锁场景;电子设备在可以从当前状态信息中获取到用户操作的标识的情况下,如果该用户操作的标识为屏幕解锁操作标识,则确定该当前状态信息满足该第七场景对应的触发条件,电子设备可以将该第七场景作为上述第一预设场景。该用户操作的标识为当前状态信息中的该屏幕锁维度对应的参数信息。
其中,上述启动的应用的标识以及屏幕锁操作标识是根据用户的操作数据,即用户输入的触发操作确定的。
另一种示例中,上述预设场景包括第八场景,该第八场景的预设维度包括返回桌面维度;该第八场景指示返回桌面场景;电子设备在可以从当前状态信息中获取到用户操作的标识的情况下,如果该用户操作的标识为返回桌面操作的标识,该返回桌面操作指示从电子设备的APP返回至该电子设备的桌面,则确定该当前状态信息满足该第八场景对应的触发条件,电子设备可以将该第八场景作为上述第一预设场景。该触发操作的标识为当前状态信息中的该屏幕锁维度对应的参数信息。
另一种示例中,上述预设场景包括第九场景,该第九场景的预设维度包括位置维度和连接的外部设备维度;该第九场景指示地点+设备场景;电子设备在可以从当前状态信息中获取到电子设备的当前位置以及电子设备连接的外部设备标识的情况下,如果该当前位置属于第三预设位置,且该外部设备标识包括第二预设设备标识,则确定该当前状态信息满足该第十场景对应的触发条件,电子设备可以将该第十场景作为上述第一预设场景。其中,该当前位置为当前状态信息中的位置维度对应的参数信息;该外部设备标识为当前状态信息中的该连接的外部设备维度对应的参数信息。
另一种示例中,上述预设场景包括第十场景,该第十场景的预设维度包括时间维度、位置维度和通知消息维度;该第九场景指示时间+地点+通知消息场景;电子设备在可以从当前状态信息中获取到电子设备的当前时间、当前位置以及通知消息的情况下,如果该当前时间属于第三预设时间,该当前位置属于第四预设位置以及该通知消息所属的应用标识为第二预设应用标识,则确定该当前状态信息满足该第十场景对应的触发条件,电子设备可以将该第十场景作为上述第一预设场景。其中,该当前时间为时间维度对应的参数信息,该当前位置为当前状态信息中的位置维度对应的参数信息,该通知消息所属的应用标识为当前状态信息中的该通知消息维度对应的参数信息。
另一种示例中,上述预设场景包括第十一场景,该第十一场景的预设维度包括时间维度、位置维度和运行的APP维度;该第十场景指示时间+地点+应用运行场景;电子设备在可以从当前状态信息中获取到电子设备的当前时间、当前位置和目标应用的运行状态的情况下,如果该当前时间属于第四预设时间、该当前位置属于第五预设位置以及该目标应用的运行状态为目标状态,则确定该当前状态信息满足该第十一场景对应的触发条件,电子设备可以将该第十一场景作为上述第一预设场景。
其中,如果当前状态信息中的在前台运行的APP的标识包括目标应用的标识,则确定该目标应用的运行状态为运行中;如果当前状态信息中的在前台运行的APP的标识没有包括目标应用的标识,则确定该目标应用的运行状态为未运行。
另一种示例中,上述预设场景包括第十二场景,该第十二场景的预设维度包括时间维度、位置维度和连接的外部设备维度;该第十二场景指示时间+地点+设备场景;电子设备在可以从当前状态信息中获取到电子设备的当前时间、当前位置和电子设备连接的外部设备标识的情况下,如果该当前时间属于第五预设时间、该当前位置属于第六预设位置以及该外部设备标识包括第三预设设备标识,则确定该当前状态信息满足该第十二场景对应的触发条件,电子可以将该第十二场景作为上述第一预设场景。
在一种可能的设计中,在完成第一应用的预加载后,如果电子设备接收到用户启动该第一应用的操作,则该电子设备响应于该操作,在该电子设备的实体显示屏上显示该第一应用的初始可操作界面。
在本申请实施例中,用户在启动电子设备上的某个APP时,如果该APP已经预加载完成,则电子设备可以将该APP由后台应用切换为前台应用,并直接显示该APP的初始可操作界面,而无需再加载该APP的启动动画、广告等启动内容,实现APP的秒开。
在一种可能的设计中,上述第一应用的信息还可以包括第一应用的预加载信息。该预加载信息可以包括预加载时间。电子设备在预加载时间到达的情况下,将该第一应用预加载至内存中。
在本申请实施例中,在预测结果包括第一应用的标识的情况下,表明电子设备需预加载该第一应用,则电子设备可以在到达第一应用的预加载时间时,预加载该第一应用,可以避免过早预加载第一应用导致长时间占用手机的资源,从而影响手机的性能。
在一种可能的设计中,上述第一应用的预加载信息可以包括保活时长;该保活时长指示第一应用预加载后能够在内存中存活的时长,即可以表示该第一应用预加载后能够在后台中静默运行的时长。电子设备在完成该第一应用的预加载的情况下,开始计时;若计时到达该第一应用的保活时长,且未接收到用户启动所述第一应用的操作,则该电子设备从内存中释放所述第一应用;
在本申请实施例中,对于每个已经预加载的第一应用,如果该第一应用在后台静默加载的时长已经超过该第一应用的保活时长,表明该第一应用在预加载完成后长时间未启动,该第一应用可能不是用户想要启动的应用。为了避免资源的占用,电子设备可以清理掉该第一应用,即从内存中释放该第一应用。
在一种可能的设计中,电子设备在预加载第一应用时,如果电子设备的内存中存在虚拟屏,则电子设备可以在该虚拟屏上加载该第一应用。如果该内存中不存在虚拟屏,则电子设备可以创建虚拟屏,并在该虚拟屏上加载该第一应用。
其中,在虚拟屏上加载该第一应用时,该虚拟屏可以显示该第一应用的启动内容以及初始可操作界面。该启动内容指示电子设备在加载该第一应用时,在显示该第一应用的初始可操作界面之前显示的内容。
相应的,电子设备在接收到用户启动该第一应用的操作时,响应于该操作,电子设备可以将第一应用的初始可操作界面由上述虚拟屏迁移至电子设备的实体显示屏上显示。
在本申请实施例中,电子设备在预加载第一应用时,可以在内存中的虚拟屏上加载该第一应用,即在虚拟屏上加载该第一应用对应的启动动画、广告等启动内容,也即在该虚拟屏上显示该第一应用的加载过程,并在该启动内容加载完成后,在该虚拟屏上继续加载第一应用的初始可操作界面,也即电子设备在该虚拟屏上实现第一应用的加载,从而使得第一应用在启动时,可以直接将虚拟屏上的初始可操作界面迁移至电子设备的实体显示屏上,实现初始可操作界面的快速显示。
在一种可能的设计中,电子设备在完成第一应用预加载完成后,将该第一应用的启动进程数据由第一存储器转移至第二存储器;其中,该第一存储器可以为该电子设备的运行内存,所述第二存储器可以为电子设备的非运行内存。该启动进程数据指示启动该第一应用所利用的数据。
其中,该第一存储器可以为RAM存储器,该第二存储器可以为ROM存储器。
应理解,电子设备在预加载第一应用时,会将该第一应用的启动进程数据保存在第一存储器中。
相应的,电子设备在接收到用户启动该第一应用的操作时,响应于该操作,电子设备可以将该第一应用的启动进程数据由上述第二存储器转移至上述第一存储器,并在电子设备的显示屏显示该第一应用的初始可操作界面。
在本申请实施例中,电子设备在已经预加载第一应用后,可以将第一存储器存储的第一应用的启动进程数据转存到第二存储器中,以减少运行内存消耗,从而可以减少预加载第一应用对电子设备的性能的影响,以保证其它应用程序仍旧可以正常运行。并且,在用户启动该第一应用时,电子设备可以重新将该第一应用的启动进程数据由第二存储器转存到第一存储器中,从而保证该第一应用的正常启动运行。
在一种可能的设计中,在将上述第一应用的启动进程数据由上述第一存储器转移至上述第二存储器之前,电子设备可以对该启动进程数据进行压缩。
在本申请实施例中,电子设备压缩第一存储器中的第一应用的启动进程数据,并将压缩后的该启动进程数据保存至第二存储器,从而可以减少对第二存储器资源的占用。
在一种可能的设计中,电子设备在完成第一应用预加载完成后,可以将该第一应用的任务栏状态设置为隐藏状态。
在本申请实施例中,由于电子设备上的任务栏会显示在后台运行的APP。因此,在第一应用预加载完成后,为了避免用户产生第一应用为什么会启动的疑惑,电子设备可以将该第一应用的任务栏状态设置为隐藏状态,以使该第一应用虽然仍在后台运行,但不在任务栏中显示。
在一种可能的设计中,上述电子设备在预加载上述第一应用之前,可以获取电子设备的第一运行信息,该第一运行信息指示所述电子设备的硬件资源的负载;
在该第一运行信息指示的负载低于第一预设负载阈值时,该电子设备根据该第一应用的信息,将该第一应用预加载至该电子设备的内存中。
在本申请实施例中,电子设备预加载第一应用时,可以判断电子设备的性能是否能够预加载该第一应用。为了避免预加载第一应用导致对电子设备的性能造成影响(如电子设备出现卡顿等问题),电子设备获取第一运行信息,以供利用该第一运行信息判断电子设备是否能够预加载该第一应用,也即判断电子设备的性能是否支持预加载该第一应用。在该第一运行信息所指示的负载低于第一预设负载阈值的情况下,表明该电子设备的硬件资源的负载较小,电子设备可以根据该第一应用的信息,预加载该第一应用。
其中,上述第一运行信息包括第一CPU利用率,该第一CPU利用率指示电子设备的CPU资源占用情况,该第一内存剩余容量指示电子设备能够使用的内存的大小。相应的,上述第一运行信息指示的负载低于第一预设负载阈值包括第一CPU利用率小于或等于第一预设CPU占用阈值;和/或,上述第一运行信息包括第一内存剩余容量,该第一内存剩余容量指示电子设备能够使用的内存大小。相应的,上述第一运行信息指示的负载低于第一预设负载阈值包括第一内存剩余容量大于第一预设内存剩余阈值。
在本申请实施例中,电子设备判断第一运行信息所指示的负载是否低于该第一预设负载阈值,如果低于,表明电子设备的负载较低,硬件资源充足,则电子设备可以预加载该第一应用。如果不低于,表明该电子设备负载较高,硬件资源不足,则电子设备不能够预加载该第一应用。例如,第一运行信息包括第一CPU利用率以及第一内存剩余容量,则电子设备判断该电子设备的第一CPU利用率是否小于或等于第一预设CPU利用阈值,以判断该电子设备的CPU资源是否充足,以及判断该电子设备的第一内存剩余容量是否大于第一预设内存剩余阈值,以判断该电子设备的内存资源是否充足。在确定该第一CPU利用率小于或等于第一预设CPU占用阈值,且第一内存剩余容量大于第一预设内存剩余阈值时,表明电子设备的硬件资源充足,则电子设备确定能够预加载该第一应用。
在一种可能的设计中,在预加载上述第一应用之前,电子设备可以获取上述至少一个第一应用中的各个第一应用的资源占用信息,该资源占用信息指示预加载第一应用时所占用的硬件资源大小;该电子设备根据该运行信息和该各个第一应用的资源占用信息,得到第二运行信息;该第二运行信息指示电子设备尝试预加载该至少一个第一应用后的硬件资源的负载;在该第二运行信息所指示的负载低于第二预设负载阈值的情况下,电子设备将该至少一个第一应用预加载至所述电子设备的内存中。
其中,上述资源占用信息包括第一应用对应的第二CPU利用率,该第二CPU利用率指示电子设备在预加载第一应用时,该第一应用占用的CPU资源大小。上述第二运行信息包括目标CPU利用率,该目标CPU利用率指示电子设备的CPU资源占用情况。相应的,上述第二运行信息所指示的负载低于第二预设负载阈值包括目标CPU利用率低于第二预设CPU占用阈值;和/或,
上述资源占用信息包括第一应用对应的内存占用量,该内存占用量指示电子设备在预加载该第一应用时,第一应用占用的内存大小。上述第二运行信息包括目标内存剩余容量,该目标内存剩余容量指示电子设备能够使用的内存大小。相应的,上述第二运行信息指示的负载低于第二预设负载阈值包括目标内存剩余容量大于第二预设内存剩余阈值。
在本申请实施例中,电子设备根据各个第一应用的资源占用信息以及当前运行信息(即第一运行信息)预估电子设备预加载该各个第一应用后的硬件资源的负载情况,即得到第二运行信息。根据该第二运行信息判断电子设备在预加载所有第一应用后的资源是否充足,从而可以确定出电子设备预加载所有第一应用是否影响电子设备的性能,进而在确定预加载该所有第一应用后的硬件资源仍旧充足的情况下,即在确定预加载该第一应用不会影响电子设备的性能的情况下,该电子设备可以根据第一应用的信息,预加载该第一应用。
应理解,应用在加载时所占用的硬件资源是固定的,因此,在预加载该应用时,所需占用的硬件资源的大小也是固定。电子设备可以根据应用的版本直接确定应用对应的资源占用信息。
在一种可能的设计中,在预加载上述第一应用之前,电子设备可以获取电子设备的第一运行信息以及上述至少一个第一应用中的各个第一应用的资源占用信息。根据该第一运行信息和各个第一应用的资源占用信息,从该第一应用中确定目标预加载应用。电子设备根据该目标预加载应用的信息,将所述目标预加载应用预加载至所述电子设备的内存中。
在本申请实施例中,当第一应用的数量为多个时,电子设备可能无法预加载全部的第一应用,则电子设备可以先基于当前运行信息(即第一运行信息)以及各个第一应用的资源占用信息,确定电子设备能够预加载的第一应用,即确定目标预加载应用。然后,该电子设备仅预加载该目标预加载应用,从而可以预加载部分预测的第一应用,进而在实现应用预加载的基础上,可以减少对电子设备的性能的影响。
在一种可能的设计中,电子设备在利用训练好的预测模型预测不同预设场景下预加载的APP之前,电子设备可以获取电子设备的APP的历史使用记录;其中,每个APP的历史使用记录包括APP的标识、该电子设备启动所述APP时用户的操作数据以及设备数据;
该电子设备可以基于每个预设场景的维度,从该APP的历史使用记录中提取对应维度的特征数据;该电子设备可以根据该预设场景的维度的特征数据训练初始的预测模型,得到该训练好的预测模型。
在本申请实施例中,电子设备可以将APP的历史使用记录作为样本数据,然后,对于每个预设场景,电子设备可以从该样本数据提取该预设场景的不同维度的特征数据。之后,电子设备利用不同预设场景的维度的特征数据对初始的预测模型进行训练,以使该初始的预测模型学习用户的使用规律,得到电子设备在不同预设场景下的使用习惯,从而得到能够预测电子设备在不同预设场景下可能会启动的APP的训练好的预测模型。
第二方面,本申请提供一种应用的启动方法,该方法可以应用于电子设备。该电子设备响应于电子设备的当前状态信息满足预设触发条件,所述电子设备在后台对第一应用进行预加载,以在所述电子设备的虚拟屏上显示所述第一应用的初始可操作界面;
响应于用户启动对该第一应用的操作,该电子设备将该第一应用的初始可操作界面由所述虚拟屏迁移至所述电子设备的实体显示屏上进行显示。
在本申请实施例中,电子设备在确定当前状态信息满足预设场景对应的触发条件,即预设触发条件时,表明该电子设备处于该预设场景下,则电子设备将需预加载的应用,即第一应用预加载至后台,以在该电子设备的虚拟屏上显示该第一应用的初始可操作界面。然后,在用户启动该第一应用时,电子设备可以直接在实体显示屏上显示该第一应用的初始可操作界面,而无需在加载该第一应用的启动内容后才能显示该第一应用的初始可操作界面,即无需在该实体显示屏上显示该第一应用的加载过程,从而缩短了第一应用的启动时间,进而缩短用户等待APP的启动时间,用户体验高。
第三方面,本申请提供一种电子设备,所述电子设备包括显示屏、存储器和一个或多个处理器;所述显示屏、所述存储器和所述处理器耦合;所述显示屏用于显示所述处理器生成的图像,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行如上所述的方法。
第四方面,本申请提供一种计算机可读存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如上所述的方法。
第五方面,本申请提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如上所述的方法。
可以理解地,上述提供的第二方面所述的应用的启动方法,第三方面所述的电子设备,第四方面所述的计算机存储介质,第五方面所述的计算机程序产品所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种应用启动的显示界面示意图一;
图2A为本申请实施例提供的一种应用启动的显示界面示意图二;
图2B为本申请实施例提供的一种应用启动的显示界面示意图三;
图3为本申请实施例提供的一种应用启动的显示界面示意图四;
图4为本申请实施例提供的一种电子设备的硬件结构示意图;
图5为本申请实施例提供的一种电子设备的软件结构示意图;
图6为本申请实施例提供的一种应用预加载方法的流程示意图一;
图7为本申请实施例提供的一种模型训练的流程示意图;
图8为本申请实施例提供的一种应用预加载的流程示意图;
图9为本申请实施例提供的一种应用预加载方法的流程示意图二;
图10为本申请实施例提供的一种应用预加载的过程示意图;
图11为本申请实施例提供的一种手机的结构示意图;
图12为本申请实施例提供的一种应用预加载方法的流程示意图三。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
如图1所示,用户点击手机桌面上的王者荣耀TMAPP10。手机响应于该点击操作,启动该王者荣耀TMAPP10。在启动王者荣耀TMAPP10的过程中,如图2A所示,手机需要先显示启动动画20,然后显示加载界面21(如图2B所示)。并且该启动动画以及加载界面均不存在任何可供用户操作的控件。在该启动内容加载完成后,手机才显示如图3所示的初始可操作界面30,该初始可操作页面为该王者荣耀TMAPP10加载时首个显示的存在用户能够操作的控件(如开始游戏按钮31)的界面,此时,用户可以通过点击开始游戏按钮31进入游戏。
在一些实现方式中,为了缩短APP的启动时间,手机可以先预测用户接下来要启动的手机上的APP(即需预加载的APP)。然后,手机预加载该APP。这样,手机在接收用户对该APP的启动操作后,便可以快速启动该APP。
在一种方案中,预加载APP是指手机预先准备将要启动的APP所需的内存等硬件资源,即预先准备加载现场。当手机接收到APP的启动操作后,可以直接利用该硬件资源启动APP。然而,虽然预先准备加载现场可以缩短一定的启动时间,但手机在启动APP的过程中,仍需要在加载APP的启动动画、广告等启动内容后,才能显示该APP的初始可操作界面。因此,导致用户仍需等待一段时间后,才能够使用APP。
在另一种方案中,预加载APP虽然是指手机预先将需预加载的APP的相关启动进程数据(如上述启动内容)加载至内存。当手机接收到该APP的启动操作后,可以直接显示该APP的初始可操作界面。但手机在预测预加载的APP时,一般是基于单一固化维度(即单一固化场景)进行预测。
一种示例中,手机可以统计手机在一段时间使用的各个APP的次数。手机可以基于最频繁使用(most frequently used,MFU)原则,将使用次数最多的一个或多个APP的启动预加载至内存。而对于手机上的某些APP,用户虽然使用这些APP具有规律性,但由于使用的次数较少,导致手机仍无法预测出用户是否要启动这些APP,造成APP预测的准确率较低。
另一种示例中,手机可以先在用户使用手机上的APP的过程中,采集训练样本。并利用训练样本训练预测模型。然后,当手机接收到用户输入屏幕解锁操作后,利用训练后的预测模型确定手机上的APP的启动概率,然后将启动概率较高的一个或多个APP作为用户将要启动的APP,即预加载的APP。此种方式是仅应用于屏幕锁场景中,手机无法预测其它场景下预加载的APP,导致APP预测的准确率较低。
因此,针对上述问题,本申请提出一种关于电子设备预加载APP的方案。首先,电子设备根据用户日常使用电子设备的行为数据以及场景信息训练预测模型,以使该预测模型学习用户在不同场景下使用APP的行为习惯规律。训练好的预测模型能够预测电子设备在不同场景下需预加载的APP。之后,电子设备在检测到电子设备满足某个场景对应的触发条件(例如,当前时间为某个时间点、电子设备处于某个位置)后,利用预测模型预测预加载的APP,实现不同场景下的预加载的APP的准确确定,满足用户在不同场景下的APP使用需求。之后,电子设备预加载该APP,将该APP的启动进程数据加载至内存。之后,如果用户启动该APP,电子设备响应于该APP的启动操作,可以直接显示该APP的初始可操作界面,而无需再加载该APP的相关启动内容,实现APP的快速启动,减少用户的等待时间。例如,电子设备在预加载王者荣耀TMAPP后,如果用户启动王者荣耀TMAPP(如图1所示),电子设备可以直接显示如图3所示的初始可操作界面30,而无需显示加载过程(如图2A和图2B所示的加载过程)。
示例性的,本申请实施例中的电子设备可以是手机、平板电脑、可穿戴设备、个人数字助理(personal digital assistant,PDA)等能够进行录像的设备,本申请实施例对该电子设备的具体形态不作特殊限制。
示例性的,图4示出了电子设备200的结构示意图。如图4所示,电子设备200可以包括处理器210,外部存储器接口220,内部存储器221,通用串行总线(universal serialbus,USB)接口230,充电管理模块211,电源管理模块212,电池213,天线1,天线2,移动通信模块240,无线通信模块250,音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及用户标识模块(subscriber identificationmodule,SIM)卡接口295等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备200的具体限定。在本申请另一些实施例中,电子设备200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备200的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serialbus,USB)接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备200的结构限定。在本申请另一些实施例中,电子设备200也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块211用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块211可以通过USB接口230接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块211可以通过电子设备200的无线充电线圈接收无线充电输入。充电管理模块211为电池213充电的同时,还可以通过电源管理模块212为电子设备供电。
电子设备200的无线通信功能可以通过天线1,天线2,移动通信模块240,无线通信模块250,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备200中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块240可以提供应用在电子设备200上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块240可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块240可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块240还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块240的至少部分功能模块可以被设置于处理器210中。在一些实施例中,移动通信模块240的至少部分功能模块可以与处理器210的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器270A,受话器270B等)输出声音信号,或通过显示屏294显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器210,与移动通信模块240或其他功能模块设置在同一个器件中。
无线通信模块250可以提供应用在电子设备200上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块250可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块250经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块250还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
电子设备200通过GPU,显示屏294,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏294用于显示图像,视频等。显示屏294包括显示面板。显示面板可以采用液晶显示屏(liquidcrystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备200可以包括1个或N个显示屏294,N为大于1的正整数。
电子设备200可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及应用处理器等实现拍摄功能。
外部存储器接口220可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备200的存储能力。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器210通过运行存储在内部存储器221的指令,从而执行电子设备200的各种功能应用以及数据处理。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备200使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备200可以通过音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
按键290包括开机键,音量键等。按键290可以是机械按键。也可以是触摸式按键。
指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
传感器模块280可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
图5是本申请实施例提供的电子设备200的软件结构框图。分层架构可将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将AndroidTM系统分为四层,从上至下分别为应用程序层,应用程序框架(framework)层,安卓运行时(AndroidTM runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图5所示,应用程序包可以包括相机,日历,地图,导航,WLAN,蓝牙,音乐,视频,短信息、游戏、购物、交通等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图5所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备200的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Androidruntime包括核心库和虚拟机。Androidruntime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:OpenGLES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
电子设备为了能够预测要启动的APP(即预加载的APP),基于用户日常使用电子设备上APP的行为数据以及不同场景的维度,搭建能够预测不同场景下预加载的APP的预测模型,以供电子设备在识别到电子设备所处的场景时,可以利用该预测模型预测用户在该场景下将要启动的APP,也即预测电子设备在该场景下预加载的APP,从而预测得到预加载的APP,提前识别用户使用意图,实现预加载的APP的精准预测。并在电子设备的性能支持预加载APP的情况下,预加载预测的APP,使得在用户使用该APP时,该APP已经提前在后台加载,可以快速显示该APP的初始可操作界面,进而实现该APP的快速启动。
下面将以电子设备为手机为例,将本申请实施例提供的应用预加载方法分为两个实施例进行介绍,其中,实施例一用于介绍预测模型的训练部分,实施例二用于介绍预测模型的使用部分。
实施例一
本申请实施例提供一种应用预加载方法。在该实施例中,手机利用样本数据对初始的预测模型进行训练,以得到训练好的预测模型。该训练好的预测模型能够预测电子设备在不同场景下预加载的APP。具体的,如图6所示,本申请实施例提供的应用预加载方法可以包括S601-S603。
S601、手机将采集的历史用户行为数据作为样本数据。
其中,历史用户行为数据指示手机上APP的历史使用记录。当用户对手机上的APP进行了触发操作(如启动操作)时,手机记录与该触发操作相关的数据,从而得到该APP的使用记录。
示例性的,上述APP的使用记录可以包括:APP的标识以及使用该APP时的设备数据和用户的操作数据。上述设备数据可以包括:时间信息、位置信息、手机的网络状态信息、用户开始使用该APP时,手机此时运行的APP的标识、用户使用该APP之前所使用的上N个APP的标识,该N为正整数、手机的剩余电量,手机连接的外部设备(如蓝牙耳机、WiFi网络)以及手机中的传感器采集的数据等。其中,上述时间信息可以包括:用户开始使用APP的时间点(即APP的启动时间),用户使用上一个APP的时长等。该时间点可以包括:具体日期(如2022年1月1日),时间区间(如10:00:01-10:05:25),周内(weekday)或者周末(weekend),以及节假日(如除夕、儿童节或国庆节等)中的一项或多项。上述位置信息可以是用户开始使用APP时,手机所处的位置。该位置信息可以是手机通过GPS定位得到的。手机的网络状态信息可以包括:用户开始使用APP时,手机所连接的网络的标识,如5G网络、4G网络、3G网络或2G网络。
上述用户的操作数据可以包括:用户在使用APP之前所进行的操作的标识。例如,用户通过点击手机上的应用A的通知消息启动该应用A,则该应用A的用户的操作数据可以包括通知消息点击操作标识;又例如,用户在解锁屏幕锁后启动应用B,则该应用B的用户的操作数据可以包括屏幕解锁操作标识。
上述手机运行的APP的标识指示手机在前台和/或后台运行的APP,也即可以确定手机上的APP的运行状态,该运行状态指示该APP是否在运行,该运行状态包括运行中和未运行。
需要说明的是,在一种实现方式中,上述“用户开始使用APP”是指:手机响应于用户启动该APP的操作,启动该APP。或者,上述“用户开始使用APP”是指:手机响应于用户将该APP由后台运行切换为前台运行的操作,在前台显示该APP的界面。
例如,响应于用户启动APP的操作,手机启动该APP时,手机可获取上述设备数据和上述用户的操作数据。又例如,响应于用户将该APP由后台运行切换为前台运行的操作,手机前台显示该APP的界面时,可以获取上述设备数据和上述用户的操作数据。
在另一种实现方式中,上述“用户开始使用APP”是指:手机接收到用户启动该APP的操作。其中,响应于用户启动该APP的操作,手机可以启动该APP。或者,“用户开始使用APP”是指:手机接收到用户将该APP由后台运行切换为前台运行的操作。其中,响应于用户将该APP由后台运行切换为前台运行的操作,手机可以在前台显示该APP的界面。
例如,手机接收到用户启动APP的操作时,手机可以获取上述设备数据和上述用户的操作数据。也就是说,手机接收到用户启动APP的操作时,无论手机响应于该操作是否已经启动该APP,只要手机接收到用户启动APP的操作,便可获取上述设备数据和上述用户的操作数据。又例如,响应于用户将该APP由后台运行切换为前台运行的操作,手机前台显示该APP的界面时,可以获取上述设备数据和上述应用数据。也就是说,手机接收到用户将该APP由后台运行切换为前台运行的操作时,无论手机响应于该操作是否已经在前台显示该APP的界面,只要手机接收到该操作,便可获取上述设备数据和上述用户的操作数据。
可以理解,用户使用APP时的设备数据和操作数据,可以反映出该用户使用该APP的习惯。其中,不同用户使用APP的习惯不同;因此,不同手机采集到的用户使用APP时的场景、设备数据和操作数据不同。
S602、手机从该样本数据中提取特征数据。
在本申请实施例中,如图7所示,为了提高模型的训练精度以及训练速度,并且为了减少数据的干扰,手机对于样本数据中的每条数据(即每条历史使用记录),基于每个维度,从该历史使用记录中提取对应维度的特征数据,从而可以得到该条历史使用记录对应的特征数据。该条历史使用记录对应的特征数据是由至少一个特征值组成,每个特征值为一个维度对应的具体参数值。该维度包括时间维度、位置维度、屏幕锁维度、关联使用维度、返回桌面维度、通知消息维度、运行的APP维度、连接的外部设备维度中的一个或多个。
示例性的,应用1的一条历史使用记录指示该应用1是用户在20:00时通过点击手机接收到的应用1的通知消息启动的,且手机此时的位置为坐标1,连接名称为“XX”的WIFI网络,该手机此时运行的APP包括应用2以及用户使用该应用1之前所使用的上一个APP为应用3,则该条历史使用记录的时间维度对应的特征值为20:00,位置维度对应的特征值为坐标1,通知消息维度对应的特征值为应用1的通知消息,运行的APP维度对应的特征值为应用2的标识,连接的外部设备维度对应的特征值为名称为“XX”的WIFI网络,关联使用维度对应的特征值为应用3的标识。
应用4的一条历史使用记录指示该应用4是用户在8:00解锁手机的屏幕锁后,首个启动的APP,且手机此时的位置为坐标2,使用4G网络,以及连接有名称为“aaa”的蓝牙耳机,则该条历史使用记录的时间维度对应的特征值为8:00,位置维度对应的特征值为坐标2,屏幕锁维度对应的特征值为屏幕解锁操作标识,连接的外部设备维度对应的特征值为名称为“aaa”的蓝牙耳机。
S603、手机根据预设场景的维度的特征数据训练初始的预测模型,得到训练好的预测模型。其中,该训练好的预测模型能够预测手机在不同场景下预加载的APP。
在本申请实施例中,如图7所示,手机根据特征数据对预测模型对应的场景所对应的模型参数进行训练,以使预测模型基于该特征数据学习用户使用APP的习惯规律,确定APP是否存在经常使用的场景,并输出场景特征表。该场景特征表包括手机所适用的场景(即手机上APP对应的经常使用的场景)及各个场景的维度对应的触发特征值。手机对于每个场景,根据该场景的各个维度对应的触发特征值确定该各个维度对应的触发条件,从而得到该场景对应的触发条件。该各个维度对应的触发特征值指示用户在启动APP时的各个维度对应的具体值。该触发条件指示场景的维度对应的参数信息所需满足的条件,也即当手机采集的数据中存在该场景的各个维度对应的参数信息,并且各个维度对应的参数信息满足对应触发条件时,表明手机处于该场景下。下面将结合具体示例介绍不同场景对应的触发条件。
一种示例中,用户在处于某个地点时,经常会使用手机上的某个APP。例如,用户在处于地铁站时,经常使用手机上的交通APP支付地铁费用。相应的,手机基于相关特征数据对预测模型进行训练。该预测模型通过特征数据发现位置与启动该APP的关系较大,因此,该预测模型确定该交通APP适用于地点场景,即手机适用的场景包括地点场景。并且预测模型输出的场景特征表包括地点场景的位置维度对应的触发特征值(如地铁站的位置,其表示用户在地铁站会启动该交通APP)。相应的,手机确定该地点场景的位置维度对应的参数信息包括手机当前位置。并且手机根据该位置维度对应的触发特征值确定该位置维度对应的触发条件,也即得到该地点场景对应的触发条件,该触发条件包括手机当前位置属于第二预设位置(例如,第二预设位置为与上述地铁站距离小于或等于50米的区域网格内)。
另一种示例中,用户在手机接收到APP的通知消息时,经常会点开该通知消息,并通过该通知消息进入该APP。相应的,手机基于相关特征数据对预测模型进行训练。该预测模型通过特征数据发现通知消息与启动APP的关系较大,因此,确定APP适用于通知消息场景,即手机适用的场景包括通知消息场景。并且预测模型输出的场景特征表包括通知消息场景的通知消息维度对应的触发特征值(如手机接收到APP的通知消息)。相应的,手机确定该通知消息场景的通知消息维度对应的参数信息包括手机接收到APP的通知消息。并且手机根据该通知消息维度对应的触发特征值确定该通知消息维度对应的触发条件,也即得到该通知消息场景对应的触发条件。该触发条件包括手机接收到APP的通知消息。当然,用户也有可能是在手机接收到某个特定APP的通知消息时,才通过该通知消息进入该APP。相应的,该通知消息场景的通知消息维度对应的触发特征值为手机接收到的通知消息为该特定APP的标识。该通知消息场景的通知消息维度对应的参数信息包括手机接收到的通知消息所属的应用标识,并且该消息维度对应的触发条件包括手机接收到的通知消息所属的应用标识为预设应用标识。
另一种示例中,用户经常会打开应用A使用一段时间后,便打开应用B,即用户存在应用A/B应用关联跳转的使用习惯。相应的,手机基于相关特征数据对预测模型进行训练。该预测模型通过特征数据发现启动应用A与启动应用B的关系较大,因此,该预测模型确定该应用A/B适用于关联使用场景,即手机适用的场景包括关联使用场景。相应的,预测模型输出的场景特征表包括关联使用场景的关联使用维度对应的触发特征值(如手机启动应用A)。相应的,手机确定该关联使用场景的关联使用维度对应的参数信息包括手机启动的应用的标识。并且手机根据该关联使用维度对应的触发特征值确定该关联使用维度对应的触发条件,也即得到该关联使用场景对应的触发条件。该触发条件包括手机启动的应用的标识属于第一预设应用标识(如应用A的标识)。
另一种示例中,用户在解锁手机屏幕锁(如通过面部识别解锁、通过指纹解锁或通过密码解锁)后,经常会点开某个APP。例如,用户在解锁手机屏幕锁后,经常会启动手机上的应用1。相应的,手机基于相关特征数据对预测模型进行训练。该预测模型通过特征数据发现手机屏幕解锁与启动该APP的关系较大,因此,该预测模型确定该APP适用于屏幕锁场景。相应的,预测模型输出的场景特征表包括屏幕锁场景的屏幕锁维度对应的触发特征值(如手机解锁屏幕锁,即手机接收到屏幕解锁操作)。相应的,手机确定该屏幕锁场景的屏幕锁维度对应的参数信息包括手机接收到的用户操作。并且手机根据该屏幕锁维度对应的触发特征值确定该屏幕锁维度对应的触发条件,也即得到该屏幕锁场景对应的触发条件。该触发条件包括手机接收到的用户操作的标识为屏幕解锁操作标识。
另一种示例中,用户在由某个APP返回桌面后,在不同时间段会点开不同APP。例如,在使用手机应用的过程中,用户会退出某个APP,然后点击启动桌面上的其它APP,且启动的APP与时间存在关联。例如,用户在由某个应用返回至桌面时,该应用由前台应用变为后台应用,然后,用户会点击启动桌面上的抖音TM。相应的,手机基于相关特征数据对预测模型进行训练。该预测模型通过特征数据发现返回桌面操作与启动APP的关系较大,因此,该预测模型确定该APP适用于返回桌面场景。相应的,预测模型输出的场景特征表包括返回桌面场景的返回桌面维度对应的触发特征值(如手机解锁屏幕锁,即手机接收到屏幕解锁操作)。相应的,手机确定该返回桌面场景的返回桌面维度对应的参数信息包括手机接收到的用户操作。并且手机根据该返回桌面维度对应的触发特征值确定该返回桌面维度对应的触发条件,也即得到该返回桌面场景对应的触发条件。该触发条件包括手机接收到的用户操作的标识为返回桌面操作的标识。
另一种示例中,用户经常会在某个时间使用手机上的某个APP。例如用户经常在10:00使用手机上的办公APP参加线上会议。相应的,手机基于相关特征数据对预测模型进行训练。该预测模型通过特征数据发现时间与启动该APP的关系较大,因此,该预测模型确定该APP适用于时间场景,手机适用的场景包括时间场景。并且预测模型输出的场景特征表包括时间场景的时间维度对应的触发特征值(如10:00)。相应的,手机确定该时间场景的时间维度对应的参数信息包括手机当前时间。并且手机根据该时间维度对应的触发特征值确定该时间维度对应的触发条件,也即得到该时间场景对应的触发条件包括手机当前时间属于第一预设时间(如上述10:00)。
另一种示例中,手机在连接外部设备后,经常会使用手机上的某个APP。例如,在手机连接蓝牙耳机后,用户会使用音乐APP来听歌。相应的,手机基于相关特征数据对预测模型进行训练。该预测模型通过特征数据发现手机连接外部设备与启动该APP的关系较大,因此,该预测模型确定该APP适用于设备场景,即该手机适用的场景包括设备场景。相应的,预测模型输出的场景特征表包括设备场景的连接的外部设备维度对应的触发特征值(如手机连接蓝牙耳机)。相应的,手机确定该设备场景的连接的外部设备维度对应的参数信息包括手机连接的外部设备标识。并且手机根据该连接的外部设备维度对应的触发特征值确定该连接的外部设备维度对应的触发条件,也即得到该设备场景对应的触发条件。该触发条件为手机连接的外部设备标识包括第一预设设备标识(如上述蓝牙耳机标识)。
应理解,上面列举的单一场景(即仅对应一个维度的场景)仅为一种示例,还可以存在其它场景,如应用运行场景,该场景的维度包括运行的APP维度。本申请不再对单一场景一一进行列举。
下面将接着介绍复合场景(即对应多个维度的场景)对应的触发条件。该复合场景对应的触发条件通过对上述单一维度对应的触发条件组合得到的。
一种示例中,用户经常会在某个时间,某个地点时,使用手机上的某个APP。例如,用户经常在公司的午休时间(12:15-12:45)内使用视频APP。相应的,手机基于相关特征数据对预测模型进行训练。该预测模型通过特征数据发现时间和位置与启动该APP的关系较大,因此,该预测模型确定该APP适用于时间+地点场景,即该手机适用的场景包括时间+地点场景。并且预测模型输出的场景特征表包括时间维度对应的触发特征值(如该12:15-12:45)以及位置维度对应的触发特征值(如该公司的位置)。相应的,手机确定该时间+地点场景的时间维度对应的参数信息包括手机当前时间和位置维度对应的参数信息包括手机当前位置。并且手机根据确定该时间维度对应的触发特征值确定该时间维度对应的触发条件,以及根据该位置维度对应的触发特征值确定该位置维度对应的触发条件,从而得到该时间+地点场景对应的触发条件。其中,该时间维度对应的触发条件包括手机当前时间属于第二预设时间。该位置维度对应的触发条件包括手机当前位置属于第一预设位置。
另一种示例中,用户在位于某个地点,且手机连接外部设备后,经常会使用手机上的某个应用。例如,用户下班回家,连接上标识为“XXX”的WIFI网络后,经常会使用游戏APP玩游戏。相应的,手机基于相关特征数据对预测模型进行训练。该预测模型通过特征数据发现位置和手机连接外部设备与启动该APP的关系较大,因此,该预测模型确定该APP适用于地点+设备场景,即该手机适用的场景包括地点+设备场景。并且预测模型输出的场景特征表包括位置维度对应的触发特征值(如该家的位置)以及连接的外部设备维度对应的触发特征值(如该WIFI网络)。相应的,手机确定该地点+设备场景的时间维度对应的参数信息包括手机当前位置和连接的外部设备维度对应的参数信息包括手机连接的外部设备标识。并且手机根据确定该位置维度对应的触发特征值确定该位置维度对应的触发条件,以及根据该连接的外部设备维度对应的触发特征值确定该连接的外部设备维度对应的触发条件,从而得到该地点+设备场景对应的触发条件。其中,该位置维度对应的触发条件包括手机当前位置属于第三预设位置(如上述家的位置)。该设备场景对应的触发条件包括手机连接的外部设备标识包括第二预设设备标识(如上述WIFI标识)。
另一种示例中,用户在某个时间、某个地点,并且接收到APP的通知消息后,经常会点开该通知消息,并通过该通知消息进入该APP。例如,用户在8:00乘坐地铁,收到新闻APP的通知消息后,经常会通过该通知消息点开新闻APP。相应的,手机基于相关特征数据对预测模型进行训练。该预测模型通过特征数据发现时间、位置和通知消息与启动该APP的关系较大,因此,该预测模型确定该APP适用于时间+通知消息+地点场景,即该手机适用的场景包括时间+通知消息+地点场景。并且预测模型输出的场景特征表包括时间维度对应的触发特征值(如该8:00)、位置维度对应的触发特征值(如地铁上)和该通知消息维度对应的触发特征值(如手机接收到新闻APP的通知消息)。相应的,手机确定该时间+通知消息+地点场景的时间维度对应的参数信息包括手机当前时间、位置维度对应的参数信息包括手机当前位置以及该通知消息维度对应的参数信息包括手机接收到的通知消息所属的应用标识。并且手机根据确定该时间维度对应的触发特征值确定该时间维度对应的触发条件,根据该通知消息维度对应的触发特征值确定该通知消息维度对应的触发条件以及根据该位置维度对应的触发特征值确定该位置维度对应的触发条件,从而得到该时间+通知消息+地点场景对应的触发条件。该时间维度对应的触发条件包括手机当前时间属于第三预设时间。该通知消息维度对应的触发条件为手机接收到的通知消息所属的应用标识包括第二预设应用标识(如该新闻APP的标识)。该位置维度对应的触发条件包括手机当前位置属于第四预设位置。
另一种示例中。手机适用的场景包括时间+地点+应用运行场景。用户在某个时间,某个地点,且手机上的目标应用的运行状态为目标状态(如运行中或未运行)时,经常会使用手机上的某个应用。该目标应用的运行状态指示目标应用是否处于运行中。例如,用户周末在超市使用付款APP后,会使用打车APP。相应的,手机基于相关特征数据对预测模型进行训练。该预测模型通过特征数据发现时间、地点和应用允许状态与启动该APP的关系较大,因此,该预测模型确定该APP适用于时间+通知消息+应用运行场景,即该手机适用的场景包括时间+通知消息+应用运行场景。并且预测模型输出的场景特征表包括时间维度对应的触发特征值(如该周末)、位置维度对应的触发特征值(如该超市的位置)以及运行的APP维度对应的触发特征值(如付款APP的运行状态为运行中)。相应的,手机确定该时间+地点+应用运行场景的时间维度对应的参数信息包括手机当前时间、位置维度对应的参数信息包括手机当前位置和运行的APP维度对应的参数信息包括目标应用的运行状态。并且手机根据确定该时间维度对应的触发特征值确定该时间维度对应的触发条件,根据该位置维度对应的触发特征值确定该位置维度对应的触发条件,以及根据该运行的APP维度对应的参数信息确定该运行的APP维度对应的触发条件,从而得到该时间+通知消息+应用运行场景对应的触发条件。其中,该时间维度对应的触发条件包括手机当前时间属于第四预设时间。该位置维度对应的触发条件指示手机所处位置属于第五预设位置。该应用运行场景对应的触发条件包括目标应用的运行状态为目标状态(如上述运行中)。
另一种示例中。手机适用的场景包括时间+地点+设备场景。用户在某个时间,某个位置,且手机连接某个外部设备后,经常会点开某个APP。例如,用户在家21:40左右,且手机连接蓝牙音箱后,用户经常会使用音乐APP。相应的,手机基于相关特征数据对预测模型进行训练。该预测模型通过特征数据发现时间、位置和手机连接外部设备与启动该APP的关系较大,因此,该预测模型确定该APP适用于时间+地点+设备场景,即该手机适用的场景包括时间+地点+设备场景。并且预测模型输出的场景特征表包括时间+地点+设备场景的时间维度对应的触发特征值(如该21:40),位置维度对应的触发特征值(如该家的位置)和连接的外部设备维度对应的触发特征值(如手机连接上蓝牙音箱)。相应的,手机确定该时间+地点+设备场景的时间维度对应的参数信息包括手机当前时间,位置维度对应的参数信息包括手机当前位置,和连接的外部设备维度对应的触发特征值(如手机连接的外部设备标识)。并且手机根据确定该时间维度对应的触发特征值确定该时间维度对应的触发条件,根据该位置维度对应的触发特征值确定该位置维度对应的触发条件,以及根据该连接的外部设备维度对应的触发特征值,从而得到该时间+地点+设备场景对应的触发条件。其中,该时间维度对应的触发条件包括手机当前时间属于第五预设时间。该位置维度对应的触发条件包括手机当前位置属于第六预设位置。该设备场景对应的触发条件包括手机连接的外部设备标识包括第三预设设备标识。
应理解,上述标识可以为名称、编号等能够唯一标识。上述目标时间可以是一个具体时间点,也可以为时间范围。同理,上述预设位置可以是一个具体位置,也可以为位置区域。
需要说明的是,上述列举的复合场景仅为一种示例,复合场景还可以是其它维度的组合,例如,屏幕锁维度和时间维度对应的复合场景,在此,不再对复合场景一一穷举。
在一些实施例中,上述预测模型的数量为一个或多个。例如,预测模型的数量为一个。在训练预测模型时,训练预测模型中的不同场景对应的模型参数,使得训练好的预测模型能够预测不同场景下的预加载的APP。又例如,预测模型的数量为多个,其可以场景一一对应。即在训练一个预测模型时,训练该预测模型中的其对应的场景的模型参数,使得训练好的预测模型能够预测该场景下的预加载的APP。
在一些实施例中,上述预测模型可以为神经网络模型等AI预测模型。
可以理解,在APP安装到手机上后,手机便开始采集该APP的使用记录。当采集使用记录的时间超过设定时间,和/或,采集的使用记录的数目超过设定数目时,表明预测模型可以通过该使用记录确定该应用的使用习惯是否具有规律性,即判断该应用是否存在特定的使用场景,即是否存在适用的场景。
并且,用户使用APP可能具有阶段性,例如,用户在某个时期内,经常在某一场景下,使用某个APP。但经过该时期后,用户便不再使用该APP。因此,为了保证预测模型预测的准确性,手机可以不断采集手机上的各个APP的使用记录,以使手机可以不断利用APP的最新使用记录对训练好的预测模型进行训练,保证预测模型输出的预测结果的准确性。
在本申请实施例中,预测模型基于特征数据学习用户的行为习惯进行训练,以确定手机上的APP所适用的场景,使得训练好的预测模型可以基于手机的当前情况确定手机当前所处的场景,预测用户的使用意图,从而实现手机所处场景下的预加载的APP的预测,提高APP预测的准确率。并且该预测模型为端侧算法模型,即可以在手机端便可以实现预加载APP的预测,无需将手机上的数据上传至相关服务器,以供利用该服务器进行APP的预测,并且该预测模型占用的资源较小,从而在保证APP的预测速度的同时,可以避免数据的泄露,保护数据的隐私性。
实施例二
本申请实施例提供一种应用预加载方法。手机在得到训练好的预测模型后,可以在识别手机当前所处的场景时,利用该训练好的预测模型预测手机当前所处的场景下预加载的APP,并预加载该APP,以使用户在启动预加载的APP时,手机可以直接显示该APP的初始可操作界面,而无需在加载该APP的启动内容后,才显示该APP的初始可操作界面,从而可以减少用户等待应用启动的时间。
具体的,如图8所示,本申请实施例中,训练好预测模型后,上述应用预加载方法可以分为三个阶段。该三个阶段分别为及静默加载阶段、转储阶段以及启动阶段。
其中,静默加载阶段是指手机先进行场景触发,即手机先确定在当前所处的场景下预加载的APP。之后,手机进行硬件资源约束判断,即手机确定手机的硬件资源是否能够支持APP的预加载。之后,在确定支持APP的预加载的情况下,手机创建虚拟屏,以在该虚拟屏上加载该APP。之后,手机在任务栏中隐藏该APP,实现预加载的APP在虚拟屏的启动。
其中,转储阶段是指手机在虚拟屏上完成预加载的APP的启动后,手机可以先压缩该预加载的APP的启动进程数据。之后,手机将压缩得到的启动进程数据由随机存取存储器(RandomAccess Memory,RAM)转存至中只读存储器(ROM(Read-Only Memory,ROM)中。
另外,在用户启动该预加载的APP时,手机会将ROM存储器中的该预加载的APP的启动进程数据进行解压,然后,将解压后的启动进程数据重新保存至RAM存储器中。
其中,启动阶段是指手机在接收到用户对预加载的APP的启动操作时,手机将该APP的初始可操作界面由虚拟屏迁移至手机的显示屏上。该手机的显示屏显示该初始可操作界面,并且,手机在任务栏中显示该APP。
下面将结合图9对上述三个阶段进行详细介绍。如图9所示,静默加载阶段可以包括S901-S908。
S901、手机采集当前状态信息,该当前状态信息包括用户的操作数据和/手机当前的设备数据确定的。
在本申请实施例中,手机可以实时或周期性地获取手机的状态信息,并将获取到的状态信息作为当前状态信息。例如,手机每隔预设时长,获取手机的状态信息,该状态信息包括手机在该预设时长内接收到用户的操作数据和/或手机当前的设备数据。
其中,该用户的操作数据表示用户在当前时间之前的预设时长内在该手机触发的操作。该操作数据可以包括用户触发的操作的标识。
其中,该设备数据可以包括手机的时间信息(即手机的当前时间)、位置信息(即手机的当前位置)、接收到的通知消息、手机当前连接的外部设备的标识和手机当前在前台运行的APP的标识(即手机上的APP的运行状态)中的一个或多个。
需要说明的是,上述当前状态信息可以包括维度对应的参数信息,即当前状态信息在包括操作数据时,该操作数据可以包括至少一个维度对应的参数信息,以及当前状态信息在包括设备数据时,该设备数据可以包括至少一个维度对应的参数信息。由于手机在预测模型的训练阶段便可以确定手机所适用的场景。因此,手机在利用训练好的预测模型预测预加载的APP时,可以仅采集该场景的各个维度所对应的参数信息,换言之,采集的当前状态信息可以仅包括该场景的各个维度所对应的参数信息。
S902、手机判断当前状态信息是否满足至少一个场景对应的触发条件。
S903、若当前状态信息不满足任何场景对应的触发条件,则手机结束APP的预加载任务。
S904、若当前状态信息满足至少一个场景对应的触发条件,则手机将该当前状态信息输入至训练好的预测模型中,并获取该训练好的预测模型输出的预测结果。其中,该预测结果包括至少一个应用的信息,该应用的信息包括应用的标识,该应用指示第一应用或第二应用。该第一应用指示预测预加载的APP;该第二应用指示不预加载的APP。
在本申请实施例中,手机在采集到当前状态信息后,利用该当前状态信息进行场景识别。具体的,手机判断该当前状态信息是否满足场景对应的触发条件,以确定手机当前所处的场景。手机在确定当前状态信息满足至少一个场景对应的触发条件的情况下,表明手机当前处于该场景下,则手机可以触发该场景下预加载的应用的预测,也即手机预测在该场景下,用户将要启动的APP。
手机可以利用通过上述实施例一确定的不同场景对应的触发条件。因此,手机在采集到当前状态信息后,从当前状态信息中获取至少一个场景的维度的参数信息。之后,手机对于每个场景,判断该场景的各个维度的参数信息是否满足对应维度对应的触发条件。之后,如果该各个维度的参数信息均满足对应维度对应的触发条件,则手机确定其处于该场景下,实现场景的识别。
一个示例中,设备场景对应的触发条件包括连接的外部设备设备维度对应的触发条件。在当前状态信息包括手机连接的外部设备标识的情况下,该外部设备标识即为该连接的外部设备维度的参数信息,如果该外部设备标识存在第一预设设备标识,则确定该当前状态信息满足该设备场景对应的触发条件。例如,第一预设设备标识包括蓝牙耳机标识,当前状态信息中的手机连接的外部设备标识包括WIFI网络标识和蓝牙耳机标识,由于当前状态信息中存在第一预设设备标识(即蓝牙耳机标识),因此,确定当前状态信息满足设备场景对应的设备场景对应的触发条件。
另一个示例中,时间+地点场景对应的触发条件包括时间维度对应的触发条件和位置维度对应的触发条件。在上述当前状态信息包括手机当前时间以及手机当前位置的情况下。如果手机确定该当前时间属于第二预设时间(如12点到12点10分),以及确定该当前位置属于第一预设位置(如公司),则手机确定该当前状态信息满足该时间维度对应的触发条件和该位置维度对应的触发条件,因此,可以确定手机满足时间+地点场景对应的触发条件。
另一个示例中,时间场景对应的触发条件包括时间维度对应的触发条件。在上述当前状态信息包括手机当前时间的情况下,如果手机确定该当前时间属于第一预设时间,则确定当前状态信息满足该时间维度对应的触发条件,从而手机确定当前状态信息满足该时间场景对应的触发条件。例如,第一预设时间为9点50分到9点55分,当前时间为9点50分,则确定当前时间满足该时间维度对应的触发条件。
另一个示例中,地点场景对应的触发条件包括位置维度对应的触发条件。在上述当前状态信息包括手机当前位置的情况下,如果手机确定该当前位置属于第二预设位置,则确定当前状态信息满足该位置维度对应的触发条件,从而手机确定当前状态信息满足该地点场景对应的触发条件。例如,第二预设位置为与家的位置距离小于或等于50米的区域网格内。如果手机当前位置与家的位置之前的距离为30米,则手机确定当前位置满足该位置维度对应的触发条件。
另一个示例中,通知消息场景对应的触发条件包括通知消息维度对应的触发条件。在上述当前状态信息包括手机接收到的APP的通知消息的情况下,表明手机接收到了APP的通知消息,则确定当前状态信息满足该通知消息维度对应的触发条件。例如,当前状态信息包括抖音TM的通知消息,则手机确定当前状态信息满足该通知消息维度对应的触发条件。
另一个示例中,关联使用场景对应的触发条件包括关联使用维度对应的触发条件。在上述当前状态信息包括手机启动的应用的标识的情况下,如果该启动的应用的标识属于第一预设应用标识,则确定该当前状态信息满足该关联使用维度对应的触发条件。例如,用户点击启动应用1,则该启动的应用的标识包括应用1的标识。由于该应用1的标识属于第一预设应用标识,因此,手机确定当前状态信息满足该关联使用维度对应的触发条件。
另一个示例中,屏幕锁场景对应的触发条件包括屏幕锁维度对应的触发条件。在上述当前状态信息包括屏幕解锁操作标识的情况下,表明用户解锁了手机屏幕锁,则手机确定当前状态信息满足屏幕锁维度对应的触发条件。
另一个示例中,返回桌面场景对应的触发条件包括返回桌面维度对应的触发条件。在上述当前状态信息包括返回桌面操作的标识的情况下,表明用户从某个应用退出并返回至手机的桌面上,则确定该当前状态信息满足该返回桌面维度对应的触发条件,使得手机可以在用户APP内返回桌面时,预测下一个时间段用户要开启的应用,也即手机可以在处于桌面返回场景下时,根据手机的当前时间预测预加载的应用。
另一个示例中,地点+设备场景对应的触发条件包括位置维度对应的触发条件和连接的外部设备维度对应的触发条件。在上述当前状态信息包括手机连接的外部设备标识以及手机当前位置的情况下,如果该外部设备标识存在第二预设设备标识,且该当前位置属于第三预设位置,则确定手机满足连接的外部设备维度对应的触发条件和位置维度对应的触发条件。例如,第二预设设备标识为WIFI标识,第三预设位置为家的位置,则当手机连接上WIFI,以及位于家时,确定手机处于该地点+设备场景。
另一个示例中,时间+地点+通知消息场景对应的触发条件包括时间维度对应的触发条件、位置维度对应的触发条件和通知消息维度对应的触发条件。在上述当前状态信息包括手机当前时间、当前位置和手机接收到的APP的通知消息的情况下,如果该当前时间属于第三预设时间,该当前位置属于第四预设位置,该通知消息对应的APP的标识为第二预设应用标识,则确定该当前状态信息分别满足该时间维度对应的触发条件、该位置维度对应的触发条件和该通知消息维度对应的触发条件。例如,第三预设时间为7点40分-7点50分,第四预设位置包括家的位置,第二预设应用标识为新闻APP的标识。手机获取到的当前状态信息中的当前时间为7点40,当前位置为家的位置,接收到新闻APP的通知消息,则手机可以确定该当前状态信息满足该时间+地点+通知消息场景对应的触发条件。
另一个示例中,时间+地点+应用运行场景对应的触发条件包括时间维度对应的触发条件、位置维度对应的触发条件和运行的APP维度对应的触发条件。在上述当前状态信息包括手机当前时间、当前位置和目标应用的运行状态的情况下,如果该当前时间属于第四预设时间,该当前位置属于第五预设位置,且该目标应用的运行状态为目标状态,则确定该当前状态信息分别满足该时间维度对应的触发条件、该位置维度对应的触发条件和该运行的APP维度对应的触发条件。例如,第四预设时间为周末,第五预设位置为超市,目标应用为付款APP,目标状态为运行中。手机获取到的当前状态信息中的当前时间为周末,当前位置为超市,付款APP的运行状态为运行中,则手机可以确定该当前状态信息满足该时间+地点+应用运行场景对应的触发条件。
另一个示例中,时间+地点+设备场景对应的触发条件包括时间维度对应的触发条件、位置维度对应的触发条件和连接的外部设备维度对应的触发条件。在上述当前状态信息包括手机当前时间、当前位置和连接的外部设备标识的情况下,如果该当前时间属于第五预设时间、该当前位置属于第六预设位置,且该外部设备标识包括第三预设设备标识,则手机确定该当前状态信息分别满足该时间维度对应的触发条件,该位置维度对应的触发条件和该连接的外部设备维度对应的触发条件。例如,第五预设时间为21点至21点30分,第六预设位置为家的位置,第三预设设备标识为蓝牙音箱标识,则手机获取到的当前状态信息中的当前时间为21点01分,当前位置为家的位置,手机连接了蓝牙音箱(即手机连接的外部设备标识包括蓝牙音箱标识),则手机可以确定当前状态信息满足该时间+地点+设备场景对应的触发条件。
在本申请实施例中,手机在确定当前状态信息满足至少一个场景对应的触发条件时,可以将该当前状态信息输入至该场景对应的训练好的预测模型中,该训练好的预测模型可以利用该当前维度参数信息预测手机上的APP在该场景下的启动概率,并基于APP的启动概率确定是否存在用户将要启动的APP,即确定是否存在需预加载的APP。以及该训练好的预测模型在确定存在需预加载的APP的情况下,还可以根据用户历史使用该推荐预加载的APP的习惯,确定该推荐预加载的APP的其它信息(如预加载时间)从而输出相应的预测结果。
在一些实施例中,训练好的预测模型在预测手机在某个场景下预加载的APP时,还可以先确定该场景对应的预测准确率,该预测准确率指示用户实际启动该场景下预测的预加载的APP(即第一应用)的概率,该预测准确率是根据当前时间之前的一段时间内,手机预加载该场景下的第一应用的次数以及在预加载该第一应用后,用户实际启动该第一应用的次数确定的。例如,训练好的预测模型在之前两个月内确定手机所处的场景包括时间场景,且预加载该时间场景下的第一应用的次数为60次。用户在手机预加载该第一应用后,实际启动该应用1的次数为30次,则训练好的预测模型确定该时间场景对应的预测准确率为0.5。
训练好的预测模型在确定该场景对应的预测准确率大于预设准确率阈值的情况下,表明该场景的预测准确率较高,即用户实际启动该场景下预测的预加载的APP的概率较高,则训练好的预测模型可以继续预测用户在该场景下可能会启动的APP,也即预测手机在该场景下预加载的APP。
在一些实施例中,由于用户的使用习惯不是固定的,因此,手机所适用的场景也会发生改变,从而,训练好的预测模型在确定某个场景对应的预测准确率持续变低后,表明该场景已经不适用该手机,则该预测模型可以关闭该场景,相应的,手机也可以停止判断当前状态信息是否满足该场景对应的触发条件。
在一些实施例中,手机上可以存在预设应用表,该预设应用表包括手机上的应用标识。手机预先为该预设应用表中的每个应用标识对应的应用建立预加载任务。简单来说,手机进行应用的预加载的准备工作。手机在确定当前状态信息不满足任一场景对应的触发条件后,表明手机未处于任一场景下,即无需进行预加载的APP的预测,则手机可以结束该每个应用标识对应的APP所对应的预加载任务。
其中,预设应用表中的应用标识可以是预测模型在训练过程中确定的与手机适用的场景所对应的APP的标识。该应用标识也可以是手机上的各个APP的标识。由于手机上的系统APP的加载速度较快,第三方应用加载速度较慢,因此,手机无需预加载系统APP,从而该应用标识还可以是手机上的第三方APP的标识。
应理解,上述APP对应的预加载任务可以是手机在得到当前状态信息时建立的,也可以是在其它时机时建立的,本申请不对预加载任务的建立时机限定。
在一些实施例中,手机在将当前状态信息输入至训练好的预测模型时,还可以将上述预设应用表输入至该训练好的预测模型中,以供该预测模型利用当前状态信息确定预设应用表中的应用是否需预加载。
在一些实施例中,训练好的预测模型输出的预测结果还可以包括应用的预加载信息。该预加载信息包括应用的预加载时间和/或保活时长。其中,在该应用包括第二应用时,由于第二应用为预测不预加载的APP,因此,该第二应用的预加载信息可以为空值。
其中,预测结果中的第一应用和第二应用可以通过预加载标识确定,该预加载标识指示应用标识所对应的应用是第一应用还是第二应用。示例性的,上述预测结果包括应用标识、预加载标识和预加载信息。该预加载信息包括预加载时间和保活时长。该预测结果的格式可以如表1所示。
表1预测结果
应用的标识 预加载标识 预加载时间 保活时长
抖音TM Y 10点半 30分钟
王者荣耀TM N 空值 空值
示例性的,在应用的标识对应的预加载标识为第一标识(如表1中的Y)时,表明该应用的标识所对应的应用为第一应用(如表1中的抖音TM),也即为预测进行预加载的APP。在应用的标识对应的预加载标识为第二标识(如表1中的N)时,表明该应用的标识所对应的应用为第二应用(如表1中的微博TM),也即为预测不进行预加载的APP。相应的,在该应用的标识对应的预加载标识为第二标识时,该应用的标识对应的预加载时间和保活时长为空值。
在另一些实施例中,预测结果中的第一应用和第二应用也可以通过应用的标识对应的预加载信息判断。例如,当应用的标识存在相应的预加载信息时,表明该应用需要进行预加载,则确定该应用为第一应用;又例如,当应用的标识不存在相应的预加载信息(也即该应用的标识对应的预加载信息为空值),则可以确定该应用为第二应用。
在该预测结果包括第一应用的标识(如预测结果中存在应用的标识所对应的预加载标识为第一标识)时,该第一应用的预加载时间表示预加载该第一应用的时间。例如,第一应用的预加载时间为10:00,则在10:00时,手机预加载该第一应用。
第一应用的保活时长表示第一应用预加载后可以在内存中存活的时长,也即表示第一应用预加载完成后能够在后台中静默运行的时长。手机上存在应用的清理机制,即当APP在后台中静默运行的时长超过一定时间后,手机需将该APP清理掉。而为应用设置保活时长后,便可以保证该APP在预加载后的保活时长内可以不被清理掉。例如,第一应用包括应用1,应用1对应的保活时长为35分钟,则手机可以在预加载应用1后的35分钟内不清理该应用1,即手机从预加载该应用1开始,在经过应用1对应的保活时长后,手机才从内存中释放该第一应用。
可以理解,上述第一应用的预加载时间以及第一应用的保活时长均是根据用户历史使用该第一应用的行为预测的,即可以是根据第一应用的启动时间确定的。具体的,由于用户启动APP的时间不是一直为固定时间,其可以是一个时间段。因此,第一应用的预加载时间可以为该第一应用对应的最早启动时间之前的时间点,该时间点与该最早启动时间之间的时间差可以是固定(即第一预设时间差值)的,也可以是随机的。第一应用的保活时长可以是预加载完成时间与第一应用对应的最晚启动时间或该最晚启动时间之后的一个时间点之间的差值。该时间点与该最晚启动时间之间的时间差可以是固定(即第二预设时间差值)的,也可以是随机的。
示例性的,第一应用包括游戏APP,用户一般在9点半到10点之间开始玩游戏,即启动该游戏APP,则该游戏APP对应的最早启动时间为9点半,预加载时间与该最早启动时间之间的差值是固定的,即第一预设时间差值为5分钟,则该游戏APP的预加载时间可以为9点25分。该游戏APP对应的最晚启动时间为10点,假设预加载完成该游戏APP的时长为1分钟,因此,保活时长是预加载完成时间(即9点26分)与该最晚启动时间之间的差值,则该游戏APP的保活时长为34分钟。
在本申请实施例中,手机获取训练好的预测模型输出的预测结果。在该预测结果包括的应用的标识存在第一应用的标识的情况下,表明该第一应用为需预加载的应用,即可以继续执行该第一应用对应的预加载任务,则手机继续判断手机的硬件资源是否能够预加载该第一应用,以使手机在判断该硬件资源能够预加载该第一应用的情况下,预加载该第一应用。
在一些实施例中,上述第二应用的信息包括第二应用的标识。相应的,在上述预测结果包括的应用的标识存在第二应用的标识的情况下,表明无需预加载该第二应用,则手机可以结束第二应用对应的预加载任务,即停止继续该第二应用的预加载工作。
在本申请实施例中,第二应用为无需预加载的APP,因此,无需继续该第二应用的预加载工作,可以直接停止第二应用的预加载工作,则手机结束第二应用对应的预加载任务。
在本申请实施例中,手机为可能涉及预加载的应用建立预加载任务,即为该应用做好预加载的准备工作,从而在需要对应用进行预加载的情况下,可以快速对应用进行预加载,而无需再进行准备工作。并且,在判断无需对应用进行预加载的情况下,结束相应的预加载任务,避免资源的占用。在本申请实施例中,预测模型根据用户的使用习惯预测APP的预加载时间,使得手机可以在到达该预加载时间时,才预加载该APP,避免由于过早预加载APP导致该APP在后台中运行的时间较长,从而造成资源的浪费。
预测模型可以根据用户的使用习惯预测APP的保活时长,可以避免后台运行的预加载的APP被清理,从而保证该APP的正常运行,避免APP的无效预加载。
需要说明的是,上述手机获取当前状态信息,以及利用该当前状态信息确定预加载的APP的过程可以是在用户开启预加载服务后进行的。该预加载服务指示是否开启手机上的APP预加载功能。如果该预加载服务的服务状态为开启状态,表明用户开启该预加载服务,则手机可以进行与预加载APP相关的工作(如获取当前状态信息)。如果该预加载服务的服务状态为关闭状态,表明用户关闭该预加载服务,则手机无需进行与预加载APP相关的工作,即不再进行APP的预加载。
在S904之后,手机可以根据第一应用的预加载信息,将该第一应用预加载至手机的内存中,也即提前将启动该第一应用所需的启动进程数据加载至内存,实现第一应用的预加载,使得当用户启动该第一应用时,手机可以在显示屏上显示该第一应用的初始可操作界面,而无需在加载第一应用的启动内容(如启动动画、广告等)后,才能显示该第一应用的初始可操作界面,减少用户等待应用启动的时间。
其中,上述启动进程数据包括启动内容(例如,启动动画、广告)、初始可操作性界面对应的界面数据(如控件数据)以及进程等启动第一应用所利用的数据。
在一些实施例中,手机可以根据第一应用的预加载信息,将该第一应用预加载至手机的运行内存中,以实现第一应用的预加载。例如,手机的运行内存可以是手机的RAM存储器。在另一些实施例中,上述预加载信息可以包括第一应用的预加载时间。手机可以在预加载时间到达时,将第一应用预加载至手机的内存中,避免由于过早预加载第一应用导致该第一应用在内存中运行的时间较长,从而造成资源的浪费。当然,上述预加载信息也可以不包括第一应用的预加载时间。由于第一应用是在手机满足某个场景对应的触发条件后预测得到的。因此,该第一应用一般是用户不久后将要启动的APP,也即预测得到该第一应用的时间距离用户启动该第一应用的时间较近,从而手机可以在得到该第一应用的预加载信息后,便可以直接将第一应用预加载至内存中,只不过相较于手机根据第一应用的预加载信息预加载第一应用,会增加资源的消耗。
在另一些实施例中,上述手机在根据第一应用的预加载信息,将该第一应用预加载至手机的内存时,可以先执行硬件资源约束过程,即手机先判断手机的硬件资源是否能够预加载第一应用。然后,在确定能够预加载第一应用的情况下,手机可以根据该第一应用的预加载信息,将该第一应用预加载至手机的内存,从而可以避免出现由于预加载第一应用导致影响手机的性能。在另一些实施例中,上述手机在根据第一应用的预加载信息,将该第一应用预加载至手机的内存的过程中,可以执行虚拟屏上加载过程,即手机可以根据该第一应用的预加载信息,在手机的虚拟屏上加载第一应用,从而可以在用户无感知的情况下,模拟第一应用的启动过程,使得可以正常加载第一应用的启动内容以及初始可操作界面,从而使得用户在启动该第一应用时,可以直接将该初始可操作界面由虚拟屏迁移至显示屏上。
在另一些实施例中,由于手机加载应用后,该应用一般会显示在手机的任务栏中,该任务栏中显示有在后台运行的应用。因此,手机在第一应用预加载完成后,可以执行任务栏隐藏过程,也即在手机的任务栏中不显示该第一应用,避免用户从任务栏中看到该第一应用。
应理解,上述硬件资源约束过程、上述虚拟屏上加载过程以及任务栏隐藏过程均是可选的方案。
一种方案为,手机可以先执行该硬件资源约束过程,之后执行该虚拟屏上加载过程,然后再执行任务栏隐藏过程。该种方案可以实现第一应用的预加载,并且可以避免出现由于预加载第一应用导致影响手机的性能,以及可以在用户无感知的情况下,模拟第一应用的启动过程,还可以避免用户从任务栏中看到该第一应用。
另一种方案为,手机可以在得到第一应用的预加载信息后,根据该第一应用的预加载信息,执行该虚拟屏上加载过程,而不执行该硬件资源约束过程以及任务栏隐藏过程。只不过手机如果不执行硬件资源约束过程,手机便无法确定预加载第一应用是否会对手机的性能造成影响,也即可能出现手机在预加载第一应用后,手机出现卡顿等问题,以及手机如果不执行任务隐藏过程,手机在第一应用预加载完成后,用户可能会在手机的任务栏中看到该第一应用。但该种方案仍可以实现第一应用的预加载,并且可以在用户无感知的情况下,模拟第一应用的启动过程。
另一种方案为,手机可以在得到第一应用的预加载信息后,直接先根据该第一应用的预加载信息,执行该虚拟屏上加载过程。然后,在该第一应用预加载完成后,手机再执行任务栏隐藏过程。该种方案下,手机不执行该硬件资源约束过程。因此,在该种方案下,手机可能无法确定预加载第一应用是否会对手机的性能造成影响,也即可能出现手机在预加载第一应用后,手机出现卡顿等问题。但该种方案仍可以实现第一应用的预加载,并且可以在用户无感知的情况下,模拟第一应用的启动过程,以及可以避免用户从任务栏中看到该第一应用。
另一种方案为,手机可以在得到第一应用的预加载信息后,先执行该硬件资源约束过程。然后在确定手机的硬件资源能够预加载该第一应用时,再执行该虚拟屏上加载过程。在该第一应用预加载完成后,也不执行该任务栏隐藏过程。该种方案下,用户可能会在手机的任务栏中看到该第一应用。但该种方案仍可以实现第一应用的预加载,并且可以避免出现由于预加载第一应用导致影响手机的性能,以及可以在用户无感知的情况下,模拟第一应用的启动过程。
另一种方案为,手机可以在得到第一应用的预加载信息后,执行硬件资源约束过程。在确定手机的硬件资源能够预加载该第一应用后,手机根据第一应用的预加载信息,将该第一应用预加载至内存,以实现第一应用的预加载。该种方案下,手机不执行上述虚拟屏上加载过程以及上述任务栏隐藏过程。只不过手机如果不执行该虚拟屏上加载过程,手机在预加载该第一应用时,会在显示屏上加载该第一应用的启动内容以及初始可操作界面,等到初始可操作界面加载完成后,手机可以将第一应用的初始可操作界面切换到后台,不在该显示屏上显示该初始可操作界面,使得显示屏可以正常显示用户所打开的界面。如果用户启动该第一应用,手机可以将该后台中的第一应用的初始可操作界面切换至显示屏上。因此,如果不执行该虚拟屏上加载过程,在用户启动第一应用时,手机也可以实现该第一应用的初始可操作界面的快速显示,但在预加载第一应用时,可能会使用户感知到第一应用在加载,从而可能会使用户产生自己没有启动第一应用,手机为什么会启动第一应用的疑惑,用户体验低。以及如果不执行该任务隐藏过程,手机在第一应用预加载完成后,用户可能会在手机的任务栏中看到该第一应用。但该种方案仍可以实现第一应用的预加载,并且可以避免出现由于预加载第一应用导致影响手机的性能。
另一种方案为,手机可以在得到第一应用的预加载信息后,手机可以先执行硬件资源约束过程。在确定手机的硬件资源能够预加载该第一应用后,手机根据第一应用的预加载信息,将该第一应用预加载至内存,以实现第一应用的预加载。之后,手机在该第一应用预加载完成后,执行上述任务栏隐藏过程。该种方案下,手机不执行上述虚拟屏上加载过程。因此,在该种方案下,用户可能会感知到第一应用预加载的过程,用户可能会产生自己没有启动第一应用,手机为什么会启动第一应用的疑惑。但该种方案仍可以实现第一应用的预加载,使得在用户启动第一应用时,手机仍可以实现该第一应用的初始可操作界面的快速显示,并且可以避免出现由于预加载第一应用导致影响手机的性能,以及可以避免用户从任务栏中看到该第一应用。
另一种方案为,手机可以在得到第一应用的预加载信息后,直接根据该第一应用的预加载信息,将该第一应用预加载至内存,以实现第一应用的预加载。之后,手机在该第一应用预加载完成后,执行上述任务栏隐藏过程。该种方案下,手机不执行上述硬件资源约束过程以及上述虚拟屏上加载过程。因此,在该种方案下,手机可能会出现在预加载第一应用后,手机出现卡顿等问题。以及可能会使用户可能会产生自己没有启动第一应用,手机为什么会启动第一应用的疑惑。但该种方案仍可以实现第一应用的预加载,使得在用户启动第一应用时,手机仍可以实现该第一应用的初始可操作界面的快速显示,并且可以避免用户从任务栏中看到该第一应用。
当然,手机预加载第一应用的方法包括但不限于上述方法。以下实施例以示例方式给出手机预加载第一应用的一种方案。该方案包括上述的硬件资源约束过程、虚拟屏上加载过程以及任务栏隐藏过程。其中,该硬件资源约束过程可以包括S905-S906,该虚拟屏上加载过程可以包括S907,该任务栏隐藏过程包括S908。
应理解,上述在虚拟屏上加载第一应用的过程属于屏蔽过程的一种,也即虚拟屏加载技术属于屏蔽技术的一种,手机还可以采用其它屏蔽技术掩藏手机预加载第一应用时所加载的第一应用的启动内容以及初始可操作界面,使用户感知不到第一应用的预加载。例如,其它屏蔽技术可以为悬浮窗口加载技术,即手机在预加载第一应用时,在手机当前显示的界面上新增一层视图层来绘制悬浮窗口,该悬浮窗口所在视图层为顶层视图层,该悬浮窗口指示可以定制显示位置和显示尺寸的窗口。该悬浮窗口可为矩形,也可为圆形或者不规则形状。手机在该悬浮窗口中加载第一应用,并将该悬浮窗口的状态设置为隐藏状态,以隐藏第一应用的加载过程,即隐藏第一应用的启动内容以及初始可操作界面。如果用户启动该第一应用,则手机可以将该悬浮窗口中的该第一应用的初始可操作界面迁移到显示屏上,并删除该悬浮窗口。或者当第一应用的初始可操作界面加载完成后,手机可以将该第一应用的初始可操作界面切换到后台,并且手机可以删除该悬浮窗口,以供用户在启动该第一应用时,手机可以将该第一应用的初始可操作界面显示在显示屏上。
S905、手机在上述预测结果包括第一应用的标识的情况下,获取手机的第一运行信息,该第一运行信息指示手机预加载该第一应用之前的硬件资源的负载。
S906、手机根据该第一运行信息判断手机的硬件资源是否能够预加载上述第一应用。
其中,手机的第一运行信息指示手机当前的性能,也即指示手机在预加载该第一应用之前的硬件资源的负载情况。在一些实施例中,手机的第一运行信息包括第一CPU利用率和/或第一内存剩余容量。该第一CPU利用率指示手机预加载该第一应用之前的CPU占用情况,该第一内存剩余容量指示手机预加载该第一应用之前的能够使用的内存的大小。
在本申请实施例中,手机在确定上述预测结果中存在第一应用的标识的情况下,表明存在需预加载的APP,即表明手机当前所处的场景下,用户存在使用该第一应用的需求。为了避免预加载第一应用导致对手机性能的影响(如手机出现卡顿等问题),手机获取手机的第一运行信息,以供利用该第一运行信息判断手机是否能够预加载该第一应用,也即判断手机的性能是否支持预加载该第一应用。
在一些实施例中,手机在利用第一运行信息确定手机是否能够预加载该第一应用时,可以直接通过判断第一运行信息是否满足第一预设预加载条件进行确定。手机在确定该第一运行信息满足该第一预设预加载条件的情况下,确定手机能够预加载该第一应用。而手机在确定该第一运行信息不满足该第一预设预加载条件的情况下,确定该手机不能够预加载该第一应用,手机可以结束该第一应用的预加载任务。该实施例的方案具体可以通过以下几种实现方式实现。
在该实施例中,一种实现方式中,如果手机的第一运行信息包括第一CPU利用率,第一预设预加载条件包括第一CPU利用率小于或等于第一预设CPU利用阈值,则若该第一CPU利用率小于或等于第一预设CPU利用阈值,表明手机的CPU利用率较低,即手机上的CPU资源充足,也即表明如果预加载该第一应用,不会影响手机的性能,则手机确定该第一运行信息满足该第一预设预加载条件。而若该第一CPU利用率大于第一预设CPU利用阈值,表明手机的CPU利用率过高,即手机上的CPU资源不足,也即表明如果仍要预加载该第一应用,会影响手机的性能,则手机确定该第一运行信息不满足该第一预设预加载条件。
另一种实现方式中,如果手机的第一运行信息包括第一内存剩余容量,第一预设预加载条件包括第一内存剩余容量大于第一预设内存剩余阈值。则若该第一内存剩余容量大于第一预设内存剩余阈值,表明手机的内存资源充足,即手机上的内存占用率较低,也即表明如果预加载该第一应用,不会影响手机的性能,则手机确定该第一运行信息满足该第一预设预加载条件。而若该第一内存剩余容量小于或等于第一预设内存剩余阈值,表明手机的内存资源不足,即手机上的内存占用率过高,也即表明如果仍要预加载该第一应用,会影响手机的性能,则手机确定该第一运行信息不满足该第一预设预加载条件。
另一种实现方式中,如果手机的第一运行信息包括第一CPU利用率和第一内存剩余容量,第一预设预加载条件包括第一CPU利用率小于或等于第一预设CPU利用阈值和第一内存剩余容量大于第一预设内存剩余阈值,则若该第一CPU利用率小于或等于第一预设CPU利用阈值,且该第一内存剩余容量大于第一预设内存剩余阈值,表明手机上的CPU、内存等硬件资源充足,也即表明如果预加载该第一应用,不会影响手机的性能,则手机确定该第一运行信息满足该第一预设预加载条件。而若该第一CPU利用率大于第一预设CPU利用阈值和/或该第一内存剩余容量小于或等于第一预设内存剩余阈值,表明手机上的CPU和内存等硬件资源不足,也即表明如果仍要预加载该第一应用,会影响手机的性能,则手机确定该第一运行信息不满足该第一预设预加载条件。
在另一些实施例中,手机在利用手机的第一运行信息判断手机是否能够预加载该第一应用时,首先,可以利用手机的第一运行信息以及第一应用的资源占用信息得到第二运行信息。该第二运行信息指示手机预加载该第一应用后的硬件资源的负载情况。然后,手机可以在确定该第二运行信息满足该第二预设预加载条件的情况下,确定手机能够预加载该第一应用。而手机在确定该第二运行信息不满足该第二预设预加载条件的情况下,确定该手机不能够预加载该第一应用。
其中,第一应用的资源占用信息指示预加载该第一应用时所需占用的硬件资源的大小。第一应用的资源占用信息包括第一应用的第二CPU利用率和/或第一应用的内存占用量。该第二CPU利用率指示手机在预加载第一应用时,第一应用占用的CPU资源大小。该内存占用量指示手机在预加载该第一应用时,第一应用占用的内存大小。
其中,第二运行信息包括目标CPU利用率和/或目标剩余内存容量。该目标CPU利用率指示在预加载该第一应用后,手机上的CPU利用率,即CPU资源的占用情况。该目标剩余内存容量指示在预加载该第一应用后,手机能够使用的内存的大小。
应理解,应用在加载时所占用的硬件资源是固定的,因此,在预加载该应用时,所需占用的硬件资源的大小也是固定。手机可以根据应用的版本直接确定应用的资源占用信息,以供利用该应用的资源占用信息预测出手机预加载该应用后,手机的硬件资源的负载情况,也即预测出第二运行信息。并且该资源占用信息所包括的信息类型可以与手机的第一运行信息所包括的信息类型一致。例如,手机的第一运行信息包括第一CPU利用率,该资源占用信息包括第二CPU利用率;又例如,手机的第一运行信息包括第一内存剩余容量,该资源占用信息包括内存占用量;又例如,手机的第一运行信息包括第一CPU利用率以及第一内存剩余容量,该资源占用信息包括第二CPU利用率以及内存占用量。
在该实施例中,一种实现方式中,如果手机的第一运行信息包括第一CPU利用率,第一应用的资源占用信息包括第二CPU利用率,则首先,手机计算该第一CPU利用率与该第二CPU利用率的和,得到目标CPU利用率。然后,手机在确定该目标CPU利用率满足第二预设预加载条件(这里该第二预设预加载条件包括目标CPU利用率小于或等于第二预设CPU利用阈值)的情况下,表明手机即使预加载该第一应用后,手机上的CPU利用率仍较低,即手机上的CPU资源仍充足,也即表明如果预加载该第一应用,不会影响手机的性能,则手机确定该第二运行信息满足该第二预设预加载条件。而若该目标CPU利用率大于第二预设CPU利用阈值,表明手机预加载该第一应用后,手机上的CPU利用率过高,即手机上的CPU资源不足,也即表明如果仍要预加载该第一应用,会影响手机的性能,则手机确定该第二运行信息不满足该第二预设预加载条件。
另一种实现方式中,如果手机的第一运行信息包括第一内存剩余容量,第一应用对应的资源占用信息包括内存占用量,则首先,手机计算该第一内存剩余容量与该内存占用量之间的差值,得到目标内存剩余容量。然后,手机在确定该目标内存剩余容量满足第二预设预加载条件(这里该第二预设预加载条件包括目标内存剩余容量大于第二预设内存剩余阈值)的情况下,表明手机预加载该第一应用后,手机上的内存资源仍充足,即手机上的内存占用率仍较低,也即表明如果预加载该第一应用,不会影响手机的性能,则手机确定该第二运行信息满足该第二预设预加载条件。而若该目标内存剩余容量小于或等于第二预设内存剩余阈值,表明手机预加载该第一应用后,手机上的内存资源不足,即手机上的内存占用率过高,如果预加载该第一应用,会影响手机的性能,则手机确定该第二运行信息不满足该第二预设预加载条件。
另一种实现方式中,如果手机的第一运行信息包括第一CPU利用率以及第一内存剩余容量,第一应用的资源占用信息包括第二CPU利用率以及内存占用量,则首先,手机计算该第一CPU利用率与该第二CPU利用率的和,得到目标CPU利用率,并计算该第一内存剩余容量与该内存占用量之间的差值,得到目标内存剩余容量。然后,手机在确定该目标CPU利用率以及该目标内存剩余容量满足第二预设预加载条件(这里该第二预设预加载条件包括目标CPU利用率小于或等于第二预设CPU利用阈值,且目标内存剩余容量大于第二预设内存剩余阈值)的情况下,表明手机预加载该第一应用后,表明手机上的CPU、内存等硬件资源仍充足,也即表明如果预加载该第一应用,不会影响手机的性能,则手机确定该第二运行信息满足该第二预设预加载条件。而若该目标CPU利用率大于第二预设CPU利用阈值,和/或,该目标内存剩余容量小于或等于第二预设内存剩余阈值,表明手机预加载该第一应用后,手机上的CPU、内存等硬件资源不足,也即表明如果仍要预加载该第一应用,会影响手机的性能,则手机确定该第二运行信息不满足该第二预设预加载条件。
上述预测结果中的第一应用的数量可以为一个或多个。当第一应用的数量为多个时,手机可以利用手机的第一运行信息判断手机是否能够预加载该多个第一应用;如果不能够预加载该多个第一应用,手机可以根据该多个第一应用中的各个第一应用的资源占用信息,判断手机能够预加载的第一应用,即确定目标预加载应用。或者,当第一应用的数量为多个时,手机可以直接根据该多个第一应用中的各个第一应用的资源占用信息,确定手机能够预加载的第一应用,即确定目标预加载应用。
其中,上述确定目标预加载应用的过程可以为,手机可以先对第一应用排序。然后,手机按照第一应用的排序,累加第一应用的资源占用信息,每累加一次,手机便利用手机的第一运行信息以及累加的资源占用信息得到第二运行信息。之后,手机利用该第二运行信息判断手机是否能够加载累加的资源占用信息对应的所有第一应用,从而可以确定手机能够预加载的目标预加载应用。
举例来说,资源占用信息包括第一应用对应的第二CPU利用率以及内存占用量。用户经常在打开应用1,并使用一段时间应用1后,又打开应用2。手机上的预测模型在学习到此使用习惯后,输出的预加载结果包括应用1的预加载信息的同时也可以包括应用2的预加载信息,因此,手机判断是否能够预加载应用1及应用2,该判断过程具体为:首先,手机对应用1和应用2排序,得到的应用的排序为应用1、应用2。之后,手机根据应用1的资源占用信息和手机的第一运行信息判断手机是否能够预加载该应用1。如果确定手机能够预加载应用1,则手机继续累加应用2对应的资源占用信息,得到累加的资源占用信息。该累加的资源占用信息中的第二CPU利用率为应用1的第二CPU利用率与应用的第二CPU利用率之和;该累加后的资源占用信息中的内存占用量为应用1的内存占用量与应用2的内存占用量之和。之后,手机利用累加的资源占用信息和手机的第一运行信息判断手机是否能够预加载该应用2。如果能够预加载该应用2,则手机确定手机能够预加载的第一应用的数量为2,且目标预加载应用为应用1和应用2。如果不能够预加载该应用2,则手机确定手机能够预加载的第一应用的数量为1,且目标预加载应用为应用1。
其中,手机在对第一应用排序时,可以根据第一应用的预加载时间先后顺序,对第一应用排序;也可以随机对第一应用进行排序,本申请不限定第一应用的排序规则。
其中,上述第一运行信息、第二运行信息以及第一应用的资源占用信息所指示的内存可以为手机的运行内存。
S907、手机在确定能够预加载第一应用的情况下,在虚拟屏上加载该第一应用。
在本申请实施例中,手机在预加载该第一应用的过程中,可以采用利用虚拟屏加载技术。具体的,手机在预加载第一应用时,可以在该虚拟屏上加载该第一应用,即在虚拟屏上加载该第一应用对应的启动动画、广告等启动内容,并在该启动内容加载完成后,在该虚拟屏上继续加载第一应用的初始可操作界面。其中,手机在该虚拟屏上加载该第一应用的过程与手机在实体显示屏上加载该第一应用的过程类似。
其中,虚拟屏的物理位置是在内存中的。虚拟屏是虚拟的屏幕,用户无法看到该虚拟屏上显示的内容。
在一种实现方式中,虚拟屏与第一应用是一一对应的关系,即每预加载一个第一应用,手机便创建该第一应用对应的虚拟屏。
在另一种实现方式中,虚拟屏与第一应用是一对多的关系,即无论预加载多少个第一应用,仅需创建一个虚拟屏即可。该虚拟屏存在多个窗口,每预加载一个第一应用,OS应用预加载模便在该虚拟屏的一个窗口中预加载该第一应用,从而在实现利用虚拟屏预加载应用的基础上,可以减少由于创建多个虚拟屏导致的资源的浪费。
其中,上述虚拟屏的尺寸可以是固定的,也可以是能够动态调整的,例如,手机可以根据预加载的第一应用的数量以及第一应用的初始可操作界面的尺寸调整虚拟屏的尺寸(如高度和宽度),使得能够在该虚拟屏上预加载各个第一应用。
S908、手机在该第一应用预加载完成时,将该第一应用的任务栏状态设置为隐藏状态。
在本申请实施例中,由于手机上的任务栏会显示在后台运行的APP。因此,在第一应用预加载成功后,为了避免用户产生第一应用为什么会启动的疑惑,手机可以将该第一应用的任务栏状态设置为隐藏状态,以使该第一应用虽然仍在后台运行,但不在任务栏中显示,使得用户在手机的任务栏中看不到该第一应用,从而避免用户产生自己没有启动第一应用,为什么第一应用会启动的疑惑,提高用户体验。
上面介绍了静默加载阶段的具体过程,下面将继续结合图9介绍转储阶段的具体过程,该转储阶段包括S909-S910。
S909、手机在该第一应用预加载完成后,压缩第一存储器中的该第一应用的启动进程数据。
S910、手机将压缩后的第一应用的启动进程数据由该第一存储器转移至第二存储器中。
其中,第一存储器可以为手机的运行内存,第二存储器可以为手机的非运行内存。该第一存储器的读写速度高于第二存储器,但第一存储器的容量大小低于第二存储器,并且第一存储器的容量会影响手机的性能。示例性的,该第一存储器可以为RAM存储器,该第二存储器可以为ROM存储器。
在本申请实施例中,第一应用在预加载完成后,该第一应用的启动进程数据保存在第一存储器中。为了避免预加载该第一应用对手机的其它应用造成影响,手机可以先对第一存储器中的第一应用的启动进程数据进行压缩。然后,手机可以将压缩后的启动进程数据由第一存储器转移至第二存储器,从而减少运行内存消耗以减少预加载第一应用对手机性能的影响,并且通过压缩数据可以进一步减少对第二存储器资源的占用。
在一些实施例中,手机在该第一应用预加载完成后,可以直接将第一应用的启动进程数据由该第一存储器转移至第二存储器中,而不是在压缩该第一应用的启动进程数据后,才将压缩后的启动进程数据转移至第二存储器中,只不过不压缩该第一应用的启动进程数据会增加对第二存储器资源的占用。
在一些实施例中,手机可以在虚拟屏显示该第一应用的初始可操作界面时确定第一应用预加载完成。
应理解,手机在将第一存储器中的启动进程数据转存至第二存储器后,第一存储器中不再存在该启动进程数据。
需要说明的是,手机在经过静默阶段后,手机可以利用内存管理引擎(hyperhold)转储技术对第一应用的启动进程数据进行转储,即手机可以进入转储阶段,以减少第一应用对手机的运行内存的占用。当然,该手机在经过静默加载阶段后,还可以直接进入启动阶段,也即上述转储阶段的过程是可选的,手机可以不执行转储阶段对应的S909-S910。当手机不经过转储阶段时,第一应用会占用一定的运行内存。
下面将接着结合图9,介绍启动阶段的具体过程,该启动阶段可以包括S911-S916。
S911、手机接收用户对手机应用的启动操作。
S912、手机响应于上述启动操作,确定待启动应用的标识。
S913、在确定该待启动应用的标识属于已经预加载的第一应用的标识的情况下,对第二存储器中的该第一应用的启动进程数据解压缩,并将解压缩后的该第一应用的启动进程数据由第二存储器转移至第一存储器中。
S914、手机将上述虚拟屏中的该第一应用的初始可操作界面迁移至手机的显示屏上,以在该显示屏上显示该初始可操作界面。
本申请实施例中,当用户启动手机上的应用(如点击桌面上的应用)时,手机将该应用作为待启动应用。以及手机获取手机上已经预加载的第一应用的标识,并判断该待启动应用的标识是否属于已经预加载的第一应用的标识,也即判断待启动应用是否属于已经预加载的第一应用。
手机在确定该待启动应用标识不属于已经预加载的第一应用的标识时,表明该待启动应用未被预加载,则手机正常启动该待启动应用,也即需要加载待启动应用的广告、启动动画等启动内容后,才能显示该初始可操作界面。
手机在确定该待启动应用的标识属于已经预加载的第一应用的标识时,表明该待启动应用已经预加载,则手机可以将该待启动应用由后台运行切换至前台运行。并且,手机的显示屏可以直接显示第一应用的初始可操作界面,而无需在加载待启动应用的广告、启动动画等启动内容后,才能在显示屏上显示该初始可操作界面,从而可以减少应用启动时间,进而可以有效减少用户等待时间。
在本申请实施例中,手机如果在上述静默加载阶段执行了虚拟屏上加载过程,以及执行了上述转储阶段,则在启动该第一应用时,手机会再进行一次转储,也即手机先从第二存储器中的获取第一应用的启动进程数据,由于该启动进程数据是压缩后的,因此,手机在对该启动进程数据进行解压缩,得到解压缩后的该第一应用的启动进程数据。然后,手机将该解压缩后的第一应用的启动进程数据转移至第一存储器中。以及手机将虚拟屏上显示的该第一应用的初始可操作界面切换到手机的实体显示屏,以在该显示屏上显示该第一应用的初始可操作界面,使得在用户启动该第一应用后,手机便可以快速显示该初始可操作界面,实现应用的快速启动。
当然,手机如果在转储阶段未压缩第一应用的启动进程数据,而是直接将第一应用的启动进程数据转移至第二存储器中,则在启动阶段,手机可以直接将第二存储器中的该第一应用的启动进程数据转移至第一存储器中。
在一些实施例中,如果该待启动应用的标识对应的第一应用的启动进程数据并未保存在第二存储器中,而是保存在第一存储器中,也即如果手机未执行上述转储阶段,并且手机在上述静默加载阶段执行了虚拟屏上加载过程,则在启动阶段,手机可以执行上述S914,而不再执行上述S913。
在另一些实施例中,如果该待启动应用的标识对应的第一应用的启动进程数据保存在第二存储器中,也即如果手机执行了上述转储阶段,并且手机在上述静默加载阶段没有执行上述虚拟屏上加载过程(即该第一应用的初始可操作界面并未显示在虚拟屏中),则在启动阶段,手机可以执行上述S913,而不再执行上述S914,并且可以将后台中的第一应用的初始可操作界面显示在显示屏上。
在另一些实施例中,如果该待启动应用的标识对应的第一应用的启动进程数据并未保存在第二存储器中,而是保存在第一存储器中,也即如果手机未执行上述转储阶段,并且在上述静默加载阶段没有执行上述虚拟屏上加载过程,则在启动阶段,手机可以不执行上述S913以及不执行上述S914,而是可以将后台中的第一应用的初始可操作界面显示在显示屏上。
S915、手机在该第一应用启动完成后,将该第一应用的任务栏状态设置为显示状态。
在本申请实施例中,响应于用户对待启动应用标识对应的第一应用的启动操作,手机可以将该第一应用正常显示在任务栏中,而无需继续隐藏该第一应用。
在另一些实施例中,如果在该第一应用启动完成后,手机的任务栏显示有该第一应用,表明在静默加载阶段,手机未执行上述任务栏隐藏过程,也即表明手机未将该第一应用的任务栏状态设置为隐藏状态,则手机可以不用执行上述S915。
另外,如果上述第一应用的预加载信息包括保活时长,则上述启动阶段还可以包括S916、对于每个已经预加载的第一应用,在经过该第一应用的保活时长后,如果未接收到用户对该第一应用的启动操作,从内存中释放该第一应用。
具体的,对于每个已经预加载的第一应用,如果该第一应用在后台中静默运行的时长已经超过保活时长,表明该第一应用可能不是用户想要启动的应用。为了避免资源的占用,因此,手机可以清理掉已经预加载的第一应用,例如,手机可以删除该第一应用的启动进程数据,从而避免资源的无效占用。
示例性的,手机若在第一应用的保护时长内未接收到该第一应用对应的启动操作,则清理该第一应用。
应理解,手机可以在第一应用预加载完成后,如果经过该第一应用的保活时长后,手机还未接收到用户对该第一应用的启动操作,则手机可以立即从内存中释放该第一应用,以避免资源的占用。当然,手机也可以不执行S916,也即如果经过该第一应用的保活时长后,手机还未接收到用户对该第一应用的启动操作,手机可以不释放该第一应用,而是按照手机原有的应用清理机制,对该第一应用进行清理,只不过可能需要等待一段时间后,才能从内存中释放该第一应用。
在一些实施例中,手机可以根据用户的使用习惯,也即根据不同维度对应的使用,对处于后台的APP的应用进行保活或清理。例如,手机确定用户在某个时间段不会使用应用1,则手机可以清理掉该应用1。又例如,手机确定用户在某个时间段以及某个位置下,会使用应用2,而不会使用应用3,则可以清理后台中的该应用3,而保活该应用2。
在本申请实施例中,如图10所示,手机预先利用用户行为数据对预测模型进行训练,以使预测模型学习用户的使用习惯,最后使得训练好的预测模型能够预测不同场景下,用户将要启动的APP,提前识别用户使用意图,实现预加载的APP的准确预测。之后,在预测预加载的APP时,利用预测模型实现场景的预判,并输出当前场景下,预加载的APP的预测结果。之后,手机判断硬件资源是否能够预加载该APP。之后,手机在确定能够预加载该APP时,加载该APP的启动进程数据,并且可以将该APP的启动进程数据进行转储,即将该APP冷冻,降低内存资源的消耗,降低预加载对手机性能的影响。然后,如果用户点击该APP,表明需将该APP切换为前台应用,则手机可以利用启动进程数据,在手机屏幕上显示该APP的可操作界面,实现APP的秒开。
可以理解的是,上述手机实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
本申请实施例可以根据上述方法示例对上述手机进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
请参考图11,其示出了上述手机的一种可能的结构示意图。如图11所示,手机可以包括:AI计算引擎模块、智慧感知模块、操作系统(operating system,OS)应用预加载模块、OS应用后台管理模块和OS桌面模块。
其中,智慧感知模块用于支持手机执行上述实施例中的S601、S901,采集手机上的数据,如用户的操作数据、设备数据,和/或用于本文所描述的技术的其它过程。
AI计算引擎模块用于支持手机执行上述实施例中的S602、S603、S902、S903、S904,训练预测模型以及利用训练好的预测模型预测预加载的APP,和/或用于本文所描述的技术的其它过程。
OS应用预加载模块用于支持手机执行上述实施例中的S905、S906、S907、S908、S909、S910、S913、S914、S915,判断手机的硬件资源是否支持预加载APP。并且在支持预加载APP的情况下,在后台预加载该APP。以及在确定用户启动该APP的情况下,将该APP转换为前台应用,和/或用于本文所描述的技术的其它过程。
OS桌面模块支持手机执行上述实施例中的S911、S912,接收用户对预加载的APP的启动操作。并通知OS应用预加载模块用户启动该APP,和/或用于本文所描述的技术的其它过程。
OS应用后台管理模块用于清理后台中的APP,也即OS应用后台管理模块可以用于支持手机执行上述实施例中的S916,和/或用于本文所描述的技术的其它过程。
在一些实施例中,AI计算引擎模块、智慧感知模块、操作系统(operating system,OS)应用预加载模块、应用后台管理模块和OS桌面模块可以在上述图5所示的应用程序层。
上面介绍了手机中的AI计算引擎模块、智慧感知模块、操作系统(operatingsystem,OS)应用预加载模块、OS应用后台管理模块和OS桌面模块所支持的功能,下面将结合图12,继续介绍各个功能模型的工作原理。
如图12所示,智慧感知模块可以执行S1201,将采集的历史用户行为数据作为样本数据。之后,执行S1202,将样本数据发送至AI计算引擎模块。AI计算引擎模块可以执行S1203,接收上述样本数据,并从该样本数据中提取特征数据,该特征数据包括不同场景的维度对应的特征数据。之后,AI计算引擎模块执行S1204,根据预设场景的维度的特征数据训练初始的预测模型,得到训练好的预测模型。其中,该训练好的预测模型能够预测手机在不同场景下预加载的APP。在得到训练好的预测模型后,可以利用该训练好的预测模型进行预加载,即智慧感知模块可以执行S1205,采集当前状态信息。之后,执行S1206,将该当前状态信息发送至AI计算引擎模块。AI计算引擎模块可以执行S1207、判断当前状态信息是否满足至少一个场景对应的触发条件。之后,AI计算引擎模块可以执行S1208,若当前状态信息不满足任何场景对应的触发条件,则结束APP的预加载任务,或者执行S1209,若当前状态信息满足至少一个场景对应的触发条件,则将该当前状态信息输入至训练好的预测模型中,并获取该训练好的预测模型输出的预测结果。其中,该预测结果包括至少一个应用的标识,该应用指示第一应用或第二应用。该第一应用指示预测预加载的APP;该第二应用指示不预加载的APP。
在一些实施例中,该预测结果还可以包括第一应用的预加载信息,该预加载信息包括第一应用的预加载时间和/或第一应用的保活时长。
在执行S1209的情况下,AI计算引擎模块继续执行S1210,将该预测结果发送至OS应用预加载模块。OS应用预加载模块可以执行S1211,接收上述预测结果,并在该预测结果包括第一应用的标识的情况下,获取手机的第一运行信息,该第一运行信息指示手机预加载该第一应用之前的硬件资源的负载。之后,OS应用预加载模块执行S1212,根据该第一运行信息判断是否能够预加载该第一应用。之后,执行S1213,在确定不能够加载该第一应用的情况下,结束第一应用的预加载任务,或者执行S1214,在确定能够预加载第一应用的情况下,基于该第一应用的预加载信息,预加载该第一应用。
其中,在预加载第一应用时,OS应用预加载模块可以执行S1214a,在预加载第一应用时,在虚拟屏上加载该第一应用、S1214b,在第一应用预加载完成时,将该第一应用的任务栏状态设置为隐藏状态、S1214c,在该第一应用预加载完成时,压缩第一存储器中的该第一应用的启动进程数据、以及S1214d,将压缩后的第一应用的启动进程数据由该第一存储器转移至第二存储器中。
OS桌面模块可以执行S1215,接收用户对手机应用的启动操作。之后,执行S1216,响应于上述启动操作,确定待启动应用的标识,并在确定该待启动应用的标识属于已经预加载的第一应用的标识的情况下,生成第一启动通知消息。该第一启动通知消息指示启动该标识对应的第一应用。之后,OS桌面模块可以继续执行S1217,将上述第一启动通知消息发送至OS应用预加载模块。OS应用预加载模块可以执行S1218,响应于接收到该第一启动通知消息,启动该第一应用,以该在手机屏幕上显示该第一应用的初始可操作界面。
其中,在启动该第一应用时,OS应用预加载模块可以执行S1218a,在启动该第一应用时,将该第一应用的启动进程数据由第二存储器转移至第一存储器中、以及S1218b,将上述虚拟屏中的该第一应用的初始可操作界面迁移至显示屏上,以在该显示屏上显示该初始可操作界面。
在该第一应用启动完成后,OS应用预加载模块可以继续执行S1219,将该第一应用的任务栏状态设置为显示状态。另外,若用户长时间未启动已经预加载的第一应用,则OS应用预加载模块可以执行S1220,对于每个已经预加载的第一应用,在经过该第一应用的保活时长后,如果未接收到用户对该第一应用的启动操作,则生成清理通知消息。之后,该OS应用预加载模块可以继续执行S1221,将该清理通知消息发送至至OS应用后台管理模块。该清理通知消息用于指示清理该第一应用。OS应用后台管理模块可以执行S1222,在接收到该清理通知消息后,从内存中释放该清理通知消息指示的第一应用。
需要说明的是,S1201-S1222的具体实现过程,可以参考上述实施例中的详细介绍,本申请实施例这里不予赘述。
在一些实施例中,本申请提供一种计算机存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如上所述的应用预加载方法。
在一些实施例中,本申请提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如上所述的应用预加载方法。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (16)

1.一种应用预加载方法,其特征在于,应用于电子设备,所述电子设备包括多个应用APP,所述电子设备中包括多个预设场景对应的预测模型,所述预测模型用于预测所述电子设备在不同预设场景下预加载的APP,所述方法包括:
所述电子设备获取当前状态信息;其中,所述当前状态信息包括用户的操作数据和/或设备数据,所述操作数据用于指示用户在预设时长内在所述电子设备上触发的操作,所述设备数据包括以下中的至少一项:所述电子设备的时间信息、位置信息、接收到的通知消息、所述电子设备连接的外部设备的标识和所述电子设备运行的APP的标识;
若所述当前状态信息满足第一预设场景对应的预设维度的触发条件,所述电子设备将所述当前状态信息作为输入,运行所述第一预设场景对应的预测模型输出预测结果;其中,所述预测结果包括至少一个应用的信息,所述应用的信息包括所述应用的标识,所述至少一个应用包括第一应用和/或第二应用;所述第一应用指示预测预加载的APP,所述第二应用指示预测不预加载的APP;所述第一预设场景为所述多个预设场景中的至少一个预设场景;所述多个预设场景中的每个预设场景对应的预设维度包括以下一个维度:连接的外部设备维度、通知消息维度、关联使用维度、屏幕锁维度和返回桌面维度;
或者,所述每个预设场景对应的预设维度包括复合维度中的每个维度,所述复合维度包括以下中的至少一个:由位置维度和连接的外部设备维度构成的复合维度、由时间维度、位置维度和通知消息维度构成的复合维度、由时间维度和位置维度构成的复合维度、由时间维度、位置维度和运行的APP维度构成的复合维度以及由时间维度、位置维度和连接的外部设备维度构成的复合维度;
在所述应用的标识包括第一应用的标识的情况下,所述电子设备根据至少一个第一应用中的每个第一应用的信息,分别将所述每个第一应用的启动进程数据预加载至所述电子设备的运行内存中;
对于每个所述第一应用,在完成所述第一应用的预加载后,所述电子设备压缩所述运行内存中的第一应用的启动数据;
所述电子设备将压缩后的所述第一应用的启动数据由所述运行内存转移至非运行内存。
2.根据权利要求1所述的方法,其特征在于,所述应用的信息还包括所述第一应用的预加载信息,所述预加载信息包括所述第一应用的预加载时间;
所述分别将所述每个第一应用的启动进程数据预加载至所述电子设备的运行内存中,包括:
所述电子设备在所述预加载时间到达时,将所述第一应用预加载至所述电子设备的运行内存中。
3.根据权利要求1所述的方法,其特征在于,所述应用的信息还包括第一应用的预加载信息,所述预加载信息包括保活时长;所述方法还包括:
所述电子设备在完成所述第一应用的预加载的情况下,开始计时;
若计时到达所述保活时长,且未接收到用户启动所述第一应用的操作,则所述电子设备从所述运行内存中释放所述第一应用。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述分别将所述每个第一应用的启动进程数据预加载至所述电子设备的运行内存中,包括:
所述电子设备在所述电子设备的虚拟屏上加载所述第一应用;其中,所述虚拟屏运行在所述电子设备的运行内存中,所述虚拟屏用于显示所述第一应用的初始可操作界面;所述初始可操作界面指示所述第一应用加载时首个显示的存在用户能够操作的控件的界面。
5.根据权利要求4所述的方法,其特征在于,在所述分别将所述每个第一应用的启动进程数据预加载至所述电子设备的运行内存中之前,所述方法还包括:
若所述电子设备中不存在所述虚拟屏,则所述电子设备创建虚拟屏,并在所述虚拟屏上加载所述第一应用。
6.根据权利要求5所述的方法,其特征在于,在所述分别将所述每个第一应用的启动进程数据预加载至所述电子设备的运行内存中之后,所述方法还包括:
所述电子设备响应于用户启动所述第一应用的操作,将所述第一应用的初始可操作界面由所述虚拟屏迁移至所述电子设备的实体显示屏上显示。
7.根据权利要求1所述的方法,其特征在于,所述运行内存为随机存取存储器RAM,所述非运行内存为只读存储器ROM。
8.根据权利要求1或7所述的方法,其特征在于,在所述分别将所述每个第一应用的启动进程数据预加载至所述电子设备的运行内存中之后,所述方法还包括:
所述电子设备响应于用户启动所述第一应用的操作,将所述第一应用的启动进程数据由所述非运行内存转移至所述运行内存,在所述电子设备的显示屏显示所述第一应用的初始可操作界面。
9.根据权利要求1至3中任一项所述的方法,其特征在于,所述分别将所述每个第一应用的启动进程数据预加载至所述电子设备的运行内存中,包括:
所述电子设备获取所述电子设备的第一运行信息;其中,所述第一运行信息指示所述电子设备预加载所述第一应用之前的硬件资源的负载;
在所述第一运行信息指示的负载低于第一预设负载阈值的情况下,所述电子设备分别将所述每个第一应用的启动进程数据预加载至所述电子设备的运行内存中。
10.根据权利要求9所述的方法,其特征在于,所述第一运行信息包括第一中央处理器CPU利用率,所述第一运行信息指示的负载低于第一预设负载阈值包括:第一CPU利用率小于或等于第一预设CPU利用阈值;和/或,
所述第一运行信息包括第一内存剩余容量,所述第一运行信息指示的负载低于第一预设负载阈值包括:所述第一内存剩余容量大于第一预设内存剩余阈值。
11.根据权利要求1至3中任一项所述的方法,其特征在于,所述分别将所述每个第一应用的启动进程数据预加载至所述电子设备的运行内存中,包括:
所述电子设备获取所述电子设备的第一运行信息;其中,所述第一运行信息指示所述电子设备预加载所述第一应用之前的硬件资源的负载;
所述电子设备获取所述每个第一应用的资源占用信息;其中,所述资源占用信息指示预加载对应第一应用时所占用的硬件资源大小;
所述电子设备根据所述第一运行信息和所述每个第一应用的资源占用信息,得到第二运行信息;其中,所述第二运行信息指示所述电子设备尝试预加载所述至少一个第一应用后的硬件资源的负载;
若所述第二运行信息所指示的负载低于第二预设负载阈值,所述电子设备分别将所述每个第一应用的启动进程数据预加载至所述电子设备的运行内存中。
12.根据权利要求1至3中任一项所述的方法,其特征在于,所述分别将所述每个第一应用的启动进程数据预加载至所述电子设备的运行内存中,包括:
所述电子设备获取所述电子设备的第一运行信息;其中,所述第一运行信息指示所述电子设备预加载所述第一应用之前的硬件资源的负载;
所述电子设备获取所述每个第一应用的资源占用信息;其中,所述资源占用信息指示预加载对应第一应用时所占用的硬件资源大小;
所述电子设备根据所述第一运行信息和所述每个第一应用的资源占用信息,从所述至少一个第一应用中确定目标预加载应用;
所述电子设备分别将所述每个第一应用的启动进程数据预加载至所述电子设备的运行内存中。
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述电子设备获取多个APP的历史使用记录;其中,每个APP的历史使用记录包括所述APP的标识、所述电子设备启动所述APP时用户的所述操作数据和所述设备数据;
所述电子设备基于每个所述预设场景对应的预设维度,从所述多个APP的历史使用记录中提取对应预设维度的特征数据;
所述电子设备根据所述预设场景对应的预设维度的特征数据训练初始的预测模型,得到训练好的预测模型。
14.一种应用的启动方法,其特征在于,包括:
响应于电子设备的当前状态信息满足预设场景对应的预设维度的触发条件,所述电子设备在后台对第一应用进行预加载,以在所述电子设备的虚拟屏上显示所述第一应用的初始可操作界面;其中,所述预设场景对应的预设维度包括以下一个维度:连接的外部设备维度、通知消息维度、关联使用维度、屏幕锁维度和返回桌面维度;
或者,所述预设场景对应的预设维度包括复合维度中的每个维度,所述复合维度包括以下中的至少一个:由位置维度和连接的外部设备维度构成的复合维度、由时间维度、位置维度和通知消息维度构成的复合维度、由时间维度和位置维度构成的复合维度、由时间维度、位置维度和运行的APP维度构成的复合维度以及由时间维度、位置维度和连接的外部设备维度构成的复合维度;
在完成所述第一应用的预加载后,所述电子设备压缩运行内存中的所述第一应用的启动数据;
所述电子设备将压缩后的所述第一应用的启动数据由所述运行内存转移至非运行内存;
响应于对所述第一应用的启动操作,所述电子设备对所述非运行内存中的压缩后的第一应用的启动数据进行解压缩;
所述电子设备将解压缩后的第一应用的启动数据由所述非运行内存转移至运行内存,将所述第一应用的初始可操作界面由所述虚拟屏迁移至所述电子设备的实体显示屏上进行显示。
15.一种电子设备,其特征在于,所述电子设备包括显示屏、存储器和一个或多个处理器;所述显示屏、所述存储器和所述处理器耦合;所述显示屏用于显示所述处理器生成的图像,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1至14中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至14中任一项所述的方法。
CN202210901775.0A 2022-07-28 2022-07-28 应用预加载方法、应用的启动方法及电子设备 Active CN116048648B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210901775.0A CN116048648B (zh) 2022-07-28 2022-07-28 应用预加载方法、应用的启动方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210901775.0A CN116048648B (zh) 2022-07-28 2022-07-28 应用预加载方法、应用的启动方法及电子设备

Publications (2)

Publication Number Publication Date
CN116048648A CN116048648A (zh) 2023-05-02
CN116048648B true CN116048648B (zh) 2024-04-05

Family

ID=86122613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210901775.0A Active CN116048648B (zh) 2022-07-28 2022-07-28 应用预加载方法、应用的启动方法及电子设备

Country Status (1)

Country Link
CN (1) CN116048648B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116320019B (zh) * 2023-05-16 2023-10-27 荣耀终端有限公司 数据采集方法、介质以及电子设备
CN117349006A (zh) * 2023-09-14 2024-01-05 荣耀终端有限公司 Cpu资源管理方法及相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021077261A1 (zh) * 2019-10-21 2021-04-29 深圳市欢太科技有限公司 应用程序管理方法及装置、电子设备以及存储介质
WO2021161174A1 (en) * 2020-02-13 2021-08-19 Tensera Networks Ltd. Preloading of applications and in-application content in user devices
CN114461588A (zh) * 2021-08-20 2022-05-10 荣耀终端有限公司 调节预读窗口的方法及电子设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021077261A1 (zh) * 2019-10-21 2021-04-29 深圳市欢太科技有限公司 应用程序管理方法及装置、电子设备以及存储介质
WO2021161174A1 (en) * 2020-02-13 2021-08-19 Tensera Networks Ltd. Preloading of applications and in-application content in user devices
CN114461588A (zh) * 2021-08-20 2022-05-10 荣耀终端有限公司 调节预读窗口的方法及电子设备

Also Published As

Publication number Publication date
CN116048648A (zh) 2023-05-02

Similar Documents

Publication Publication Date Title
CN116048648B (zh) 应用预加载方法、应用的启动方法及电子设备
CN115454286B (zh) 应用数据的处理方法、装置和终端设备
CN115348350B (zh) 一种信息显示方法及电子设备
KR20170008644A (ko) 결제 운용 방법 및 이를 지원하는 전자 장치
CN115422480A (zh) 事件发生地区域的确定方法、设备及存储介质
CN116700601B (zh) 内存优化方法、设备及存储介质
CN112163033A (zh) 移动终端及其出行清单的显示方法
CN116033069B (zh) 通知消息的显示方法、电子设备及计算机可读存储介质
CN114077529B (zh) 日志上传方法、装置、电子设备及计算机可读存储介质
CN115993993A (zh) 冷启动方法及相关设备
CN111787157A (zh) 移动终端及其操作响应方法
CN113642010A (zh) 一种获取扩展存储设备数据的方法及移动终端
CN116089320B (zh) 垃圾回收方法和相关装置
CN115562967B (zh) 一种应用程序预测方法、电子设备及存储介质
CN115250261B (zh) 一种信息的显示方法及电子设备
CN117131240B (zh) 服务推荐方法、电子设备及计算机可读存储介质
CN116088955B (zh) 进程处理方法和终端设备
CN116028707B (zh) 服务推荐方法、设备及存储介质
CN114020379B (zh) 一种终端设备、信息反馈方法和存储介质
CN116069219B (zh) 一种获取日程信息的方法和电子设备
WO2023142735A1 (zh) 闹钟设置方法和装置
WO2024037346A1 (zh) 页面管理方法及电子设备
WO2023207890A1 (zh) 一种界面显示方法及电子设备
KR20140137653A (ko) 전자장치의 이벤트 로그 분석 방법 및 장치
CN107395869A (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