CN115543562A - 应用的运行处理方法、装置、电子设备及介质 - Google Patents
应用的运行处理方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN115543562A CN115543562A CN202211131363.XA CN202211131363A CN115543562A CN 115543562 A CN115543562 A CN 115543562A CN 202211131363 A CN202211131363 A CN 202211131363A CN 115543562 A CN115543562 A CN 115543562A
- Authority
- CN
- China
- Prior art keywords
- target application
- application
- cloud
- local
- local terminal
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种应用的运行处理方法、装置、电子设备及介质,所述方法包括:在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在本地终端保存操作事件;响应于针对目标应用触发的从第一目标应用的运行态切换到第二目标应用的运行态的请求,获取第一目标应用对应的应用程序检查点文件;其中,第一目标应用由本地终端运行,第二目标应用由云端运行,或者,第一目标应用由云端运行,第二目标应用由本地终端运行;基于所获取的应用程序检查点文件,在第二目标应用中播放对应的操作事件,以使第二目标应用的运行状态与第一目标应用的运行状态同步。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种应用的运行处理方法、装置、电子设备及介质。
背景技术
随着各类应用的普及,用户一般会在本地终端下载各类应用以进行使用,例如,在手机上会安装很多APP(Application,应用程序)。然而,用户在使用APP的过程中,可能在本地终端中使用APP,也可能通过本地终端使用在云端的APP。例如,用户使用一款游戏软件,其可以在本地终端上下载并安装游戏软件后,在本地终端的游戏软件中玩游戏,也可以在下载安装该款游戏软件之前,通过该游戏软件提供的云目标应用(可以理解为是目标应用的云客户端),在线上通过远程串流的方式玩游戏。
相关技术中,若用户在云端使用APP后,切换到在本地终端使用APP时,会出现已经在云端使用APP的一些状态信息无法同步到本地的情况,导致切换到本地终端使用APP时,本地终端的APP的状态无法跟随到云端的APP的状态的问题,进而使用户在切换APP云端运行态到本地运行态后,产生强烈的割裂感,严重影响用户体验。
另外,若用户在本地终端使用APP时,由于本地运行应用程序对计算、存储资源消耗比较大,在本地终端的电池续航能力或可用存储空间不足(电池剩余电量或可用存储空间低于指定阈值)的情况下,希望继续长时间使用APP,这时就需要将实时计算移动到云端进行(即将本地终端APP运行态切换到云端APP运行态),以降低本地终端的电池电量或可用存储空间消耗速度,保证APP可以持续长时间运行;同理,在本地终端APP运行态切换到云端APP运行态时,由于已经在本地终端使用APP的一些状态信息无法同步到云端运行的APP的情况,导致切换到云端运行APP时,云端APP的状态无法跟随到本地终端APP的状态的问题,进而产生强烈的割裂感,严重影响用户体验。
发明内容
鉴于上述问题,提出了本申请实施例,以便克服上述问题或者至少部分地解决上述问题。
为了解决上述问题,本申请的第一方面,公开了一种应用的运行处理方法,方法包括:
在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在本地终端保存操作事件;
响应于针对目标应用触发的从第一目标应用的运行态切换到第二目标应用的运行态的请求,获取第一目标应用对应的应用程序检查点文件;其中,第一目标应用由本地终端运行,第二目标应用由云端运行,或者,第一目标应用由云端运行,第二目标应用由本地终端运行;
基于所获取的应用程序检查点文件,在第二目标应用中播放对应的操作事件,以使第二目标应用的运行状态与第一目标应用的运行状态同步。
在一种可选的示例中,获取第一目标应用对应的应用程序检查点文件,包括:
在第一目标应用为由云端运行的云目标应用,第二目标应用为由本地终端运行的本地目标应用的情况下,从云目标应用对应的云存储介质下载应用程序检查点文件;其中,应用程序检查点文件是云目标应用所对应的串流服务定时保存云目标应用的运行状态数据得到的;
在第一目标应用为本地目标应用,第二目标应用为云目标应用的情况下,从本地终端获取应用程序检查点文件,并上传到云目标应用对应的云存储介质中;其中,应用程序检查点文件是本地目标应用所对应的应用程序管理器定时保存本地目标应用的运行状态数据得到的。
在一种可选的示例中,在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在本地终端保存操作事件之前,方法还包括:
定时获取本地终端的当前性能参数,当前性能参数包括本地终端的电池参数、可用存储空间参数、网络数据吞吐参数中的至少一种;
在当前性能参数满足第一切换条件的情况下,通过云端运行的云目标应用响应用户在本地终端所进行的操作事件;
在当前性能参数满足第二切换条件的情况下,触发将目标应用的运行态由云端运行的运行态切换到本地终端运行的运行态的请求。
在一种可选的示例中,其特征在于,响应于针对目标应用触发的从第一目标应用的运行态切换到第二目标应用的运行态的请求,获取第一目标应用对应的应用程序检查点文件,包括:
响应于请求,从第一目标应用对应的多个已保存的应用程序检查点文件中,获取距离当前时刻最近的应用程序检查点文件。
在一种可选的示例中,基于所下载的应用程序检查点文件,在第二目标应用中播放对应的操作事件,包括:
确定所获取的应用程序检查点文件的第一触发时间点,第一触发时间点为触发保存应用程序检查点文件的应用程序运行态时间点;
在第二目标应用为由本地终端运行的本地目标应用的情况下,在本地目标应用中播放对应的第二触发时间点大于或等于第一触发时间点的操作事件;
在第二目标应用为云目标应用的情况下,在本地代理应用中,播放对应的第二触发时间点大于或等于第一触发时间点的操作事件,本地代理应用为运行在本地终端的应用,本地代理应用与云目标应用通信;
其中,第二触发时间点为操作事件的发生时间点。
在一种可选的示例中,在本地目标应用中播放对应的第二触发时间点大于或等于第一触发时间点的操作事件,或,在第二目标应用为云目标应用的情况下,在本地代理应用中,播放对应的第二触发时间点大于或等于第一触发时间点的操作事件,包括:
将第一触发时间点发送给第二组件,以使第二组件在本地目标应用或本地代理应用中,播放对应的第二触发时间点大于或等于第一触发时间点的操作事件;
其中,第二组件为在本地终端初始化的与目标应用对应的组件,第二组件用于接收并存储操作事件。
在一种可选的示例中,基于所下载的应用程序检查点文件,在第二目标应用中播放对应的操作事件之后,方法还包括:
在检测到第二目标应用的运行状态与第一目标应用的运行状态同步的情况下,释放第一目标应用对应的进程;其中,在第二目标应用由本地终端运行的情况下,释放云目标应用对应的本地代理应用,本地代理应用用于将操作事件发送给云目标应用;
将第二目标应用的视频画面返回给第一组件,以通过第一组件提供的应用程序交互界面播放第二目标应用响应操作事件的视频画面;
其中,第一组件为本地终端配置的组件。
在一种可选的示例中,在第一目标应用为由云端运行的云目标应用,第二目标应用为由本地终端运行的本地目标应用的情况下,在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在本地终端保存操作事件之前,方法还包括:
响应于针对目标应用的安装请求,从云存储介质下载目标应用的启动运行包和启动镜像包;启动运行包用于启动目标应用,启动镜像包中包括目标应用的运行数据;
在检测到启动运行包下载完成,而启动镜像包未下载完成时,输出运行选择信息;
响应于用户针对运行选择信息所触发的云端运行请求,初始化目标应用对应的本地代理应用;其中,本地代理应用用于将操作事件发送给云目标应用;运行态切换请求是在启动运行包和启动镜像包下载完成的情况下发送的。
在一种可选的示例中,在第一目标应用为本地目标应用的情况下,在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在本地终端保存操作事件之前,方法还包括:
定时检测本地终端的电池参数以及可用存储空间参数,若当前电池剩余电量或可用存储空间低于第一目标阈值,则输出第一运行选择信息;
响应于用户针对第一运行选择信息所触发的本地目标应用运行态切换到云目标应用运行态的请求,初始化目标应用对应的本地代理应用。
在一种可选的示例中,在第一目标应用为由云端运行的云目标应用的情况下,在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在本地终端保存操作事件之前,方法还包括:
定时检测本地终端的网络数据吞吐参数,网络数据吞吐参数包括网络数据带宽和/或网络数据响应速度,若网络数据吞吐参数低于第二目标阈值,输出第二运行选择信息;
响应于用户针对第二运行选择信息所触发的云目标应用运行态切换到本地目标应用运行态的请求,初始化目标应用对应的本地目标应用。
在一种可选的示例中,基于所获取的应用程序检查点文件,在第二目标应用中播放对应的操作事件之前,方法还包括:
以目标应用检查点文件的存储路径为启动参数,启动第二目标应用;
其中,在第二目标应用由本地终端运行的情况下,启动参数为目标应用检查点文件的本地存储路径;在第二目标应用由云端运行的情况下,启动参数为目标应用检查点文件的云存储介质的URL(uniform resource locator,统一资源定位符)路径;
方法还包括:
在第二目标应用为由云端运行的云目标应用的情况下,在云端通过串流服务启动云目标应用后,建立本地代理应用与云目标应用之间的连接通道。
本公开还提供了一种应用的运行处理装置,装置包括;
保存模块,用于在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在本地终端保存操作事件;
获取模块,用于响应于针对目标应用触发的从第一目标应用的运行态切换到第二目标应用的运行态的请求,获取第一目标应用对应的应用程序检查点文件;其中,第一目标应用由本地终端运行,第二目标应用由云端运行,或者,第一目标应用由云端运行,第二目标应用由本地终端运行;
同步模块,用于基于所获取的应用程序检查点文件,在第二目标应用中播放对应的操作事件,以使第二目标应用的运行状态与第一目标应用的运行状态同步。
本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行时实现应用的运行处理方法。
本公开还提供了一种计算机可读存储介质,其存储的计算机程序使得处理器执行实现应用的运行处理方法。
本申请实施例还公开了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现应用的运行处理方法。
采用本申请实施例的应用的运行处理方法,可以在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在本地终端保存操作事件,接着,响应于从第一目标应用的运行态切换到第二目标应用的运行态的请求时,获取第一目标应用对应的应用程序检查点文件,接着,基于所获取的应用程序检查点文件,在第二目标应用中播放对应的操作事件,以使第二目标应用的运行状态与第一目标应用的运行状态同步。
其中,由于第一目标应用由本地终端运行,第二目标应用由云端运行,或者,第一目标应用由云端运行,第二目标应用由本地终端运行。也就是说,采用本申请的方案,一方面,可以在通过云端的目标应用响应用户在本地终端所进行的操作事件时,在本地终端保存操作事件,并通知云端的目标应用(后面简称云目标应用)所对应的串流服务定时保存云目标应用的应用程序检查点文件;接着,响应于针对目标应用触发的运行态切换请求,从云存储介质下载应用程序检查点文件;并基于已下载的应用程序检查点文件,在本地终端运行的目标应用(后面简称本地目标应用)中播放所保存的操作事件,以使本地目标应用与云目标应用的运行状态同步。
另一方面,可以在通过本地目标应用响应用户在本地终端所进行的操作事件时,在本地终端保存操作事件,并通知本地终端的应用程序管理器定时保存本地目标应用的应用程序检查点文件;接着,响应于针对目标应用触发的运行态切换请求,上传本地应用程序检查点文件到云存储介质中,进而基于已上传给云存储介质的应用程序检查点文件,在本地终端运行的与云目标应用对应的代理应用(后面简称本地代理应用)中播放所保存的操作事件,以使云目标应用与本地目标应用的运行状态同步。
采用本申请实施例的应用的运行处理方法,具有以下方面的优点:
由于在用户通过云目标应用使用目标应用时,本地终端保存了用户进行的操作事件,并在云存储介质中定时保存了云目标应用对应的目标应用运行状态为应用程序检查点文件,之后,在用户发出运行态切换请求,希望将目标应用切换到本地运行时,可以从云存储介质中下载所保存的应用程序检查点文件,进而,应用程序检查点文件可以提供云目标应用对应的目标应用的运行状态描述,从而基于这一运行状态描述,将保存的相关操作事件在本地目标应用中播放,使得本地目标应用与云目标应用对应的目标应用运行状态同步,进而使用户可以从云目标应用的运行态无缝切换到本地目标应用的运行态,解决了本地终端的应用的运行状态无法跟随到云端的应用的运行状态的问题。
另外,在用户通过本地目标应用使用目标应用时,本地终端保存了用户进行的操作事件,并在本地终端对应的存储介质中定时保存了本地目标应用对应的目标应用运行状态为应用程序检查点文件,之后,当本地终端的电池剩余电量或可用存储空间低于指定阈值,由用户决策发出运行态切换请求,希望将目标应用切换到云端运行时,可以将所保存的本地应用程序检查点文件上传到云目标应用对应的云存储介质中,进而,应用程序检查点文件可以提供本地目标应用对应的目标应用的运行状态描述,从而基于这一运行状态描述,将保存的相关操作事件在本地代理应用中播放,使得云目标应用与本地目标应用对应的目标应用运行状态同步,进而使用户可以从本地目标应用的运行态无缝切换到云目标应用的运行态,解决了云端的应用的运行状态无法跟随本地终端的应用的运行状态的问题。
同时,无需用户重新录入相关操作事件,进而优化了用户的使用体验,降低了用户从云端/本地终端使用目标应用切换到在本地终端/云端使用目标应用的过程中所带来的割裂感。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中的一种应用的运行处理方法的通信环境图;
图2是本申请实施例中的一种应用的运行处理方法的步骤流程图;
图3是本申请一种可选实施例中的应用的运行处理方法的流程图;
图4是本申请又一种可选实施例中的应用的运行处理方法的流程图;
图5是本申请实施例中一种应用的运行处理方法的又一通信环境图;
图6是本申请实施例中服务器侧的一种应用的运行处理方法的步骤流程图;
图7是本申请实施例中的一种应用的运行处理系统的框架示意图;
图8是本申请实施例中的一种应用的运行处理装置的框架示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明实施例可以应用于终端的各种操作系统中,终端包括游戏主机、PC端和移动终端,操作系统包括游戏主机或PC(personal computer,个人计算机)端的操作系统如Windows,Linux,类Unix系统,以及虚拟机仿真系统等,还包括移动终端的操作系统如安卓、IOS等。
本发明实施例中的目标应用可以是指软件安装包和数据包较大的应用程序,如3D游戏、PS等应用程序;其中,目标应用可以是游戏主机或PC端的应用程序,也可以是移动终端的应用程序(Application,APP);下面以移动终端为例,对本发明实施例的方法和系统进行说明。
相关技术中,用户在使用各类应用时,如果涉及到目标应用在云端与本地终端之间进行切换的情况,例如,目标应用从云端APP切换到本地APP,或者从本地APP切换到云端APP使用的情况,此时,一般会出现已经在云端(或本地)使用的APP运行状态无法同步到本地(或云端)的情况,造成用户需要重新录入已经录入过的操作事件。
有鉴于此,本申请为解决上述技术问题,提出了一种应用的运行处理方法,具体地,在使用目标应用时,将用户在本地终端进行的操作事件进行保存,并定时保存使用目标应用的过程中对应的应用程序检查点文件,在需要切换到本地终端(或云端)运行目标应用时,可以基于应用程序检查点文件,在本地目标应用(或云目标应用对应的本地代理应用)中播放对应的操作事件,以使本地目标应用(或云目标应用)与云目标应用(或本地目标应用)对应的目标应用运行状态同步。
参照图1所示,示出了本申请实施例的一种应用的运行处理方法的实施环境图,如图1所示,包括目标应用、云目标应用、本地终端和云端,其中,云目标应用运行在云端,该云端可以是服务器,本地终端运行有应用程序管理器,该应用程序管理器可以执行本申请的应用的运行处理方法。
结合图1所示,对本申请的如何通过目标应用的云目标应用响应用户在本地终端所进行的操作事件的过程进行说明。
其中,目标应用可以在云端运行,也可以在本地终端运行,在云端运行时称为云目标应用,在本地终端运行时可以称为本地目标应用。
实际中,目标应用可以由在本地终端运行切换到在云端运行,也就是说可以由本地目标应用切换到云目标应用,一般而言,本地目标应用在本地终端无法持续运行的情况具体包括:本地终端未安装目标应用或目标应用在本地终端长时间运行后,本地终端的电池剩余电量或可用存储空间低于指定阈值。
当然,实际中,目标应用也可以由在云端运行切换到在本地终端运行,也就是说可以由云目标应用切换到本地目标应用,一般而言,云目标应用在云端无法持续运行的情况具体包括:网络数据带宽较小、网络数据响应速度较低。
其中,在云端运行目标应用的情况下,用户可以通过目标应用在本地终端配置的本地代理应用,实现与云目标应用之间的交互。以及,在本地终端提供有目标应用对应的第一组件和第二组件,其中,第一组件可以用于提供目标应用的应用程序交互界面,第二组件用于接收用户针对目标应用进行的操作事件,并将该操作事件发送给本地代理应用,本地代理应用将该操作事件发送给云目标应用,云目标应用响应这一操作事件,并在虚拟显示设备上显示响应这一操作事件后的画面数据,由于响应过程中画面数据是变化的,因此,可以对虚拟显示设备的内容进行多次截图,将截图得到的视频画面编码为视频流后发送给本地代理应用,从而本地代理应用发送给第一组件,第一组件进而将该视频流播放在应用程序交互界面上,从而本地终端的用户可以看到自己进行操作事件后云目标应用传回的画面。
其中,如上述实施例,由于本申请的应用的运行处理方法可以由应用程序管理器执行,实际中,应用程序管理器可以理解为是管理本地终端上各个应用程序的管理器,其可以向用户提供应用程序的下载、安装服务,实际中,应用程序管理器例如可以是应用商店、应用宝或者软件管家等。
本实施例中,应用程序管理器可以为目标应用提供下载、安装、线上使用以及由线上使用与本地使用相互切换的通信服务,以帮助实现本申请的应用的运行处理方法。
参照图2所示,示出了本申请实施例的一种应用的运行处理方法的步骤流程图,如图2所示,具体可以包括以下步骤:
步骤S201:在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在本地终端保存操作事件;
步骤S202:响应于针对目标应用触发的从第一目标应用的运行态切换到第二目标应用的运行态的请求,获取第一目标应用对应的应用程序检查点文件。
步骤S203:基于所获取的应用程序检查点文件,在第二目标应用中播放对应的操作事件,以使第二目标应用的运行状态与第一目标应用的运行状态同步。
本实施例中,一种情况A下,第一目标应用由本地终端运行,第二目标应用由云端运行,另一种情况B下,第一目标应用由云端运行,第二目标应用由本地终端运行。
其中,第一目标应用可以是当前用户正在使用的目标应用,第二目标应用是待切换到另一端运行的目标应用,第一目标应用和第二目标应用为同一个目标应用,其不同点在于运行其二者的终端不同。
其中,情况B中,第一目标应用称为云目标应用,第二目标应用称为本地目标应用,第一目标应用便是运行在云端的目标应用,例如,对于某款游戏软件A而言,若服务器中运行有该游戏软件A,则在服务器中运行的游戏软件称为游戏A的云目标应用。其中,本地终端可以是移动终端、PC机或游戏主机,用户在通过云目标应用使用目标应用时,可以通过本地终端提供的键盘、鼠标、可穿戴体感设备等输入设备在本地终端输入操作事件,操作事件可以是单击、双击、文本输入、运动感知输入和语音输入等事件。
当然,可以理解的是操作事件是对用户针对目标应用所提供的一些功能按键进行的,如目标应用提供了前进、后退、击打、跳跃等按键,则用户点击前进、后退、击打、跳跃等按键时便形成了一个操作事件。
其中,可以在本地终端将用户输入的操作事件进行保存,具体实施时,操作事件可以被保存为操作行为日志,可以存放在日志列表中,保存的操作事件具有触发时间点。
具体实施时,可以将操作事件发送给第一目标应用,然后由第一目标应用响应用户操作事件,如以游戏软件A为例,操作事件是点击了装备售卖区的某个装备,则在第一目标应用会响应这一操作事件,将所点击的装备放入到用户的账户中,并显示在装备展示视图上。
其中,应用程序检查点文件用于表征第一目标应用的运行状态;
本实施例中,可以对第一目标应用的运行状态进行定时保存,具体而言,当第一目标应用为云目标应用时,可以通知串流服务定时保存云目标应用的应用程序检查点文件,当第一目标应用为本地目标应用时,可以通知应用程序管理器保存本地目标应用的应用程序检查点文件。
其中,串流服务可以理解为是位于云端侧的支持在云端运行目标应用的服务组件,应用程序管理器可以理解为是位于本地终端的支持目标应用在本地终端正常运行或异常恢复的服务组件,该应用程序检查点文件可以理解为是目标应用在云端/本地终端运行时的状态数据,反映了目标应用在某一时刻的运行状态,其中,应用程序检查点文件也具有触发时间点。
其中,定时保存应用程序检查点文件可以是指每100ms-10s保存一次,具体的时间间隔可以根据实际需要进行确定。
本实施例中,运行态切换请求可以是在目标应用的启动运行包、启动镜像包下载安装到本地终端后触发的,或者可以是用户根据需求触发的,当然实际情况中,在本地终端已安装有目标应用的情况下,用户也可以通过云目标应用使用目标应用,或者通过本地目标应用使用目标应用。
在通过云目标应用使用目标应用的情况下,也就是说目标应用在云端运行的情况下,可以无需占用本地终端过多的计算资源、存储空间或电池能耗,从而降低本地终端的运行负载,适合终端的计算、存储资源或电池剩余电量不够或有限的情况。如此,运行态切换请求可以是用户根据本地终端的计算、存储资源或电池剩余电量的情况,按照实际需求触发的。
在通过本地目标应用使用目标应用的情况下,也就是说目标应用在本地终端运行的情况下,可以无需占用云端过多的计算资源、存储空间,也无需经过较长的链路占用网络资源发送操作事件、接收视频图像,从而直接在本地终端运行,提高了目标应用的响应速度,同时消除了使用云目标应用的额外资费(该资费由用户承担或由应用商店服务提供商承担或其他的分摊方式共同承担)。
需要说明的是,从云目标应用运行态切换到本地目标应用运行态的请求是需要在本地终端已经安装有目标应用的情况下触发,该运行态切换请求表征用户需要从云目标应用使用目标应用切换到在本地终端使用目标应用,则可以响应于该运行态切换请求,从云存储介质下载已经保存的应用程序检查点文件。
当第一目标应用为本地目标应用的情况下,应用程序检查点文件存储在本地终端,则需要将其上传到云目标应用所运行的服务器的云存储介质中。
也就是说,根据不同的情况获取应用程序检查点文件的步骤可以包括,响应于针对目标应用的云目标应用运行态切换到本地目标应用运行态的请求,从云存储介质中下载已保存于云存储介质的最近应用程序检查点文件;也包括,响应于针对目标应用的本地目标应用运行态切换到云目标应用运行态的请求,将已保存于本地终端存储介质的最近本地应用程序检查点文件上传到云目标应用对应的云存储介质中。
本实施例中,由于应用程序检查点文件可以理解为是对第一目标应用运行时的数据的快照,可以反映目标应用的运行状态,即可以提供第一目标应用对应的运行状态描述,但是,通过应用程序检查点文件仅能提供第一目标应用的运行状态描述,而实际中,用户在启动运行态切换请求触发定时保存应用程序检查点文件的相关时间点到可以使用第二目标应用的时间点,在这段时间差中第一目标应用接收用户输入事件导致的运行状态变化无法被应用程序检查点文件记录下来,需要本地终端上的目标应用记忆自己历史过程中输入的操作事件,以恢复第二目标应用加载应用程序检查点文件后的运行状态到第一目标应用的当前运行状态。
因此,在同步时,可以以应用程序检查点文件为参考,确定第二目标应用需要进入到哪一状态,也就是说哪些所保存的操作事件需要同步到第二目标应用中,进而确定在向第二目标应用中播放所保存的哪些操作事件,以使第二目标应用与第一目标应用的运行状态同步。
其中,在第二目标应用播放所保存的操作事件可以包括:
在第二目标应用为本地目标应用的情况下,可以在本地目标应用的后台程序中不断响应操作事件,以使本地目标应用逐渐同步到与云目标应用一致的状态,同步完成后,在本地目标应用便记录有用户曾经使用云目标应用时的操作事件。例如,用户通过云目标应用玩游戏A时购买装备的行为已同步并记录到本地终端运行的游戏A中。
在第二目标应用为云目标应用的情况下,可以在云目标应用对应的后台程序(如本地代理应用)中不断响应操作事件,以使云目标应用逐渐同步到与本地目标应用一致的状态,同步完成后,在云目标应用便记录有用户曾经使用本地目标应用时的操作事件。例如,用户通过本地目标应用玩游戏A时购买装备的行为已同步并记录到云端运行的游戏A中。
在一种实施例中,所获取的应用程序检查点文件可以是最近一次保存的应用程序检查点文件,或者是最近n次保存的应用程序检查点文件,所要播放的操作事件可以是指发生时间在所获取的应用程序检查点文件对应的触发时间之后的事件,由于每个应用程序检查点文件称为目标应用的运行状态的快照,则播放的操作事件便是构成位于快照的时间点之后以及位于快照的时间点上的事件。
当然,在一种更加优选的示例中,在获取应用程序检查点文件时,可以获取距离当前时刻最近的应用程序检查点文件。如此,便可以从最近一次保存的快照开始,播放对应的操作事件,从而使第一目标应用与第二目标应用的运行状态尽快达到同步一致的状态。
其中,对保存应用程序检查点文件的过程可以是:可以不用定时保存应用程序检查点文件,当触发了运行态切换请求时,在用户发起运行态切换请求的时间点触发应用程序检查点文件的保存。
其中,对保存应用程序检查点文件和操作事件的过程可以是:可以不用在本地终端保存全部操作事件,在发起运行态切换请求的时间点,再触发操作事件的保存以及应用程序检查点文件的保存,之后,将发起运行态切换请求的时间点作为第一目标应用和第二目标应用同步的一个起始时间,此时,再去获取保存的应用程序检查点文件,进而基于所获取的应用程序检查点文件,在第二目标应用中播放对应的操作事件。
当然,在一些场景中,也可以包括目标应用由本地终端切换到其他终端运行的场景,或者,目标应用由其他终端切换到本地终端运行的场景,针对这两种场景,都可以适用本申请提出的上述方案。
采用本申请实施例的技术方案,由于在用户通过第一目标应用使用目标应用时,本地终端保存了用户进行的操作事件,并定时保存第一目标应用的应用程序检查点文件,在用户发起运行态切换请求时,可以获取所保存的最近应用程序检查点文件,基于该应用程序检查点文件,将保存的操作事件在第二目标应用中播放,从而使得第二目标应用与第一目标应用的运行状态同步,解决了在目标应用由云端切换到本地终端运行,以及在从本地终端切换到云端运行时,二者的运行状态无法同步跟随的问题,且无需用户重新进行相关操作事件,可以给用户提供无缝切换运行环境的体验感,优化了用户的使用体验。
在一种实施方式中,示出了从第一目标应用切换到第二目标应用的几种具体实施方案。具体地,可以根据本地终端的当前性能参数,实时在本地终端和云端之间切换运行目标应用。当前性能参数包括本地终端的电池参数、可用存储空间参数、网络数据吞吐参数中的至少一种。
其中,若当前性能参数满足第一切换条件,则通过云目标应用响应用户在本地终端所进行的操作事件;此种情况下,第一切换条件是指:网络数据吞吐参数所表征的网络性能较低,由云端运行目标应用会存在网络延迟的问题,优选在本地终端运行目标应用。
其中,若当前性能参数满足第二切换条件,则触发将目标应用的运行态由云端运行的运行态切换到本地终端运行的运行态的请求;此种情况下,第二切换条件是指:本地终端的电池参数、可用存储空间参数所表征的电量较低,存储空间较少,由本地终端运行目标应用会存在续航时间不长、存储容量不够的问题,优选在云端运行目标应用。
具体地,在通过目标应用的本地目标应用响应用户在本地终端所进行的操作事件时,在本地终端保存操作事件之前,可以定时获取本地终端的当前性能参数,其中,当前性能参数包括本地终端的电池参数、可用存储空间参数中的至少一种。其中,电池参数可以是表征本地终端的电池的剩余电量,可用存储空间参数可以是表征本地终端的剩余可用于目标应用数据缓存的存储容量占本地终端的全部存储容量的占比。
实际中,当本地终端的电池的剩余电量低于第一预设剩余电量的情况下,可以确定满足第一切换条件,或者,当本地终端的可用存储空间小于第一预设比例的情况下,可以确定满足第一切换条件,或者,本地终端的电池的剩余电量低于第二预设剩余电量,以及本地终端的可用存储空间小于第二预设比例的情况下,可以确定满足第一切换条件。
其中,第二预设剩余电量高于第一预设剩余电量,第二预设比例大于第一预设比例,例如,电池的剩余电量低于20%,则可以启动由本地目标应用切换到云目标应用的操作,或者,本地终端的可用存储空间的占比低于10%,则启动由本地目标应用切换到云目标应用的操作。或者,电池的剩余电量低于30%,以及本地终端的可用存储空间的占比低于15%,则可以启动由本地目标应用切换到云目标应用的操作。
在一些情况下,可以及时提醒用户切换目标应用的运行态,具体地,可以定时检测本地终端的电池参数以及可用存储空间参数,若当前电池剩余电量或可用存储空间低于第一目标阈值,则输出第一运行选择信息;响应于用户针对第一运行选择信息所触发的本地目标应用运行态切换到云目标应用运行态的请求,初始化目标应用对应的本地代理应用。
其中,运行态切换请求是在当前电池剩余电量或可用存储空间低于第一目标阈值的情况下发送的。
其中,当前电池剩余电量或可用存储空间均可以表征本地终端的当前性能,如手机的剩余电量和剩余存储空间,第一目标阈值可以根据实际需求设定,若低于第一目标阈值,表示本地终端无法支持目标应用的长时间运行。
本情况中,无论是云端运行目标应用还是本地终端运行目标应用,都可以定时检测本地终端的电池参数以及可用存储空间参数。若当前电池剩余电量或可用存储空间低于第一目标阈值,则输出第一运行选择信息,该第一运行选择信息可以用于提示用户本地终端无法支持目标应用在本地的长时间运行,若当前时刻是由本地终端运行目标应用,则用户可以根据第一运行选择信息,确定切换到云目标应用运行,即触发了运行态切换请求。
当然,若当前时刻是由云端运行目标应用,则用户看到第一运行选择信息,也可以选择取消,保持当前云目标应用运行的状态。
在一种可选示例中,无论是云端运行目标应用还是本地终端运行目标应用,都可以定时检测本地终端的网络数据吞吐参数,网络数据吞吐参数包括网络数据带宽和/或网络数据响应速度,若网络数据吞吐参数低于第二目标阈值,输出第二运行选择信息;并响应于用户针对第二运行选择信息所触发的云目标应用运行态切换到本地目标应用运行态的请求,初始化目标应用对应的本地目标应用。
其中,运行态切换请求是在本地终端的网络数据带宽和网络数据响应速度低于第二目标阈值的情况下发送的。
其中,网络数据吞吐参数可以只包括网络数据带宽或只包括网络数据响应速度,或二者均包括,其可以表征当前云端运行目标应用时,云端与本地终端之间的网络情况,第二目标阈值可以根据实际需求设定,若低于第二目标阈值,表示云端运行的目标应用无法支持目标应用的流畅使用体验。
本情况下,该第二运行选择信息可以用于提示用户云目标应用无法支持目标应用的流畅使用体验,若当前时刻是由云端运行目标应用,则用户可以根据第二运行选择信息,确定切换到本地目标应用运行,即触发了运行态切换请求。当然,若当前时刻是由本地终端运行目标应用,则系统可以默认确认第二运行选择信息为本地终端运行目标应用,保持当前本地目标应用运行的状态。
其中,输出的运行选择信息(第一运行选择信息和第二运行选择信息),以提示用户是否需要切换到第二目标应用,若用户回复“是”,则关闭第一目标应用,具体地,若第一目标应用是本地目标应用,其需要切换到云目标应用,则可以初始化本地代理应用(后续实施例详述),从而本地终端产生的操作事件可以经由本地代理应用发送给位于云端侧的串流服务(后续实施例详述),串流服务将操作事件发送给云目标应用,从而云目标应用响应操作事件。
其中,云目标应用响应操作事件的显示画面会被串流服务进行截图后编码为视频反馈给本地终端,本地终端通过第一组件播放解码后的视频画面,从而使得用户可以在本地终端的第一组件中观看显示画面。
具体地,若第一目标应用是云目标应用,其需要切换到本地目标应用,则可以关闭本地代理应用,从而本地终端产生的操作事件可以发送给位于本地终端的本地目标应用,从而由本地目标应用响应操作事件。
采用本可选实施例的技术方案,一方面,由于本地终端产生的操作事件可以经由本地代理应用发送给位于云端侧的串流服务,由云目标应用响应操作事件等一系列过程都可以在后台进行,因此用户在第一组件上感知不到整个切换过程,使得用户使用目标应用的体验更为流畅。
另一方面,由于在本地终端的电池剩余电量不够,以及可用存储空间不够的情况下,可以自动将目标应用由本地运行切换到在云端运行,这样,本地终端只需接收云端返回的视频并解码即可,由此降低了本地终端因运行本地目标应用而导致的电量消耗和存储资源消耗大的问题,从而保证了用户可以在低剩余电量和低可用存储空间的情况下,延长目标应用的使用时间,优化用户的使用体验。
再一方面,由于在云端运行目标应用的情况下,可以根据网络数据吞吐参数,在网络数据吞吐参数低于第二目标阈值的情况下,再由云目标应用切换回本地目标应用,从而使得实时根据本地终端的电量、存储容量、所处网络环境,在云目标应用和本地目标应用之间适时无缝切换。
例如,本地终端是移动终端的情况下,在移动终端上运行游戏一般能耗速度比较高,比如,目前移动终端的电池容量普遍达不到长时间运行3A游戏的能力(一般1-3小时),而使用本申请的运行处理方法,则可以允许移动终端在云端运行3A游戏,而运行3A游戏所需的图形计算和游戏数据(如应用程序模型、贴图、音乐以及各种第三方依赖库)都可以利用服务器资源进行计算和存储,移动终端的本地可以只需负责传送操作事件、解码服务器传输过来的视频数据即可(视频数据是对云目标应用响应操作事件的显示画面进行连续截图并编码得到的),这样移动终端的能耗速度可以降低90%,使用时间可以延长到6-7小时。如此,延长了在移动终端上运行3A游戏的时长。
当然,在一些情况下,在移动终端的电池够用,而网络数据带宽或网络数据响应速度比较差时(比如在旅行坐车、地下车库或偏远地区等情况下导致数据信号不好时),又可以由云目标应用切换到本地目标应用运行。
在一种可选的实施例中,对本申请的应用的运行处理方法的一种可选实施方式进行说明,参照图3所示,示出了本申请的由本地目标应用切换到云目标应用的整体流程示意图,如图3所示,具体可以包括以下步骤:
S31,在未安装目标应用时,响应于对目标应用的安装请求,可以从云存储介质下载目标应用的安装包。由于在下载目标应用的安装包的过程中,目标应用还未能在本地终端运行,此时,若要满足用户对目标应用的使用,一般用户是通过云目标应用使用目标应用。具体实现过程如下:
S311,响应于针对目标应用所触发的云端运行请求,初始化目标应用对应的本地代理应用;
S312:初始化与目标应用对应的第二组件。
其中,响应于针对目标应用所触发的云端运行请求,可以初始化出本地代理应用,其中,本地代理应用可以是在触发目标应用的云端运行请求时触发的,具体地:可以响应于针对目标应用所触发的云端运行请求,初始化目标应用对应的本地代理应用;并建立本地代理应用与云目标应用之间的通信连接,以使云目标应用通过通信连接响应用户在本地终端所进行的操作事件。
其中,本地代理应用可以理解为是在目标应用安装到本地终端之前的代理应用,负责本地终端与云目标应用进行通信,具体地,可以用于将本地终端上针对目标应用进行的操作事件发送给云目标应用,以使云目标应用响应用户在本地终端所进行的操作事件,并可以接受云目标应用响应操作事件时所返回的视频画面,该视频画面可以是对云目标应用响应操作事件的画面截图并进行编码后得到的。
具体实施时,在云端可以运行有串流服务,该串流服务可以理解为是本地代理应用与云目标应用之间的通信桥梁,此种情况下,本地代理应用与串流服务之间建立通信连接,则本地代理应用将操作事件发送给串流服务,然后串流服务将该操作事件发送给云目标应用。
其中,串流服务还可以对云目标应用响应操作事件的画面进行截图,具体地,可以每隔10-30ms便进行一次截图,并将多张截图编码为视频流发送给本地代理应用,之后,本地代理应用可以通过本地终端上的解码器解码视频流并传送给第一组件,如此,本地终端的用户可以通过第一组件观看到经操作事件后云目标应用的画面变化,实现了用户在本地终端通过云目标应用使用目标应用的需求。
具体实施时,在本地终端初始化有第一组件,第一组件可以用于提供目标应用的应用程序交互界面。在一种示例中,该第一组件可以是UI(User Interface,用户界面)。本实施例中,该第一组件提供的应用程序交互界面可以理解为是目标应用的虚拟化界面,当然第一组件也可以提供供用户操作的虚拟按键、虚拟鼠标、虚拟体感设备、窗口,实际应用中,用户可以通过该第一组件提供的应用程序交互界面,操作本地终端的硬件鼠标、键盘、手柄、可穿戴体感设备(或者通过第一组件提供的虚拟鼠标、键盘、手柄、体感设备)与云目标应用交互;其中,操作本地终端的硬件鼠标、键盘、手柄、可穿戴体感设备(或者通过第一组件提供的虚拟鼠标、键盘、手柄、体感设备)即为操作事件,本地代理应用接着将这些操作事件发送给云目标应用。
如上,由于本地代理应用可以通过本地终端上的解码器解码视频流,则在具有第一组件的情况下,将该视频流传送给第一组件,例如,通过第一组件就可以播放在云目标应用运行过程中所返回的视频流。
其中,第二组件用于接收并存储来自用户的操作事件,并建立第一组件与本地代理应用之间的第一连接通路,以及第二组件与本地代理应用之间的第二连接通路。
其中,第一连接通路用于将本地代理应用接收到的云目标应用响应操作事件后的视频画面返回给第一组件,以在应用程序交互界面播放视频画面;第二连接通路用于将第二组件接收的操作事件发送给本地代理应用,并由本地代理应用发送给云目标应用。
其中,本地代理应用为运行在本地终端的与云目标应用对应的客户端。
本实施例中,第二组件可以连接在第一组件和本地代理应用之间,用于接收用户通过第一组件输入的操作事件,并将该操作事件通过第二连接通路发送给本地代理应用。其中,在第二组件将操作事件发送给本地代理应用的情况下,第二组件还可以将操作事件保存为用户操作日志。
其中,第一组件与本地代理应用之间具有第一连接通路,如上,由于具有第一组件的情况下,第一组件可以充当目标应用的播放器使用,则本地代理应用可以通过第一连接通路将云目标应用发送过来的视频流发送给第一组件,从而第一组件将视频流播放在应用程序交互界面。
S32,进入到步骤S201:在通过目标应用的云目标应用响应用户在本地终端所进行的操作事件时,在本地终端保存操作事件,并通知云目标应用对应的串流服务定时保存云目标应用的应用程序检查点文件。
其中,应用程序检查点文件用于表征云目标应用的运行状态。
S33,下载完成目标应用的安装包后,若接收到用户的运行态切换请求(从云目标应用切换到本地目标应用),则从云存储介质下载最近的应用程序检查点文件,并以应用程序检查点文件的本地路径为启动参数,在本地终端启动本地目标应用。
其中,若目标应用未预先安装在本地终端的情况下,通过云目标应用使用目标应用,则在目标应用下载完成时,例如,下载完成目标应用的安装包后,利用安装包在本地终端完成了目标应用的安装,则可以响应于目标应用的安装完成,从云存储介质下载最近的应用程序检查点文件,并以应用程序检查点文件的本地路径为启动参数,在本地终端启动目标应用。
接着,再基于应用程序检查点文件,在本地目标应用播放对应的操作事件,从而实现本地目标应用与云目标应用的状态同步。
S34,定时检查本地终端的电池参数以及可用存储空间参数,若当前电池剩余电量或可用存储空间低于第一目标阈值,则输出第一运行选择信息。
S35:响应于用户对第一运行选择信息所触发的本地目标应用运行态切换到云目标应用运行态的请求,上传最近的本地应用程序检查点文件到云存储介质中,并通知串流服务以应用程序检查点文件的云存储介质的URL路径为启动参数,在云端启动云目标应用,最后通知本地代理应用与云目标应用对应的串流服务建立连接通道。
S36:基于应用程序检查点文件,在云目标应用中播放本地终端所上传的操作事件,从而实现云目标应用与本地目标应用的同步。
其中,可以在本地代理应用中播放所保存的操作事件,本地代理应用通过与串流服务之间的连接通道将操作事件发送给串流服务进而最终发送给云目标应用,以使云目标应用与本地目标应用的运行状态同步。
S37:定时检测本地终端的网络数据吞吐参数,网络数据吞吐参数包括网络数据带宽和/或网络数据响应速度,若网络数据吞吐参数低于第二目标阈值,输出第二运行选择信息。
S38:响应于用户针对第二运行选择信息所触发的云目标应用运行态切换到本地目标应用运行态的请求,启动本地目标应用。
S39:从云端下载最近的应用程序检查点文件,基于应用程序检查点文件,在本地目标应用播放所存储的操作事件,继而实现本地目标应用与云目标应用的同步。
其中,由于在本地终端下载完成目标应用时,便可以从云存储介质下载最近应用程序检查点文件,可以直接响应于运行态切换请求,基于最近应用程序检查点文件,在本地目标应用中播放所保存的操作事件,以使本地目标应用与云目标应用的运行状态同步。
其中,在播放保存的操作事件时,可以以应用程序检查点文件的触发时间点为基础,对该触发时间点之后的各个操作事件进行播放。具体地,可以获取最近应用程序检查点文件的第一触发时间点;并在第二目标应用中播放对应的第二触发时间点大于或等于第一触发时间点的操作事件,第二触发时间点为操作事件的触发时间点。
其中,第一触发时间点为触发保存所获取的应用程序检查点文件的应用程序运行态时间点。
本实施例中,每个应用程序检查点文件具有各自的第一触发时间点,该触发时间点可以理解为在对第一目标应用的状态数据进行快照时应用程序运行态时间点,同理,各个操作事件也具有对应的第二触发时间点,该第二触发时间点可以理解为是将操作事件保存为操作日志时的时间点。
其中,由于应用程序检查点文件反映了目标应用在云目标应用上的运行状态,通过各个第一触发时间点,可以使得应用程序管理器知晓运行第一目标应用时的各个快照时间,从而基于各个快照时间确定将第一目标应用切换到第二目标应用的时间,从而将该时间段内的操作事件记录到本地终端的内存中,由于依据了触发时间点,则可以将本地终端存储的与第一目标应用的运行状态数据有关的操作事件播放,从而提高操作事件的播放准确性。
其中,可以在播放操作事件时,将第二触发时间点大于或等于第一触发时间点的操作事件播放。例如,第一触发时间点是14:30:29s:100ms,若操作事件的触发时间点为14:30:29s:1ms、14:30:29s:120ms、14:35:00s:230ms、14:36:12s:340ms、14:36:40s:370ms,则将14:30:29s:120ms、14:35:00s:230ms、14:36:12s:340ms、14:36:40s:370ms对应的操作事件进行播放。
由此示例也可知,操作事件的第二触发时间点是不均匀间隔的,本实施例中,可以预先校准本地终端的时间和云端的时间,使得本地终端的设备时间与云端的设备时间相同,以更加准确地进行操作事件的播放。
其中,由于本申请初始化了与目标应用对应的第一组件和第二组件,第二组件用于存储操作事件,由此,在第二目标应用中播放保存的操作事件时,可以将所获取的应用程序检查点文件的第一触发时间点发送给第二组件,以使第二组件在第二目标应用中,播放对应的第二触发时间点大于或等于第一触发时间点的操作事件。
具体地,若第二目标应用为本地目标应用,则第二组件在本地目标应用中,播放对应的第二触发时间点大于或等于第一触发时间点的操作事件;若第二目标应用为云目标应用,则第二组件在本地代理应用中,播放对应的第二触发时间点大于或等于第一触发时间点的操作事件。
其中,可以建立第二组件分别与本地目标应用和本地代理应用之间的连接通路,通过该连接通路,第二组件可以将待播放的操作事件(对应的第二触发时间点大于或等于第一触发时间点的操作事件)发送给本地目标应用(或本地代理应用),并在本地目标应用(或云目标应用的后台)进行播放,从而实现本地目标应用至云目标应用,或者,云目标应用至本地目标应用之间的运行状态同步。
其中,在检测到第二目标应用与第一目标应用的运行状态同步的情况下,可以释放第一目标应用。
具体地,在第一目标应用为云目标应用的情况下,可以释放云目标应用,即可以释放第一连接通路以及关闭本地代理应用,并建立第一组件与本地目标应用之间的连接通路;
在第一目标应用为本地目标应用的情况下,可以释放本地目标应用,即可以释放第三连接通路以及关闭本地目标应用,并建立第一组件与本地代理应用之间的第一连接通路。
其中,第一组件与本地目标应用之间的连接通路可以称为第三连接通路,该第三连接通路用于将本地目标应用的视频画面返回给第一组件,以在应用程序交互界面播放本地目标应用响应操作事件的视频画面。
本实施例中,在本地目标应用的运行状态与云目标应用的运行状态同步的情况下,可以关闭本地代理应用,即关闭本地代理应用的进程;由于本地代理应用与第一组件具有第一连接通路,该第一连接通路用于播放云目标应用发送给本地代理应用的视频流,由此,在云目标应用与本地目标应用的运行状态同步的情况下,便无需在云目标应用运行目标应用了,此种情况下,可以将第一连接通路释放掉。
或者,在云目标应用的运行状态与本地目标应用的运行状态同步的情况下,由于本地目标应用与第一组件具有第三连接通路,该第三连接通路用于传输本地目标应用产生的视频流到第一组件,由此,在云目标应用与本地目标应用的运行状态同步的情况下,便无需在本地目标应用运行目标应用了,此种情况下,可以将第三连接通路释放掉。继而,建立第一组件与本地代理应用之间的第一连接通路,在第一连接通路建立后,云目标应用响应用户输入的操作事件的画面可以返回给本地代理应用,由本地代理应用返回给第一组件,以在应用程序交互界面播放。
采用此种实施方式时,由于初始化了第一组件,第一组件与本地目标应用之间具有第三连接通路,与本地代理应用之间具有第一连接通路,在目标应用由云目标应用切换到本地目标应用使用时,或者,在由本地目标应用切换到云目标应用时,可以始终由第一组件提供目标应用的应用程序交互界面,这样不涉及应用程序交互界面的切换,从而用户在运行态切换过程中,感知不到界面的切换,进一步降低切换带来的割裂感。
当然,在一种实施例中,目标应用已经在本地终端运行的情况下,也可以不需要设置目标应用的虚拟化的交互界面,用户可以直接进入到目标应用,通过目标应用提供的交互界面进行使用,因此,也可以释放掉第一组件。
在一种可选的实施例中,对本申请的应用的运行处理方法的又一种可选实施方式进行说明,参照图4所示,示出了本申请的一种可选实施方式的整体流程示意图,如图4所示,具体可以包括以下步骤:
S41,在未安装目标应用时,从云存储介质下载目标应用的启动运行包和启动镜像包。
其中,在未安装目标应用时,可以响应用户对目标应用的安装请求,从云存储介质下载目标应用的启动运行包和启动镜像包,其中,启动运行包用于启动目标应用,启动镜像包中包括目标应用的运行数据。
此种情况下,可以提前制作目标应用的启动运行包和启动镜像包,并将启动运行包和启动镜像包存放到云存储介质中。
其中,启动运行包所含的数据量极少,其包含启动目标应用的最基本的文件,在本地终端下载目标应用的安装包时,可以下载启动运行包和启动镜像包;其中,由于启动运行包包含的数据量较少,因此可以快速下载,在下载完成后,用户可以选择通过启动运行包启动目标应用,从而实现了目标应用的快速启动。这样,用户可以尽快使用目标应用。
当然,在启动运行包下载完成时,一般启动镜像包还没有下载完成,因其具有较大的数据量,因此,在启动运行包下载完成到启动镜像包下载完成的时间内,目标应用虽然可以启动了,也一定程度上可以满足用户的快速使用,但是由于其运行数据并不完整,相关模块以及资源的加载强依赖于高速网络带宽条件的支持,因此会影响用户的使用,此种情况下,用户仍然可以通过云目标应用使用目标应用。
其中,在启动运行包下载完成时,可以初始化上述的第二组件,其中,对应的第一组件是本地终端本就初始化有的。
S42,在检测到启动运行包下载完成,而启动镜像包未下载完成时,输出运行选择信息,以确定是否进行线上使用,若是,则初始化本地代理应用,并构建第一组件、第二组件和本地代理应用之间的连接通路,以及本地代理应用与云目标应用之间的连接通路。
此种情况下,在下载启动镜像包的阶段,可以允许用户通过云目标应用使用目标应用。其中,运行选择信息例如可以是:是否进行线上使用。如上述实施例,可以建立第一组件与本地代理应用之间的第一连接通路,以及建立第二组件与本地代理应用之间的第二连接通路。
实际中,可以响应于用户针对运行选择信息所触发的云端运行请求,初始化本地代理应用,从而通过本地代理应用与云目标应用之间的通信连接,实现用户在本地终端通过云目标应用使用目标应用,具体过程参见上述实施例的描述即可,在此不再赘述。
S43,在启动运行包和启动镜像包均下载完成后,下载完成目标应用的安装包后,从云存储介质下载最近的应用程序检查点文件,并以应用程序检查点文件的本地路径为启动参数,在本地终端启动本地目标应用,并以该应用程序检查点文件的第一触发时间点为基准,在本地目标应用中播放对应的操作事件,以实现状态同步。
其中,在启动运行包和启动镜像包均下载完成后,则表示目标应用可以在本地终端运行,在示例1中,可以输出切换提示信息,例如,可以是“切换到本地应用程序运行,确认或取消?”,如果用户点击“确认”键,则表征用户希望在本地终端使用目标应用,此种情况下,则可以进入到步骤S202和步骤S203。
当然,在一些示例2中,启动运行包和启动镜像包均下载完成以及预先由用户设定好的配置信息,则可以直接执行步骤S202和步骤S203,即也可以不用询问用户,在确定本地目标应用的运行状态已经与云目标应用的运行状态同步时,再输出切换提示信息,例如,可以是“切换到本地应用程序运行,确认或取消?”,如果用户点击“确认”键,则直接切换到本地目标应用运行。
S44,在启动运行包和启动镜像包均下载完成后,初始化目标应用的多个缓存组件。
其中,无论是示例1还是示例2,都可以在启动运行包和启动镜像包均下载完成后,初始化目标应用的多个缓存组件,并以应用程序检查点文件的本地路径为启动参数,在本地终端启动多个缓存组件。接着,再从云存储介质下载应用程序检查点文件时,可以将应用程序检查点文件存储至多个缓存组件中的至少一个缓存组件对应的存储介质中。
本实施例中,多个缓存组件与目标应用对应,且不同的缓存组件对应不同的响应速度,即多个缓存组件的读取优先级不同,例如,有三个缓存组件,其可以分别对应各自的存储介质,如本地终端的内存、第一外存和第二外存,其中,第一外存可以是固态硬盘,第二外存可以是机械硬盘。在多个缓存组件的读取优先级不同的情况下,在目标应用发出读请求时,可以按照多个缓存组件优先级从高到低的顺序,依次从多个缓存组件对应的存储介质中读取读请求所需的数据。
这里需要说明的是,目标应用的启动镜像包可以存储在多个缓存组件中,其中,启动镜像包的全部数据存在读取优先级最低的缓存组件对应的存储介质中,而随着目标应用的读数据次数的增多,可以将目标应用每次所读取的数据存储到优先级较高的缓存组件对应的存储介质中,继而在目标应用下一次读取数据时,便可以从优先级较高的缓存组件对应的存储介质中读取数据,从而减少了数据读取的深度,提高目标应用的响应速度。
S45,将在云目标应用响应本地终端的操作事件,切换到在本地目标应用响应本地终端的操作事件。
在本地的目标应用的运行状态与云目标应用的运行状态已经同步时,可以再次输出切换提示信息,以询问用户是否切换到本地运行目标应用,若用户确认“是”,则可以将在云目标应用响应本地终端的操作事件,切换到在本地目标应用响应本地终端的操作事件,从而,切换到本地终端运行目标应用。
其中,由于具有第一组件、第二组件和本地代理应用,则可以在检测到本地目标应用与云目标应用的运行状态同步时,释放第一组件与本地代理应用之间的第一连接通路,以及第二组件与本地代理应用之间的第二连接通路。
接着,建立本地目标应用分别与第一组件、第二组件之间的通路,这样,第一组件可以播放本地目标应用的视频画面,第二组件可以将操作事件发送给本地目标应用。
需要说明的是,此实施方式中第二组件也可以不选择释放,而仍然保留,此种情况下,通过第二组件接收操作事件,并将操作事件发送给本地目标应用时,第二组件可以将操作事件保留在本地终端,由此方便后续在切换到云目标应用使用目标应用时,第二组件将保留的操作事件通过再次初始化的本地代理应用发送给云目标应用,以使云目标应用的运行状态与本地目标应用的运行状态同步。
接下来,可以按照上述图3所示的步骤S34-步骤S39的过程,在云目标应用和本地目标应用之间进行切换。
采用本申请实施例的技术方案,一方面,可以帮助用户在本地终端快速启动目标应用,减少用户等待目标应用下载的时长;另一方面,由于用户在快速启动目标应用的情况下,在等待启动镜像包下载的时间内,可以通过云目标应用使用目标应用,由此,可以优化用户使用目标应用的使用体验。
采用本实施例的技术方案,在实际使用过程中,用户在应用商店点击目标应用,即可在很短的时间内直接使用目标应用,应用程序管理器在后台下载目标应用的启动镜像包,用户体会不到启动镜像包的下载过程,同时,在用户点击目标应用后,便可以通过云目标应用使用目标应用,由于云目标应用响应用户操作事件的视频画面被发送至本地终端播放,这样,用户直观的使用体验是:点击目标应用后,便开始使用目标应用,感知不到目标应用相关数据的下载过程,并在使用的过程中在本地终端下载安装目标应用,安装完成后,通过应用程序管理器,又可以无缝切换到本地终端使用目标应用,用户在使用目标应用的全程,即从头到尾都感知不到任何切换变化(视频跳变、卡顿、视图切换等)导致的割裂感,从而带给用户更流畅的使用体验。
参照图5所示,示出了本申请的一种实施例中的应用的运行处理方法的通信架构图,如图5所示,在本地终端包括应用程序管理器、本地目标应用、本地代理应用、第一组件、第二组件、应用程序交互界面,在云端包括云目标应用、串流服务、应用数据服务和云存储介质(对象存储或者分布式文件系统);其中,串流服务与应用数据服务通信,串流服务用于定时将云目标应用的运行状态保存为应用程序检查点文件后发送给应用数据服务,应用数据服务将应用程序检查点文件放入到云存储介质。
其中,图5中本地终端还包括缓存栈管理器、多级缓存组件(即多个响应速度不同的缓存组件);缓存栈管理器是在目标应用下载完启动运行包和启动镜像包后初始化的,缓存栈管理器受到应用程序管理器的监控和管理。
其中,串流服务用于响应于应用程序管理器的通知,定时将云目标应用的运行状态保存为应用程序检查点文件,然后由应用数据服务放入到云存储介质,其中,云存储介质中还包括多个应用程序的应用数据,如包括各个应用程序的启动运行包和启动镜像包。相应地,应用数据服务可以与缓存栈管理器和应用程序管理器分别连接,具体而言,应用数据服务可以在目标应用在本地终端运行的情况下,将目标应用存放在云存储介质中的数据返回给缓存栈管理器,然后由缓存栈管理器将所返回的数据返回给目标应用,以及存放至缓存组件对应的存储介质中。
其中,串流服务连接在本地代理应用和云目标应用之间。
结合图5所示,对应用的运行处理方法进行示例性说明如下;
S1:应用程序管理器定时与应用数据服务同步云端存放的所有应用程序列表,并存放到内存中;应用程序列表中包括云存储介质存储的多个应用程序的标识。
S2:用户通过UI(第一组件)浏览应用程序管理器在内存中存放的应用程序列表(各种应用程序的相关信息,例如AppID唯一标识一个目标应用程序);
S3:用户通过UI选中目标应用,并点击“运行”,这时UI将发送“运行指定AppID对应的应用程序”的消息给应用程序管理器;
S4:当应用程序管理器收到消息后,应用程序管理器检查本地终端上目标应用是否已安装完成,如果未安装目标应用,反向通知UI一个选择确认消息“是否立即运行应用程序”(UI通过弹窗或者App通知的方式将该消息展现给用户),如果用户选择“是”,那么应用程序管理器通知在云端运行的串流服务启动目标应用对应的云目标应用。同时,应用程序管理器将通过应用数据服务开始下载目标应用对应的启动运行包和启动镜像包,并向UI定时发送当前下载进度;否则,应用程序管理器通知串流服务直接进入监听状态,等待用户再次发起“运行指定AppID对应的应用程序”的请求。。
另外,如果检测到本地终端上目标应用已安装完成,用户针对“是否立即运行应用程序”的确认消息选择“是”,那么应用程序管理器在本地终端启动缓存栈管理器以及本地目标应用的进程,并初始化第一组件,第二组件以及第一、第二组件与本地目标应用的连接通路,这时,用户就可以通过UI使用本地目标应用了。
S5:当收到“运行指定AppID对应的应用程序”的消息后,云端找到AppID对应的应用程序的云存储介质URL路径,检查应用程序配置,数据文件的有效性,并启动目标应用对应的云目标应用,云目标应用启动后,再启动对该云目标应用的虚拟显示设备的抓图编码功能,以对云目标应用响应本地终端的操作事件的画面进行截图,并编码为视频流。
S6:当用户通过UI通知应用程序管理器确定要“立即运行目标应用”后,应用程序管理器会在本地终端启动本地代理应用,并将启动参数设定为指定网络地址,以保证本地代理应用通过该网络地址可以与云目标应用对应的串流服务建立连接。
S7:当本地代理应用启动并完成与指定云目标应用建立连接后,用户通过UI的窗口就可以看到本地代理应用的输出内容以及通过本地的键盘、鼠标、手柄或可穿戴体感设备使用云目标应用了,具体是:通过本地代理应用与云目标应用间的连接通道将用户在本地终端进行的操作事件发送给云目标应用;
其中,在启动镜像包的下载时间里,用户通过UI、鼠标、键盘、手柄或可穿戴体感设备一直使用云目标应用,并且应用程序管理器通过串流服务通知云目标应用保存应用程序检查点文件,保存的应用程序检查点文件通过串流服务和应用数据服务存放到云存储介质中。
S8:当目标应用的启动镜像包下载完成后,应用程序管理器启动缓存栈管理器以及本地目标应用的进程,当缓存栈管理器以及本地目标应用初始化完成后,由用户通过UI与本地目标应用交互。
此过程中,串流服务在监听应用程序检查点文件的更新完成事件时,便通知应用程序管理器启动“检查点同步”的流程。
S9:当应用程序管理器收到“检查点同步”的消息后应用程序管理器将通过与应用数据服务的网络通道进一步下载应用程序检查点文件,当应用程序检查点文件被应用程序管理器下载完成后,再解析应用程序检查点文件的触发时间点,将解析出来的触发时间点作为“播放时间点”(即第一触发时间点)发送给第二组件;
S10:当第二组件收到应用程序管理器发送过来的播放时间点后,将该播放时间点在内存中保存起来;此时,应用程序管理器以该应用程序检查点文件的本地路径为启动参数启动缓存栈管理器以及本地目标应用;当缓存栈管理器以及本地目标应用被应用程序管理器启动完成(正常运行)后,应用程序管理器将通知第二组件在本地目标应用中播放对应的第二触发时间点大于播放时间点的操作事件。
其中,响应于针对目标应用的云目标应用运行态切换到本地目标应用运行态,或者,本地目标应用运行态切换到云目标应用运行态的请求,在播放操作事件时,播放频率需要保持与本地目标应用(或云目标应用)预先设定的演化快进倍速一致(1倍速、2倍速、4倍速等),即按照演化快进倍速比例换算后的时间间隔播放各个操作事件,这样才能以最快速度恢复本地目标应用(或云目标应用)中的运行状态,最终与云目标应用(或本地目标应用)的运行状态达成一致。
S11:当第二组件播放完相应的操作事件后,第二组件会通知应用程序管理器“状态已同步”的消息;当应用程序管理器收到“状态已同步”的通知消息后,应用程序管理器通过UI与用户进一步交互,确认是否进行云目标应用运行态到本地目标应用运行态的“无缝切换”的流程。
S12:若要切换到本地目标应用运行态,则应用程序管理器将UI的当前窗口的可见内容从本地代理应用的输出通道切换到本地目标应用的输出通道,否则,保持UI的当前窗口的可见内容与本地代理应用的输出通道的“连接关系”不变;
在此种情况下,本地目标应用通过缓存栈管理器与云端的应用数据服务交互,即本地目标应用将读请求发送给缓存栈管理器,缓存栈管理器从云端的应用数据服务下载读请求对应的数据,将该数据存储到多级缓存组件对应的存储介质中,并返回给本地目标应用使用,其过程详见图5中虚线箭头所指的路径。
S13:当UI的当前窗口的可见内容被切换到本地目标应用的输出通道后,本地代理应用的进程以及输出通道将被应用程序管理器关闭,然后通知串流服务使云目标应用“进入待命状态”;
S14:当串流服务收到“进入待命状态”的消息后,可以关闭云目标应用进程或者将云目标应用进程挂起(一种长期休眠的进程状态),并且串流服务进入监听端口的休眠状态;这样,目标应用就由云端运行的状态“无缝切换”到本地运行的状态;
S15:如果用户点击“取消”键,应用程序管理器将关闭本地目标应用以及缓存栈管理器的进程,那么,用户将通过本地代理应用与云目标应用进行交互,进而继续使用云目标应用(即保持原云目标应用运行态不变)。
另外,在目标应用由用户直接在本地终端启动并运行,并且本地目标应用被长时间使用的情况下,当本地终端的电池剩余电量或可用存储空间低于指定阈值时,由用户根据切换提示信息确认需要由本地目标应用运行态切换到云目标应用运行态,这时,需要由应用程序管理器保存本地目标应用的应用程序检查点文件,将本地应用程序检查点文件通过应用数据服务上传到云存储介质中,然后将已上传的应用程序检查点文件的URL路径为启动参数,在云端启动云目标应用的进程,最后通过步骤S5和步骤S6,完成云目标应用与本地代理应用以及第一,第二组件的初始化并建立相关连接通道。
其中,在目标应用由用户直接在本地终端启动并运行的情况下,当UI的当前窗口的可见内容被切换到本地代理应用的输出通道,并且本地目标应用以及缓存栈管理器的进程被应用程序管理器关闭后,这样,目标应用就由本地终端运行的状态又“无缝切换”到云端运行的状态;
另外,在目标应用由用户直接在本地终端启动并运行的情况下,如果用户点击“取消”键,应用程序管理器将关闭本地代理应用以及通知串流服务使云目标应用“进入待命状态”,用户将通过本地目标应用继续使用目标应用(即保持原本地目标应用运行态不变)。
基于相同的发明构思,本申请还提供一种应用的运行处理方法,参照图6所示,示出了该运行处理方法的步骤流程图,其可以由云端执行,方法包括以下步骤:
步骤S601:在通过目标应用的云目标应用响应用户在本地终端所进行的操作事件时,响应于接收到的保存指令,定时保存云目标应用的应用程序检查点文件。
其中,应用程序检查点文件用于表征云目标应用的运行状态。
步骤S602:在接收到针对目标应用的第一下载请求时,向目标应用所在的终端发送所保存的最近应用程序检查点文件,以使本地终端基于最近应用程序检查点文件,在本地目标应用中播放所保存的操作事件,以使本地目标应用与云目标应用的运行状态同步。
当然,在一种实施例中,云端还可以执行以下步骤:
步骤S603:在接收到针对目标应用的运行态切换请求时,可以接收本地终端上传的应用程序检查点文件。
步骤S604:基于应用程序检查点文件的云存储地址(URL地址),启动云目标应用,以及将云目标应用对应的串流服务的网络地址发送给本地代理应用,并使本地终端的本地代理应用与串流服务建立通信连接。
步骤S605:通过云目标应用响应本地代理应用发送的操作事件;并将响应操作事件的画面,编码为视频流返回给本地代理应用。其中,本地代理应用则可以将视频流返回给第一组件,以播放视频画面。
其中,如图5所示,云端可以包括云目标应用、串流服务和云存储介质;其中,应用程序检查点文件保存在云存储介质中,云存储介质中存储目标应用的启动运行包和启动镜像包。
相应地,在一些可选实施例中,在接收到应用程序管理模块发送的第二下载请求时,向应用程序管理模块返回目标应用的启动运行包和启动镜像包,启动运行包用于启动目标应用,启动镜像包中包括目标应用的运行数据。
本实施例中,云端可以通过云目标应用向用户提供目标应用的线上使用,从而帮助用户在本地终端未下载完全目标应用时,使用目标应用,或者帮助用户在本地终端的计算、存储资源或电池剩余电量不够的情况下使用目标应用。
基于相同的发明构思,参照图7所示,示出了一种应用的运行处理系统的框架示意图,如图7所示,包括以下模块:
本地代理模块701,用于将用户在本地终端进行的操作事件发送给云服务模块,以及接收云服务模块返回的视频流;视频流为对云目标应用响应操作事件的画面进行截图后编码得到的;
云服务模块702,位于云端,用于通过目标应用的云目标应用响应所接收到的操作事件,并对云目标应用响应操作事件的画面进行截图后编码为视频流,以及定时保存云目标应用的应用程序检查点文件;
第一组件703,位于本地终端,用于提供目标应用的应用程序交互界面,并在应用程序交互界面播放视频流;
下载模块704,位于本地终端,用于响应于针对目标应用触发的云目标应用运行态切换本地目标应用运行态的请求,从云服务模块702下载应用程序检查点文件;
上传模块706,位于本地终端,用于响应于针对目标应用触发的本地目标应用运行态切换云目标应用运行态的请求,将保存于本地终端的应用程序检查点文件上传到云服务模块702;
第二组件705,用于接收本地终端的操作事件并发送给本地代理模块,以使本地代理模块701将操作事件发送给云服务模块,或者,用于将操作事件发送给本地目标应用,以使本地目标应用响应操作事件;
其中,第二组件705还用于保存操作事件,以及在由云目标应用切换到本地目标应用的情况下,基于应用程序检查点文件,在本地终端运行的本地目标应用中播放操作事件,以使本地目标应用的运行状态与云目标应用的运行状态同步;
或者在由本地目标应用切换到云目标应用的情况下,在本地代理模块701中播放所保存的操作事件,以使云目标应用的运行状态与本地目标应用的运行状态同步。
其中,本地代理模块701可以理解为是上述实施例的本地代理应用,云服务模块702可以包括上述的云目标应用、串流服务和应用数据服务;下载模块704或上传模块706可以理解为是应用程序管理器中的一个模块。
基于相同的发明构思,参照图8所示,示出了一种应用的运行处理装置的框架示意图,如图8所示,包括以下模块:
保存模块801,用于在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在本地终端保存操作事件;
获取模块802,用于响应于针对目标应用触发的从第一目标应用的运行态切换到第二目标应用的运行态的请求,获取第一目标应用对应的应用程序检查点文件;其中,第一目标应用由本地终端运行,第二目标应用由云端运行,或者,第一目标应用由云端运行,第二目标应用由本地终端运行;
同步模块803,用于基于所获取的应用程序检查点文件,在第二目标应用中播放对应的操作事件,以使第二目标应用的运行状态与第一目标应用的运行状态同步。
可选地,获取模块802,包括:
第一获取单元,用于在第一目标应用为由云端运行的云目标应用,第二目标应用为由本地终端运行的本地目标应用的情况下,从云目标应用对应的云存储介质下载应用程序检查点文件;其中,应用程序检查点文件是云目标应用所对应的串流服务定时保存云目标应用的运行状态数据得到的;
第二获取单元,用于在第一目标应用为本地目标应用,第二目标应用为云目标应用的情况下,从本地终端获取应用程序检查点文件,并上传到云目标应用对应的云存储介质中;其中,应用程序检查点文件是本地目标应用所对应的应用程序管理器定时保存本地目标应用的运行状态数据得到的。
可选地,装置还包括:
参数获取模块,用于定时获取本地终端的当前性能参数,当前性能参数包括本地终端的电池参数、可用存储空间参数、网络数据吞吐参数中的至少一种;
第一切换模块,用于在当前性能参数满足第一切换条件的情况下,通过云端运行的云目标应用响应用户在本地终端所进行的操作事件;
第二切换模块,用于在当前性能参数满足第二切换条件的情况下,触发将目标应用的运行态由云端运行的运行态切换到本地终端运行的运行态的请求。
可选地,获取模块802,具体用于响应于请求,从第一目标应用对应的多个已保存的应用程序检查点文件中,获取距离当前时刻最近的应用程序检查点文件。
可选地,同步模块803,包括:
时间点确定单元,用于确定所获取的应用程序检查点文件的第一触发时间点,第一触发时间点为触发保存应用程序检查点文件的应用程序运行态时间点;
第一播放单元,用于在第二目标应用为由本地终端运行的本地目标应用的情况下,在本地目标应用中播放对应的第二触发时间点大于或等于第一触发时间点的操作事件;
第二播放单元,用于在第二目标应用为云目标应用的情况下,在本地代理应用中,播放对应的第二触发时间点大于或等于第一触发时间点的操作事件,本地代理应用为运行在本地终端的应用,本地代理应用与云目标应用通信;
其中,第二触发时间点为操作事件的发生时间点。
可选地,在第一播放单元或第二播放单元,具体用于将第一触发时间点发送给第二组件,以使第二组件在本地目标应用或本地代理应用中,播放对应的第二触发时间点大于或等于第一触发时间点的操作事件;
其中,第二组件为在本地终端初始化的与目标应用对应的组件,第二组件用于接收并存储操作事件。
可选地,装置还包括:
释放模块,用于在检测到第二目标应用的运行状态与第一目标应用的运行状态同步的情况下,释放第一目标应用对应的进程;其中,在第二目标应用由本地终端运行的情况下,释放云目标应用对应的本地代理应用,本地代理应用用于将操作事件发送给云目标应用;
画面发送模块,用于将第二目标应用的视频画面返回给第一组件,以通过第一组件提供的应用程序交互界面播放第二目标应用响应操作事件的视频画面;
其中,第一组件为本地终端配置的组件。
可选地,装置还包括:
下载模块,用于响应于针对目标应用的安装请求,从云存储介质下载目标应用的启动运行包和启动镜像包;启动运行包用于启动目标应用,启动镜像包中包括目标应用的运行数据;
运行选择信息输出模块,用于在检测到启动运行包下载完成,而启动镜像包未下载完成时,输出运行选择信息;
第一初始化模块,用于响应于用户针对运行选择信息所触发的云端运行请求,初始化目标应用对应的本地代理应用;其中,本地代理应用用于将操作事件发送给云目标应用;运行态切换请求是在启动运行包和启动镜像包下载完成的情况下发送的。
可选地,装置还包括:
第一检测模块,用于定时检测本地终端的电池参数以及可用存储空间参数,若当前电池剩余电量或可用存储空间低于第一目标阈值,则输出第一运行选择信息;
第二初始化模块,用于响应于用户针对第一运行选择信息所触发的本地目标应用运行态切换到云目标应用运行态的请求,初始化目标应用对应的本地代理应用。
可选地,装置还包括:
第二检测模块,用于定时检测本地终端的网络数据吞吐参数,网络数据吞吐参数包括网络数据带宽和/或网络数据响应速度,若网络数据吞吐参数低于第二目标阈值,输出第二运行选择信息;
第三初始化模块,用于响应于用户针对第二运行选择信息所触发的云目标应用运行态切换到本地目标应用运行态的请求,初始化目标应用对应的本地目标应用。
可选地,装置还包括:
启动模块,用于以目标应用检查点文件的存储路径为启动参数,启动第二目标应用;
其中,在第二目标应用由本地终端运行的情况下,启动参数为目标应用检查点文件的本地存储路径;在第二目标应用由云端运行的情况下,启动参数为目标应用检查点文件的云存储介质的URL路径;
装置还包括:
通道建立模块,用于在第二目标应用为由云端运行的云目标应用的情况下,在云端通过串流服务启动云目标应用后,建立本地代理应用与云目标应用之间的连接通道。
需要说明的是,装置实施例与方法实施例相近,故描述的较为简单,相关之处参见方法实施例即可。
本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现如所述的应用的运行处理方法。
本申请实施例还公开了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本申请所述的应用的运行处理方法。
本申请实施例还公开了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现所述的应用的运行处理方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作事件步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作事件与另一个实体或操作事件区分开来,而不一定要求或者暗示这些实体或操作事件之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种应用的运行处理方法、装置、电子设备及介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (14)
1.一种应用的运行处理方法,其特征在于,所述方法包括:
在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在所述本地终端保存所述操作事件;
响应于针对所述目标应用触发的从第一目标应用的运行态切换到第二目标应用的运行态的请求,获取所述第一目标应用对应的应用程序检查点文件;其中,所述第一目标应用由所述本地终端运行,所述第二目标应用由云端运行,或者,所述第一目标应用由所述云端运行,所述第二目标应用由所述本地终端运行;
基于所获取的所述应用程序检查点文件,在所述第二目标应用中播放对应的操作事件,以使所述第二目标应用的运行状态与所述第一目标应用的运行状态同步。
2.根据权利要求1所述的方法,其特征在于,获取所述第一目标应用对应的应用程序检查点文件,包括:
在所述第一目标应用为由云端运行的云目标应用,所述第二目标应用为由所述本地终端运行的本地目标应用的情况下,从所述云目标应用对应的云存储介质下载应用程序检查点文件;其中,所述应用程序检查点文件是所述云目标应用所对应的串流服务定时保存所述云目标应用的运行状态数据得到的;
在所述第一目标应用为所述本地目标应用,所述第二目标应用为所述云目标应用的情况下,从所述本地终端获取所述应用程序检查点文件,并上传到所述云目标应用对应的云存储介质中;其中,所述应用程序检查点文件是所述本地目标应用所对应的应用程序管理器定时保存所述本地目标应用的运行状态数据得到的。
3.根据权利要求1所述的方法,其特征在于,在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在所述本地终端保存所述操作事件之前,所述方法还包括:
定时获取所述本地终端的当前性能参数,所述当前性能参数包括所述本地终端的电池参数、可用存储空间参数、网络数据吞吐参数中的至少一种;
在所述当前性能参数满足第一切换条件的情况下,通过所述云端运行的云目标应用响应用户在本地终端所进行的操作事件;
在所述当前性能参数满足第二切换条件的情况下,触发将所述目标应用的运行态由所述云端运行的运行态切换到所述本地终端运行的运行态的请求。
4.根据权利要求1-3任一所述的方法,其特征在于,响应于针对所述目标应用触发的从第一目标应用的运行态切换到第二目标应用的运行态的请求,获取所述第一目标应用对应的应用程序检查点文件,包括:
响应于所述请求,从所述第一目标应用对应的多个已保存的应用程序检查点文件中,获取距离当前时刻最近的应用程序检查点文件。
5.根据权利要求1-3任一所述的方法,其特征在于,所述基于所下载的所述应用程序检查点文件,在所述第二目标应用中播放对应的操作事件,包括:
确定所获取的应用程序检查点文件的第一触发时间点,所述第一触发时间点为触发保存所述应用程序检查点文件的应用程序运行态时间点;
在所述第二目标应用为由所述本地终端运行的本地目标应用的情况下,在所述本地目标应用中播放对应的第二触发时间点大于或等于所述第一触发时间点的所述操作事件;
在所述第二目标应用为所述云目标应用的情况下,在本地代理应用中,播放对应的第二触发时间点大于或等于所述第一触发时间点的所述操作事件,所述本地代理应用为运行在所述本地终端的应用,所述本地代理应用与所述云目标应用通信;
其中,所述第二触发时间点为所述操作事件的发生时间点。
6.根据权利要求5所述的运行处理方法,其特征在于,在所述本地目标应用中播放对应的第二触发时间点大于或等于所述第一触发时间点的所述操作事件,或,在所述第二目标应用为云目标应用的情况下,在本地代理应用中,播放对应的第二触发时间点大于或等于所述第一触发时间点的所述操作事件,包括:
将所述第一触发时间点发送给第二组件,以使所述第二组件在所述本地目标应用或所述本地代理应用中,播放对应的第二触发时间点大于或等于所述第一触发时间点的所述操作事件;
其中,所述第二组件为在所述本地终端初始化的与所述目标应用对应的组件,所述第二组件用于接收并存储所述操作事件。
7.根据权利要求1所述的运行处理方法,其特征在于,基于所下载的所述应用程序检查点文件,在所述第二目标应用中播放对应的操作事件之后,所述方法还包括:
在检测到所述第二目标应用的运行状态与所述第一目标应用的运行状态同步的情况下,释放所述第一目标应用对应的进程;其中,在所述第二目标应用由所述本地终端运行的情况下,释放所述云目标应用对应的本地代理应用,所述本地代理应用用于将所述操作事件发送给所述云目标应用;
将所述第二目标应用的视频画面返回给第一组件,以通过所述第一组件提供的应用程序交互界面播放所述第二目标应用响应操作事件的视频画面;
其中,所述第一组件为所述本地终端配置的组件。
8.根据权利要求1所述的运行处理方法,其特征在于,在所述第一目标应用为由云端运行的云目标应用,所述第二目标应用为由所述本地终端运行的本地目标应用的情况下,在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在所述本地终端保存所述操作事件之前,所述方法还包括:
响应于针对所述目标应用的安装请求,从所述云存储介质下载所述目标应用的启动运行包和启动镜像包;所述启动运行包用于启动所述目标应用,所述启动镜像包中包括所述目标应用的运行数据;
在检测到所述启动运行包下载完成,而所述启动镜像包未下载完成时,输出运行选择信息;
响应于用户针对所述运行选择信息所触发的云端运行请求,初始化所述目标应用对应的本地代理应用;其中,所述本地代理应用用于将所述操作事件发送给所述云目标应用;所述运行态切换请求是在所述启动运行包和所述启动镜像包下载完成的情况下发送的。
9.根据权利要求1所述的运行处理方法,其特征在于,在所述第一目标应用为所述本地目标应用的情况下,在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在所述本地终端保存所述操作事件之前,所述方法还包括:
定时检测本地终端的电池参数以及可用存储空间参数,若当前电池剩余电量或可用存储空间低于第一目标阈值,则输出第一运行选择信息;
响应于用户针对所述第一运行选择信息所触发的本地目标应用运行态切换到云目标应用运行态的请求,初始化所述目标应用对应的本地代理应用。
10.根据权利要求1所述的运行处理方法,其特征在于,在所述第一目标应用为由云端运行的云目标应用的情况下,在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在所述本地终端保存所述操作事件之前,所述方法还包括:
定时检测所述本地终端的网络数据吞吐参数,所述网络数据吞吐参数包括网络数据带宽和/或网络数据响应速度,若所述网络数据吞吐参数低于第二目标阈值,输出第二运行选择信息;
响应于用户针对所述第二运行选择信息所触发的云目标应用运行态切换到本地目标应用运行态的请求,初始化所述目标应用对应的本地目标应用。
11.根据权利要求1-7任一所述的运行处理方法,其特征在于,基于所获取的所述应用程序检查点文件,在所述第二目标应用中播放对应的操作事件之前,所述方法还包括:
以所述目标应用检查点文件的存储路径为启动参数,启动所述第二目标应用;
其中,在所述第二目标应用由所述本地终端运行的情况下,所述启动参数为所述目标应用检查点文件的本地存储路径;在所述第二目标应用由所述云端运行的情况下,所述启动参数为所述目标应用检查点文件的云存储介质的URL路径;
所述方法还包括:
在所述第二目标应用为由所述云端运行的云目标应用的情况下,在所述云端通过串流服务启动所述云目标应用后,建立本地代理应用与所述云目标应用之间的连接通道。
12.一种应用的运行处理装置,其特征在于,所述装置包括;
保存模块,用于在通过目标应用的第一目标应用响应用户在本地终端所进行的操作事件时,在所述本地终端保存所述操作事件;
获取模块,用于响应于针对所述目标应用触发的从第一目标应用的运行态切换到第二目标应用的运行态的请求,获取所述第一目标应用对应的应用程序检查点文件;其中,所述第一目标应用由所述本地终端运行,所述第二目标应用由云端运行,或者,所述第一目标应用由所述云端运行,所述第二目标应用由所述本地终端运行;
同步模块,用于基于所获取的所述应用程序检查点文件,在所述第二目标应用中播放对应的操作事件,以使所述第二目标应用的运行状态与所述第一目标应用的运行状态同步。
13.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现如权利要求1-11任一所述的信息处理方法。
14.一种计算机可读存储介质,其特征在于,其存储的计算机程序使得处理器执行如权利要求1-11任一所述的信息处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211131363.XA CN115543562A (zh) | 2022-09-16 | 2022-09-16 | 应用的运行处理方法、装置、电子设备及介质 |
PCT/CN2022/130598 WO2024055402A1 (zh) | 2022-09-16 | 2022-11-08 | 应用的运行处理方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211131363.XA CN115543562A (zh) | 2022-09-16 | 2022-09-16 | 应用的运行处理方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115543562A true CN115543562A (zh) | 2022-12-30 |
Family
ID=84728516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211131363.XA Pending CN115543562A (zh) | 2022-09-16 | 2022-09-16 | 应用的运行处理方法、装置、电子设备及介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115543562A (zh) |
WO (1) | WO2024055402A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10901810B2 (en) * | 2014-05-14 | 2021-01-26 | Intel Corporation | Event-based record and replay for advanced applications |
CN109939435A (zh) * | 2019-03-18 | 2019-06-28 | 北京智明星通科技股份有限公司 | 基于html5的信息交互方法及装置 |
CN110947178A (zh) * | 2019-11-20 | 2020-04-03 | 咪咕互动娱乐有限公司 | 游戏切换方法、电子设备及存储介质 |
CN111744203A (zh) * | 2020-06-23 | 2020-10-09 | 完美世界(北京)软件科技发展有限公司 | 云游戏的登录方法及装置、存储介质、电子装置 |
US20220040573A1 (en) * | 2020-08-10 | 2022-02-10 | Nvidia Corporation | Transferring from a cloud-hosted instance of an application to a local instance |
-
2022
- 2022-09-16 CN CN202211131363.XA patent/CN115543562A/zh active Pending
- 2022-11-08 WO PCT/CN2022/130598 patent/WO2024055402A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024055402A1 (zh) | 2024-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170048305A1 (en) | Method, apparatus and computer-readable medium for displaying multimedia information in an application client | |
CN111214828A (zh) | 游戏运行方法、装置、设备、介质及云端游戏平台 | |
CN110162343B (zh) | 应用启动方法及装置、电子设备及存储介质 | |
CN107483812B (zh) | 一种多平台并行直播的方法及装置 | |
CN106998494B (zh) | 一种视频录制方法及相关装置 | |
CN112203111B (zh) | 多媒体资源的预加载方法、装置、电子设备及存储介质 | |
CN109803151B (zh) | 多媒体数据流切换方法、装置、存储介质及电子装置 | |
CN111757305B (zh) | 业务执行终端的切换方法、装置、系统及存储介质 | |
CN111917768B (zh) | 虚拟场景的处理方法、装置及计算机可读存储介质 | |
CN112328492B (zh) | 一种主播间的互动控制方法、装置和电子设备 | |
CN115562744B (zh) | 一种应用程序加载方法及电子设备 | |
CN111880845A (zh) | 控制目标应用的方法、系统及装置 | |
CN111901695A (zh) | 视频内容截取方法、装置和设备及计算机存储介质 | |
CN115543562A (zh) | 应用的运行处理方法、装置、电子设备及介质 | |
CN114979747B (zh) | 一种直播方法、装置、设备、介质及程序产品 | |
CN115364477A (zh) | 云游戏控制方法、装置、电子设备及存储介质 | |
CN111467797B (zh) | 游戏数据处理方法、装置、计算机存储介质与电子设备 | |
CN115469951A (zh) | 一种游戏展示方法、装置、终端及存储介质 | |
CN114339419A (zh) | 一种视频流拉流处理的方法、装置及存储介质 | |
CN112423099A (zh) | 视频加载方法、装置和电子设备 | |
CN112770124A (zh) | 进入直播间的方法及装置、存储介质和电子设备 | |
CN112637668A (zh) | 一种视频播放方法、装置、设备及介质 | |
CN113457130B (zh) | 游戏内容回放方法和装置、可读存储介质、电子设备 | |
CN115278328B (zh) | 视频跨屏传输系统及方法 | |
CN116414419A (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 |