本发明涉及互联网领域,具体而言,涉及一种应用程序的处理方法和装置。
背景技术:
目前用户在电子服务平台下载应用时,电子服务平台展示供用户下载的应用程序时,可以通过应用截图、视频或者从第三方应用抓取内容的方式进行应用功能的预览,图1至图3分别示出了截图、视频播放以及内容抓取的预览方式。
如图1所示的预览方式中,通过支付状态图、订单状态图展示该应用的支付和订单功能,采用这种方式,向用户展示的信息有限,同时应用开发者可能会为了达到提高下载的目的,提供虚假的预览图片及说明;如图2所示,在展示应用程序的功能时,提供一段短视频,用户可以通过播放该短视频了解待展示应用的功能。对用户来说,通过截图和视频播放的预览方式,用户都只能对应用的功能有一个基本的认知,要想真正的体验应用的功能仍然需要下载安装,这样就会给用户带来额外的流量消耗。并且,视频方式的制作成本较高,该种方式不具有普遍性,往往只在部分精品游戏中采用该方式。
如图3所示的界面图整张图片都为从第三方应用抓取的图片,在预览程序应用时,从第三方应用截取图片,存在法务问题;若第三方应用主动接入功能内容,则内容更新不及时;并且这种方式有局限性,只适合内容和服务的预览,对于游戏、工具以及社交等应用并不适用。
针对上在对用户进行应用程序预览时,无法提供有效真实的信息导致 的问题,目前尚未提出有效的解决方案。
技术实现要素:
本发明实施例提供了一种应用程序的处理方法和装置,以至少解决在对用户进行应用程序预览时,无法提供有效真实的信息导致的问题。
根据本发明实施例的一个方面,提供了一种应用程序的处理方法,该方法包括:终端向服务器发送远程操作请求,其中,远程操作请求用于请求对应用平台上待下载的目标应用程序执行远程操作,目标应用程序尚未安装在终端上;终端接收服务器返回的目标应用程序的程序信息,其中,目标应用程序响应于远程操作请求运行在服务器上,目标应用程序安装在服务器上;终端基于程序信息向服务器发送远程操作指令,其中,远程操作指令用于指示对在服务器上运行的目标应用程序进行操作;终端接收服务器返回的远程操作结果,其中,远程操作结果为对运行的目标应用程序进行操作所得到的结果。
根据本发明实施例的一个方面,提供了一种应用程序的处理方法,该方法包括:服务器接收终端发送的远程操作请求,其中,远程操作请求用于请求对应用平台上待下载的目标应用程序执行远程操作,目标应用程序尚未安装在终端上;服务器在响应于远程操作请求运行目标应用程序之后,向终端返回目标应用程序的程序信息,其中,目标应用程序安装在服务器上;服务器接收终端基于程序信息发送的远程操作指令,其中,远程操作指令用于指示对在服务器上运行的目标应用程序进行操作;服务器对运行的目标应用程序执行操作,得到远程操作结果,将远程操作结果返回至终端。
根据本发明实施例的一个方面,提供了一种应用程序的处理装置,该装置包括:第一发送单元,用于向服务器发送远程操作请求,其中,远程操作请求用于请求对应用平台上待下载的目标应用程序执行远程操作,目标应用程序尚未安装在终端上;第一接收单元,用于接收服务器返回的目 标应用程序的程序信息,其中,目标应用程序响应于远程操作请求运行在服务器上,目标应用程序安装在服务器上;第二发送单元,用于基于程序信息向服务器发送远程操作指令,其中,远程操作指令用于指示对在服务器上运行的目标应用程序进行操作;第二接收单元,用于接收服务器返回的远程操作结果,其中,远程操作结果为对运行的目标应用程序进行操作所得到的结果。
根据本发明实施例的一个方面,提供了一种应用程序的处理装置,该装置包括:第一接收单元,用于接收终端发送的远程操作请求,其中,远程操作请求用于请求对应用平台上待下载的目标应用程序执行远程操作,目标应用程序尚未安装在终端上;返回单元,用于在响应于远程操作请求安装并运行目标应用程序之后,向终端返回目标应用程序的程序信息,其中,目标应用程序安装在服务器上;第一发送单元,用于接收终端基于程序信息发送的远程操作指令,其中,远程操作指令用于指示对在服务器上运行的目标应用程序进行操作;处理单元,用于对运行的目标应用程序执行操作,得到远程操作结果,将远程操作结果返回至终端。
在本发明实施例中,在目标应用程序尚未安装在终端的情况下,终端向服务器请求远程操作目标应用程序。具体地,服务器安装并运行该目标应用程序,终端向服务器发送远程操作指令,并接收服务器返回的远程操作结果,以实现对目标应用程序的远程操作(也即,试玩该目标应用程序),在终端获取远程操作结果之后,终端的使用者可以基于该远程操作结果确定是否从服务器下载该目标应用程序。通过上述实施例,用户可以在下载之前,远程操作应用程序,从而可以准确获知该应用程序多种信息,并且用户可以根据试玩的真实体验,决定是否需要该应用并且下载,该种方式不仅可以节省用户和服务器的流量,而且有助于用户得到其真正想要的东西,提高有效分发。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一 部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据现有技术的一种预览应用程序的界面示意图;
图2是根据现有技术的另一种预览应用程序的界面示意图;
图3是根据现有技术的再一种预览应用程序的界面示意图;
图4是根据本发明实施例的终端的网络环境图;
图5是根据本发明实施例的一种可选的应用程序的处理方法的流程图;
图6是根据本发明实施例的一种可选的应用程序的处理方法的流程图;
图7是根据本发明实施例的另一种可选的应用程序的处理方法的流程图;
图8是根据本发明实施例的一种可选的操作位置映射的示意图;
图9是根据本发明实施例的再一种应用程序的处理方法的时序图;
图10是根据本发明实施例的一种应用程序的处理方法的原理框图;
图11是根据本发明实施例的一种应用程序的处理装置的示意图;以及
图12是根据本发明实施例的终端或服务器的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种应用程序的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
可选地,在本实施例中,上述应用程序的处理方法可以应用于如图4所示的终端30和服务器10所构成的硬件环境中,服务器与终端通过网络建立连接。其中,终端和服务器上均可以设置用于执行操作的处理器。
如图4所示,服务器通过无线网络(如,通过wifi模块建立连接)或有线网络与终端进行连接,上述网络包括但不限于:广域网、城域网或局域网。该实施例中的终端可以为个人电脑或移动终端,如智能手机、平板电脑、pda或其他手持设备。
在上述运行环境中,图5示出的一种应用程序的处理方法可以通过如下步骤实现:
步骤s502:终端向服务器发送远程操作请求,其中,远程操作请求用于请求对应用平台上待下载的目标应用程序执行远程操作,目标应用程序尚未安装在终端上。
其中,该应用平台用于展示目标应用程序的信息,或者,用于下载该 目标应用程序。
可选地,该应用平台可以为应用商店。
步骤s504:终端接收服务器返回的目标应用程序的程序信息,其中,目标应用程序响应于远程操作请求运行在服务器上,目标应用程序安装在服务器上。
步骤s506:终端基于程序信息向服务器发送远程操作指令,其中,远程操作指令用于指示对在服务器上运行的目标应用程序进行操作。
步骤s508:终端接收服务器返回的远程操作结果,其中,远程操作结果为对运行的目标应用程序进行操作所得到的结果。
采用本发明实施例,在目标应用程序尚未安装在终端的情况下,终端向服务器请求远程操作目标应用程序。具体地,服务器安装并运行该目标应用程序,终端向服务器发送远程操作指令,并接收服务器返回的远程操作结果,以实现对目标应用程序的远程操作(也即,试玩该目标应用程序),在终端获取远程操作结果之后,终端的使用者可以基于该远程操作结果确定是否从服务器下载该目标应用程序。通过上述实施例,用户可以在下载之前,远程操作应用程序,从而可以准确获知该应用程序多种信息,并且用户可以根据试玩的真实体验,决定是否需要该应用并且下载,该种方式不仅可以节省用户和服务器的流量,而且有助于用户得到其真正想要的东西,提高有效分发。
上述实施例中的终端可以为需要下载目标应用程序的移动终端,终端在下载目标应用程序之前,通过操作安装在终端上的应用商店客户端生成远程操作请求,如操作用于显示应用商店客户端的界面上的试玩按钮,生成该远程操作请求,该远程操作请求用于请求在服务器上对目标应用程序进行远程操作。
可选地,远程操作请求中可以包括目标应用程序的包名、版本号和应用id中的至少之一,还可以包括终端的屏幕尺寸、终端的屏幕分辨率以 及终端型号中的至少之一。
其中的目标应用程序的包名、版本号和应用id中的至少之一用于服务器安装并运行目标应用程序。具体地,上述的服务器可以为提供目标应用程序下载的服务器,如应用商店服务器,该服务器在接收到远程操作请求之后,服务器可以基于该目标应用程序的标识信息(如包名、版本号和应用id中的至少之一),检测服务器的模拟器或真机中是否已经安装该目标应用程序,若服务器中已经安装该目标应用程序,则启动运行该目标应用程序;若服务器中没有安装该目标应用程序,则安装并运行该目标应用程序,以将目标应用程序运行在服务器的模拟器和真机中。
在服务器安装并运行目标应用程序之后,向终端返回目标应用程序的程序信息,终端基于该程序信息发送远程操作指令至服务器,并接收服务器执行该远程操作指令返回的远程操作结果。
上述实施例中的目标应用程序可以为游戏类、休闲类、财务类、社交类、影像类、旅游类、购物类以及教育类等各种类别,本申请并不对该目标应用程序的类别做限定,各种类别的应用程序均适用于本申请的远程操作方案,也即,上述实施例,可以应用于任何应用程序,对应用程序没有限制,而不像现有技术中的视频和内容抓取的预览方法一样,具有局限性。
用户通过终端上安装的应用下载客户端选中目标应用程序,并进入目标应用程序的预览界面,该预览界面上记录有远程操作按钮(如试玩按钮),该远程操作按钮被按下生成远程操作请求,并在终端的屏幕上提示是否发送远程操作请求至服务器,若接收到发送远程操作请求至服务器的操作请求的情况下,将该远程操作请求发送至服务器。服务器在接收到该远程操作请求之后,进行初始化(即,安装并运行目标应用程序),在完成初始化之后,将目标应用程序的程序信息返回至终端,该程序信息可以引导用户生成远程操作指令,在用户生成远程操作指令之后,将其发送至服务器,在服务器执行该远程操作指令生成远程操作结果之后,将该远程操作结果显示在终端的屏幕上,用户可以基于该远程操作结果选择是否从 服务器下载该目标应用程序。
下面以微信应用为目标应用程序为例,详述本发明实施例:
用户在进入终端上安装的应用商店客户端之后,选中微信应用,进入微信应用的预览界面,该预览界面上记录有试玩按钮,点击该试玩按钮,可以生成远程操作请求(如,试玩请求),并将该远程操作请求发送至应用商店客户端对应的服务器上,服务器接收到该请求之后,若该微信应用没有安装在服务器的仿真机上,则从存储器中调用微信应用的程序安装包,将该程序安装包安装在服务器的仿真机上,并在服务器的仿真机上运行该微信应用,然后将该微信应用的程序信息返回至终端,以通知终端可以开始远程操作。
终端在接收到该程序信息之后,通过该程序信息引导该用户生成远程操作指令,用户在程序信息的引导下生成远程操作指令之后,将该远程操作指令发送至服务器,以指示服务器在对应的位置执行相同的操作,并生成远程操作结果,用户可以基于该操作结果选择是否下载该微信应用。
通过上述实施例,使用户可以通过网络对后台真机或模拟器运行的应用进行远程试用。这样用户就可以根据试玩后的真实体验,决定是否需要该应用并且下载。该方式不仅可以节省用户和应用商店的流量,而且有助于用户得到其真正想要的东西,提高有效分发。
上述实施例中的步骤s506,终端基于程序信息向服务器发送远程操作指令包括:将程序信息显示在终端的屏幕上;检测到在终端的屏幕的第一操作位置上执行的操作;生成远程操作指令,其中,远程操作指令指示了第一操作位置和操作;将远程操作指令发送给服务器。
在服务器向终端返回目标应用程序的程序信息之后,终端将接收到的程序信息显示在终端的屏幕上,这些程序信息可以引导用户输入操作指令,用户可以在程序信息的引导下在终端的屏幕的第一操作位置进行操作,终端在检测到该操作之后,生成用于指示第一操作位置和该操作的远 程操作指令,并将该远程操作指令发送至服务器,以指示服务器在与第一操作位置对应的第二操作位置上执行该操作。
其中,上述的操作包括:向上滑动、向下滑动、点击、按下、抬起等。
需要说明的是,上述的程序信息可以包括目标应用程序的初始状态信息和计时时间,终端将程序信息显示在终端的屏幕上可以包括:将初始状态信息显示在终端的屏幕上;将计时时间以悬浮的方式显示在终端的屏幕上,或者,将计时时间以内嵌的方式显示在初始状态信息中。
具体地,在服务器接收到远程操作请求之后,响应于该远程操作请求,在服务器上运行安装的目标应用程序,在启动运行该目标应用程序之后,服务器可以记录远程操作时间,与此同时,将目标应用程序的初始状态信息和计时时长记录在程序信息中,将该程序信息发送至终端,在终端接收所服务器返回的目标应用程序的程序信息之后,终端将该初始状态信息显示在终端的屏幕上,该计时时长以悬浮框的方式显示在终端的屏幕的一个边角上;或者,将该计时时长内嵌在初始状态信息中,显示在该终端的屏幕上。
上述的计时时长可以为预先设置的远程操作的最长时间,该计时时长可以为倒计时的方式显示,如,计时时长为5分钟,随着时间的流逝,该计时时长的位置显示的时间越来越短。
需要说明的是,初始状态信息可以为目标应用程序的主界面的信息,或者,其中某个功能的界面信息,该初始状态信息中可以记录有操作按钮,以及提示信息,这些操作按钮和提示信息用于引导用户执行操作,以使用目标应用程序的功能。
例如,该初始状态信息为目标应用程序的主界面的信息,该主界面的信息中记录有“发现”按钮,用户可以点击该按钮进入发现页面,以使用该目标应用程序的发现功能。
在上述实施例中,终端可以向服务器发送多个远程操作指令,由于服 务器在返回初始状态信息的同时,返回了计时时长,终端在计时时长达到时,无法再向服务器发送远程操作指令,也即,试玩结束。
可选地,每接收到一个远程操作指令,服务器执行该远程操作指令,生成远程操作结果,终端都可以在终端上显示该远程操作结果,直至试玩结束。
在终端向服务器发送多个远程操作指令的同时,服务器也在记录远程操作时间,如从服务器开始运行目标应用程序时,开始计时;或者服务器在接收到第一个远程操作指令时,开始计时。若服务器记录的远程操作时间超过预设操作时长,则服务器不再响应该终端发送的远程操作指令,或者,服务器自动停止运行目标应用程序,以停止响应该终端的远程操作指令。
具体地,在终端接收服务器返回的远程操作结果之后,终端接收到服务器发送的操作结束信息,其中,操作结束信息用于指示服务器不再响应所述终端发送的远程操作指令。
下面结合图6详述本发明实施例,如图6所示,本发明实施例可以通过如下步骤实现:
步骤s601:终端向服务器发送远程操作请求。
其中,远程操作请求用于请求对目标应用程序执行远程操作,目标应用程序尚未安装在终端上。
步骤s602:服务器接收到该远程操作请求之后,运行安装在服务器上的目标应用程序。
步骤s603:服务器将目标应用程序的初始状态信息和计时时长发送至终端。
步骤s604:终端在屏幕上显示目标应用程序的初始状态信息和计时时长。
步骤s605:终端基于检测到的操作行为生成远程操作指令,并将该远程操作指令发送至服务器。
步骤s606:服务器在远程操作时长未超时的情况下,执行该远程操作指令,生成远程操作结果。
步骤s607:服务器将远程操作结果返回至终端。
步骤s608:终端展示该远程操作结果。
在一个可选的实施例中,在服务器端每间隔一定的时间对服务器屏幕进行截图,并将图片返回给终端进行展示。由于人眼可以识别的帧率为24帧每秒,因此服务器端截屏的频率一般小于该值。
在另一个可选的实施例中,可以在服务器端每隔一定的时间,获取输出到屏幕的原始图像数据;对原始图像数据进行压缩编码,得到可以播放的视频流数据;通过流媒体服务器,将视频流通过rtsp协议传送到连接的客户端;客户端通过流媒体播放器播放服务器返回的视频流,从而可以查看远程app的运行情况。
通过上述实施例,可以通过先试玩应用,然后根据试玩体验再决定下载;可以应用流技术提供应用试玩功能,或者通过截图回传,在终端播放和响应用户操作,实现试玩。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理 解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在上述运行环境中,图7示出的一种应用程序的处理方法,该方法可以通过如下步骤实现:
步骤s702:服务器接收终端发送的远程操作请求,其中,远程操作请求用于请求对应用平台上待下载的目标应用程序执行远程操作,目标应用程序尚未安装在终端上;
步骤s704:服务器在响应于远程操作请求运行目标应用程序之后,向终端返回目标应用程序的程序信息,该目标应用程序安装在服务器上;
步骤s706:服务器接收终端基于程序信息发送的远程操作指令,其中,远程操作指令用于指示对在服务器上运行的目标应用程序进行操作;
步骤s708:服务器对运行的目标应用程序执行操作,得到远程操作结果,将远程操作结果返回至终端。
采用本发明实施例,在目标应用程序尚未安装在终端的情况下,终端向服务器请求远程操作目标应用程序。具体地,服务器安装并运行该目标应用程序,终端向服务器发送远程操作指令,并接收服务器返回的远程操作结果,以实现对目标应用程序的远程操作(也即,试玩该目标应用程序),在终端获取远程操作结果之后,终端的使用者可以基于该远程操作结果确定是否从服务器下载该目标应用程序。通过上述实施例,用户可以在下载之前,远程操作应用程序,从而可以准确获知该应用程序多种信息,并且用户可以根据试玩的真实体验,决定是否需要该应用并且下载,该种方式不仅可以节省用户和服务器的流量,而且有助于用户得到其真正想要的东 西,提高有效分发。
其中,该应用平台用于展示目标应用程序的信息,或者,用于下载该目标应用程序。
可选地,该应用平台可以为应用商店。
上述实施例中的终端可以为需要下载目标应用程序的移动终端,终端在下载目标应用程序之前,通过操作安装在终端上的应用商店客户端生成远程操作请求,如操作用于显示应用商店客户端的界面上的试玩按钮,生成该远程操作请求,该远程操作请求用于请求在服务器上对目标应用程序进行远程操作。
可选地,远程操作请求中可以包括目标应用程序的包名、版本号和应用id中的至少之一,还可以包括终端的屏幕尺寸、终端的屏幕分辨率以及终端型号中的至少之一。
其中的目标应用程序的包名、版本号和应用id中的至少之一用于服务器安装并运行目标应用程序。具体地,上述的服务器可以为提供目标应用程序下载的服务器,如应用商店服务器,该服务器在接收到远程操作请求之后,服务器可以基于该目标应用程序的标识信息(如包名、版本号和应用id中的至少之一),检测服务器的模拟器或真机中是否已经安装该目标应用程序,若服务器中已经安装该目标应用程序,则启动运行该目标应用程序;若服务器中没有安装该目标应用程序,则安装并运行该目标应用程序,以将目标应用程序运行在服务器的模拟器和真机中。
上述实施例中的目标应用程序可以为游戏类、休闲类、财务类、社交类、影像类、旅游类、购物类以及教育类等各种类别,本申请并不对该目标应用程序的类别做限定,各种类别的应用程序均适用于本申请的远程操作方案,也即,上述实施例,可以应用于任何应用程序,对应用程序没有限制,而不像现有技术中的视频和内容抓取的预览方法一样,具有局限性。
用户通过终端上安装的应用下载客户端选中目标应用程序,并进入目 标应用程序的预览界面,该预览界面上记录有远程操作按钮(如试玩按钮),该远程操作按钮被按下生成远程操作请求,并在终端的屏幕上提示是否发送远程操作请求至服务器,若接收到发送远程操作请求至服务器的操作请求的情况下,将该远程操作请求发送至服务器。服务器在接收到该远程操作请求之后,进行初始化(即,安装并运行目标应用程序),在完成初始化之后,将目标应用程序的程序信息返回至终端,该程序信息可以引导用户生成远程操作指令,在用户生成远程操作指令之后,将其发送至服务器,在服务器执行该远程操作指令生成远程操作结果之后,将该远程操作结果显示在终端的屏幕上,用户可以基于该远程操作结果选择是否从服务器下载该目标应用程序。
需要说明的是,上述实施例中远程操作请求中携带的终端的屏幕尺寸、终端的屏幕分辨率以及终端型号,可以用于服务器设置仿真机或模拟机中的屏幕参数。
在一个可选的方案中,可以使用终端的屏幕的分辨率设置显示运行的目标应用程序的运行信息的服务器的屏幕的分辨率。可选地,两者的分辨率可以相同,这样在服务器向终端返回远程操作结果时,远程操作结果的显示分辨率与终端的屏幕的分辨率一致,远程操作结果的显示效果好。
在另一个可选的方案中,可以将终端的屏幕的第一尺寸的值设置为服务器的屏幕上用于显示运行的目标应用程序的运行信息的显示界面尺寸的值。这样,可以服务器的该显示界面上的每个操作位置均与终端的操作位置一一对应,因为第一操作位置即为第二操作位置,服务器无需消耗额外的计算资源去确定第二操作位置,节省了服务器的资源,并提高了处理速度。
可选地,若远程操作请求中包含的终端信息中仅包含终端的型号,可以基于该终端的型号调取该终端的第一尺寸,并基于该终端的第一尺寸设置服务器的屏幕的显示界面尺寸。
上述的步骤s708,服务器对运行的目标应用程序执行操作可以包括: 获取远程操作指令所指示的在终端的屏幕上执行操作的第一操作位置;确定用于显示目标应用程序的运行信息的服务器的屏幕中与第一操作位置对应的第二操作位置;在服务器的屏幕中的第二操作位置上执行操作。
具体地,远程操作请求中包括:终端的屏幕的第一分辨率,其中,确定用于显示目标应用程序的运行信息的服务器的屏幕中与第一操作位置对应的第二操作位置包括:获取服务器的屏幕的第二分辨率;根据第一分辨率、第二分辨率以及第一操作位置,确定第二操作位置对应坐标的宽度和高度。
进一步地,根据第一分辨率、第二分辨率以及第一操作位置,确定第二操作位置对应坐标的宽度和高度包括:按照第一公式确定第二操作位置对应坐标的宽度wp_server,其中,第一公式为:
wp_mobile表示第一操作位置对应坐标的宽度;wmobile表示第一分辨率指示的终端的屏幕的宽度;wserver表示第二分辨率指示的服务器的屏幕的宽度;
按照第二公式确定第二操作位置对应坐标的高度hp_server,第二公式为:
hp_mobile表示第一操作位置对应坐标的高度;hmobile表示第一分辨率指示的终端的屏幕的高度;hserver表示第二分辨率指示的服务器的屏幕的高度。
具体地,在服务器接受到终端的远程操作指令(如操作事件)后,根据终端屏幕的第一分辨率与后台服务器的第二分辨率的不同,计算出服务器中运行在模拟器或真机中的应用响应该操作事件的具体位置。下面结合图8详述该实施例,如图8所示的终端可以为移动终端(如手机),该移动终端的屏幕的第一分辨率为800*480,后台服务器运行的模拟器(或真机)的屏幕的第二分辨率为1280*720。
按照上述的确定第二操作位置的确定方式,位于用户的手机的屏幕中第一操作位置(120,200)映射到服务器的屏幕的第二操作位置的坐标为(180,320)。计算如下:
映射后的宽度(即第二操作位置对应坐标的宽度)=(120/480)*720=180;
映射后的高度(即第二操作位置对应坐标的高度)=(200/800)*1280=320。
在确定用于执行上述操作的第二操作位置,并在该第二操作位置执行该操作之后,对服务器的屏幕上的显示界面进行截图处理,得到界面图片,其中,显示界面用于显示目标应用程序的运行信息;并基于界面图片生成远程操作结果,然后将该远程操作结果返回至终端,终端对该远程操作结果进行展示。
在该实施例中,若服务器的屏幕全屏显示该目标应用程序的运行信息,则可以直接对服务器的屏幕进行截屏;若服务器的屏幕未全屏显示该目标应用程序的运行信息,则可以对服务器的屏幕中的显示界面进行截屏。
同理,终端在显示服务器返回的程序信息或远程操作界面时,可以全屏显示,也可以使用屏幕的部分区域进行显示。
在上述实施例中,对服务器的屏幕进行截屏处理,得到界面图片包括:每间隔预设时长对服务器的屏幕执行一次截屏操作,得到多张界面图片。
通过上述实施例,终端发送一个远程操作指令,服务器可以截取多张界面图片,服务器在截取多张界面图片上,可以每隔一段时间截取一张界面图片;也可以按照预先确定的截取时间序列截取,如时间序列为[1,2,1,2,1,2,……],该时间序列的单位为0.01ms,则第一张和第二张界面图片的截取时间间隔可以为0.01ms,第二张和第三张界面图片的截取时间间隔可以为0.02ms,依次类推。上述时间序列仅作示例说明,本发明不对 具体的截取时间和截取张数做限定。
在该实施例中,服务器每截取一张界面图片,就将该界面图片返回至终端,终端展示该界面图片,随着在终端上,对多张界面图片的接收和展示,终端用户可以无延迟的获取远程操作结果。
进一步地,基于界面图片生成远程操作结果还可以包括:对多张界面图片进行压缩编码,得到视频流数据,将视频流数据作为远程操作结果。
具体地,将截取到的多张界面图片压缩编码生成一帧一帧的视频流数据,将该视频流数据发送至终端,终端用户可以通过播放短视频的方式,观看试玩结果。
为了进一步节省服务器的资源和保证应用开发者的权益,本发明还提供了一个限时进行远程操作的方案,具体地,向终端返回目标应用程序的程序信息包括:向终端返回目标应用程序的初始状态信息和计时时长,并开始记录远程操作时长。服务器对运行的目标应用程序执行操作包括:在远程操作时长小于预设操作时长的情况下,在服务器上对目标应用程序执行操作。
可选地,为了及时中止终端的远程操作,在服务器接收终端基于程序信息发送的远程操作指令之后,在远程操作时长不小于预设操作时长的情况下,在服务器上停止运行目标应用程序;向终端发送操作结束消息,其中,操作结束消息用于提示服务器已停止运行目标应用程序。
为了进一步保证应用开发者的权益,节省服务器的资源,可以记录终端发送远程操作请求、并成功进行远程操作的次数,若该次数超过预设次数,则下次再接收到该终端的远程操作请求,则服务器不再响应该远程操作请求,并向终端发送提示消息,该提示消息用于提示终端服务器不响应该远程操作请求。通过该实施例,可以辨别恶意远程操作的终端。
具体地,可以通过远程操作请求中携带的终端的标识分辨不同终端的远程操作请求。
通过上述实施例,用户在电子市场中下载应用时,通过试玩功能为用户提供有效真实的应用信息,对用户决策是否需要该应用并下载起到了决定性作用。
下面结合图9详述本发明实施例。
步骤s901:发送试玩应用信息至服务器。
具体地,用户开始试玩时发生到服务器端的试玩应用信息主要包括:应用的包名、版本号、应用id、手机屏幕尺寸、手机屏幕分辨率、手机型号等。
步骤s902:服务器根据试玩应用信息中的包名加载目标应用。
服务器接受到试玩请求后,通过代码指令安装并打开用户希望试玩的应用,并开始试玩计时。若服务器已经安装该应用,则直接启动该应用。
步骤s903:开始试玩计时。
步骤s904:服务器将目标应用的初始状态和计时返回至客户端。
其中,在服务器运行该目标应用后,通知客户端,用户可以开始试用应用。
步骤s905:终端展示初始状态和计时。
步骤s906:接收用户操作目标应用的操作行为。
步骤s907:获取操作行为对应的第一操作位置,生成操作事件。
步骤s908:将操作事件发送至服务器。
具体地,在用户进行操作时,将每次操作的事件(如:向上滑动、向下滑动、点击、手指按下、手指抬起等)和手指触摸的屏幕位置发送到服务器。
步骤s909:服务器接收到操作事件。
步骤s910:判断远程操作时间是否超时。
若超时,执行步骤s911;若未超时,执行步骤s912。
处于节省服务器资源的考虑,对用户试玩单款应用可以设定一个试玩时长,当用户试玩时间超过这个时常限制时进行试玩结束提醒。
步骤s911:提示试玩结束。
步骤s912:在真机或模拟器相同屏幕位置(即第二操作位置)上触发操作事件。
在服务器接受到终端操作事件后,根据终端屏幕分辨率与后台服务器分比率的不同,计算出服务器中运行在模拟器或真机中的应用该响应事件的具体位置,并在得到应用区域的坐标后,通过adb命令或uiautomator、robotium等自动化工具在真机或模拟器对应位置触发终端发生过来的用户操作事件。
可选地,在服务器端每间隔一定的时间对手机屏幕进行截图,并将图片返回给终端进行展示。由于人眼可以识别的帧率为24帧每秒,因此服务器端截屏的频率不应小于该值。
在一个可选的方案中,通过应用流技术(appstreaming)同样可以实现生成响应结果(即远程操作结果)的目的。具体地,如图10所示,可以通过如下步骤实现:在服务器端每隔一定的时间,获取输出到屏幕的原始图像数据;对原始图像数据进行压缩编码,得到一帧可以播放的视频流数据;通过流媒体服务器,将视频流通过rtsp协议传送到连接的客户端;客户端通过流媒体播放器播放服务器返回的视频流,从而可以查看远程app的运行情况。
步骤s913:得到响应结果(即远程操作结果)。
步骤s914:终端展示响应界面(即响应结果)。
在应用试玩结束后就可以根据试玩的感受决定是否需要下载该应用。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例3
根据本发明实施例,还提供了一种用于实施上述应用程序的处理方法的应用程序的处理装置,如图11所示,该装置包括:
第一发送单元1101,用于向服务器发送远程操作请求,其中,远程操作请求用于请求对应用平台上待下载的目标应用程序执行远程操作,目标应用程序尚未安装在终端上;
第一接收单元1103,用于接收服务器返回的目标应用程序的程序信息,其中,目标应用程序响应于远程操作请求运行在服务器上,目标应用程序安装在服务器上;
第二发送单元1105,用于基于程序信息向服务器发送远程操作指令,其中,远程操作指令用于指示对在服务器上运行的目标应用程序进行操作;
第二接收单元1107,用于接收服务器返回的远程操作结果,其中,远程操作结果为对运行的目标应用程序进行操作所得到的结果。
在本发明实施例中,在目标应用程序尚未安装在终端的情况下,终端向服务器请求远程操作目标应用程序。具体地,服务器安装并运行该目标应用程序,终端向服务器发送远程操作指令,并接收服务器返回的远程操作结果,以实现对目标应用程序的远程操作(也即,试玩该目标应用程序),在终端获取远程操作结果之后,终端的使用者可以基于该远程操作结果确定是否从服务器下载该目标应用程序。通过上述实施例,用户可以在下载之前,远程操作应用程序,从而可以准确获知该应用程序多种信息,并且用户可以根据试玩的真实体验,决定是否需要该应用并且下载,该种方式不仅可以节省用户和服务器的流量,而且有助于用户得到其真正想要的东西,提高有效分发。
进一步地,第二发送单元具体包括:显示模块,用于将程序信息显示在终端的屏幕上;检测模块,用于检测到在终端的屏幕的第一操作位置上执行的操作;生成模块,用于生成远程操作指令,其中,远程操作指令指示了第一操作位置和操作;发送模块,用于将远程操作指令发送给服务器。
可选地,程序信息包括目标应用程序的初始状态信息和计时时间,该装置还包括:第一显示单元,用于将初始状态信息显示在终端的屏幕上;第二显示单元,用于将计时时间以悬浮的方式显示在终端的屏幕上,或者,将计时时间以内嵌的方式显示在初始状态信息中。
需要进一步说明的是,第二接收单元还用于在终端接收服务器返回的远程操作结果之后,接收到服务器发送的操作结束信息,其中,操作结束信息用于指示服务器不再响应终端发送的远程操作指令。
根据本发明实施例,还提供了另一种用于实施上述应用程序的处理方法的应用程序的处理装置,该装置包括:
第一接收单元,用于接收终端发送的远程操作请求,其中,远程操作 请求用于请求对应用平台上待下载的目标应用程序执行远程操作,目标应用程序尚未安装在终端上;
返回单元,用于在响应于远程操作请求安装并运行目标应用程序之后,向终端返回目标应用程序的程序信息,其中,目标应用程序安装在服务器上;
第二接收单元,用于接收终端基于程序信息发送的远程操作指令,其中,远程操作指令用于指示对在服务器上运行的目标应用程序进行操作;
处理单元,用于对运行的目标应用程序执行操作,得到远程操作结果,将远程操作结果返回至终端。
具体地,处理单元可以包括:第一获取模块,用于获取远程操作指令所指示的在终端的屏幕上执行操作的第一操作位置;确定模块,用于确定用于显示目标应用程序的运行信息的服务器的屏幕中与第一操作位置对应的第二操作位置;执行模块,用于在服务器的屏幕中的第二操作位置上执行操作。
进一步地,远程操作请求中包括:终端的屏幕的第一分辨率。其中,确定模块包括:获取子模块,用于获取服务器的屏幕的第二分辨率;确定子模块,用于根据第一分辨率、第二分辨率以及第一操作位置,确定第二操作位置对应坐标的宽度和高度。
需要说明的是,该装置还可以包括:截图单元,用于在服务器的屏幕中的第二操作位置上执行操作之后,对服务器的屏幕上的显示界面进行截图处理,得到界面图片,其中,显示界面用于显示目标应用程序的运行信息;结果生成单元,用于基于界面图片生成远程操作结果。
进一步地,返回单元具体用于向终端返回目标应用程序的初始状态信息和计时时长,并开始记录远程操作时长;处理单元具体用于在远程操作时长小于预设操作时长的情况下,在服务器上对目标应用程序执行操作。
本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用 方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于上述实施例中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。
实施例4
根据本发明实施例,还提供了一种用于实施上述应用程序的处理方法的终端或服务器,如图12所示,该终端或服务器包括:
一个或多个(图中仅示出一个)处理器1201、存储器1203、以及传输装置1205,如图12所示,该终端还可以包括输入输出设备1207。
其中,存储器1203可用于存储软件程序以及模块,如本发明实施例中的应用程序的处理方法和装置对应的程序指令/模块,处理器1201通过运行存储在存储器1203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的处理方法。存储器1203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1203可进一步包括相对于处理器1201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置1205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1205包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1205为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。
其中,存储器1203用于存储应用程序。
在本实施例中,上述计算机终端的处理器可以执行应用程序的处理方 法中以下步骤:终端向服务器发送远程操作请求,其中,远程操作请求用于请求对应用平台上待下载的目标应用程序执行远程操作,目标应用程序尚未安装在终端上;终端接收服务器返回的目标应用程序的程序信息,其中,目标应用程序响应于远程操作请求运行在服务器上,目标应用程序安装在服务器上;终端基于程序信息向服务器发送远程操作指令,其中,远程操作指令用于指示对在服务器上运行的目标应用程序进行操作;终端接收服务器返回的远程操作结果,其中,远程操作结果为对运行的目标应用程序进行操作所得到的结果。
在本实施例中,上述计算机终端的处理器可以执行应用程序的处理方法中以下步骤:
服务器接收终端发送的远程操作请求,其中,远程操作请求用于请求对应用平台上待下载的目标应用程序执行远程操作,目标应用程序尚未安装在终端上;服务器在响应于远程操作请求安装并运行目标应用程序之后,向终端返回目标应用程序的程序信息,目标应用程序安装在服务器上;服务器接收终端基于程序信息发送的远程操作指令,其中,远程操作指令用于指示对在服务器上运行的目标应用程序进行操作;服务器对运行的目标应用程序执行操作,得到远程操作结果,将远程操作结果返回至终端。
在本发明实施例中,在目标应用程序尚未安装在终端的情况下,终端向服务器请求远程操作目标应用程序。具体地,服务器安装并运行该目标应用程序,终端向服务器发送远程操作指令,并接收服务器返回的远程操作结果,以实现对目标应用程序的远程操作(也即,试玩该目标应用程序),在终端获取远程操作结果之后,终端的使用者可以基于该远程操作结果确定是否从服务器下载该目标应用程序。通过上述实施例,用户可以在下载之前,远程操作应用程序,从而可以准确获知该应用程序多种信息,并且用户可以根据试玩的真实体验,决定是否需要该应用并且下载,该种方式不仅可以节省用户和服务器的流量,而且有助于用户得到其真正想要的东西,提高有效分发。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以存储用于执行应用程序的处理方法的代码。
可选地,在本实施例中,上述存储介质可以位于图4所示的网络中的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
终端向服务器发送远程操作请求,其中,远程操作请求用于请求对应用平台上待下载的目标应用程序执行远程操作,目标应用程序尚未安装在终端上;终端接收服务器返回的目标应用程序的程序信息,其中,目标应用程序响应于远程操作请求运行在服务器上,目标应用程序安装在服务器上;终端基于程序信息向服务器发送远程操作指令,其中,远程操作指令用于指示对在服务器上运行的目标应用程序进行操作;终端接收服务器返回的远程操作结果,其中,远程操作结果为对运行的目标应用程序进行操作所得到的结果。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
服务器接收终端发送的远程操作请求,其中,远程操作请求用于请求对应用平台上待下载的目标应用程序执行远程操作,目标应用程序尚未安装在终端上;服务器在响应于远程操作请求安装并运行目标应用程序之后,向终端返回目标应用程序的程序信息,目标应用程序安装在服务器上;服务器接收终端基于程序信息发送的远程操作指令,其中,远程操作指令用于指示对在服务器上运行的目标应用程序进行操作;服务器对运行的目标应用程序执行操作,得到远程操作结果,将远程操作结果返回至终端。
在本发明实施例中,在目标应用程序尚未安装在终端的情况下,终端向服务器请求远程操作目标应用程序。具体地,服务器安装并运行该目标 应用程序,终端向服务器发送远程操作指令,并接收服务器返回的远程操作结果,以实现对目标应用程序的远程操作(也即,试玩该目标应用程序),在终端获取远程操作结果之后,终端的使用者可以基于该远程操作结果确定是否从服务器下载该目标应用程序。通过上述实施例,用户可以在下载之前,远程操作应用程序,从而可以准确获知该应用程序多种信息,并且用户可以根据试玩的真实体验,决定是否需要该应用并且下载,该种方式不仅可以节省用户和服务器的流量,而且有助于用户得到其真正想要的东西,提高有效分发。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。