【技术实现步骤摘要】
一种基于异构缓存访问的跨运行环境显示输出共享方法
[0001]本专利技术属于在跨运行环境的数据共享
,具体涉及一种基于异构缓存访问的跨运行环境显示输出共享方法。
技术介绍
[0002]运行在不同环境中的应用程序通过对输入数据的处理形成输出数据,输出数据或以图片或视频的方式显示输出、或以音频的方式输出,也可以文件等方式进行输出。对于运行环境而言,屏幕显示也是一种显示输出的方式。
[0003]Linux或Windows等桌面操作系统上的安卓兼容环境(下文简称安卓兼容环境)是一种在Linux或Windows操作系统上运行安卓应用的技术,对丰富操作系统应用生态有着重要的意义。通常情况下,典型的安卓兼容环境主要包括安卓应用显示单元和安卓应用兼容服务,安卓应用显示单元用于在桌面操作系统上实现安卓应用的用户界面,安卓应用兼容服务用于提供运行于桌面操作系统上的安卓兼容环境,通过安卓应用显示单元与安卓应用兼容服务的相互配合实现安卓应用在桌面操作系统上的有效运行,例如,现有安卓兼容环境的实现方案有xDroid,它包括xDroidU ...
【技术保护点】
【技术特征摘要】
1.一种基于异构缓存访问的跨运行环境显示输出共享方法,其特征在于,包括以下步骤:在安卓兼容环境中,当SurfaceFlinger服务接收到显示状态更新消息后,遍历当前保存的Display,若存在状态为读取状态且类型为虚显的Display,则创建与该Display相关的虚拟显示设备,虚拟显示设备获取与Display相对应的桌面窗口的窗口句柄,截屏进程根据所述窗口句柄获取桌面系统截屏数据,虚拟显示设备将所述截屏数据输出到屏幕显示;如果不存在状态为读取状态且类型为虚显的Display,则退出本流程;当安卓兼容环境的虚显销毁时,结束截屏进程,退出本流程;在桌面系统中,设置桌面显示设备的访问权限使所述截屏进程能够访问桌面显示设备;所述虚拟显示设备为包含单一虚拟图层的DisplayDevice;所述虚拟显示设备将所述截屏数据输出到屏幕显示的过程为:当绘制虚拟图层时将截屏数据转换为材质后再将材质渲染到屏幕显示。2.根据权利要求1所述的跨运行环境显示输出共享方法,其特征在于,所述虚拟图层的实现方式,包括以下步骤:步骤1.1、获取安卓兼容环境内的显示设备,初始化OpenGL环境;创建渲染图层并将其绑定到与虚显对应的桌面窗口,创建渲染上下文得到渲染的位置变量和材质变量;将绘制状态设置为不透明且始终可见,且可视区域的尺寸与桌面系统的屏幕尺寸相同;步骤1.2、若当前虚拟图层为新建图层,则创建截屏数据队列,并启动截屏进程,执行步骤1.3,截屏数据队列为保存带有时间戳的截屏数据帧的链表;若当前虚拟图层不是新建图层,则执行步骤1.3;步骤1.3、获取桌面系统的当前时间,选择截屏数据队列中时间戳与当前时间的差值小于阈值的数据写入待绘制帧列表,清空当前的截屏数据队列,执行步骤1.4;若截屏数据队列中不存在时间戳与当前时间的差值小于阈值的数据,则等待设定时间后执行步骤1.3;步骤1.4、若截屏数据队列为空且最后绘制帧不为空,则使用...
【专利技术属性】
技术研发人员:温研,晏华,赵旺林,
申请(专利权)人:北京麟卓信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。