一种基于Android系统的云桌面显示优化方法及系统技术方案

技术编号:27655327 阅读:17 留言:0更新日期:2021-03-12 14:17
本发明专利技术公开了一种基于Android系统的云桌面显示优化方法及系统,本发明专利技术包括Android云终端云桌面显示优化的步骤:搭建OpenGL ES的运行环境;在OpenGL ES中创建2D纹理;通过OpenGL ES在GPU中创建两个第一像素内存缓冲区,利用GPU中像素缓冲区具备异步DMA快速传输的特点,在同一时间,CPU往一个像素缓冲区写入云桌面待显示数据并立即返回,GPU利用另一个像素缓冲区的数据进行纹理绘制并提交显示,两个像素缓冲区不断交替各自所充当的角色持续刷新云桌面。本发明专利技术能够在不降低画面质量的情况下,充分利用移动终端的GPU计算能力,让云桌面的显示变得流畅。

【技术实现步骤摘要】
一种基于Android系统的云桌面显示优化方法及系统
本专利技术涉及Android云终端虚机桌面显示优化技术,具体涉及一种基于Android系统的云桌面显示优化方法及系统。
技术介绍
由于互联网的基础设施的快速发展,云桌面越来越受到欢迎,在移动终端(Android)上运行云桌面客户端,使得人们可以在手机、PAD上,随时随地访问云端桌面系统中的服务。当在Android云终端拖动云桌面中的网页进度条或者播放视频时存在卡顿现象。对于这种虚机传输数据成流的场景,常规的方案如降低云桌面分辨率,减少图像位数等措施在提高画面流畅度的同时,一定程度上也降低了画面的质量,影响用户体验。
技术实现思路
本专利技术要解决的技术问题:针对Android云终端上云桌面显示延迟大(特别是虚机有网页浏览、视频播放等成流场景时尤为明显)的问题,提供一种基于Android系统的云桌面显示优化方法及系统,本专利技术能够在不降低画面质量的情况下,充分利用移动终端的GPU计算能力,让云桌面的显示变得流畅。为了解决上述技术问题,本专利技术采用的技术方案为:一种基于Android系统的云桌面显示优化方法,包括:1)搭建OpenGLES的运行环境;2)在OpenGLES中创建用于对应云桌面显示数据的2D纹理;3)在OpenGLES中创建两个第一像素内存缓冲区;4)通过两个第一像素内存缓冲区交替存储接收的云桌面显示数据,使得在每一个周期的前半个周期内,CPU往第一个第一像素内存缓冲区里面拷贝最新的云桌面数据、同时GPU从第二个第一像素内存缓冲区里面读取上一帧的云桌面数据并绘制到2D纹理;后半个周期内CPU往第二个第一像素内存缓冲区里面拷贝最新的云桌面数据、同时GPU从第一个第一像素内存缓冲区里面取出数据绘制到2D纹理;且每交替一次则将得到的2D纹理提交显示。可选地,步骤1)的步骤包括:在Android系统的NDK层通过UI层的视图控件SurfaceView获取到原生窗口nativeWindow,并根据获取到的原生窗口nativeWindow搭建OpenGLES的运行环境。可选地,步骤4)将得到的2D纹理提交显示之后还包括通过Android系统对提交的纹理采用三缓冲技术进行显示的步骤:当收到提交显示的2D纹理后,先把数据拷贝到后台缓冲,然后交换后台缓冲与前台缓冲的位置,把最新需要的数据显示出来。可选地,步骤3)中还包括在OpenGLES中创建两个第二像素内存缓冲区,所述第二像素内存缓冲区用于存储成流数据对应的视频帧数据;步骤4)通过两个第一像素内存缓冲区交替存储接收的云桌面显示数据时还包括下述步骤:判断云桌面显示数据是否包含视频数据,若包含视频数据则将云桌面显示数据根据视频和非视频区域分割为成流数据、非流数据,对成流数据进行解码得到视频帧数据,并将视频帧数据交替放入两个第二像素内存缓冲区中存储,使得在每一个周期的前半个周期内,CPU往第一个第二像素内存缓冲区里面拷贝最新的视频帧数据、同时GPU从第二个第二像素内存缓冲区里面读取视频帧数据;后半个周期内CPU往第二个第二像素内存缓冲区里面拷贝最新的视频帧数据、同时GPU从第一个第二像素内存缓冲区里面读取视频帧数据,且所述读取视频帧数据时还包括从第二像素内存缓冲区中读取上一帧的视频帧数据,将上一帧的视频帧数据、上一帧云桌面显示数据进行图层混合运算得到完整的2D纹理的步骤。可选地,所述对成流数据进行解码得到视频帧数据的步骤包括:检测Android系统是否支持硬件解码,如果支持硬件解码则采用硬件解码的方式对成流数据进行解码得到视频帧数据;否则采用软件解码的方式对成流数据进行解码得到视频帧数据。可选地,步骤4)中GPU从第二个第一像素内存缓冲区里面读取上一帧的云桌面数据,以及GPU从第一个第一像素内存缓冲区里面取出数据均为通过直接存储访问DMA的方式读取数据。可选地,所述将上一帧的视频帧数据、上一帧云桌面显示数据进行图层混合运算具体是指通过图形处理单元GPU将上一帧的视频帧数据、上一帧云桌面显示数据进行图层混合运算,从而得到完整的2D纹理。此外,本专利技术还提供一种基于Android系统的云桌面显示优化系统,包括计算机设备,该计算机设备包括微处理器和存储器,该微处理器被编程或配置以执行所述基于Android系统的云桌面显示优化方法的步骤。此外,本专利技术还提供一种基于Android系统的云桌面显示优化系统,包括计算机设备,该计算机设备包括微处理器和存储器,该存储器中存储有被编程或配置以执行所述基于Android系统的云桌面显示优化方法的计算机程序。此外,本专利技术还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述基于Android系统的云桌面显示优化方法的计算机程序。和现有技术相比,本专利技术具有下述优点:本专利技术包括Android云终端云桌面显示优化的步骤:搭建OpenGLES的运行环境;在OpenGLES中创建用于对应云桌面显示数据的2D纹理;在OpenGLES中创建两个第一像素内存缓冲区,通过两个第一像素内存缓冲区交替存储接收的云桌面显示数据,使得任意一个时刻内一个第一像素内存缓冲区存储待显示的云桌面显示数据、另一个第一像素内存缓冲区作为所述2D纹理进行纹理渲染的数据源;且每交替一次则将作为数据源中的第一像素内存缓冲区中缓存的数据进行纹理渲染并提交显示,通过上述步骤,本专利技术能够在不降低画面质量的情况下,充分利用移动终端的GPU计算能力,让云桌面的显示变得流畅。本专利技术能够起到加速Android云终端上云桌面的显示,减小延时的效果,使得Android云终端上虚拟机内的网页浏览及视频播放等变得流畅,并且可有效降低Android云终端上的CPU利用率。附图说明图1为本专利技术实施例中整体的云桌面显示优化的基本流程示意图。图2为本专利技术实施例中整体的云桌面显示优化的基本原理示意图。图3为本专利技术实施例中整体的云桌面显示优化的详细实现示意图。图4为本专利技术实施例中整体的流场景优化的基本原理示意图。图5为本专利技术实施例中整体的流场景优化的详细实现示意图。具体实施方式首先,本专利技术基于Android系统的云桌面显示优化方法提供针对Android云终端整体的云桌面显示优化。如图1和图2,本实施例基于Android系统的云桌面显示优化方法包括:1)搭建OpenGLES的运行环境;2)在OpenGLES中创建用于对应云桌面显示数据的2D纹理;3)在OpenGLES中创建两个第一像素内存缓冲区;4)通过两个第一像素内存缓冲区交替存储接收的云桌面显示数据,使得在每一个周期的前半个周期内,CPU往第一个第一像素内存缓冲区里面拷贝最新的云桌面数据、同时GPU从第二个第一像素内存缓冲区里面读取上一帧的云桌面数据并绘制到2D纹理;后半个周期内CPU往第二个第一像素内存缓冲区里面拷贝最新的云桌面数据、同时GPU从第一个第一像素内存缓冲区里面取出数据绘本文档来自技高网...

【技术保护点】
1.一种基于Android系统的云桌面显示优化方法,其特征在于,包括:/n1)搭建OpenGL ES的运行环境;/n2)在OpenGL ES中创建用于对应云桌面显示数据的2D纹理;/n3)在OpenGL ES中创建两个第一像素内存缓冲区;/n4)通过两个第一像素内存缓冲区交替存储接收的云桌面显示数据,使得在每一个周期的前半个周期内,CPU往第一个第一像素内存缓冲区里面拷贝最新的云桌面数据、同时GPU从第二个第一像素内存缓冲区里面读取上一帧的云桌面数据并绘制到2D纹理;后半个周期内CPU往第二个第一像素内存缓冲区里面拷贝最新的云桌面数据、同时GPU从第一个第一像素内存缓冲区里面取出数据绘制到2D纹理;且每交替一次则将得到的2D纹理提交显示。/n

【技术特征摘要】
1.一种基于Android系统的云桌面显示优化方法,其特征在于,包括:
1)搭建OpenGLES的运行环境;
2)在OpenGLES中创建用于对应云桌面显示数据的2D纹理;
3)在OpenGLES中创建两个第一像素内存缓冲区;
4)通过两个第一像素内存缓冲区交替存储接收的云桌面显示数据,使得在每一个周期的前半个周期内,CPU往第一个第一像素内存缓冲区里面拷贝最新的云桌面数据、同时GPU从第二个第一像素内存缓冲区里面读取上一帧的云桌面数据并绘制到2D纹理;后半个周期内CPU往第二个第一像素内存缓冲区里面拷贝最新的云桌面数据、同时GPU从第一个第一像素内存缓冲区里面取出数据绘制到2D纹理;且每交替一次则将得到的2D纹理提交显示。


2.根据权利要求1所述的基于Android系统的云桌面显示优化方法,其特征在于,步骤1)的步骤包括:在Android系统的NDK层通过UI层的视图控件SurfaceView获取到原生窗口nativeWindow,并根据获取到的原生窗口nativeWindow搭建OpenGLES的运行环境。


3.根据权利要求1所述的基于Android系统的云桌面显示优化方法,其特征在于,步骤4)将得到的2D纹理提交显示之后还包括通过Android系统对提交的纹理采用三缓冲技术进行显示的步骤:当收到提交显示的2D纹理后,先把数据拷贝到后台缓冲,然后交换后台缓冲与前台缓冲的位置,把最新需要的数据显示出来。


4.根据权利要求1~3中任意一项所述的基于Android系统的云桌面显示优化方法,其特征在于,步骤3)中还包括在OpenGLES中创建两个第二像素内存缓冲区,所述第二像素内存缓冲区用于存储成流数据对应的视频帧数据;步骤4)通过两个第一像素内存缓冲区交替存储接收的云桌面显示数据时还包括下述步骤:判断云桌面显示数据是否包含视频数据,若包含视频数据则将云桌面显示数据根据视频和非视频区域分割为成流数据、非流数据,对成流数据进行解码得到视频帧数据,并将视频帧数据交替放入两个第二像素内存缓冲区中存储,使得在每一个周期的前半个周期内,CPU往第一个第二像素内存缓冲区里面拷贝最新的视频帧数据、同时GPU从第二个第二像素内存缓冲区里面读取视频帧数据;后半个周期内CPU往...

【专利技术属性】
技术研发人员:刘诚然孙利杰夏华陈松政刘文清杨涛
申请(专利权)人:湖南麒麟信安科技股份有限公司
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1