一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种应用投屏方法、装置、车载终端及可读存储介质与流程

2022-05-11 13:10:41 来源:中国专利 TAG:


1.本技术属于信息处理技术领域,尤其涉及一种应用投屏方法、装置、车载终端及可读存储介质。


背景技术:

2.随着车载终端技术的不断升级,可以在车载终端中安装多种应用程序,在车载终端启动应用程序之后,可以在对应的显示屏上显示应用程序的界面。为了方便驾驶人员快速掌握导航信息和通讯信息等多类应用信息,由车载终端控制的多个显示屏常常会同时显示内容。
3.目前,通过给移动操作系统配置一种显示框架(openwf display,wfd)的显示端口,来实现在显示屏上显示界面内容,但是每个显示端口都会占用物理的硬件资源,所以通常会出现硬件资源不足的情况,导致运行性能下降,而且当硬件资源不足时也无法使用投屏功能。


技术实现要素:

4.本技术实施例提供一种应用投屏方法、装置、车载终端及可读存储介质,能够解决目前硬件资源不足的问题。
5.第一方面,本技术实施例提供一种应用投屏方法,应用于车载终端,车载终端运行有移动操作系统和实时操作系统,该方法包括:
6.将在移动操作系统中安装的应用程序与预设的虚拟显示屏建立连接;
7.在虚拟显示屏的画布中合成应用程序的应用界面;
8.通过共享内存通道,将应用界面传递至实时操作系统;
9.控制实时操作系统将应用界面显示在目标显示屏上。
10.第二方面,本技术实施例提供一种应用投屏装置,应用于车载终端,车载终端运行有移动操作系统和实时操作系统,该装置包括:
11.连接模块,用于将在移动操作系统中安装的应用程序与预设的虚拟显示屏建立连接;
12.合成模块,用于在虚拟显示屏的画布中合成应用程序的应用界面;
13.传递模块,用于通过共享内存通道,将应用界面传递至实时操作系统;
14.显示模块,用于控制实时操作系统将应用界面显示在目标显示屏上。
15.第三方面,本技术实施例提供了一种车载终端,该车载终端包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机程序指令时,实现如第一方面或者第一方面的任一可能实现方式中的方法。
16.第四方面,本技术实施例提供了一种可读存储介质,该计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面或者第一方面的任一可能实现方式中的方法。
17.本技术实施例中,通过将移动操作系统中安装的应用程序与虚拟显示屏建立连接;在虚拟显示屏的画布中合成应用程序的应用界面,能够在虚拟显示屏中合成各种第三方应用程序的应用界面,兼容性强;通过共享内存通道,将应用界面传递至实时操作系统;这里,通过共享内存传递合成好的应用界面,无需占用额外的内存资源和处理器资源对生成的应用界面进行数据拷贝,最后,控制实时操作系统将应用界面显示在目标显示屏,能够高效便捷的在车载终端的目标显示屏上显示用户所需的应用程序的应用界面。
附图说明
18.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1是本技术实施例提供的一种应用投屏方法的流程图;
20.图2是本技术实施例提供的一种实现应用投屏方法的流程图;
21.图3是本技术实施例提供的一种应用投屏装置结构示意图;
22.图4是本技术实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
23.下面将详细描述本技术的各个方面的特征和示例性实施例,为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本技术进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本技术,并不被配置为限定本技术。对于本领域技术人员来说,本技术可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本技术的示例来提供对本技术更好的理解。
24.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
25.首先,对于本技术实施例涉及的技术术语进行介绍。
26.qnx,qnx是一种类unix实时操作系统,目标市场主要是面向嵌入式系统。
27.hypervisor:一种运行在物理服务器和操作系统之间的中间层软件,可以允许多个操作系统和应用共享一套基础物理硬件。
28.hab(hypervisor abstraction layer)一种共享内存同步机制。
29.车载信息娱乐系统(in-vehicle infotainment,ivi),是采用车载专用中央处理器,基于车身总线系统和互联网服务,形成的车载综合信息处理系统。
30.抬头显示(hud),又被叫做平视显示系统,是指以驾驶员为中心、盲操作、多功能仪表盘。它的作用,就是把时速、导航等重要的行车信息,投影到驾驶员前面的风挡玻璃上,让
驾驶员尽量做到不低头、不转头就能看到时速、导航等重要的驾驶信息。
31.本技术实施例提供的应用投屏方法至少可以应用于下述应用场景中,下面进行说明。
32.当前车载娱乐系统,越来越多的车厂选择了基于qnx的hypervisor平台,原因是qnx可以作为主机操作系运行仪表程序,客户端操作系统可以运行安卓系统等其他操作系统,因为生态比较完善。而在这种多操作系统的条件下,为了更方便用户的使用,就需要多屏交互。
33.例如:将导航应用程序中的导航信息投屏到hud的显示屏上,但是导航应用是在android上面做的,如果要在qnx系统上重新写一套导航软件,那投入是巨大的,所以就需要一种投屏方案。
34.存在一种投屏方案是在qnx端配置wfdport给移动操作系统(如:android),android硬件抽象层(hardware abstraction layer,hal)认为是实体的显示屏,通过qnx端的配置android可以在任何现实体的显示屏上显示,但是每个wfdport必须要占用物理硬件资源。
35.其中,openwf display是一种跨平台开放标准的显示框架,用于管理显示控制硬件。openwf display包括在内部和外部显示器上执行模式设置以及发现和查询新连接的显示器的能力。具有多个显示器和外部显示器连接的嵌入式设备正变得越来越普遍。这些显示器提供不同程度的可配置性,并且通常需要自定义程序来进行设置和模式选择。openwf display提供了一种一致的方式来查询和控制这些显示的状态。
36.基于上述应用场景,下面对本技术实施例提供的应用投屏方法进行详细说明。
37.图1为本技术实施例提供的一种应用投屏方法的流程图。
38.如图1所示,该应用投屏方法可以包括步骤110-步骤140,应用于车载终端,车载终端运行有移动操作系统和实时操作系统,该方法应用于应用投屏装置,具体如下所示:
39.步骤110,将在移动操作系统中安装的应用程序与预设的虚拟显示屏建立连接。
40.步骤120,在虚拟显示屏的画布中合成应用程序的应用界面。
41.步骤130,通过共享内存通道,将应用界面传递至实时操作系统。
42.步骤140,控制实时操作系统将应用界面显示在目标显示屏上。
43.本技术实施例提供的应用投屏方法中,通过将移动操作系统中安装的应用程序与虚拟显示屏建立连接;在虚拟显示屏的画布中合成应用程序的应用界面,能够在虚拟显示屏中合成各种第三方应用程序的应用界面,兼容性强;通过共享内存通道,将应用界面传递至实时操作系统;这里,通过共享内存传递合成好的应用界面,无需占用额外的内存资源和处理器资源对生成的应用界面进行数据拷贝,最后,控制实时操作系统将应用界面显示在目标显示屏,能够高效便捷的在车载终端的目标显示屏上显示用户所需的应用程序的应用界面。
44.在一些实施例中,步骤110,将在移动操作系统中安装的应用程序与预设的虚拟显示屏建立连接,具体可以包括以下步骤:
45.通过显示屏管理器,获取预先创建的虚拟显示屏;
46.将应用程序与虚拟显示屏建立连接。
47.可以启动投屏服务通过显示屏管理器获取到预先创建的虚拟显示屏
(virtualdisplay)。
48.其中,创建上述虚拟显示屏的步骤具体可以包括:由车载终端的处理器将需要显示的内容渲染在一个画布(surface)控件上,即得到虚拟显示屏,当进程终止时虚拟显示屏会被自动的释放。
49.在一些实施例中,步骤110,将在移动操作系统中安装的应用程序与预设的虚拟显示屏建立连接,具体可以包括以下步骤:
50.接收用户对应用程序的选中输入;响应于选中输入,将移动操作系统中安装的应用程序与虚拟显示屏建立连接。
51.具体地,车载终端界面中可以显示多个应用标识,如:地图应用标识、音乐播放器标识以及视频播放器标识等,若用户从中选中地图应用标识,则将地图应用标识对应的地图类应用程序与虚拟显示屏建立连接。
52.在一些实施例中,在虚拟显示屏的画布中合成应用程序的应用界面。
53.可以采用一种称为画布(surface)的架构为应用程序提供用户界面。在应用程序中,每一个活动组件都关联有一个或者若干个窗口,每一个窗口都对应有一个子画布。有了这个子画布之后,应用程序就可以在上面渲染窗口的界面内容。最终这些已经绘制好了的子画布都会被统一提交给管理服务器(如:surfaceflinger)进行合成,得到合成好的应用界面,最后显示在显示屏上面。
54.在一种可能的实施例中,在步骤120之前,还可以包括以下步骤:
55.将应用程序的包名写入启动参数,以用于在车载终端中启动应用程序。
56.具体地,可以在启动参数(activityoptions)中写入应用程序的包名,以通过startactivity拉起应用程序,即用于在车载终端中启动应用程序。
57.在一些实施例中,步骤130,通过共享内存通道,将应用界面传递至实时操作系统,具体可以包括以下步骤:
58.将应用界面存储于预设内存空间;
59.将预设内存空间通过共享内存通道传递至实时操作系统;
60.控制实时操作系统从预设内存空间中提取应用界面,以及将提取应用界面后的预设内存空间返回至移动操作系统。
61.renderbuffer objects:渲染缓冲区对象,无论是纹理、图片、颜色、深度缓冲区、模版缓冲区都存在这个对象。
62.示例性地,安卓系统将应用界面存储于预设内存空间(bufferrender)中;将包括应用界面的bufferrender通过共享内存通道传递至实时操作系统。在传递上述包括应用界面的bufferrender的同时,也在继续合成新的应用界面并传递,即多个bufferrender的传递在同时进行。然后控制实时操作系统从bufferrender中提取应用界面,以及将提取应用界面后的bufferrender返回至移动操作系统,以用于安卓系统继续合成渲染新的应用界面。
63.另外,存储管理器(bufferq)负责多个bufferrender在安卓系统和qnx系统中高效有序的传递。
64.其中,所述虚拟显示屏的画布(virtual display的surface)由所述预设内存空间(bufferrender)创建。
65.在一些实施例中,步骤130,具体可以包括以下步骤:
66.监测应用界面是否合成完成;
67.响应于监测到应用界面合成完成,将应用界面传递至实时操作系统。
68.示例性地,可以利用bufferrenderjni通过重写onframeavailable方法监听合成后的数据,在监测到应用界面合成完成的情况下,将应用界面传递至实时操作系统。其中,上述涉及到的bufferrenderjni可以用于实现java语言和c 语言之间的转换,在开发中,经常会在java代码与jni层之间传递数组,一个典型的应用是java层把需要发送给客户端的数据流传递到jni层,由jni层的socket代码发送出去,当然,jni层也需要把从socket接收到的数据流返回给java层。
69.在一些实施例中,步骤140,控制实时操作系统将应用界面显示在目标显示屏上,具体可以包括以下步骤:
70.控制实时操作系统通过渲染接口创建应用界面的显存;
71.控制实时操作系统通过显示接口,将显存中的应用界面显示在目标显示屏上。
72.实时操作系统端在获取到应用界面之后,可以通过渲染接口(如:opengleglcreateimagekhr)创建应用界面的显存(如:eglimage),然后控制实时操作系统通过显示接口(qnx的screen系),将显存中的应用界面显示在目标显示屏上。
73.其中,eglimage代表一种由egl客户端的应用程序编程接口(如opengl,openvg)创建的共享资源类型。应用程序以及相关的客户端的应用程序编程接口可以基于任意的目的创建任意类型的共享数据。其中,关于eglimage的一种使用情景就是通过它来根据传来的预设内存空间中的信息创建纹理信息,即创建显存。
74.在一种可能的实施例中,实时操作系统为qnx操作系统;移动操作系统为android操作系统。
75.本技术的实施例,可以通过安卓系统的虚拟显示屏,通过hypervisor间共享内存的方式,实现应用界面的投屏,减少硬件资源的使用,提升车载终端性能,以满足更多使用场景。
76.综上,在本技术实施例中,通过将移动操作系统中安装的应用程序与虚拟显示屏建立连接;在虚拟显示屏的画布中合成应用程序的应用界面,能够在虚拟显示屏中合成各种第三方应用程序的应用界面,兼容性强;通过共享内存通道,将应用界面传递至实时操作系统;这里,通过共享内存传递合成好的应用界面,无需占用额外的内存资源和处理器资源对生成的应用界面进行数据拷贝,最后,控制实时操作系统将应用界面显示在目标显示屏,能够高效便捷的在车载终端的目标显示屏上显示用户所需的应用程序的应用界面。
77.基于上述图1所示的应用投屏方法,本技术还提供了一种实现应用投屏方法,图2为本技术实施例提供的一种实现应用投屏方法的流程图。
78.如图2所示,该应用投屏方法,具体如下所示:
79.首先,在移动操作系统(如android操作系统)中,应用程序210通过投屏服务220绑定虚拟显示屏230,在由预设存储空间240创建的画布中,合成应用程序210的应用界面,并将包括应用界面的预设存储空间(即内存地址),传递至存储管理器,由存储管理器控制各个预设存储空间清晰有序的通过共享内存通道260传递至实时操作系统(如qnx)中,最后由实时操作系统中的存储管理器将应用界面显示在目标显示屏270中,以实现高效便捷地将
应用界面投屏显示至车载终端中。
80.综上,在本技术实施例中,通过将移动操作系统中安装的应用程序与虚拟显示屏建立连接;在虚拟显示屏的画布中合成应用程序的应用界面,能够在虚拟显示屏中合成各种第三方应用程序的应用界面,兼容性强;通过共享内存通道,将应用界面传递至实时操作系统;这里,通过共享内存传递合成好的应用界面,无需占用数据资源,最后,控制实时操作系统将应用界面显示在与车载终端连接的目标显示屏上,能够高效便捷的在车载终端的目标显示屏上显示用户所需的应用程序的应用界面。
81.基于上述图1所示的应用投屏方法,本技术实施例还提供一种应用投屏装置,如图3所示,该装置300可以包括:
82.连接模块310,用于将在移动操作系统中安装的应用程序与预设的虚拟显示屏建立连接。
83.合成模块320,用于在虚拟显示屏的画布中合成应用程序的应用界面。
84.传递模块330,用于通过共享内存通道,将应用界面传递至实时操作系统。
85.显示模块340,用于控制实时操作系统将应用界面显示在目标显示屏上。
86.在一种可能的实现方式中,连接模块310,具体用于:
87.通过显示屏管理器,获取预先创建的虚拟显示屏;
88.将应用程序与虚拟显示屏建立连接。
89.在一种可能的实现方式中,该装置300还可以包括:
90.写入模块,用于将应用程序的包名写入启动参数,以用于在车载终端中启动应用程序。
91.在一种可能的实现方式中,传递模块,具体用于:
92.将应用界面存储于预设内存空间;
93.将预设内存空间通过共享内存通道传递至实时操作系统;
94.控制实时操作系统从预设内存空间中提取应用界面,以及将提取应用界面后的预设内存空间返回至移动操作系统。
95.在一种可能的实现方式中,传递模块,具体用于:
96.监测应用界面是否合成完成;
97.响应于监测到应用界面合成完成,将应用界面传递至实时操作系统。
98.在一种可能的实现方式中,显示模块340,具体用于:
99.控制实时操作系统通过渲染接口创建应用界面的显存;
100.控制实时操作系统通过显示接口,将显存中的应用界面显示在目标显示屏上。
101.在一种可能的实现方式中,实时操作系统为qnx操作系统;移动操作系统为android操作系统。
102.综上,在本技术实施例中,通过将移动操作系统中安装的应用程序与虚拟显示屏建立连接;在虚拟显示屏的画布中合成应用程序的应用界面,能够在虚拟显示屏中合成各种第三方应用程序的应用界面,兼容性强;通过共享内存通道,将应用界面传递至实时操作系统;这里,通过共享内存传递合成好的应用界面,无需占用额外的内存资源和处理器资源对生成的应用界面进行数据拷贝,最后,控制实时操作系统将应用界面显示在目标显示屏,能够高效便捷的在车载终端的目标显示屏上显示用户所需的应用程序的应用界面。
103.图4示出了本技术实施例提供的一种电子设备的硬件结构示意图。
104.在电子设备可以包括处理器401以及存储有计算机程序指令的存储器402。
105.具体地,上述处理器401可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,asic),或者可以被配置成实施本技术实施例的一个或多个集成电路。
106.存储器402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器402可包括硬盘驱动器(hard disk drive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器402可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器402可在综合网关容灾设备的内部或外部。在特定实施例中,存储器402是非易失性固态存储器。在特定实施例中,存储器402包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。
107.处理器401通过读取并执行存储器402中存储的计算机程序指令,以实现图所示实施例中的任意一种应用投屏方法。
108.在一个示例中,电子设备还可包括通信接口403和总线410。其中,如图4所示,处理器401、存储器402、通信接口403通过总线410连接并完成相互间的通信。
109.通信接口403,主要用于实现本技术实施例中各模块、装置、单元和/或设备之间的通信。
110.总线410包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线410可包括一个或多个总线。尽管本技术实施例描述和示出了特定的总线,但本技术考虑任何合适的总线或互连。
111.该电子设备可以执行本技术实施例中的应用投屏方法,从而实现结合图1至图2描述的应用投屏方法。
112.另外,结合上述实施例中的应用投屏方法,本技术实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现图1至图2中的应用投屏方法。
113.需要明确的是,本技术并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本技术的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本技术的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
114.以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本技术的元素是被用于执行所需任务的程序或者代
码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
115.还需要说明的是,本技术中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本技术不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
116.以上所述,仅为本技术的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献