CN116170610A - 用于实现数据传输的sdk及数据传输方法 - Google Patents
用于实现数据传输的sdk及数据传输方法 Download PDFInfo
- Publication number
- CN116170610A CN116170610A CN202310132998.XA CN202310132998A CN116170610A CN 116170610 A CN116170610 A CN 116170610A CN 202310132998 A CN202310132998 A CN 202310132998A CN 116170610 A CN116170610 A CN 116170610A
- Authority
- CN
- China
- Prior art keywords
- data
- sdk
- client
- target hardware
- cloud
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
- H04N21/25833—Management of client data involving client hardware characteristics, e.g. manufacturer, processing or storage capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4431—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4781—Games
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Graphics (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供了一种用于实现数据传输的SDK及数据传输方法,属于云游戏技术领域。所述SDK集成在用户客户端中,SDK包括软总线模块和第一SDK模块;第一SDK模块用于接收云服务器发送的数据采集指令,并将数据采集指令发送至软总线模块,数据采集指令由云客户端生成并发送至云服务器,云客户端运行在云服务器上,云客户端与用户客户端对应同一应用程序;软总线模块用于响应于数据采集指令,调用用户客户端本地的目标硬件设备采集目标硬件数据,并将目标硬件数据发送至第一SDK模块;第一SDK模块用于将目标硬件数据发送至云服务器,以使云服务器将目标硬件数据发送至云客户端,从而实现了将用户客户端的硬件数据传输至云客户端。
Description
技术领域
本申请涉及云游戏技术领域,特别涉及一种用于实现数据传输的SDK及数据传输方法。
背景技术
云游戏又可称为游戏点播,是一种以云计算技术为基础的在线游戏技术。在云游戏场景下,游戏应用程序对应两个客户端,一个是运行在云服务器上的云客户端,一个是运行在用户终端上的用户客户端。云服务器将云客户端中的游戏场景渲染成视频音频流之后,通过网络传输给用户客户端,用户客户端无需拥有强化的图形运算和数据处理能力,对接收到的视频音频流进行渲染显示即可。
然而,在某些场景下,云客户端需要获取用户客户端本地的硬件数据进行场景渲染,而在此之前,如何将用户客户端的硬件数据传输至云客户端,则成为当前亟需解决的问题。
发明内容
本申请实施例提供了一种用于实现数据传输的SDK(Software Development Kit,软件开发工具包)及数据传输方法,能够将用户客户端的硬件数据传输至云客户端。所述技术方案如下:
第一方面,提供了一种用于实现数据传输的SDK,所述SDK集成在用户客户端中,所述SDK包括软总线模块和第一SDK模块,所述软总线模块与所述第一SDK模块连接;
所述第一SDK模块用于接收云服务器发送的数据采集指令,并将所述数据采集指令发送至所述软总线模块,所述数据采集指令由云客户端生成并发送至所述云服务器,所述云客户端运行在所述云服务器上,所述云客户端与所述用户客户端对应同一应用程序;
所述软总线模块用于响应于所述数据采集指令,调用所述用户客户端本地的目标硬件设备采集目标硬件数据,并将所述目标硬件数据发送至所述第一SDK模块;
所述第一SDK模块用于将所述目标硬件数据发送至所述云服务器,以使所述云服务器将所述目标硬件数据发送至所述云客户端。
在本申请的另一个实施例中,所述软总线模块具体用于按照软总线协议对所述目标硬件数据进行封装,得到封装后的目标硬件数据,将所述封装后的目标硬件数据发送至所述第一SDK模块;
所述第一SDK模块具体用于对所述封装后的目标硬件数据进行加密,得到加密数据,并基于预设通信协议,将所述加密数据发送至所述云服务器。
第二方面,提供了一种数据传输方法,所述方法应用于用户客户端中,所述用户客户端中集成有上述第一方面所述的SDK,所述方法包括:
接收云服务器发送的数据采集指令,所述数据采集指令由云客户端生成并发送至所述云服务器,所述云客户端运行在所述云服务器上,所述云客户端与所述用户客户端对应同一应用程序;
响应于所述数据采集指令,调用所述目标硬件设备采集目标硬件数据;
将所述目标硬件数据发送至所述云服务器,以使所述云服务器发送至所述云客户端。
在本申请的另一个实施例中,所述响应于所述数据采集指令,调用所述目标硬件设备采集目标硬件数据之前,还包括:
所述响应于所述数据采集指令,执行针对所述目标硬件设备调用的用户授权操作;
当用户授权成功,执行针对所述目标硬件设备调用的硬件设备授权操作;
当硬件设备授权成功,执行所述调用目标硬件设备采集目标硬件数据的步骤。
在本申请的另一个实施例中,所述调用所述目标硬件设备采集目标硬件数据,包括:
调用所述目标硬件设备的框架层的第二通信接口,向所述框架层发送第二调用请求,所述第二调用请求用于请求所述框架层调用所述目标硬件设备的硬件层采集所述目标硬件数据,所述第二通信接口为本地操作系统支持的、所述目标硬件设备的框架层提供的通信接口;
接收所述框架层发送的所述目标硬件数据。
在本申请的另一个实施例中,所述将所述目标硬件数据发送至所述云服务器之前,还包括:
按照软总线协议对所述目标硬件数据进行封装,得到封装后的目标硬件数据;
对所述封装后的目标硬件数据进行加密,得到加密数据;
所述将所述目标硬件数据发送至所述云服务器,包括:
基于预设通信协议,将所述加密数据发送至所述云服务器。
在本申请的另一个实施例中,所述方法还包括:
当基于所述第二事件码监听到所述目标硬件设备的状态变化,生成状态变化通知消息,所述状态变化通知消息用于指示所述目标硬件设备的当前状态。
第三方面,提供了一种数据传输方法,所述方法应用于云服务器,所述方法包括:
接收云客户端发送的数据采集指令,所述云客户端运行在所述云服务器上;
将所述数据采集指令发送至用户客户端,所述用户客户端中集成有上述第一方面所述的SDK,所述用户客户端与所述云客户端对应同一应用程序,所述数据采集指令用于请求所述用户客户端调用目标硬件设备采集目标硬件数据;
当接收到所述目标硬件数据,将所述目标硬件数据发送至所述云客户端。
第四方面,提供了一种数据传输方法,所述方法应用于云客户端,所述云客户端运行在云服务器上,所述方法包括:
向所述云服务器发送数据采集指令,所述数据采集指令由所述云服务器发送至用户客户端,所述用户客户端集成有上述第一方面所述的SDK,所述用户客户端与所述云客户端对应同一应用程序,所述数据采集指令用于请求所述用户客户端调用目标硬件设备采集目标硬件数据,并将所述目标硬件数据发送至所述云服务器;
接收所述云服务器发送的所述目标硬件数据。
第五方面,提供了一种数据传输装置,所述装置设置于用户客户端中,所述用户客户端中集成有上述第一方面所述的SDK,所述装置包括:
接收模块,用于接收云服务器发送的数据采集指令,所述数据采集指令由云客户端生成并发送至所述云服务器,所述云客户端运行在所述云服务器上,所述云客户端与所述用户客户端对应同一应用程序;
调用模块,用于响应于所述数据采集指令,调用所述目标硬件设备采集目标硬件数据;
发送模块,用于将所述目标硬件数据发送至所述云服务器,以使所述云服务器发送至所述云客户端。
第六方面,提供了一种数据传输装置,所述装置设置于云服务器中,所述装置包括:
接收模块,用于接收云客户端发送的数据采集指令,所述云客户端运行在所述云服务器上;
发送模块,用于将所述数据采集指令发送至用户客户端,所述用户客户端中集成有上述第一方面所述的SDK,所述用户客户端与所述云客户端对应同一应用程序,所述数据采集指令用于请求所述用户客户端调用目标硬件设备采集目标硬件数据;
所述发送模块,还用于当接收到所述目标硬件数据,将所述目标硬件数据发送至所述云客户端。
第七方面,提供了一种数据传输装置,所述装置设置于云客户端中,所述云客户端运行在云服务器上,所述装置包括:
发送模块,用于向所述云服务器发送数据采集指令,所述数据采集指令由所述云服务器发送至用户客户端,所述用户客户端集成有上述第一方面所述的SDK,所述用户客户端与所述云客户端对应同一应用程序,所述数据采集指令用于请求所述用户客户端调用目标硬件设备采集目标硬件数据,并将所述目标硬件数据发送至所述云服务器;
接收模块,用于接收所述云服务器发送的所述目标硬件数据。
第八方面,提供了一种数据传输系统,所述系统包括云客户端、云服务器及用户客户端,所述用户客户端集成有第一方面所述的SDK,所述云客户端与所述用户客户端对应同一应用程序;
所述云客户端用于生成数据采集指令,并将所述数据采集指令发送至所述云服务器;
所述云服务器用于将接收到的所述数据采集指令发送至所述用户客户端;
所述用户客户端用于响应于接收到的所述数据采集指令,调用所述目标硬件设备采集目标硬件数据,并将所述目标硬件数据发送至所述云服务器;
所述云服务器用于将接收到的所述目标硬件数据发送至所述云客户端。
第九方面,提供了一种电子设备,包括处理器以及存储器;所述存储器存储至少一条计算机程序;所述至少一条计算机程序用于被所述处理器调用并执行,以实现第二方面所述的数据传输方法,或,实现第三方面所述的数据传输方法,或,实现第四方面所述的数据传输方法。
第十方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序用于被处理器调用并执行,以实现第二方面所述的数据传输方法,或,实现第三方面所述的数据传输方法,或,实现第四方面所述的数据传输方法。
第十一方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序用于被处理器调用并执行,以实现第二方面所述的数据传输方法,或,实现第三方面所述的数据传输方法,或,实现第四方面所述的数据传输方法。
本申请实施例提供的技术方案带来的有益效果是:
提供了一种用于实现数据传输的SDK,该SDK具有与云服务器通信的能力及调用用户客户端本地的硬件设备采集硬件数据的能力。当将该SDK集成在用户客户端中,用户客户端可接收云客户端生成的、经云服务器转发的数据采集指令,响应于该数据采集指令,用户客户端能够调用目标硬件设备采集目标硬件数据,进而将该目标硬件数据发送至云服务器,再由云服务器发送至云客户端,从而实现了将用户客户端的硬件数据传输至云客户端。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种用于数据传输的SDK的结构示意图;
图2示出了本申请实施例提供的数据传输方法所涉及的实施环境;
图3是本申请实施例提供的一种数据传输方法的整体流程图;
图4是本申请实施例提供的一种数据传输方法的流程图;
图5是本申请实施例提供的一种云服务器和用户客户端通信的框架图;
图6是本申请实施例提供的另一种数据传输方法的流程图;
图7是本申请实施例提供的另一种数据传输方法的流程图;
图8是本申请实施例提供的另一种数据传输方法的流程图;
图9是本申请实施例提供的一种数据传输方法装置的结构示意图;
图10是本申请实施例提供的另一种数据传输方法装置的结构示意图;
图11是本申请实施例提供的另一种数据传输方法装置的结构示意图;
图12是本申请实施例提供的一种数据传输系统的结构示意图;
图13示出了本申请一个示例性实施例提供的一种电子设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
可以理解,本申请实施例所使用的术语“每个”、“多个”及“任一”等,多个包括两个或两个以上,每个是指对应的多个中的每一个,任一是指对应的多个中的任意一个。举例来说,多个词语包括10个词语,而每个词语是指这10个词语中的每一个词语,任一词语是指10个词语中的任意一个词语。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
在执行本申请实施例之前,首先对本申请实施例涉及的名词进行解释。
云游戏是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在用户客户端中运行,而是在云服务器中运行。云服务器将游戏场景渲染为视频音频流,通过网络传输给用户客户端。用户客户端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的多媒体播放能力、用户操控指令数据上报能力及硬件数据采集上报能力即可。简单理解,户客户端为一个带视频播放功能,以及指令同步和数据同步的偏多媒体渲染功能的客户端。
云端互通是指云游戏场景下,云服务器与用户客户端进行数据传输、事件控制、硬件数据互访等功能的统称。
WebRTC(Web Real-Time Communications,网页实时通信)为一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线。软总线是指将非本机的软硬件功能通过网络协议映射到本机中的虚拟总线。
protobuf为一种无关平台、无关语言,可扩展、轻量级、高效的序列化结构的数据格式,用于将自定义数据结构序列化成字节流,以及将字节流反序列化为数据结构。
HAL(Hardware Abstraction Layer,硬件抽象层)是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。HAL隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。
容器是用于将应用与其所有必要文件捆绑到一个运行时环境中的技术。作为一个单元,容器可以在任何环境下的任何操作系统上轻松移动和运行。使用容器可以隔离软件,使其能够在不同的操作系统、硬件、网络、存储系统和安全策略中独立运行。由于操作系统并未打包到容器中,因此每个容器仅需使用极少的计算资源,不仅占用空间极小,而且易于安装。通过使用容器,用户可以避免因环境不兼容而导致的崩溃,并且能够在不同机器上获得一致的性能。
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。云计算过程中提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务平台)),在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS能够提供各式各样的服务,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
随着游戏内容和玩法丰富度的提高,游戏开发成本越来越高,尤其当游戏需要支持跨端运行时,开发成本与难度大大提高,可以实现一次开发多端运行的技术需求越来越强烈。游戏开发商对用户流量把控力略有不足,如何避免下载等游戏准备过程中用户流失、提高产品转化率。“重工”开发的游戏在传统游戏运行过程中,对玩家设备性能要求较高,向普通、低端设备玩家覆盖难度大。为使低性能的玩家设备也能运行高品质的游戏,云游戏应运而生。
云游戏作为一个PaaS平台型产品,在实现产品功能的同时,不仅需要在云服务器端实现游戏的逻辑处理和画面渲染,并实时传输给用户客户端;同时,还需要将用户客户端本地采集的硬件数据实时传输给云服务器端,最终形成云(即云服务器)端(用户客户端)一体,与原生游戏一致的游戏体验。
为实现云端互通,用户客户端需要集成具有云游戏功能的SDK。然而,目前市面上具有云游戏功能的SDK并不是很多,且由于对云端互通场景的理解不同,导致实现云端互通的差异较大。举例来说,一些SDK产品不具备PaaS产品属性,用户客户端无法通过集成该SDK实现云游戏功能,因而对于这些SDK产品,无需考虑用户客户端与该SDK的通信问题、该SDK采集用户客户端本地的硬件数据时用户授权问题、该SDK调用用户客户端本地的硬件设备采集硬件数据时SDK与本地操作系统的兼容性问题等等。虽然有些SDK产品具备PaaS产品属性,但是为了降低自身实现成本,这些SDK产品仅提供云端互通的数据通道能力,不提供云端互通的产品化能力,需要接入方无论是用户客户端还是游戏自身进行大量的二次开发工作,导致用户客户端接入成本较高、接入效率较低,游戏本身的侵入性较大,无法实现与原生游戏一致的游戏体验。
考虑到用户客户端接入SDK的接入成本和接入效率、SDK调用用户客户端本地的硬件设备采集硬件数据时用户授权问题、SDK调用用户客户端本地的硬件设备采集硬件数据时SDK与本地操作系统的兼容性问题,本申请实施例提供了一种用于实现数据传输的SDK,该SDK能够最大限度的降低用户客户端的接入成本,提高用户客户端的接入效率,在SDK调用用户客户端本地的硬件设备采集硬件数据时进行用户授权,保护了用户的隐私安全,同时在该SDK中对不同硬件设备的采集能力进行封装,解决了SDK与不同操作系统的兼容性问题。为了真正地实现云端互通,该SDK集成在用户客户端中,该用户客户端与运行在云服务器上的云客户端对应同一应用程序,该应用程序为具备PaaS产品属性的任一应用程序,例如,游戏应用程序。参见图1,该SDK包括第一SDK模块101和软总线模块102,该第一SDK模块101与软总线模块102连接。
其中,第一SDK模块101具有与云服务器及软总线模块的通信能力,基于该通信能力,第一SDK模块101可与云服务器之间或与软总线模块之间进行数据与指令的传输。举例来说,当云客户端在运行过程中,因使用需求需要目标硬件数据,云客户端生成数据采集指令,并将该数据采集指令发送至云服务器,第一SDK模块101接收云服务器发送的数据采集指令,将接收到的数据采集指令发送至软总线模块102,并接收软总线模块102采集的目标硬件数据。
在本申请实施例中,第一SDK模块101与云服务器采用预设通信协议进行通信,该预设通信协议可以为WebRTC协议等。该预设通信协议由第一SDK模块101和云服务器根据所支持的通信协议协商确定。例如,第一SDK模块101支持的通信协议为:通信协议A、通信协议B、通信协议C及通信协议D,云服务器支持的通信协议为:通信协议A、通信协议C、通信协议E及通信协议F,则第一SDK模块101与云服务器通过协商确定通信协议A为预设通信协议,该通信协议A可以是WebRTC协议等。
当然,除了具有与云服务器及软总线模块的通信能力,第一SDK模块101还具有音视频播放能力。基于该播放能力,当接收到云服务器针对游戏场景所渲染的音视频数据,第一SDK模块101播放该音视频数据,从而将该游戏场景的场景画面及音效呈现给用户。
软总线模块102具有调用用户客户端本地的硬件设备采集硬件数据的能力,当接收到第一SDK模块101发送的采集指令后,软总线模块102响应于该采集指令,调用用户客户端本地的目标硬件设备采集目标硬件数据,并将采集的目标硬件数据发送给第一SDK模块101。目标硬件设备为数据采集指令指示软总线模块调用的、用户客户端本地的任一种硬件设备,包括相机、剪贴板、麦克风、相册、陀螺仪等中任一种。相应地,目标硬件数据为相机数据、剪贴板数据、麦克风数据、相册数据、陀螺仪数据等中任一种数据。当接收到软总线模块102发送的目标硬件数据,第一SDK模块101将目标硬件数据发送至云服务器,以使云服务器将目标硬件数据发送至云客户端,从而将用户客户端本地的硬件数据传输至云客户端。
参见图1,该SDK还包括:第二SDK模块103,该第二SDK模块103与软总线模块102连接。该第二SDK模块103提供第一通信接口,该第一通信接口能够兼容不同属性(例如不同应用程序、不同版本的应用程序等)的用户客户端,这样,不同属性的用户客户端无需进行二次开发,即可集成该SDK模块,降低了用户客户端的接入成本,提高了用户客户端的接入效率。该第一通信接口可以为支持某种类型的数据传输的API(Application ProgrammingInterface,应用程序编程接口),例如,图片上传API、视频下载API或远程日志API等;该第一通信接口还可以为支持多种类型的数据传输的通用API,该第一通信接口所支持传输的数据的类型可通过修改入参的参数确定。具体来说,附图1所示的SDK三部分构成:第一部分为对外接口模块即第一SDK模块,第二部分为软总线模块,第三部分为第二SDK模块,代表提供串流通信的模块。第二SDK模块提供了与串流通信的数据接口,这个接口是支持按照软总线的数据协议提供各种类型的数据给云端容器的,比如支持图片上传,支持视频下载,远程日志等功能的数据,而且这个软总线提供的接口也支持数据协议的进一步扩展,基于这些扩展,进一步丰富了软总线的功能,第一SDK模块可以封装给客户调用的软总线API和事件码,所以功能上是可以横向扩展的,具有一定的开放性。
在本申请实施例中,第二SDK模块103中写入有第一事件码,该第一事件码在软总线模块102上注册后,能够对软总线模块102对不同硬件设备的调用事件进行监听。根据第一事件码的功能,第一事件码也称为用户授权事件码。当基于第一事件码监听到软总线模块102对目标硬件设备的调用事件,第二SDK模块103及软总线模块102执行针对目标硬件设备调用的用户授权操作,当用户授权成功,第二SDK模块103及软总线模块102执行针对目标硬件设备调用的硬件设备授权操作,当硬件设备授权成功,软总线模块102调用用户客户端本地的目标硬件设备采集目标硬件数据。
其中,用户授权是指当监听到软总线模块对硬件设备的调用事件时,在用户层面上对软总线模块对硬件设备的调用进行授权。用户授权操作过程包括:软总线模块102在基于第一事件码监听到对目标硬件设备的调用事件时,生成针对目标硬件设备的第一授权调用消息,并将第一授权调用消息发送至第二SDK模块103,第二SDK模块103通过第一通信接口将第一授权调用消息发送至用户客户端,当接收到第一授权调用消息,用户客户端生成针对目标硬件设备的第一调用请求,并通过第一通信接口将第一授权调用请求发送至第二SDK模块103,当基于第一通信接口接收用户客户端发送的第一调用请求,第二SDK模块103将第一调用请求发送至软总线模块102,响应于第一调用请求,软总线模块102生成第一授权提示消息,并将第一授权提示消息发送至第二SDK模块103,第二SDK模块103通过第一通信接口将该第一授权提示消息发送至用户客户端,当接收到第一授权提示消息,用户客户端显示该第一授权提示消息,该第一授权提示消息用于提示用户执行授权操作,为便于用户执行本次针对目标硬件设备调用的授权操作,该第一授权提示消息提供了允许选项和拒绝选项,如果用户允许软总线模块102调用目标硬件设备,则用户可以触发该允许选项,当检测到用户对允许选项的触发操作,用户客户端生成第一授权通知消息,进而通过第一通信接口将该第一授权通知消息发送至第二SDK模块103,由第二SDK模块103将第一授权通知消息发送至软总线模块102,响应于接收到的第一授权通知消息,软总线模块102确定用户授权成功;如果用户不允许软总线模块102调用目标硬件设备,则用户可以触发该拒绝选项,当检测到用户对拒绝选项的触发操作,用户客户端生成第一授权失败通知消息,进而通过第一通信接口将该第一授权失败通知消息发送至第二SDK模块103,由第二SDK模块103将第一授权失败通知消息发送至软总线模块102,响应于接收到的第一授权失败通知消息,软总线模块102停止对目标硬件设备的调用。
其中,硬件设备授权是指当监听到软总线模块对硬件设备的调用事件且用户授权成功时,在硬件设备层面上对软总线模块对硬件设备的调用进行授权。硬件设备授权操作过程包括:软总线模块102向用户客户端的本地操作系统发送针对目标硬件设备的第二授权调用消息,当接收到该第二授权调用消息,本地操作系统向用户客户端发送第二授权提示消息,当接收到该第二授权提示消息,用户客户端显示该第二授权提示消息,该第二授权提示消息用于提示用户执行授权操作,为便于用户执行本次针对目标硬件设备调用的授权操作,该第二授权提示消息提供了允许选项和拒绝选项,如果用户允许软总线模块102调用目标硬件设备,则用户可以触发该允许选项,当检测到用户对允许选项的触发操作,用户客户端生成第二授权通知消息,进而通过第一通信接口将第二授权通知消息发送至第二SDK模块103,当基于第一通信接口接收到用户客户端发送的第二授权通知消息,第二SDK模块103将第二授权通知消息发送至软总线模块102,响应于接收到的第二授权通知消息,软总线模块102确定硬件设备授权成功;如果用户拒绝软总线模块102调用目标硬件设备,则用户可以触发该拒绝选项,当检测到用户对拒绝选项的触发操作,用户客户端生成第二授权失败通知消息,进而通过第一通信接口将第二授权失败通知消息发送至第二SDK模块103,当基于第一通信接口接收到用户客户端发送的第二授权失败通知消息,第二SDK模块103将第二授权失败通知消息发送至软总线模块102,响应于接收到的第二授权失败通知消息,软总线模块102停止对目标硬件设备的调用。
在软总线模块调用硬件设备采集硬件数据之前,通过执行用户授权操作和硬件设备授权操作,在用户层面和硬件设备层面上对用户侧数据的采集进行确认,使得用户侧数据的采集更符合规定,避免了用户的隐私泄漏,提升了数据安全性。且通过两次授权操作,能够避免用户误操作导致的授权行为,例如,因误操作,用户在用户授权流程中误授权软总线模块对硬件设备的调用,那么,在硬件设备授权流程中用户可通过触发拒绝选项,收回软总线模块对硬件设备的调用权限。
需要说明的是,本申请实施例中的用户授权过程和硬件设备授权过程为会话级别的,云客户端每次调用硬件设备均会执行该授权操作,且每次授权操作只会针对一种硬件设备进行授权,不同硬件设备需要在不同的会话中进行请求,比如需要调用相机,则在会话中针对相机的调用请求一次授权,再比如需要调用麦克风,则在会话中针对麦克风的调用请求一次授权。而对软总线模块102访问硬件设备授权的权限可根据用户选择的授权方式确定,如果用户选择的授权方式为始终允许,则在用户客户端运行过程中不需要每次调用该硬件设备都要执行一次授权操作;如果用户选择的授权方式为每次均需要授权,则在用户客户端运行过程中每次调用该硬件设备时都需要执行一次授权操作。
在本申请实施例中,第二SDK模块103中还写入有第二事件码,该第二事件码在软总线模块102上注册后,能够对不同硬件设备的状态变化事件进行监听,该硬件设备的状态变化包括硬件设备的启用、硬件设备的暂停、硬件设备处于使用中等。根据第二事件码的功能,该第二事件码称为云端数据事件码。当基于第二事件码监听到目标硬件设备的状态变化时,软总线模块102生成状态变化通知消息,并将状态变化通知消息发送至第二SDK模块103,当接收到该状态变化通知消息,第二SDK模块103通过第一通信接口将该状态变化通知消息发送至用户客户端,以使用户客户端获知该目标硬件设备的状态发生变化。例如,目标硬件设备为麦克风,当基于云端数据事件码监听到麦克风开始录音、录音暂停、录音继续等状态变化时,软总线模块102生成针对麦克风的状态变化通知消息,并将该状态变化通知消息发送至第二SDK模块103,当接收到该状态变化通知消息,第二SDK模块103通过第一通信接口将该状态变化通知消息发送至用户客户端。
本申请实施例通过对硬件设备的状态变化事件进行监听,使得用户客户端能够获知硬件设备的运行情况,进而基于硬件设备的运行情况,为硬件设备生成工作日志,从而在硬件设备发生异常时,通过对工作日志进行分析,及时找出故障原因。
通常用户客户端集成该SDK时,用户客户端会对该SDK执行初始化操作,处于初始化状态的第一事件码和第二事件码未与软总线模块102内部的功能模块绑定,并不会触发对软总线模块102的监听操作。为实现对软总线模块102对硬件设备的调用事件以及各个硬件设备的状态变化事件进行监听,需要用户客户端将第一事件码和第二事件码在软总线模块102上进行注册。第一事件码和第二事件码的注册过程为:用户客户端通过第一通信接口向第二SDK模块103发送针对第一事件码和第二事件码的注册请求,当接收到该注册请求,第二SDK模块103将该注册请求发送至软总线模块102,响应于该注册请求,软总线模块102将第一事件码和第二事件码与软总线模块102内部相关的功能模块绑定,以实现对第一事件码和第二事件码的注册。
通常操作系统为硬件设备的硬件层定义了一套标准的抽象接口,用户客户端无法直接访问这个抽象接口,需要调用框架层提供的API访问这个抽象接口。由于用户客户端与操作系统之间存在兼容性问题,同一用户客户端在访问不同操作系统下的硬件设备时,所调用的框架层的API不同,系统硬件访问权限也不同。以相机为例,操作系统提供了Camera1的框架层和Camera2的框架层,Camera1的框架层在低版本操作系统上可用,Camera2的框架层在高版本操作系统上可用,当用户客户端的本地操作系统为低版本操作系统,用户客户端需要调用Camera1的框架层提供的API访问硬件层的抽象接口;当用户客户端的本地操作系统为高版本操作系统,用户客户端需要调用Camera2的框架层提供的API访问硬件层的抽象接口。
为了解决用户客户端与不同操作系统之间的兼容性问题,软总线模块102对不同操作系统下硬件设备的调用能力进行封装。该封装过程实际上是,对于每种硬件设备,软总线模块102兼容高版本操作系统的框架层提供的API,并为低版本操作系统下的框架层提供了一种扩展包,该扩展包为具有对低版本操作系统的访问能力。这样,对于高版本操作系统,软总线模块102可直接基于对高版本操作系统的框架层提供的API的调用能力,调用高版本操作系统的框架层提供的API;对于低版本操作系统,软总线模块102基于扩展包的能力,调用低版本操作系统的框架层提供的API。通过对不同操作系统下硬件设备的调用能力进行封装,使得软总线模块102具有对不同操作系统下不同硬件设备的框架层的调用能力。具体地,针对相机、剪贴板、麦克风、相册、陀螺仪等不同硬件设备,软总线模块102分别对相机的调用能力、剪贴板的调用能力、麦克风的调用能力、相册的调用能力、陀螺仪的调用能力等进行封装,从而使得软总线模块具有对不同操作下相机、剪贴板、麦克风、相册、陀螺仪等硬件设备的调用能力,进而通过调用相机、剪贴板、麦克风、相册、陀螺仪等硬件设备的框架层,采集相机数据、剪贴板数据、麦克风数据、相册数据、陀螺仪数据等。
基于具有对不同操作系统下不同硬件设备的框架层的调用能力的软总线模块102,目标硬件设备的采集过程为:当接收到第一SDK模块发送的数据采集指令,响应于数据采集指令,软总线模块102调用第二通信接口,向目标硬件设备的框架层发送第二调用请求,当接收到第二调用请求,框架层调用目标硬件设备的硬件层采集目标硬件数据,并将目标硬件数据发送至软总线模块102。其中,第二通信接口为本地操作系统支持的、目标硬件设备的框架层提供的通信接口,当本地操作系统为高版本操作系统,该第二通信接口为高版本操作系统的框架层提供的API;当本地操作系统为低版本操作系统,该第二通信接口为低版本操作系统的框架层提供的API。
以目标硬件设备为相机为例,当接收到第一SDK模块发送的数据采集指令,响应于数据采集指令,软总线模块102根据本地操作系统的版本号,执行不同的操作。当操作系统系统为高版本操作系统时,软总线模块102基于对Camera2的相机框架层提供的API的调用能力,调用Camera2的相机框架层提供的API,向Camera2的相机框架层发送第二调用请求,Camera2的框架层将该第二调用请求发送至硬件层,响应于该第二调用请求,硬件层采集相机数据,并将采集到的相机数据发送至Camera2的相机框架层,由Camera2的相机框架层将相机数据发送至软总线模块102;当操作系统系统为低版本操作系统时,软总线模块102基于扩展包的能力,调用Camera1的相机框架层提供的API,向Camera1的相机框架层发送第二调用请求,Camera1的相机框架层将该第二调用请求发送至硬件层,响应于该第二调用请求,硬件层采集相机数据,并将采集到的相机数据发送至Camera1的相机框架层,由Camera1的相机框架层将相机数据发送至软总线模块102。
本申请实施例通过对不同硬件设备的调用能力进行封装,使得不同操作系统下框架层的API的差异及系统硬件访问权限的差异,在软总线模块102上磨平掉,解决了用户客户端与操作系统的兼容性问题。这样,用户客户端在接入该SDK时,无需考虑这些差异,降低了用户客户端的接入成本,提高了接入效率。
由于软总线并非真实的总线,而是一种虚拟总线,因此,在基于软总线进行数据传输之前,需要按照软总线协议对需要传输的数据进行封装,该软总线协议为规定软总线进行数据传输一种协议。当本申请中的软总线模块102获取到目标硬件数据,软总线模块按照软总线协议对目标硬件数据进行封装,得到封装后的目标硬件数据,进而该封装后的目标硬件数据发送至第一SDK模块101。
为了提高数据传输的安全性,当接收到软总线模块发送的封装后的目标硬件数据,第一SDK模块101还将对目标硬件数据进行加密,得到加密数据,进而按照预设通信协议将加密数据发送至云服务器。
本申请实施例中当用户客户端中集成该SDK,并在云服务器上部署云游戏,用户客户端即可运行该云游戏。对用户客户端来说,一方面无需进行二次开发,只需调用几个通信接口、处理几个事件即可,接入过程十分友好,另一方面无需具有强大的渲染能力,运行过程是轻量的。对游戏来说,无需进行二次开发,能够向用户呈现出游戏的原始画面及场景,用户体验效果较佳。
需要说明的是,上述只是结合数据传输场景描述了SDK的功能,除了上述功能外,SDK还具有其他功能,比如对游戏生命周期的变化数据、游戏的卡顿数据等进行同步,这些功能在实现时也是基于API和事件码的方式。
本申请实施例提供了一种用于实现数据传输的SDK,该SDK具有与云服务器通信的能力及调用用户客户端本地的硬件设备采集硬件数据的能力。当将该SDK集成在用户客户端中,用户客户端可接收云客户端生成的、经云服务器转发的数据采集指令,响应于该数据采集指令,用户客户端能够调用目标硬件设备采集目标硬件数据,进而将该目标硬件数据发送至云服务器,再由云服务器发送至云客户端,从而实现了将用户客户端的硬件数据传输至云客户端。
图2示出了本申请实施例提供的数据传输方法所涉及的实施环境,参见图2,该实施环境包括用户客户端和云服务器。
其中,用户客户端中集成有图1所示的SDK,该SDK能够实现API及事件码功能、数据采集功能及数据传输功能。该API为用户客户端与SDK通信的接口,用户客户端所生成的授权通知消息(包括第一授权通知消息及第二授权通知消息)通过该API发送至SDK,该API包括图片上传API、视频下载API及远程日志API等,该图片上传API用于在用户客户端与SDK之间传输图片数据,该视频下载API用于在用户客户端与SDK之间传输下载的视频数据,该远程日志数据用于在用户客户端与SDK之间远程传输日志数据。该事件码包括用户授权事件码(即第一事件码)和云端数据事件码(即第二事件码)。数据采集过程中需要对硬件设备的调用功能进行封装,包括相机调用封装、麦克风调用封装、陀螺仪调用封装、剪贴板调用封装、相册访问调用封装等。数据传输功能包括基于WebRTC协议进行数据传输及进行数据加密。
云服务器包括代理服务器、手游服务器及端游服务器等。代理服务器与SDK通过WebRTC通道进行通信。该代理服务器用于在接收到SDK发送的硬件数据或指令后,根据集成该SDK的用户客户端的类型,对硬件数据或指令进行转发,如果用户客户端的类型为手游,则将硬件数据或指令发送给手游服务器,如果用户客户端的类型为端游,则将硬件数据或指令发送给端游服务器。该手游服务器可以为一个板卡服务器,端游服务器可以为Windows服务器。手游服务器和端游服务器均采用容器技术,每个容器中可以同时运行多款云游戏。手游容器与其上运行的手游的云客户端之间采用软总线的方式进行通信,端游容器与其上运行的端游的云客户端之间采用Hook(钩子函数)的方式进行通信。该代理服务器、手游服务器及端游服务器可以为单独的物理服务器,也可以为多个物理服务器组成的集群或分布式系统等,本申请实施例不对代理服务器、手游服务器及端游服务器的类型作具体的限定。
图3示出了本申请实施例中实现云服务器和用户客户端互通的主要逻辑,该逻辑包括指令下发、数据采集、数据传输及数据处理过程。
其中,指令下发主要由云客户端和云服务器配合完成,是云服务器和用户客户端互通的需求发起方。在云游戏运行过程中,云客户端因使用需求需要触发调用硬件设备采集硬件数据,例如,打开相机采集相机数据、打开麦克风获取语音数据等,如果是用户客户端本地运行的游戏,则用户客户端可直接通过本地操作系统调用硬件设备,但是在云游戏场景下,游戏在云服务器上运行,此时云客户端将触发生成对针对硬件设备的数据采集指令,进而将该数据采集指令发送至云服务器,由云服务器将该数据采集指令下发给SDK。
数据采集主要由集成有SDK的用户客户端或者SDK完成,当接收到数据采集指令,SDK调用本地的硬件设备采集硬件数据。在硬件数据采集过程中,SDK需要进行用户授权和硬件设备授权,以确保数据采集过程合规,从而保护用户的隐私安全。
数据传输为用户客户端或者SDK与云服务器按照预设的数据传输协议进行指令或者硬件数据的传输过程。在将指令或硬件数据传输至云服务器之前,需要采用加密算法对指令或硬件数据进行加密。
数据处理过程为代理服务器接收到SDK上传的硬件数据或指令后,基于相应的解密算法,对接收到的硬件数据或指令进行解密,然后根据解密出的硬件数据或指令的逻辑,采用相应的协议进行解析,比如有些指令为传输类指令,有些指令为授权类指令,不同指令的功能不同,协议也不同。当解析成功后,代理服务器将解析得到的数据传输给手游容器或端游容器,进而在手游容器或端游容器中对接收到数据进行包装,进而将包装后的数据传输给云客户端。对于手游容器来说,按照软总线协议对接收到的数据进行包装;对于端游容器来说,按照Windows协议对接收到的数据进行包装。需要说明的是,手游容器和端游容器虽然处理流程上类似,但是在实现上有一定的差异,需要结合系统进行适配和处理。
本申请实施例提供了一种数据传输方法,以云客户端、用户客户端及云服务器执行本申请实施例,该用户客户端中集成有SDK,参见图4,本申请实施例提供的方法流程包括:
401、云客户端向云客户端发送数据采集指令。
通常用户客户端在启动云游戏时,会向云服务器发送云游戏的启动请求,该启动请求包括云游戏的相关信息,当接收到该启动请求,云服务器可以确定出该云游戏是手游,还是端游戏,如果是手游,则将该启动请求调度到手游容器上,如果是端游,则将该启动请求调度到端游容器上。当将启动请求调度到相应的容器后,相应容器会将调用信息返回给用户客户端,用户客户端接收到调度信息后,基于接收到的调用信息与相应的容器建立连接,进而基于所建立的连接,采用预设通信协议进行通信。
在云游戏场景下,当云客户端在运行过程中需要调用硬件设备采集硬件数据,该云客户端将生成数据采集指令,进而将该数据采集指令发送至云服务器。
402、当接收到数据采集指令,云服务器将数据采集指令发送至SDK。
云服务器接收到该数据采集指令,按照预设传输协议将该数据采集指令发送至SDK。
为提高数据传输的安全性,云服务器在数据采集指令下发的SDK之前,还将采用加密算法对该数据采集指令进行加密,进而将加密指令发送至SDK。
403、当接收到云服务器发送的数据采集指令,响应于数据采集指令,用户客户端调用目标硬件设备采集目标硬件数据。
当通过SDK接收到云服务器发送的数据采集指令,响应于该数据采集指令,用户客户端通过SDK调用目标硬件设备采集目标硬件数据。该过程具体实现时包括:SDK的软总线模块调用目标硬件设备的框架层的第二通信接口,向框架层发送第二调用请求,当接收到第二调用请求,框架层调用目标硬件设备的硬件层采集目标硬件数据,并将采集到的硬件数据发送给SDK的软总线模块。
404、用户客户端将目标硬件数据发送至云服务器。
当获取到目标硬件数据,用户客户端采用预设通信协议,将该目标硬件数据发送至云服务器中的代理服务器。
405、当接收到目标硬件数据,云服务器将目标硬件数据发送至云客户端。
代理服务器在接收到目标硬件数据之后,对目标硬件数据进行解析,得到解析后的目标硬件数据。在得到解析后的目标硬件数据后,代理服务器判断用户客户端和云客户端对应的应用程序为手游还是端游,如果为手游,则代理服务器将解析后的目标硬件数据发送给手游容器,手游容器采用软总线的方式将解析后的目标硬件数据发送至云客户端;如果为端游,则代理服务器将解析后的目标硬件数据发送给端游容器,端游容器采用Hook的方式将解析后的目标硬件数据发送至云客户端。
相关技术中云服务器接收到用户客户端发送的硬件数据之后,直接将接收到的硬件数据透传给云客户端,不会对接收到的硬件数据进行任何加工、响应等,由于这些数据是用户客户端侧基于数据传输协议、加密协议等传输的数据,云客户端可能无法解析出这些硬件数据,因而无法基于这些硬件数据进行画面的渲染。而本申请实施例中云服务器在接收到SDK发送的目标硬件数据后,对接收到的目标硬件数据进行解析,进而将解析后的目标硬件数据发送至云客户端,由于云客户端接收到的目标硬件数据为解析后的数据,无需云客户端进行处理,提高了云客户端对目标硬件数据的渲染成功率。
图5示出了相机数据的传输和处理流程,参见图5,用户客户端中的标准相机硬件层为操作系统提供的抽象层,该抽象层即为该相机设备对外暴露的、统一标准的通信接口,不同版本的操作系统均可访问该标准的通信接口。实际上不同版本的系统对相机的访问为对相机框架层的访问能力,这个能力对上层SDK来说,提供了Camera2和Camera1不同的相机框架层,不同版本的操作系统在实现时是有差异的,高版本操作系统直接使用Camera2的能力,低版本系统使用扩展包的能力,这样相机数据的采集可以通过标准的方式处理,降低了对相机访问的难度。用户客户端中集成有SDK,当接收到数据采集指令,SDK的软总线模块调用操作系统的相机框架层提供的第二通信接口,向相机框架层发送第二调用请求,当接收第二调用请求,相机框架层调用硬件层采集相机数据,硬件层将采集到的相机数据发送至相机框架层,由相机框架层发送至SDK的软总线模块,当接收到相机框架层发送的相机数据,SDK的软总线模块对接收到的相机数据进行封装,然后基于WebRTC协议将封装后的相机数据发送至云服务器。云服务器基于WebRTC协议对接收到封装的相机数据之后,对该封装的相机数据进行解析,进而将解析后的相机数据发送给软总线模块,软总线模块接收到该相机数据后,将该相机数据提供给通用相机硬件抽象层,该通用相机硬件抽象层参考标准软总线能力定义,为软总线模块的实现细节。通用相机抽象层通过底层API形式,将相机数据提供给相机框架层,相机框架层将该相机数据提供给相机应用,该相机应用实际上为云客户端。采用本申请实施例提供的方法,云客户端并不会感知到相机数据的来源,会将这个相机数据作为普通数据来使用,然后对该相机数据进行响应和处理。
上述图5以相机数据的采集和处理过程为例进行说明,对于其他硬件设备的采集和处理过程,与上述相机数据的采集和处理过程同理。所不同的是图5中相机的框架层和硬件层将换成相应硬件设备的框架层及硬件层。
考虑到手游容器采用软总线的方式进行通信时,虽然可以参考标准的API实现,但是数据实现过程还是存在差异的,例如硬件设备采集到硬件数据后直接透传给上层,但是基于软总线模块采集到硬件数据后,硬件数据基于WebRTC协议传输给云服务器,云服务器基于WebRTC协议接收到硬件数据,并对接收到的硬件数据进行解析,由于这些数据是有逻辑属性的,有些数据需要提供到上层,有些数据需要处理后提供给上层,有些数据需要内部消化掉,为确保不同的数据能够采用不同的处理方式,可对框架层和硬件层进行定制。
在本申请实施例中,云客户端和用户客户端中集成有SDK,为使同一云游戏的云客户端和用户客户端可以通信,可在用户客户端与云服务器之间提供一个数据通道。在借助该数据通道通信时,可以提供一个非标准的API,当云游戏的功能需要扩展时,可借助该非标准的API获取或注入信息。
本申请实施例提供了一种数据传输方法,以云客户端、云服务器及用户客户端执行本申请实施例,该用户客户端中集成有SDK,参见图6,本申请实施例提供的方法流程包括:
601、云客户端向云服务器发送数据采集指令。
602、当接收到数据采集指令,云服务器将数据采集指令发送至SDK。
603、当接收到云服务器发送的数据采集指令,响应于数据采集指令,用户客户端执行针对目标硬件设备调用的用户授权操作。
为了更好地保护用户的隐私,响应于数据采集指令,用户客户端在调用目标硬件设备采集硬件数据之前,需要用户进行授权,该授权过程包括用户授权和硬件设备授权。
用户授权过程包括:当基于第一事件码监听到该数据采集指令,SDK的软总线模块向第二SDK模块发送第一授权调用消息,第二SDK模块通过第一通信接口向用户客户端发送第一授权调用消息,当接收到第一授权调用消息,用户客户端生成针对目标硬件设备的第一调用请求,并基于第一通信接口将第一调用请求发送至第二SDK模块,当接收到第一调用请求,第二SDK模块将该第一调用请求发送至软总线模块,响应于该第一调用请求,软总线模块生成第一授权提示消息,进而将该第一授权提示消息发送至第二SDK模块,第二SDK模块通过第一通信接口将第一授权提示消息发送至用户客户端,当接收到该第一授权提示消息,用户客户端显示该第一授权提示消息,该第一授权提示消息用于提示用户执行用户授权操作,当检测到用户的授权操作,用户客户端生成第一授权通知消息,并通过第一通信接口将该第一授权通知消息发送给第二SDK模块,第二SDK模块将该第一授权通知消息发送至软总线模块,当接收到第一授权通知消息,软总线模块确定用户授权成功。
604、当用户授权成功,用户客户端执行针对目标硬件设备调用的硬件设备授权操作。
硬件设备授权过程包括:软总线模块向用户客户端的本地操作系统发送针对目标硬件设备的第二授权调用消息,当接收到第二授权调用消息,本地操作系统向用户客户端发送第二授权提示消息,当接收到第二授权提示消息,用户客户端显示该第二授权提示消息,该第二授权提示消息用于提示用户执行硬件设备授权操作,当检测到用户的授权操作,用户客户端生成第二授权通知消息,并通过第一通信接口将该第二授权通知消息发送至第二SDK模块,第二SDK模块将该第二授权通知消息发送至软总线模块,当接收到第二授权通知消息,软总线模块确定硬件设备授权成功。
605、当硬件设备授权成功,用户客户端调用目标硬件设备采集目标硬件数据。
606、用户客户端将目标硬件数据发送至云服务器。
607、当接收到目标硬件数据,云服务器将目标硬件数据发送至云客户端。
在本申请实施例中,当接收到目标硬件数据后,云客户端返回调用结果通知消息,云服务器会将该调用结果通知消息发送至SDK,以提示SDK云客户端已接收到该目标硬件数据。响应于该调用结果通知消息,目标硬件设备处于数据采集状态。当基于第二事件码监听到目标硬件设备由停止状态变为数据采集状态,SDK生成状态变化通知消息,进而通过第一通信接口将状态变化通知消息发送至用户客户端,从而使得用户客户端获知目标硬件设备的当前状态。
本申请实施例提供了一种通信方法,以云客户端、云服务器及用户客户端执行本申请实施例为例,该用户客户端中集成有SDK,参见图7,本申请实施例提供的方法流程包括:
701、云客户端向云服务器发送数据采集指令。
702、当接收到数据采集指令,云服务器将数据采集指令发送至SDK。
703、当接收到云服务器发送的数据采集指令,响应于数据采集指令,用户客户端调用目标硬件设备采集目标硬件数据。
704、用户客户端按照软总线协议对目标硬件数据进行封装,得到封装后的目标硬件数据,并对封装后的目标硬件数据进行加密,得到加密数据。
当调用目标硬件设备采集到目标硬件数据,软总线模块按照软总线协议对目标硬件数据进行封装,该软总线协议可以为protobuf数据协议等,该protobuf数据协议定义了云端互通的本地相机协议、麦克风协议、剪贴板协议、相册协议及远程日志协议等。当得到封装后的目标硬件数据,用户客户端采用加密算法对封装后的目标硬件数据进行加密,得到加密数据。
705、用户客户端基于预设通信协议,将加密数据发送至云服务器。
706、当接收到加密数据,云服务器对加密数据进行解密,得到目标硬件数据,并将目标硬件数据发送至云客户端。
当接收到加密数据,代理服务器按照与加密算法相应的解密算法对加密数据进行解密,得到目标硬件数据,进而将目标硬件数据发送至相应的容器,然后由相应容器将该目标硬件数据发送至云客户端。通过对传输的数据进行加密,提高了所传输的数据的安全性。
图8示出了本申请实施例提供的一种数据传输方法的流程图,参见图8,用户客户端中集成有SDK,该SDK包括串流SDK模块(第一SDK模块)、PaaS SDK模块(第二SDK模块)及软总线模块。图8中将集成该SDK的用户客户端拆分成单独的用户客户端及SDK,并将该SDK拆分成串流SDK模块、PaaS SDK模块及软总线模块几部分,从而通过各个模块之间的交互、模块与单独的客户端之间的交互,直观地展示在整个数据传输过程中,集成有SDK的用户客户端内部的交互过程。具体交互过程如下:
当该用户客户端接入到云服务器时,会对所集成的SDK执行初始化操作。SDK初始化后,用户客户端向PaaS SDK模块发送注册请求,当接收到注册请求,PaaS SDK模块将注册请求发送至软总线模块,响应于该注册请求,软总线模块对第一事件码和第二事件码进行注册。注册成功后,第一事件码和第二事件码与软总线模块内部相关的功能模块绑定,当触发第一事件码和第二事件码的监听事件,软总线模块可执行相应的监听逻辑。当基于第一事件码监听到软总线模块对硬件设备的调用事件,软总线模块生成第一授权调用消息,并将该第一授权调用消息发送至PaaS SDK模块,PaaS SDK模块通过第一通信接口将第一授权调用消息发送至用户客户端,当接收到第一授权调用消息,用户客户端生成针对硬件设备的第一调用请求,并通过第一通信接口将第一授权调用请求发送至PaaS SDK模块,当基于第一通信接口接收用户客户端发送的第一调用请求,PaaS SDK模块将第一调用请求发送至软总线模块,响应于第一调用请求,软总线模块生成第一授权提示消息,并将第一授权提示消息发送至PaaS SDK模块,PaaS SDK模块通过第一通信接口将该第一授权提示消息发送至用户客户端,当接收到第一授权提示消息,用户客户端显示该第一授权提示消息,该第一授权提示消息用于提示用户执行授权操作,当检测到用户的授权操作,用户客户端生成用户授权通知消息(即第一授权通知消息),进而通过第一通信接口将该用户授权通知消息发送至PaaS SDK模块,PaaS SDK模块将第一授权通知消息发送至软总线模块,响应于接收到的用户授权通知消息,软总线模块确定用户授权成功。
当确定用户授权成功,用户客户端的本地操作系统发送针对硬件设备的第二授权调用消息,当接收到该第二授权调用消息,本地操作系统向用户客户端发送第二授权提示消息,当接收到该第二授权提示消息,用户客户端显示该第二授权提示消息,该第二授权提示消息用于提示用户执行授权操作,当检测到用户执行授权操作,用户客户端生成硬件设备授权通知消息(即第二授权通知消息),进而通过第一通信接口将硬件设备授权通知消息发送至PaaS SDK模块,当基于第一通信接口接收到用户客户端发送的第二授权通知消息,PaaS SDK模块将硬件设备授权通知消息发送至软总线模块响应于接收到的硬件设备授权通知消息,软总线模块确定硬件设备授权成功。
当确定硬件设备授权成功,软总线模块调用硬件设备采集硬件数据,并对采集到的硬件数据进行封装,进而将封装后的硬件数据发送至串流SDK模块,串流SDK模块按照预设的传输协议对该封装后的硬件数据发送至云服务器。为提高数据传输的安全性,在将封装后的硬件数据传输至云服务器之前,还将对该封装后的硬件数据进行加密。云服务器接收到该加密数据,对该加密数据进行解密,并将解密后的硬件数据发送至云客户端,云客户端接收到该硬件数据后,向云服务器返回调用结果通知消息,云服务器将该调用结果通知消息发送至串流SDK模块,由串流SDK模块发送至软总线模块,当接收到该调用结果通知消息,软总线模块向PaaS SDK模块返回状态变化通知消息,由PaaS SDK模块返回给用户客户端。
请参考图9,其示出了本申请实施例提供了一种数据传输装置的结构示意图,该装置设置于用户客户端中,可以通过软件、硬件或者二者结合实现,成为电子设备的全部或一部分,该装置包括:
接收模块901,用于接收云服务器发送的数据采集指令,该数据采集指令由云客户端生成并发送至所述云服务器,该云客户端运行在云服务器上,云客户端与用户客户端对应同一应用程序;
调用模块902,用于响应于数据采集指令,调用目标硬件设备采集目标硬件数据;
发送模块903,用于将目标硬件数据发送至所述云服务器,以使云服务器发送至云客户端。
在本申请的另一个实施例中,该装置还包括:
执行模块,用于所述响应于所述数据采集指令,执行针对所述目标硬件设备调用的用户授权操作;
所述执行模块,还用于当用户授权成功,执行针对所述目标硬件设备调用的硬件设备授权操作;
调用模块902,用于当硬件设备授权成功,调用目标硬件设备采集目标硬件数据。
在本申请的另一个实施例中,调用模块902,用于调用目标硬件设备的框架层的第二通信接口,向框架层发送第二调用请求,该第二调用请求用于请求框架层调用目标硬件设备的硬件层采集目标硬件数据,该第二通信接口为本地操作系统支持的、目标硬件设备的框架层提供的通信接口;接收所述框架层发送的所述目标硬件数据。
在本申请的另一个实施例中,该装置还包括:
封装模块,用于按照软总线协议对所述目标硬件数据进行封装,得到封装后的目标硬件数据;
加密模块,用于对封装后的目标硬件数据进行加密,得到加密数据;
发送模块903,用于基于预设通信协议,将加密数据发送至所述云服务器。
在本申请的另一个实施例中,该装置还包括:
生成模块,用于当基于第二事件码监听到目标硬件设备的状态变化,生成状态变化通知消息,该状态变化通知消息用于指示目标硬件设备的当前状态。
请参考图10,其示出了本申请实施例提供了一种数据传输装置的结构示意图,该装置设置于云服务器中,可以通过软件、硬件或者二者结合实现,成为电子设备的全部或一部分,该装置包括:
接收模块1001,用于接收云客户端发送的数据采集指令,该云客户端运行在云服务器上;
发送模块1002,用于将数据采集指令发送至用户客户端,该用户客户端中集成有SDK,用户客户端与云客户端对应同一应用程序,该数据采集指令用于请求用户客户端调用目标硬件设备采集目标硬件数据;
发送模块1002,还用于当接收到目标硬件数据,将目标硬件数据发送至云客户端。
请参考图11,其示出了本申请实施例提供了一种数据传输装置的结构示意图,该装置设置于云客户端中,该云客户端运行在云服务器上,该云客户端可以通过软件、硬件或者二者结合实现,成为电子设备的全部或一部分,该装置包括:
发送模块1101,用于向云服务器发送数据采集指令,该数据采集指令由云服务器发送至用户客户端,该用户客户端集成有SDK,该用户客户端与云客户端对应同一应用程序,该数据采集指令用于请求用户客户端调用目标硬件设备采集目标硬件数据,并将目标硬件数据发送至云服务器;
接收模块1102,用于接收云服务器发送的目标硬件数据。
参见图12,本申请实施例提供了一种数据传输系统,该系统包括云客户端1201、云服务器1202及用户客户端1203,用户客户端1203集成有SDK,该云客户端1201与用户客户端1203对应同一应用程序;
云客户端1201用于生成数据采集指令,并将数据采集指令发送至云服务器;
云服务器1202用于将接收到的数据采集指令发送至用户客户端1203;
用户客户端1203用于响应于接收到的数据采集指令,调用目标硬件设备采集目标硬件数据,并将目标硬件数据发送至云服务器1202;
云服务器1202用于将接收到的目标硬件数据发送至云客户端1201。
图13示出了本申请一个示例性实施例提供的一种电子设备1300的结构框图。通常,电子设备1300包括有:处理器1301和存储器1302。
处理器1301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable LogicArray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1301可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1301还可以包括人工智能处理器,该人工智能处理器用于处理有关机器学习的计算操作。
存储器1302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是CD-ROM(Compact Disc Read-Only Memory,只读光盘)、ROM、RAM(Random AccessMemory,随机存取存储器)、磁带、软盘和光数据存储设备等。该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序被执行时能够实现数据传输方法。
当然,上述电子设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。输入/输出接口为处理器和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。通信组件被配置为便于电子设备和其他设备之间有线或无线方式的通信等。
本领域技术人员可以理解,图13中示出的结构并不构成对电子设备1300的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序用于被处理器调用并执行,以实现上述数据传输方法。
本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序用于被处理器调用并执行,以实现上述数据传输方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (14)
1.一种用于实现数据传输的软件开发工具包SDK,所述SDK集成在用户客户端中,其特征在于,所述SDK包括软总线模块和第一SDK模块,所述软总线模块与所述第一SDK模块连接;
所述第一SDK模块用于接收云服务器发送的数据采集指令,并将所述数据采集指令发送至所述软总线模块,所述数据采集指令由云客户端生成并发送至所述云服务器,所述云客户端运行在所述云服务器上,所述云客户端与所述用户客户端对应同一应用程序;
所述软总线模块用于响应于所述数据采集指令,调用所述用户客户端本地的目标硬件设备采集目标硬件数据,并将所述目标硬件数据发送至所述第一SDK模块;
所述第一SDK模块用于将所述目标硬件数据发送至所述云服务器,以使所述云服务器将所述目标硬件数据发送至所述云客户端。
2.根据权利要求1所述的SDK,其特征在于,所述SDK还包括:第二SDK模块,所述第二SDK模块与所述软总线模块连接,所述第二SDK模块提供第一通信接口,所述第一通信接口能够兼容不同属性的用户客户端,用于实现所述SDK与所述用户客户端的通信。
3.根据权利要求2所述的SDK,其特征在于,所述第二SDK模块中写入有第一事件码,所述第一事件码在所述软总线模块上注册后,能够对所述软总线模块对不同硬件设备的调用事件进行监听;
当基于所述第一事件码监听到所述软总线模块对所述目标硬件设备的调用事件,所述第二SDK模块及所述软总线模块用于执行针对所述目标硬件设备调用的用户授权操作;
当用户授权成功,所述第二SDK模块及所述软总线模块用于执行针对所述目标硬件设备调用的硬件设备授权操作;
当硬件设备授权成功,所述软总线模块用于调用所述用户客户端本地的目标硬件设备采集目标硬件数据。
4.根据权利要求3所述的SDK,其特征在于,所述软总线模块用于在基于所述第一事件码监听到对所述目标硬件设备的调用事件时,生成针对所述目标硬件设备的第一授权调用消息,并将所述第一授权调用消息发送至所述第二SDK模块;
所述第二SDK模块用于通过所述第一通信接口将所述第一授权调用消息发送至所述用户客户端,所述第一授权调用消息用于触发所述用户客户端生成针对所述目标硬件设备的第一调用请求;
所述第二SDK模块用于基于所述第一通信接口接收所述用户客户端发送的所述第一调用请求,并将所述第一调用请求发送至所述软总线模块;
所述软总线模块用于响应于所述第一调用请求,生成第一授权提示消息,并将所述第一授权提示消息发送至所述第二SDK模块;
所述第二SDK模块用于通过所述第一通信接口将所述第一授权提示消息发送至所述用户客户端,所述第一授权提示消息用于提示用户执行授权操作;
所述第二SDK模块用于通过所述第一通信接口接收所述用户客户端发送的第一授权通知消息,并将所述第一授权通知消息发送至所述软总线模块,所述第一授权通知消息为所述用户客户端检测到所述用户的授权操作时生成;
所述软总线模块用于响应于接收到的所述第一授权通知消息,确定用户授权成功。
5.根据权利要求3所述的SDK,其特征在于,所述软总线模块用于确定用户授权成功后,向所述用户客户端的本地操作系统发送针对所述目标硬件设备的第二授权调用消息,所述第二授权调用消息用于请求所述本地操作系统向所述用户客户端发送第二授权提示消息,所述第二授权提示消息用于提示用户执行硬件设备授权操作;
所述第二SDK模块用于基于所述第一通信接口接收所述用户客户端发送的第二授权通知消息,并将所述第二授权通知消息发送至所述软总线模块,所述第二授权通知消息为所述用户客户端在检测到所述用户的硬件设备授权操作时生成;
所述软总线模块用于响应于接收到的所述第二授权通知消息,确定硬件设备授权成功。
6.根据权利要求2所述的SDK,其特征在于,所述第二SDK模块中还写入有第二事件码,所述第二事件码在所述软总线模块上注册后,能够对不同硬件设备的状态变化事件进行监听;
当基于所述第二事件码监听到所述目标硬件设备的状态变化时,所述软总线模块用于生成状态变化通知消息,并将所述状态变化通知消息发送至所述第二SDK模块;
所述第二SDK模块用于通过所述第一通信接口将所述状态变化通知消息发送至所述用户客户端,所述状态变化通知消息用于指示所述目标硬件设备的当前状态。
7.根据权利要求1至6中任一项所述的SDK,其特征在于,所述软总线模块具有对不同操作系统下不同硬件设备的框架层的调用能力;
所述软总线模块用于响应于所述数据采集指令,调用第二通信接口,向所述框架层发送第二调用请求,所述第二通信接口为本地操作系统支持的、所述目标硬件设备的框架层提供的通信接口,所述第二调用请求用于请求所述框架层调用所述目标硬件设备的硬件层采集所述目标硬件数据;
所述软总线模块用于接收所述框架层发送的所述目标硬件数据。
8.一种数据传输方法,其特征在于,所述方法应用于用户客户端中,所述用户客户端中集成有上述权利要求1至7中任一项所述的SDK,所述方法包括:
接收云服务器发送的数据采集指令,所述数据采集指令由云客户端生成并发送至所述云服务器,所述云客户端运行在所述云服务器上,所述云客户端与所述用户客户端对应同一应用程序;
响应于所述数据采集指令,调用所述目标硬件设备采集目标硬件数据;
将所述目标硬件数据发送至所述云服务器,以使所述云服务器发送至所述云客户端。
9.一种数据传输方法,其特征在于,所述方法应用于云服务器,所述方法包括:
接收云客户端发送的数据采集指令,所述云客户端运行在所述云服务器上;
将所述数据采集指令发送至用户客户端,所述用户客户端中集成有上述权利要求1至7中任一项所述的SDK,所述用户客户端与所述云客户端对应同一应用程序,所述数据采集指令用于请求所述用户客户端调用目标硬件设备采集目标硬件数据;
当接收到所述目标硬件数据,将所述目标硬件数据发送至所述云客户端。
10.一种数据传输方法,其特征在于,所述方法应用于云客户端,所述云客户端运行在云服务器上,所述方法包括:
向所述云服务器发送数据采集指令,所述数据采集指令由所述云服务器发送至用户客户端,所述用户客户端集成有上述权利要求1至7中任一项所述的SDK,所述用户客户端与所述云客户端对应同一应用程序,所述数据采集指令用于请求所述用户客户端调用目标硬件设备采集目标硬件数据,并将所述目标硬件数据发送至所述云服务器;
接收所述云服务器发送的所述目标硬件数据。
11.一种数据传输系统,其特征在于,所述系统包括云客户端、云服务器及用户客户端,所述用户客户端集成有权利要求1至7中任一项所述的SDK,所述云客户端与所述用户客户端对应同一应用程序;
所述云客户端用于生成数据采集指令,并将所述数据采集指令发送至所述云服务器;
所述云服务器用于将接收到的所述数据采集指令发送至所述用户客户端;
所述用户客户端用于响应于接收到的所述数据采集指令,调用所述目标硬件设备采集目标硬件数据,并将所述目标硬件数据发送至所述云服务器;
所述云服务器用于将接收到的所述目标硬件数据发送至所述云客户端。
12.一种电子设备,其特征在于,包括处理器以及存储器;所述存储器存储至少一条计算机程序;所述至少一条计算机程序用于被所述处理器调用并执行,以实现如权利要求8所述的数据传输方法,或,实现权利要求9所述的数据传输方法,或,实现权利要求10所述的数据传输方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序用于被处理器调用并执行,以实现如权利要求8所述的数据传输方法,或,实现权利要求9所述的数据传输方法,或,实现权利要求10所述的数据传输方法。
14.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序用于被处理器调用并执行,以实现如权利要求8所述的数据传输方法,或,实现权利要求9所述的数据传输方法,或,实现权利要求10所述的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310132998.XA CN116170610A (zh) | 2023-02-17 | 2023-02-17 | 用于实现数据传输的sdk及数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310132998.XA CN116170610A (zh) | 2023-02-17 | 2023-02-17 | 用于实现数据传输的sdk及数据传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116170610A true CN116170610A (zh) | 2023-05-26 |
Family
ID=86410934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310132998.XA Pending CN116170610A (zh) | 2023-02-17 | 2023-02-17 | 用于实现数据传输的sdk及数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116170610A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116600153A (zh) * | 2023-07-17 | 2023-08-15 | 腾讯科技(深圳)有限公司 | 设备管理方法和装置、存储介质及电子设备 |
-
2023
- 2023-02-17 CN CN202310132998.XA patent/CN116170610A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116600153A (zh) * | 2023-07-17 | 2023-08-15 | 腾讯科技(深圳)有限公司 | 设备管理方法和装置、存储介质及电子设备 |
CN116600153B (zh) * | 2023-07-17 | 2024-04-09 | 腾讯科技(深圳)有限公司 | 设备管理方法和装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9451043B2 (en) | Remote virtualization of mobile apps | |
US20100257539A1 (en) | System, method and apparatus for providing functions to applications on a digital electronic device | |
CN108536524A (zh) | 资源更新方法、装置、终端及存储介质 | |
KR20110106870A (ko) | 실시간 커널 | |
JP2005518015A (ja) | 移動体端末用プラットフォーム・システムのミドルウエア・サービス・レイヤ | |
CN106797400A (zh) | 用于使得能够经由服务层访问第三方服务的系统和方法 | |
CN115065684B (zh) | 数据处理方法、装置、设备以及介质 | |
CN114339332B (zh) | 一种移动终端、显示设备及跨网投屏方法 | |
US20170346792A1 (en) | System and method for kernel level video operations | |
WO2022057677A1 (zh) | 振动控制方法、装置、电子设备和计算机可读存储介质 | |
CN114741008B (zh) | 分布式跨设备协同方法、电子设备及通信系统 | |
US11809380B2 (en) | Information sharing method, apparatus, electronic device, and storage medium | |
Puder et al. | Exposing native device APIs to web apps | |
CN113079216A (zh) | 一种云应用的实现方法、装置、电子设备及可读存储介质 | |
WO2022042210A1 (zh) | 基于代理服务的设备调用方法、电子设备及可读存储介质 | |
CN116170610A (zh) | 用于实现数据传输的sdk及数据传输方法 | |
AlDuaij et al. | Heterogeneous multi-mobile computing | |
JP2023516905A (ja) | オーディオデータ処理方法、遅延時間取得方法、サーバ、及びコンピュータプログラム | |
US10579577B2 (en) | Bridge and asynchronous channel based bus to provide UI-to-UI asynchronous communication | |
CN115278304A (zh) | 云音视频处理方法、系统、电子设备及存储介质 | |
CN103024545B (zh) | 一种机顶盒的操作系统启动方法及机顶盒、服务器 | |
CN116233209A (zh) | 一种gpu云渲染服务远程管理调度方法 | |
Nakajima | Experiences with building middleware for audio and visual networked home appliances on commodity software | |
CN110262912B (zh) | 一种过程调用gRPC的调用方法及装置 | |
CN102932428B (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 |