CN103646638B - 一种基于Android平台的双屏显示方法 - Google Patents
一种基于Android平台的双屏显示方法 Download PDFInfo
- Publication number
- CN103646638B CN103646638B CN201310724939.8A CN201310724939A CN103646638B CN 103646638 B CN103646638 B CN 103646638B CN 201310724939 A CN201310724939 A CN 201310724939A CN 103646638 B CN103646638 B CN 103646638B
- Authority
- CN
- China
- Prior art keywords
- video
- display screen
- overlay
- frame buffer
- modules
- 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
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000003993 interaction Effects 0.000 claims abstract description 5
- 230000005540 biological transmission Effects 0.000 claims abstract description 3
- 230000015654 memory Effects 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 11
- 230000003139 buffering effect Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000004913 activation Effects 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 235000015170 shellfish Nutrition 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开一种基于Android平台的双屏显示方法,应用于第一显示屏和第二显示屏之间的切换显示,包括如下步骤:步骤1:在系统中创建一个描述显示屏的DisplayHardware对象,并对该DisplayHardware对象进行初始化,在这个初始化过程中会先后初始化Gralloc、Overlay和OpenGL ES等三个模块;步骤2:Gralloc模块对第一显示屏的UI部分进行刷新,同时监测来自UI人机交互界面的控制命令,如果该控制命令是执行双屏操作,则进行双屏显示及视频切换操作,将第一显示屏的内容传输至第二显示屏并显示。
Description
技术领域
本发明属于通信领域,具体涉及一种应用于Android平台的双屏显示方法。
背景技术
Android平台是专门针对手机智能显示终端而开发,因此Android原生平台(原生的Android平台)并不直接支持同时配备两个显示设备的应用环境,目前Android平台直接支持的是单屏显示,不直接支持多个显示设备。随着Android系统的应用普及,越来越多的应用环境迫切需要在Android平台上实现双屏显示功能。
为此,一篇申请号为201310313896.4的发明专利,公开了一种基于Android系统的双屏显示方法,应用于基于Android系统的显示装置,该显示装置包括第一显示控制单元和第二显示控制单元,其方法包括:监测一扩展显示设备是否与所述显示装置连接;根据监测结果产生并发送相应的控制信号至所述第二显示控制单元;以及由所述第二显示控制单元响应所述控制信号与所述第一显示控制单元同时读取显示数据并相应地控制所述扩展显示设备和显示装置的显示屏形成图像或由所述第一显示控制单元读取并控制所述显示装置的显示屏形成图像。利用该发明,通过对外接显示设备是否与显示装置连接的侦测相应地启动或关闭第二显示控制单元,以控制缓冲存储单元中的显示数据的读取,解决现有技术中的Android系统不能将显示内容同时显示在LCD显示屏与扩展设备显示屏上的技术问题。由于在双屏显示技术中,通常两个显示屏所显示的内容各有侧重,对显示效果的要求不同,因此通常两个显示屏的分辨率也不同,但是该发明所实现的目标,通过硬件技术或软件拷贝即可实现,且两个LCD显示屏只能显示同样的内容,而不能分别控制显示,因此应用场合有限。
再例如一篇申请号为201310030743.9的发明专利,公开了一种基于Android系统的双屏显示方法及智能显示终端,该方法包括以下步骤:分别加载第一Gralloc模块和第二Gralloc模块;其中,第一Gralloc模块与第一帧缓冲区设备和第一显示屏绑定;第二Gralloc模块与第二帧缓冲区设备和第二显示屏绑定;通过第一Gralloc模块与第一帧缓冲区设备控制第一显示屏进行显示和/或通过第二Gralloc模块与第二帧缓冲区设备控制第二显示屏进行显示。该发明实现了支持双屏显示,当两个显示屏相互切换时,两个屏的分辨率固定,在切屏后不需要进行窗口调整,提高了切屏效率。具体的,该专利提供的方法中,其使用了2个DisplayHardware对象,2个Gralloc模块,通过帧缓冲设备fb0和帧缓冲设备fb1分别用于显示第一和第二个显示屏的所有内容(包括UI和视频),没有视频层与UI层的分开处理和叠加。因此,通过上述描述可知,该发明虽然可以在android平台上实现双屏显示及视频切换,且可实现两个屏幕显示不一样的内容,但需要实现两份功能一样的软件框架代码,这无疑增加了系统的代码量,增加了产品后续的维护工作量,同时这两个显示屏使用两份软件分别进行屏幕画面刷新显示,消耗大量系统资源。
发明内容
因此,针对上述的问题,本发明提出一种基于Android平台的双屏显示方法,实现双屏显示不同画面内容,并实现视频在双屏之间的切换,且其实现逻辑简单而高效,不需要两套软件代码分别控制两个显示屏,同时充分利用硬件提供的混合叠加功能,从而解决现有技术之不足。
其中,对于视频在双屏之间的切换,是基于overlay叠加机制,将用于图形系统输出的主显示区(帧缓冲区设备fb0或fb1)和用于视频输出的叠加显示区(帧缓冲区设备fb2)进行混合叠加,并最终呈现在屏幕上,同时支持使用两个不同分辨率的显示屏,并支持视频在两个显示屏之间的切换显示,同时支持以视频显示比例不失真的方式自动进行全屏切换。其中,叠加机制,是视频播放器在播放视频时,屏幕上显示的内容是由底下的UI层(包括标题栏、按钮、边框等UI元素)和上面的视频层叠加混合而成。
具体的,本发明所采用的技术方案是,一种基于Android平台的双屏显示方法,应用于第一显示屏和第二显示屏之间的切换显示,包括如下步骤:
步骤1:在系统中创建一个描述显示屏的DisplayHardware对象,并对该DisplayHardware对象进行初始化,在这个初始化过程中会先后初始化Gralloc、Overlay和OpenGL ES等三个模块;
步骤2:Gralloc模块对第一显示屏的UI部分(即帧缓冲区设备fb0)进行刷新,同时监测来自UI人机交互界面的控制命令,如果该控制命令是执行双屏操作,则进行双屏显示及视频切换操作,将第一显示屏的内容传输至第二显示屏并显示,其具体包括如下过程:
步骤21:通过DisplayHardware对象,获取第一显示屏的帧缓冲区设备fb0的显存地址和设备信息(例如分辨率),同时获取保存视频内容的帧缓冲区设备fb2的显存地址和设备信息;帧缓冲区设备fb0用于管理第一显示屏的GUI系统元素显示;帧缓冲区设备fb2用于管理视频内容显示,通过将fb2和fb0叠加可以实现视频在第一显示屏的播放,通过将fb2和fb1叠加可以实现视频在第二显示屏的播放;
步骤22:设置第二显示屏的帧缓冲区设备fb1的显示模式(例如分辨率);帧缓冲区设备fb1用于管理第二显示屏的GUI系统元素显示;
步骤23:清空帧缓冲区设备fb0、帧缓冲区设备fb1和帧缓冲区设备fb2的显存内容;
步骤24:Overlay模块调用硬件提供的图像混合叠加处理功能,将帧缓冲区设备fb2(视频层)与帧缓冲区设备fb1(UI层)进行叠加,由于帧缓冲区设备fb1始终与第二显示屏绑定,因此叠加之后即可实现视频在第二显示屏播放。
进一步的,所述步骤24中,第一显示屏中需要显示到第二显示屏的内容信息是视频信息,帧缓冲区设备fb2用于管理第二显示屏的视频部分显示;此时Overlay模块首先获取包含该视频信息的视频控件的信息(例如长宽大小),根据帧缓冲区设备fb1的显示模式计算其显示区域,根据该显示区域来调整视频控件的大小参数;然后将下一帧视频内容拷贝到当前帧地址,用于刷新视频内容,从而实现视频从第一显示屏切换到第二显示屏。
更进一步的,所述步骤2中,Gralloc模块对第一显示屏的UI部分进行刷新,监测来自UI人机交互界面的控制命令,具体包括如下内容:视频播放器的开始播放按钮调用系统多媒体库中的start()接口开始播放视频;start()接口调用Surfaceflinger服务的createOverlay()方法;Surfaceflinger服务的createOverlay()方法中首先创建一个OverlaySource对象;OverlaySource构造函数获取之前系统开机已初始化过的Overlay模块,并调用Overlay模块的createOverlay()方法创建Overlay对象实例;Overlay模块的createOverlay()方法创建overlay对象,获取帧缓冲区设备fb0的分辨率,同时初始化帧缓冲区设备fb2,并获取fb2显存地址;overlay对象中打开overlay模块,保存overlay数据操作相关的信息和操作接口,并重新配置overlay对象。
进一步的,所述步骤1中,对DisplayHardware对象进行初始化具体包括如下内容:
对Gralloc模块进行初始化:获取Gralloc模块的操作接口和帧缓冲区设备fb0的显存地址和设备信息,并进行Gralloc模块和帧缓冲区设备fb0的初始化;Gralloc模块用来分配缓冲区,帧缓冲区设备fb0用于将缓冲区渲染到帧缓冲区(即显示屏的显存);
对Overlay模块进行初始化:获取overlay模块的控制接口,以备后续使用overlay时调用,同时启动overlay线程,该overlay线程用于执行处理双屏显示以及视频切换流程;
对OpenGL ES(全称Open Graphics Library for Embedded Systems,即用于嵌入式系统的开放图形编程接口)模块进行初始化:打开OpenGL ES库,获取OpenGL ES相关信息并对其进行初始化。
进一步的,所述步骤1中,对DisplayHardware对象进行初始化之前还执行具有如下过程:启动系统服务SystemServer,在SystemServer服务初始化过程中启动SurfaceFlinger服务;Surfaceflinger服务初始化过程中调用readyToRun()函数初始化整个显示系统;readyToRun()函数执行中首先调用newDisplayHardware()接口创建一个DisplayHardware对象。
本发明提出并实现了一种基于叠加机制的Android平台车载终端的双屏显示及视频切换方法,通过Gralloc模块和Overlay模块的操作执行来实现双屏显示和切换显示屏。其中,Overlay模块位于Android系统的硬件抽象层,也称为视频叠加层,用于加速视频数据的显示输出。Android视频播放器在播放视频时,显示屏幕上除了视频区域之外,还包括标题栏、按钮、边框等GUI系统元素。在具有硬件视频叠加层情况下,视频部分和GUI系统元素部分可以分别进行构建。本技术方案正是利用了视频叠加层硬件的性能实现了高效的双屏显示和视频切换。通过对该模块的构建,实现视频在两个显示屏之间的切换显示。
与现有技术不同的是,本发明的技术方案实现的系统支持两个显示屏显示不同的内容,且两个显示屏的分辨率也可以不一样。
同时,视频在两个显示屏之间切换后可自动进行分辨率调整,并以视频显示比例不失真的方式自动进行全屏视频播放。
另外,本发明的实现逻辑清晰,根据产品实际情况有针对性地实现了Overlay模块和Gralloc模块,同时充分发挥了视频叠加层硬件的优势,由此给产品系统带来了多方面的显著有益效果:
1,通过本发明的方案实现双屏切换,尤其适合于车载终端,第一显示屏可作为后台主屏,用于司机的车载功能操作、以及前台显示屏视频节目的选取和控制,第二显示屏作为前台显示屏,则可用于为乘客播放视频节目,给产品带来了更好的用户体验,明显提升了车载终端产品的档次;
2,视频播放一直是嵌入式设备中耗费大量系统资源的模块,本发明的技术方案充分发挥了视频叠加层硬件的性能,明显节省了视频播放和双屏显示时的系统资源;由于节省了系统资源,使得使用本技术方案后的系统更加稳定,性能更加优越。
本发明与现有技术相比,在系统运行过程中只创建一个DisplayHardware对象,系统运行过程中只使用一个Gralloc模块。且引入了Overlay模块,用于实现屏幕上视频层与UI层的叠加,而现有技术中尚没有视频叠加的思想的运用,具体的,本发明的帧缓冲设备fb0和帧缓冲设备fb1分别用于显示第一和第二个显示屏的UI内容,帧缓冲设备fb2用于显示视频内容,基于Overlay叠加方案依赖并充分利用硬件提供的显示缓冲区叠加混合功能,进而实现视频层与UI层的分开处理和叠加。另外,现有技术中使用的是固定的分辨率,通过两个屏的禁止和使用单独控制来达到屏幕切换显示的效果,因此没有分辨率调整的概念,而本发明实现自动分辨率调整。
附图说明
图1为本发明的方法的实现框架的逻辑架构。
具体实施方式
现结合附图和具体实施方式对本发明进一步说明。
本发明跳出现有常规方法的束缚,在基于Android平台的双屏显示方法,基于overlay叠加机制,将用于图形系统输出的主显示区和用于视频输出的叠加显示区进行混合叠加,并最终呈现在屏幕上,同时支持使用两个不同分辨率的LCD显示屏,并支持视频在两个显示屏之间的切换显示,同时支持以视频显示比例不失真的方式自动进行全屏切换。
作为一个具体实例,本发明的技术方案以应用于车载终端为例来具体说明。
本发明的基于Android平台的双屏显示方法所阐述的系统包括下述模块:应用程序,Surfaceflinger服务,DisplayHardware模块,Gralloc模块,Overlay模块,Framebuffer帧缓冲区设备,以及显示屏硬件。各模块的功能和作用如下:
应用程序:主要是视频播放器。在该模块中,本技术方案在用户操作界面上增加了一个【切换】按钮,用于实现视频在两个显示屏之间的切换显示。
Surfaceflinger服务模块:Surfaceflinger服务是Android系统中用于管理系统中的framebuffer帧缓冲区设备的服务。在该模块中,本技术方案增加了对overlay的控制和管理。
DisplayHardware模块:DisplayHardware包含于Surfaceflinger服务中,在Android系统中用于描述系统的显示屏对象。
Gralloc模块:位于Android系统的硬件抽象层,封装了对framebuffer帧缓冲区设备的所有操作接口。在这个模块中,本技术方案实现了对两个framebuffer设备(帧缓冲区设备fb0和帧缓冲区设备fb1)的操作。
Overlay模块:Overlay模块位于Android系统的硬件抽象层,也称为视频叠加层,用于加速视频数据的显示输出。Android视频播放器在播放视频时,显示屏幕上除了视频区域之外,还包括标题栏、按钮、边框等GUI系统元素。在具有硬件视频叠加层情况下,视频部分和GUI系统元素部分可以分别进行构建。本技术方案正是利用了视频叠加层硬件的性能实现了高效的双屏显示和视频切换。该模块是本技术方案的重点模块,是实现视频在两个显示屏之间切换显示的主要实现部分。
Framebuffer帧缓冲区设备模块:Android系统将显示屏硬件抽象为一个framebuffer帧缓冲区设备,应用层代码通过framebuffer设备提供的open、read、write、ioctl、close等标准操作接口控制显示屏的工作。在本系统中,帧缓冲区设备fb0用于主屏上的GUI系统元素显示,帧缓冲区设备fb1用于第二显示屏上的GUI系统元素显示,帧缓冲区设备fb2用于视频内容显示。
显示屏硬件:本系统中包括两个不同显示分辨率的LCD显示屏,第一个显示屏的分辨率为800×480,作为后台显示屏为车上司机提供车载操作界面,在该系统中称之为主屏;第二个显示屏的分辨率为640×480,作为前台显示屏为乘客提供视频节目播放,在该系统中称之为第二显示屏。
本发明的系统逻辑结构参见图1所示。本发明所阐述的方法包括如下过程:
过程1:基于Android平台的双屏显示方法所阐述的系统启动过程中双屏切换模块相关的初始化流程:
(1)系统开机启动系统服务SystemServer,在SystemServer服务初始化过程中启动SurfaceFlinger服务;
(2)Surfaceflinger服务初始化过程中调用readyToRun()函数初始化整个显示系统;
(3)readyToRun()函数执行中首先调用newDisplayHardware()接口创建一个DisplayHardware对象;
(4)DisplayHardware构造函数进行Gralloc、Overlay和OpenGL ES的初始化;
(5)Gralloc初始化过程中打开Gralloc模块和帧缓冲区设备fb0,获取Gralloc模块操作接口和帧缓冲区设备fb0的显存地址和设备信息,并进行Gralloc模块和帧缓冲区设备fb0的初始化;
(6)Overlay初始化过程中打开Overlay模块,获取overlay模块的控制接口,以备后续使用overlay时调用,同时启动overlay线程,执行处理双屏显示和视频切换流程;
(7)OpenGL ES(全称Open Graphics Library for Embedded Systems,即用于嵌入式系统的开放图形编程接口)初始化过程中打开OpenGL ES库,并初始化和获取OpenGLES相关信息;
(8)系统启动双屏子系统相关的初始化完成。
过程2:启动Overlay模块的流程:
(1)点击视频播放器【开始】播放按钮;
(2)程序调用系统多媒体库中的start()接口开始播放视频;
(3)start()接口最终会调用Surfaceflinger服务的createOverlay()方法;
(4)Surfaceflinger服务的createOverlay()方法中首先创建一个OverlaySource对象;
(5)OverlaySource构造函数获取之前系统开机已初始化过的Overlay模块,并调用Overlay模块的createOverlay()方法创建Overlay对象;
(6)Overlay模块的createOverlay()方法创建overlay对象,获取帧缓冲区设备fb0的分辨率,同时初始化帧缓冲区设备fb2,并获取fb2显存地址;
(7)overlay对象中打开overlay设备,保存overlay数据操作相关的信息和操作接口,并重新配置overlay;
(8)Overlay初始化完成。
过程3:双屏显示及视频从主屏切换到第二显示屏的实现流程:
(1)系统通过Gralloc模块的post()方法实现主屏的UI部分的刷新;
(2)点击视频播放器【切换】按钮,触发双屏显示及视频切换操作;
(3)代码通过设置自定义的系统属性来触发双屏显示及视频切换,例如系统属性persist.yx.app.SecondDisplayConnected为1则触发双屏显示及视频切换;
(4)屏幕刷新方法post()读取系统属性的值来判断当前是否需要进行双屏显示和视频切换操作,例如如果persist.yx.app.SecondDisplayConnected的值为1,则当前需要进行双屏显示和视频切换操作;
(5)设置帧缓冲区设备fb1的显示分辨率等显示模式;
(6)清空帧缓冲区设备fb0、fb1和fb2显存;
(7)调用硬件提供的图像混合叠加处理功能,将帧缓冲区设备fb2和fb1进行叠加,即将视频切换到第二显示屏;
(8)通过内存映射获取帧缓冲区设备fb1的显存地址;
(9)判断是否启动第二显示屏的UI刷新线程:由于本系统中第二显示屏作为前台显示屏,默认不显示UI界面,仅用于全屏播放视频节目,故不启动第二显示屏的UI刷新线程;
(10)系统通过Overlay模块的OverlayThread::threadLoop()线程,实现帧缓冲区设备fb2,即视频内容的刷新;
(11)获取帧缓冲区设备fb1的分辨率;
(12)初始化帧缓冲区设备fb2并获取显存地址;
(13)计算视频输出参数:首先获取视频控件的长宽大小,同时根据目标显示屏(即第二显示屏)的显示分辨率,根据以下步骤计算视频显示区域的大小:
//原来的new_win->nWidth和new_win->nHeight保存的是视频控件的大小
height_tmp=(640*new_win->nHeight)/new_win->nWidth;//根据视频控件和第二显示屏的长宽比例,获取在第二显示屏上显示时的视频画面高度
if(height_tmp<=480){//如果视频画面高度不大于第二显示屏的高度,则可确认视频显示区域
new_win->nHeight=height_tmp;//最终视频显示画面的高度
new_win->nWidth=640;//最终视频显示画面的宽度
new_win->nTop=(480-new_win->nHeight)/2;//调整视频显示位置,确保视频画面在屏幕的中间
new_win->nLeft=0;
}else{//如果视频画面高度大于第二显示屏的高度,则需要缩小视频显示画面比例
new_win->nWidth=(480*new_win->nWidth)/new_win->nHeight;//最终视频显示画面的宽度
new_win->nHeight=480;//最终视频显示画面的高度
new_win->nTop=0;//调整视频显示位置,确保视频画面在屏幕的中间
new_win->nLeft=(640-new_win->nWidth)/2;
}
(14)将下一帧视频内容拷贝到当前帧地址,用于刷新视频内容;
(15)完成视频从主屏到第二显示屏的切换过程。
过程4:视频从第二显示屏切换到主屏的实现流程:
(1)系统通过Gralloc模块的post()方法实现主屏的UI部分的刷新;
(2)点击视频播放器【切换】按钮,触发视频切换操作;
(3)通过设置系统属性的值来触发视频切换操作,例如设置系统属性persist.yx.app.SecondDisplayConnected的值为0触发视频切换操作;
(4)通过屏幕刷新方法post()读取系统属性,来判断第二显示屏当前是否处于连接状态,例如系统属性persist.yx.app.SecondDisplayConnected值为0,即表示第二显示屏当前未连接;
(5)清空帧缓冲区设备fb0、fb1和fb2显存;
(6)将帧缓冲区设备fb2和fb0进行叠加,即将视频切换到主屏;
(7)更新帧缓冲区设备fb0显存的内容;
(8)停止第二显示屏的UI刷新线程;
(9)系统通过Overlay模块的OverlayThread::threadLoop()线程,实现帧缓冲区设备fb2,即视频内容的刷新;
(10)获取帧缓冲区设备fb0的分辨率;
(11)初始化帧缓冲区设备fb2并获取其显存地址;
(12)设置系统当前显示模式为DISPLAY_MODE_NORMAL正常显示模式;
(13)计算视频输出参数:由于视频将切换回主屏显示,所以只需按照视频控件的长宽大小和位置设置视频显示区域的大小即可;
//原来的new_win->nWidth和new_win->nHeight保存的是视频控件的大小
new_win->nTop=(new_win->nTop+4)&0xfffffff8;//这里的计算是为了地址对齐
new_win->nLeft=(new_win->nLeft+4)&0xfffffff8;
new_win->nWidth=(new_win->nWidth+4)&0xfffffff8;
new_win->nHeight=(new_win->nHeight+4)&0xfffffff8;
(14)将下一帧视频内容拷贝到当前帧地址,用于刷新视频内容;
(15)完成视频从第二显示屏到主屏的切换过程。
本发明通过上述方法和步骤,实现了一种基于叠加机制的Android平台车载终端的双屏显示及视频切换方法,本发明的技术方案实现的系统支持两个显示屏显示不同的内容,且两个显示屏的分辨率也可以不一样;同时,视频在两个显示屏之间切换后可自动进行分辨率调整,并以视频显示比例不失真的方式自动进行全屏视频播放。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (5)
1.一种基于Android平台的双屏显示方法,应用于第一显示屏和第二显示屏之间的切换显示,包括如下步骤:
步骤1:在系统中创建一个描述显示屏的DisplayHardware对象,并对该DisplayHardware对象进行初始化,在这个初始化过程中会先后初始化Gralloc、Overlay和OpenGL ES等三个模块;
步骤2:Gralloc模块对第一显示屏的UI部分进行刷新,同时监测来自UI人机交互界面的控制命令,如果该控制命令是执行双屏操作,则进行双屏显示及视频切换操作,将第一显示屏的内容传输至第二显示屏并显示;其具体包括如下过程:
步骤21:通过DisplayHardware对象,获取第一显示屏的帧缓冲区设备fb0的显存地址和设备信息,同时获取保存视频内容的帧缓冲区设备fb2的显存地址和设备信息;帧缓冲区设备fb0用于管理第一显示屏的GUI系统元素显示;帧缓冲区设备fb2用于管理视频内容显示;
步骤22:设置第二显示屏的帧缓冲区设备fb1的显示模式;帧缓冲区设备fb1用于管理第二显示屏的GUI系统元素显示;
步骤23:清空帧缓冲区设备fb0、帧缓冲区设备fb1和帧缓冲区设备fb2的显存内容;
步骤24:Overlay模块调用硬件提供的图像混合叠加处理功能,将帧缓冲区设备fb2与帧缓冲区设备fb1进行叠加,由于帧缓冲区设备fb1始终与第二显示屏绑定,因此叠加之后即实现视频在第二显示屏播放。
2.根据权利要求1所述的基于Android平台的双屏显示方法,其特征在于:所述步骤24中,第一显示屏中需要显示到第二显示屏的内容信息是视频信息,帧缓冲区设备fb2用于管理第二显示屏的视频部分显示;此时Overlay模块首先获取包含该视频信息的视频控件的信息,根据帧缓冲区设备fb1的显示模式计算其显示区域,根据该显示区域来调整视频控件的大小参数;然后将下一帧视频内容拷贝到当前帧地址,用于刷新视频内容,从而实现视频从第一显示屏切换到第二显示屏。
3.根据权利要求2所述的基于Android平台的双屏显示方法,其特征在于:所述步骤2中,Gralloc模块对第一显示屏的UI部分进行刷新,监测来自UI人机交互界面的控制命令,具体包括如下内容:视频播放器的开始播放按钮调用系统多媒体库中的start()接口开始播放视频;start()接口调用Surfaceflinger服务的createOverlay()方法;Surfaceflinger服务的createOverlay()方法中首先创建一个OverlaySource对象;OverlaySource构造函数获取之前系统开机已初始化过的Overlay模块,并调用Overlay模块的createOverlay()方法创建Overlay对象实例;Overlay模块的createOverlay()方法创建overlay对象,获取帧缓冲区设备fb0的分辨率,同时初始化帧缓冲区设备fb2,并获取fb2显存地址;overlay对象中打开overlay模块,保存overlay数据操作相关的信息和操作接口,并重新配置overlay对象。
4.根据权利要求1所述的基于Android平台的双屏显示方法,其特征在于:所述步骤1中,对DisplayHardware对象进行初始化具体包括如下内容:
对Gralloc模块进行初始化:获取Gralloc模块的操作接口和帧缓冲区设备fb0的显存地址和设备信息,并进行Gralloc模块和帧缓冲区设备fb0的初始化;Gralloc模块用来分配缓冲区;
对Overlay模块进行初始化:获取overlay模块的控制接口,以备后续使用overlay时调用,同时启动overlay线程,该overlay线程用于执行处理双屏显示以及视频切换流程;
对OpenGL ES模块进行初始化:打开OpenGL ES库,获取OpenGL ES相关信息并对其进行初始化。
5.根据权利要求1所述的基于Android平台的双屏显示方法,其特征在于:所述步骤1中,对DisplayHardware对象进行初始化之前还执行具有如下过程:启动系统服务SystemServer,在SystemServer服务初始化过程中启动SurfaceFlinger服务;Surfaceflinger服务初始化过程中调用readyToRun()函数初始化整个显示系统;readyToRun()函数执行中首先调用newDisplayHardware()接口创建一个DisplayHardware对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310724939.8A CN103646638B (zh) | 2013-12-25 | 2013-12-25 | 一种基于Android平台的双屏显示方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310724939.8A CN103646638B (zh) | 2013-12-25 | 2013-12-25 | 一种基于Android平台的双屏显示方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103646638A CN103646638A (zh) | 2014-03-19 |
CN103646638B true CN103646638B (zh) | 2017-10-10 |
Family
ID=50251841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310724939.8A Active CN103646638B (zh) | 2013-12-25 | 2013-12-25 | 一种基于Android平台的双屏显示方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103646638B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104332149B (zh) * | 2014-11-22 | 2017-01-18 | 深圳市思源进科技开发有限公司 | 一种双lcd同步异向扫描显示系统及方法 |
CN105786479B (zh) * | 2014-12-23 | 2019-05-28 | 联芯科技有限公司 | 一种合成内存管理方法及系统 |
CN105025316A (zh) * | 2015-07-28 | 2015-11-04 | Tcl集团股份有限公司 | 一种获取视频是否为全屏播放的方法及系统 |
CN105117217A (zh) * | 2015-08-12 | 2015-12-02 | 北京触控科技有限公司 | 一种跨平台游戏的渲染方法和系统 |
CN106293584A (zh) * | 2016-08-05 | 2017-01-04 | 深圳市金立通信设备有限公司 | 一种双屏显示方法及终端 |
CN106354458B (zh) * | 2016-08-26 | 2019-09-20 | 青岛海信移动通信技术股份有限公司 | 双屏显示方法及装置 |
CN106570927A (zh) * | 2016-10-14 | 2017-04-19 | 惠州Tcl移动通信有限公司 | 基于Android系统实现虚拟现实的方法、终端及系统 |
CN106445446A (zh) * | 2016-10-24 | 2017-02-22 | 深圳市金立通信设备有限公司 | 一种程序移动方法及终端 |
CN106371792A (zh) * | 2016-10-26 | 2017-02-01 | 深圳市赛格导航科技股份有限公司 | Android车载终端、基于该车载终端的双屏显示方法及装置 |
CN106873932B (zh) * | 2017-02-17 | 2020-03-03 | 浙江大学 | 一种Android系统服务端、远程桌面图像重定向方法及系统 |
CN107186729A (zh) * | 2017-06-20 | 2017-09-22 | 江苏红石信息系统集成服务有限公司 | 一种具有双屏的服务机器的显示方法 |
CN107943442A (zh) * | 2017-11-24 | 2018-04-20 | 上海龙旗科技股份有限公司 | 一种实现双屏显示的方法及设备 |
CN107995334A (zh) * | 2017-12-05 | 2018-05-04 | 上海云相聚智能科技有限公司 | 具有副屏的手机及副屏控制方法 |
CN107977131B (zh) * | 2017-12-18 | 2021-07-27 | 深圳市芯云显控技术有限公司 | 显示装置的控制方法、存储介质、控制装置及显示装置 |
CN108241479A (zh) * | 2018-01-06 | 2018-07-03 | 苏州长风航空电子有限公司 | 基于安卓系统的双屏双控车机显示装置及实现方法 |
CN108536503A (zh) * | 2018-03-15 | 2018-09-14 | 北京雷石天地电子技术有限公司 | 一种基于安卓系统的切换显示内容的方法及系统 |
CN109300426A (zh) * | 2018-03-30 | 2019-02-01 | 温州长江汽车电子有限公司 | 一种基于mcu的双tft屏显示系统及其显示方法 |
CN109327733A (zh) * | 2018-10-30 | 2019-02-12 | 北京达佳互联信息技术有限公司 | 视频播放方法、视频播放装置、电子设备及存储介质 |
CN109521921A (zh) * | 2018-11-07 | 2019-03-26 | 深圳市布谷鸟科技有限公司 | 基于操作系统实现支持双按键逻辑功能的车载系统及方法 |
CN111596876A (zh) * | 2020-04-28 | 2020-08-28 | 维沃移动通信有限公司 | 信息显示方法、装置、电子设备及存储介质 |
CN111782164B (zh) * | 2020-06-23 | 2024-03-19 | 上海锐伟电子科技有限公司 | 一种用于安卓系统物联网设备的显示控制方法 |
CN111976482B (zh) * | 2020-07-08 | 2021-12-24 | 南斗六星系统集成有限公司 | 一种车载仪表屏和中控娱乐屏的双屏交互系统及方法 |
CN112004049B (zh) * | 2020-08-18 | 2022-06-28 | 北京字节跳动网络技术有限公司 | 双屏异显方法、装置和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106058A (zh) * | 2013-01-25 | 2013-05-15 | Tcl集团股份有限公司 | 一种基于Android系统的双屏显示方法及智能显示终端 |
CN103226454A (zh) * | 2013-03-28 | 2013-07-31 | 华中科技大学 | 一种实现多屏显示的方法及系统 |
CN103390397A (zh) * | 2013-07-24 | 2013-11-13 | 福州瑞芯微电子有限公司 | 一种基于Android系统的双屏显示装置及显示方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8665215B2 (en) * | 2010-10-01 | 2014-03-04 | Z124 | Single-screen view in response to rotation |
US9351237B2 (en) * | 2011-09-27 | 2016-05-24 | Z124 | Displaying of charging status on dual screen device |
US8824411B2 (en) * | 2012-05-24 | 2014-09-02 | Apple Inc. | Tune-away detection based adaptive link adaptation for hybrid transceivers |
-
2013
- 2013-12-25 CN CN201310724939.8A patent/CN103646638B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106058A (zh) * | 2013-01-25 | 2013-05-15 | Tcl集团股份有限公司 | 一种基于Android系统的双屏显示方法及智能显示终端 |
CN103226454A (zh) * | 2013-03-28 | 2013-07-31 | 华中科技大学 | 一种实现多屏显示的方法及系统 |
CN103390397A (zh) * | 2013-07-24 | 2013-11-13 | 福州瑞芯微电子有限公司 | 一种基于Android系统的双屏显示装置及显示方法 |
Non-Patent Citations (1)
Title |
---|
Android平台下双屏切换显示的设计;张敏等;《计算机光盘软件与应用》;20111130(第21期);161-162 * |
Also Published As
Publication number | Publication date |
---|---|
CN103646638A (zh) | 2014-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103646638B (zh) | 一种基于Android平台的双屏显示方法 | |
CN103581754A (zh) | 一种数据显示方法及智能设备 | |
CN110362186B (zh) | 图层处理方法、装置、电子设备及计算机可读介质 | |
US20060227247A1 (en) | Device and method for displaying PIP on TV | |
KR100793307B1 (ko) | 이동통신 단말기 및 그의 대기 화면 제공 방법 | |
CN106507173A (zh) | 移动终端和分屏显示控制方法 | |
CN110162343A (zh) | 应用启动方法及装置、电子设备及存储介质 | |
CN111901832B (zh) | 一种一体机的无线投屏模块及投屏方法 | |
CN102298491B (zh) | 嵌入式图形界面系统及其图像生成方法 | |
CN112165640B (zh) | 一种显示设备 | |
EP3364289A1 (en) | Display switching method for terminal, and terminal | |
CN117711356B (zh) | 一种屏幕刷新率切换方法及电子设备 | |
CN114302238A (zh) | 一种音箱模式下提示信息的展示方法及显示设备 | |
CN107817960A (zh) | 一种屏幕显示方法及移动终端 | |
CN101416497A (zh) | 提供多屏幕的设备和动态配置多屏幕的方法 | |
CN104754409A (zh) | 应用于Android平台的多媒体视频播放系统及方法 | |
CN105872711B (zh) | 多系统切换时的切换动画显示方法及装置 | |
US7774800B2 (en) | Applications manager with variable management instruction set | |
US8917356B2 (en) | Play control system and method | |
CN110569125B (zh) | 一种倒车显示方法、车载芯片以及车载系统 | |
CN105653222A (zh) | 一种实现多系统分屏运行的方法和装置 | |
CN114296679A (zh) | 一种音箱模式下快速起播的方法及显示设备 | |
CN108984232B (zh) | 页面视频播放方法、装置、设备和计算机可读存储介质 | |
CN103002337A (zh) | 机顶盒图形显示的控制方法 | |
CN112616090B (zh) | 显示设备系统升级方法及显示设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 361000 Fujian Province Xiamen Torch High tech Zone Software Park Innovation Building C Zone 303-E Patentee after: Xiamen Yaxun Zhilian Technology Co.,Ltd. Country or region after: China Address before: No.46 guanri Road, phase II, software park, Xiamen City, Fujian Province, 361000 Patentee before: XIAMEN YAXON NETWORK Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |