CN113709185B - 一种实现Android云串流的方法和系统 - Google Patents
一种实现Android云串流的方法和系统 Download PDFInfo
- Publication number
- CN113709185B CN113709185B CN202111233690.1A CN202111233690A CN113709185B CN 113709185 B CN113709185 B CN 113709185B CN 202111233690 A CN202111233690 A CN 202111233690A CN 113709185 B CN113709185 B CN 113709185B
- Authority
- CN
- China
- Prior art keywords
- audio
- streaming
- video stream
- instance
- android
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及一种实现Android云串流的方法和系统,其中,该方法包括:触发PC端的轻端应用,向WebRTC串流插件发出登录指令,并通过http接口向WebRTC串流插件获取音视频流地址;接着,WebRTC串流插件向负载模块获取音视频流地址和键值下发地址,并将音视频流地址返回给轻端应用,并发起键值下发建链;最后,WebRTC串流插件中键值建链并触发基板管理控制器中的实例,获取Android模拟器中的音视频流,通过实例将音视频流进行格式转换,并通过网络传输传回PC端的显示装置中,完成Android云应用串流。通过本申请,提高了运行性能和用户体验感。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种实现Android云串流的方法和系统。
背景技术
随着Android智能机越来越深入用户的生活,用户对Android应用的依赖度也越来越大。因此,为了方便使用,用户提出了在PC端运行Android应用的需求。通常,PC端系统为Linux系统或Windows系统,而这两个系统常常难以兼容Android应用。
在相关技术中,解决兼容问题有三种主流方法:1、在PC端内置模拟器来模拟运行Android环境;2、利用Android-x86这一开源项目将最新版本的Android移植到Windows硬件;3、下载ARC Welder作为插件挂载到 Chrome 浏览器里,利用ARC Welder将apk格式的Android应用转换并打包成 Chrome 浏览器应用以实现运行。
然而,以上三种方法均存在不同的缺点:方法1中,由于模拟器的内存有限,因此,在运行比较耗资源的应用时,模拟器的运行速度相对缓慢;且在运行过程中,分辨率设置越大,模拟器就越卡。方法2中,Android-x86对ARM指令的翻译存在许多不足。为此,即使安装了Android-x86,PC也只能运行一部分的 Android 应用。同时,在运行一些大型的游戏或视频类应用时容易出现卡顿、闪退的兼容性问题。方法3中,ARC Welder 仍处于测试阶段,兼容性不够高。例如,ARC Welder并不能完整支持所有的Android API,它仅支持部分的Google Play服务API,因此一些严重依赖 Google 服务的应用或一些使用了相对偏门的API的软件会出现运行错误。此外,ARC Welder也不支持应用内购买等。
目前针对相关技术中,在解决PC端Android应用的系统兼容问题时,带来的内存不足或兼容性不高的缺陷,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种实现Android云串流的方法和系统,以至少解决相关技术中在解决PC端Android应用的系统兼容问题时,带来的内存不足或兼容性不高的缺陷。
第一方面,本申请实施例提供了一种实现Android云串流的方法,应用于Android云串流系统中,所述系统包括:PC端、WebRTC串流插件、负载模块和串流装置,其中,所述串流装置包括基板管理控制器和Android模拟器;
触发所述PC端的轻端应用,向所述WebRTC串流插件发出登录指令,并通过http接口向所述WebRTC串流插件获取音视频流地址;
所述WebRTC串流插件向所述负载模块获取所述音视频流地址和键值下发地址,并将所述音视频流地址返回给所述轻端应用,并发起键值下发建链;
所述WebRTC串流插件中键值建链并触发所述基板管理控制器中的实例,获取所述Android模拟器中的音视频流,通过所述实例将所述音视频流进行格式转换,并通过网络传输传回所述PC端的显示装置中,完成Android云应用串流。
在其中一些实施例中,在将所述音视频流地址返回给所述轻端应用,并发起键值下发建链之后,所述方法包括:
所述轻端应用获取所述音视频流地址,并向所述WebRTC串流插件发起建立音视频通信通道的请求。
在其中一些实施例中,在所述WebRTC串流插件中键值建链并触发所述基板管理控制器中的实例之前,所述方法包括:
所述基板管理控制器通过实例守护算法获知所述实例的运行状态,并根据所述实例的运行状态调取一个实例模拟所述Android模拟器;
所述负载模块通过负载算法计算最小连接数,获取所述基板管理控制器的运行状态,确定实施串流的所述基板管理控制器。
在其中一些实施例中,所述通过所述实例将所述音视频流进行格式转换,并通过网络传输传回所述PC端的显示装置中包括:
通过所述实例将所述音视频流的TCP格式转换成RTSP格式,并通过网络传输传回所述WebRTC串流插件;
所述WebRTC串流插件获取所述音视频流,并通过网络传输传回所述显示装置。
在其中一些实施例中,在完成Android云应用串流并结束所述应用之后,所述方法包括:
通过快照技术,保存结束时间点的应用数据状态。
第二方面,本申请实施例提供了一种实现Android云串流的系统,所述系统包括:PC端、WebRTC串流插件、负载模块和串流装置,其中,所述串流装置包括基板管理控制器和Android模拟器;
触发所述PC端的轻端应用,向所述WebRTC串流插件发出登录指令,并通过http接口向所述WebRTC串流插件获取音视频流地址;
所述WebRTC串流插件向所述负载模块获取所述音视频流地址和键值下发地址,并将所述音视频流地址返回给所述轻端应用,并发起键值下发建链;
所述WebRTC串流插件中键值建链并触发所述基板管理控制器中的实例,获取所述Android模拟器中的音视频流,通过所述实例将所述音视频流进行格式转换,并通过网络传输传回所述PC端的显示装置中,完成Android云应用串流。
在其中一些实施例中,在将所述音视频流地址返回给所述轻端应用,并发起键值下发建链之后,
所述轻端应用获取所述音视频流地址,并向所述WebRTC串流插件发起建立音视频通信通道的请求。
在其中一些实施例中,在所述WebRTC串流插件中键值建链并触发所述基板管理控制器中的实例之前,
所述基板管理控制器通过实例守护算法获知所述实例的运行状态,并根据所述实例的运行状态调取一个实例模拟所述Android模拟器;
所述负载模块通过负载算法计算最小连接数,获取所述基板管理控制器的运行状态,确定实施串流的所述基板管理控制器。
在其中一些实施例中,所述实例将所述音视频流的TCP格式转换成RTSP格式,并通过网络传输传回所述WebRTC串流插件;
所述WebRTC串流插件获取所述音视频流,并通过网络传输传回所述显示装置。
在其中一些实施例中,在完成Android云应用串流并结束所述应用之后,
服务器通过快照技术,保存结束时间点的应用数据状态。
相比于相关技术,本申请实施例提供的实现Android云串流的方法,应用于Android云串流系统中,该系统包括:PC端、WebRTC串流插件、负载模块和串流装置,其中,串流装置包括基板管理控制器和Android模拟器;具体地,触发PC端的轻端应用,向WebRTC串流插件发出登录指令,并通过http接口向WebRTC串流插件获取音视频流地址;接着,WebRTC串流插件向负载模块获取音视频流地址和键值下发地址,并将音视频流地址返回给轻端应用,并发起键值下发建链;最后,WebRTC串流插件中键值建链并触发基板管理控制器中的实例,获取Android模拟器中的音视频流,通过实例将音视频流进行格式转换,并通过网络传输传回PC端的显示装置中,完成Android云应用串流。
在串流过程中,不同于现有技术需要下载浏览器插件并部署相应环境或第三方模拟器软件,本申请创新地加入云服务器组成串流装置。在串流装置中,通过Web RTC串流插件建立了显示装置与云服务器之间的信道,实现云串流。此外,本申请还利用快照技术确保用户在不同时间内的多次登陆状态相同。解决了在解决PC端Android应用的系统兼容问题时,带来的内存不足或兼容性不高的缺陷。
本申请的有益效果包括:
1. 兼有模拟器性能优秀、可随意调整分辨率的优点,与Android x86系统兼容性高,及Chrome插件ARC Welder资源占用率低、运行性能极好,完美解决Android应用无法在PC端流畅运行的问题。
2. 免去安装插件、下载依赖包与配置环境的繁杂步骤,用户体验感更好。
3. 在运行大型游戏或对电脑硬件配置要求较高的应用时,本申请将游戏渲染与计算放在云端服务器运行,本地无需再堆叠配置,既减少本地耗电量又降低运行大型游戏对电脑硬件配置的依赖度,提升游戏质量、提高用户体验。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的实现Android云串流的系统的结构框图;
图2是根据本申请实施例的实现Android云串流的方法的流程图;
图3是根据本申请实施例的实现Android云串流的时序图;
图4是根据本申请实施例的电子设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本实施例提供了一种实现Android云串流的系统,图1是根据本申请实施例的实现Android云串流的系统的结构框图,如图1所示,该系统包括:PC端、WebRTC串流插件(WebRTCStream/Apache)、负载模块(SLB)和串流装置,其中,串流装置包括基板管理控制器(Baseboard Manager Controller,简称BMC)和Android模拟器(Android Simlators)。
需要说明的是,PC端中的轻端应用开发是使用跨平台开发语言Qt完成的。用户在PC端点击轻端应用时即会向WebRTC串流插件发出登录指令,并请求获取流地址;WebRTC串流插件即轻端应用交互接口,与显示装置通过WebRTC接口和http协议双向通信;负载模块(SLB)即轻端应用负载接口,可部署于任意位置,主要负责串流服务器的调度;串流装置的作用是接收指令、运行应用、传输经过解编码压缩的数据流与键值,其中,串流装置由BMC与Android模拟器组成。BMC即轻端应用串流源设备,里面运行着数个实例(instance),实例是轻端应用的音视频流源,由TCP流转RTP流发出。此外,实例中内置示例程序包括Cloudneedle Audio Live、Cloudneedle Video Live与Cloudneedle Serial Sever,每个实例都绑定了一个Android模拟器。
具体地,本申请实施例中,用户触发PC端的轻端应用,向WebRTC串流插件发出登录指令,并通过http接口向WebRTC串流插件获取音视频流地址;接着,WebRTC串流插件向负载模块获取音视频流地址和键值下发地址,并将音视频流地址返回给轻端应用,并发起键值下发建链;最后,WebRTC串流插件中键值建链并触发实例,获取Android模拟器中的音视频流,通过实例将音视频流进行格式转换,并通过网络传输传回PC端的显示装置中,完成Android云应用串流。
通过上述系统,本申请实施例在不安装插件、不下载第三方模拟器软件的情况下,显示装置通过网络对串流装置中的主控板发起通信,主控板的网络层接收操作指令,然后在逻辑层负载调用子板模拟Android系统运行Android应用,随后子板将处理过的数据通过网络传输传回主控板,最后,主控板将经过编码压缩的数据流与键值传回显示装置,完成串流。解决了在解决PC端Android应用的系统兼容问题时,带来的内存不足或兼容性不高的缺陷,提高了运行性能和用户体验感。
需要说明的是,本实施例中的具体示例可以参考下述一种实现Android云串流的方法中的实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
此外,需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本申请实施例还提供了一种实现Android云串流的方法,该方法应用于上述的一种实现Android云串流的系统中, 图2是根据本申请实施例的实现Android云串流的方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,触发PC端的轻端应用,向WebRTC串流插件发出登录指令,并通过http接口向WebRTC串流插件获取音视频流地址;
本实施例中,用户点击并触发PC端的轻端应用,PC端基于用户的输入操作,向WebRTC串流插件发出登录指令,并通过http接口向WebRTC串流插件获取音视频流地址(相当于图1中的①);
步骤S202,WebRTC串流插件向负载模块获取音视频流地址和键值下发地址,并将音视频流地址返回给轻端应用,并发起键值下发建链;
优选的,WebRTC串流插件在接收到步骤S201中获取音视频流地址的请求后,WebRTC串流插件会向负载模块(SLB)获取音视频流地址和键值下发地址,WebRTC串流插件获取到音视频流地址之后,将其返回给轻端应用,再发起键值下发建链(相当于图1中的⑦)。WebRTC串流插件建立键值下发通道,同时,PC端的轻端应用获取到音视频流地址,并向WebRTC串流插件发起建立音视频通信通道的请求;
步骤S203,WebRTC串流插件中键值建链并触发基板管理控制器中的实例,获取Android模拟器中的音视频流,通过实例将音视频流进行格式转换,并通过网络传输传回PC端的显示装置中,完成Android云应用串流。
优选的,本实施例中,在WebRTC串流插件中键值建链并触发基板管理控制器中的实例之前,基板管理控制器通过实例守护算法获知实例的运行状态,并根据实例的运行状态调取一个实例模拟Android模拟器运行Android应用,例如微信。其中,实例守护算法的核心代码如下所示:
void ReportBg::CheckInstanceHeart()
{ #心跳检测
for(int i = 0; i < m_DemonHeart.InstanceTotalNum; i++){
if((GetTickCount() - m_DemonHeart.Instance[i].HeartTickTime >30*1000) && (m_Demon != NULL)){//30s
m_Demon->StopExe(m_DemonHeart.Instance[i].PID);
m_Demon->StartExe(BASEKEYPORT+i, BASEAUDIOPORT+i,BASEVIDEOPORT+i, m_DemonHeart.Instance[i].DevSerial);
}
}
}
接着,负载模块通过负载算法计算最小连接数,获取各个基板管理控制器的运行状态,最终确定实施串流的基板管理控制器,以便合理调度。其中,负载算法的核心代码如下所示:
pInstanceHeart DemonBg::GetInstance()
{#获取实例接口
pDemonHeart pDInstance = NULL;
QMap<qintptr, pDemonHeart>::iterator it = m_HadleEvts.begin();
if(it != m_HadleEvts.end()){#取出一个BMC实列信息
pDInstance = it.value();
++it;
}
if(pDInstance == NULL){#取出一个BMC实例信息不为空
return NULL;
}
while(it != m_HadleEvts.end()){#获取最优BMC实例信息
if(pDInstance->InstanceFreeNum < it.value()->InstanceFreeNum){
pDInstance = it.value();
}
++it;
}
for(int i = 0; i < pDInstance->InstanceTotalNum; i++){#取出空闲BMC下一个实例信息
if(pDInstance->Instance[i].state == 0){
pDInstance->Instance[i].state = 1;
return &pDInstance->Instance[i];
}
}
return NULL;
}
进一步地,WebRTC串流插件中键值建链(相当于图1中的⑦),触发实例并连接虚拟化Android模拟器,获取Android的音视频流(相当于图1中的③④过程),然后,通过实例将音视频流进行格式转换,并通过网络传输传回PC端的显示装置中,完成Android云应用串流。优选的,本实施例中,通过实例将音视频流由TCP格式转换成RTSP格式,再利用网络传输传回WebRTC串流插件,完成RTP到WebRTC接口的转换(相当于图1中的⑤);接着,WebRTC串流插件将音视频流通过网络传输回PC端的显示装置中(相当于图1中的⑥),从而实现了轻端应用到虚拟化Android手机的转换,完成Android云应用串流。
在其中一些实施例中,在用户结束轻端应用的使用并退出系统时,服务器端通过快照技术保存结束时间点的应用数据状态,以确保用户下一次登录轻端应用时,即使服务器端的BMC分配了另外的实例模拟Android系统,系统依然能通过读取快照来快速回滚数据。
通过上述步骤S201至步骤S203,本申请实施例在不安装插件、不下载第三方模拟器软件的情况下,显示装置通过网络对串流装置中的主控板发起通信,经过逻辑层负载模块主控板一路模拟Android系统地址到显示装置,显示装置根据地址打开模拟Android系统中的Android应用,随后子板将处理过的数据通过网络传输传回主控板,最后,主控板将经过编码压缩的数据流与键值传回显示装置,完成串流。解决了在解决PC端Android应用的系统兼容问题时,带来的内存不足或兼容性不高的缺陷,提高了运行性能和用户体验感。
具体地,图3是根据本申请实施例的实现Android云串流的时序图,如图3所示,用户打开轻端应用中的安卓应用程序,向WebRTC串流插件发出登录指令,并向WebRTC串流插件请求通信和键值端口(相当于图中的⑦),并发出RTSP请求(相当于图中的②);接着,WebRTC串流插件与负载模块建立通信,并获取RTSP与键值端口,负载模块与Android模拟器建立通信和网络连接后,获取Android的音视频流。其中,通过BMC中实例将音视频流由TCP格式转换成RTSP格式,再利用网络传输传回WebRTC串流插件,完成RTP到WebRTC接口的转换;然后WebRTC串流插件将音视频流通过网络传输回显示装置,从而实现了轻端应用到虚拟化Android手机的转换,完成整个Android云应用串流。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
另外,结合上述实施例中的实现Android云串流的方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种实现Android云串流的方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种实现Android云串流的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,图4是根据本申请实施例的电子设备的内部结构示意图,如图4所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图4所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种实现Android云串流的方法,数据库用于存储数据。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种实现Android云串流的方法,应用于Android云串流系统中,其特征在于,所述系统包括:PC端、WebRTC串流插件、负载模块和串流装置,其中,所述串流装置包括基板管理控制器和Android模拟器,所述基板管理控制器中运行着数个实例,实例是轻端应用的音视频流源,每个实例都绑定了一个Android模拟器,基板管理控制器根据各个实例的运行状态调取一个实例模拟Android模拟器运行Android应用;负载模块用于根据各个基板管理控制器的运行状态,确定实施串流的基板管理控制器;
触发所述PC端的轻端应用,向所述WebRTC串流插件发出登录指令,并通过http接口向所述WebRTC串流插件获取音视频流地址;
所述WebRTC串流插件向所述负载模块获取所述音视频流地址和键值下发地址,并将所述音视频流地址返回给所述轻端应用,并发起键值下发建链;
所述WebRTC串流插件中键值建链并触发所述基板管理控制器中的实例,获取所述Android模拟器中的音视频流,通过所述实例将所述音视频流进行格式转换,并通过网络传输传回所述PC端的显示装置中,完成Android云应用串流。
2.根据权利要求1所述的方法,其特征在于,在将所述音视频流地址返回给所述轻端应用,并发起键值下发建链之后,所述方法包括:
所述轻端应用获取所述音视频流地址,并向所述WebRTC串流插件发起建立音视频通信通道的请求。
3.根据权利要求1所述的方法,其特征在于,在所述WebRTC串流插件中键值建链并触发所述基板管理控制器中的实例之前,所述方法包括:
所述基板管理控制器获知各个实例的运行状态,并根据各个实例的运行状态调取其中一个实例模拟所述Android模拟器;
所述负载模块计算最小连接数,获取各个基板管理控制器的运行状态,确定实施串流的所述基板管理控制器。
4.根据权利要求1所述的方法,其特征在于,所述通过所述实例将所述音视频流进行格式转换,并通过网络传输传回所述PC端的显示装置中包括:
通过所述实例将所述音视频流的TCP格式转换成RTSP格式,并通过网络传输传回所述WebRTC串流插件;
所述WebRTC串流插件获取所述音视频流,并通过网络传输传回所述显示装置。
5.根据权利要求1所述的方法,其特征在于,在完成Android云应用串流并结束所述应用之后,所述方法包括:
通过快照技术,保存结束时间点的应用数据状态。
6.一种实现Android云串流的系统,其特征在于,所述系统包括:PC端、WebRTC串流插件、负载模块和串流装置,其中,所述串流装置包括基板管理控制器和Android模拟器,所述基板管理控制器中运行着数个实例,实例是轻端应用的音视频流源,每个实例都绑定了一个Android模拟器,基板管理控制器根据各个实例的运行状态调取一个实例模拟Android模拟器运行Android应用;负载模块用于根据各个基板管理控制器的运行状态,确定实施串流的基板管理控制器;
触发所述PC端的轻端应用,向所述WebRTC串流插件发出登录指令,并通过http接口向所述WebRTC串流插件获取音视频流地址;
所述WebRTC串流插件向所述负载模块获取所述音视频流地址和键值下发地址,并将所述音视频流地址返回给所述轻端应用,并发起键值下发建链;
所述WebRTC串流插件中键值建链并触发所述基板管理控制器中的实例,获取所述Android模拟器中的音视频流,通过所述实例将所述音视频流进行格式转换,并通过网络传输传回所述PC端的显示装置中,完成Android云应用串流。
7.根据权利要求6所述的系统,其特征在于,在将所述音视频流地址返回给所述轻端应用,并发起键值下发建链之后,
所述轻端应用获取所述音视频流地址,并向所述WebRTC串流插件发起建立音视频通信通道的请求。
8.根据权利要求6所述的系统,其特征在于,在所述WebRTC串流插件中键值建链并触发所述基板管理控制器中的实例之前,
所述基板管理控制器获知各个实例的运行状态,并根据各个实例的运行状态调取其中一个实例模拟所述Android模拟器;
所述负载模块计算最小连接数,获取各个基板管理控制器的运行状态,确定实施串流的所述基板管理控制器。
9.根据权利要求6所述的系统,其特征在于,
所述实例将所述音视频流的TCP格式转换成RTSP格式,并通过网络传输传回所述WebRTC串流插件;
所述WebRTC串流插件获取所述音视频流,并通过网络传输传回所述显示装置。
10.根据权利要求6所述的系统,其特征在于,在完成Android云应用串流并结束所述应用之后,
服务器通过快照技术,保存结束时间点的应用数据状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111233690.1A CN113709185B (zh) | 2021-10-22 | 2021-10-22 | 一种实现Android云串流的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111233690.1A CN113709185B (zh) | 2021-10-22 | 2021-10-22 | 一种实现Android云串流的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113709185A CN113709185A (zh) | 2021-11-26 |
CN113709185B true CN113709185B (zh) | 2022-06-28 |
Family
ID=78646803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111233690.1A Active CN113709185B (zh) | 2021-10-22 | 2021-10-22 | 一种实现Android云串流的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113709185B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114428670A (zh) * | 2022-03-16 | 2022-05-03 | 浙江云针信息科技有限公司 | 一种实现Windows应用串流的方法及系统 |
CN117176705B (zh) * | 2023-11-03 | 2024-01-26 | 成都阿加犀智能科技有限公司 | 一种工业相机视频流展示方法、装置、设备及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104469528B (zh) * | 2014-12-26 | 2018-06-19 | 北京奇虎科技有限公司 | 一种进行视频数据加载的方法、装置和浏览器客户端 |
US10046236B2 (en) * | 2016-06-13 | 2018-08-14 | Sony Interactive Entertainment America, LLC | Browser-based cloud gaming |
CN111131891B (zh) * | 2018-11-01 | 2023-01-24 | 阿里巴巴集团控股有限公司 | 一种音视频播放方法、装置、播放设备及系统 |
CN110881046A (zh) * | 2019-12-06 | 2020-03-13 | 广州微算互联信息技术有限公司 | 一种云手机对接WebRTC协议的方法、装置、介质及终端设备 |
CN112104623B (zh) * | 2020-08-31 | 2023-01-10 | 北京爱奇艺科技有限公司 | 云应用登录方法、装置、云设备、客户端以及系统 |
CN113423018B (zh) * | 2021-08-24 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 一种游戏数据处理方法、装置及存储介质 |
-
2021
- 2021-10-22 CN CN202111233690.1A patent/CN113709185B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113709185A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113709185B (zh) | 一种实现Android云串流的方法和系统 | |
CN106445583B (zh) | 一种页面显示方法、设备及系统 | |
WO2019222934A1 (zh) | 文件处理方法、装置和系统 | |
CN103092581B (zh) | 一种Web前端本地开发环境的搭建方法和装置 | |
US9635098B2 (en) | Open platform, open platform access system, storage medium, and method for allowing third party application to access open platform | |
US20190042283A1 (en) | Software application delivery and launching system | |
US20090113402A1 (en) | Server-based code compilation | |
US9819858B2 (en) | Video acquisition method and device | |
CN105183675A (zh) | 对usb设备的访问方法、装置、终端、服务器及系统 | |
CN111209122A (zh) | 接口调用方法、装置、电子设备及存储介质 | |
WO2020181814A1 (zh) | 应用程序升级方法、装置、终端及计算机可读存储介质 | |
Yousafzai et al. | Computational offloading mechanism for native and android runtime based mobile applications | |
CN115065684A (zh) | 数据处理方法、装置、设备以及介质 | |
US9830307B1 (en) | Ahead of time compilation of content pages | |
US20230236856A1 (en) | Desktop Cloud System and Related Method, Apparatus, Device, and Medium | |
CN115840590A (zh) | 基于安卓和ios跨端混合的方法、系统、设备及存储介质 | |
CN114489698A (zh) | 应用程序安装方法和装置 | |
WO2011101507A1 (es) | Método de transcodificación y reproducción de archivos de vídeo basado en tecnología grid en dispositivos de potencia computacional limitada | |
US8745257B1 (en) | Methods and apparatus for rendering video advertising on a mobile device | |
US20160196205A1 (en) | Method and apparatus for accessing remote mobile devices | |
Liu et al. | Supporting audio streaming in application cloud for embedded systems | |
KR102034845B1 (ko) | 선택적 인코딩 기반의 클라우드 스트리밍 서비스 방법 및 위한 장치 | |
CN116262177A (zh) | 云游戏登录方法、装置、计算机、存储介质及程序产品 | |
US20130246571A1 (en) | Store Client Side Data | |
CN114428670A (zh) | 一种实现Windows应用串流的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CB03 | Change of inventor or designer information |
Inventor after: Xiao Yun Inventor after: Chen Ge Inventor before: Xiao Yun |
|
CB03 | Change of inventor or designer information |