CN110347464B - 应用程序的用户界面渲染方法、装置、介质及电子设备 - Google Patents
应用程序的用户界面渲染方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN110347464B CN110347464B CN201910562756.8A CN201910562756A CN110347464B CN 110347464 B CN110347464 B CN 110347464B CN 201910562756 A CN201910562756 A CN 201910562756A CN 110347464 B CN110347464 B CN 110347464B
- Authority
- CN
- China
- Prior art keywords
- application program
- user interface
- display area
- navigation
- displayed
- 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
-
- 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/451—Execution arrangements for user interfaces
Abstract
本发明提供了一种应用程序的用户界面渲染方法、应用程序的用户界面渲染装置、计算机可读介质以及电子设备。本发明实施例中的方法包括:确定前端应用程序的第一用户界面,并获取所述第一用户界面中的目标显示区域的图层参数;建立所述前端应用程序与待显示应用程序之间的进程间通信链路;所述前端应用程序通过所述进程间通信链路向所述待显示应用程序发送所述图层参数;所述待显示应用程序利用所述图层参数在所述目标显示区域渲染所述待显示应用程序的第二用户界面。该方法可以由待显示应用程序直接在目标显示区域上渲染与第一用户界面分屏显示的第二用户界面,提高了应用程序用户界面显示的灵活性和可控性。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种应用程序的用户界面渲染方法、应用程序的用户界面渲染装置、计算机可读介质以及电子设备。
背景技术
随着计算机技术以及移动互联网技术的发展,车载导航技术取得了日新月异的进步,人们对于日常出行中所使用的车载导航的显示效果和交互功能方面也提出了越来越高的要求。
传统的车载导航设备仅能在固定的显示界面上(如车机显示界面)对导航信息进行显示,在显示与交互的灵活性和可控性等方面均存在较大问题。另外,当用户在车机设备上使用音乐、收音机、电话等其他车机功能并与之进行交互操作时,导航应用将被切换至后台运行的状态,此时用户便无法继续查看导航地图,存在使用效果差的问题。
鉴于以上问题,本领域亟需一种应用程序的用户界面分屏渲染方法,以改善导航功能的使用效果和用户体验。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明的实施例提供了一种应用程序的用户界面渲染方法、应用程序的用户界面渲染装置、计算机可读介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制而导致的导航地图无法分屏显示的技术问题。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明实施例的一个方面,提供一种应用程序的用户界面渲染方法,该方法包括:确定前端应用程序的第一用户界面,并获取所述第一用户界面中的目标显示区域的图层参数;建立所述前端应用程序与待显示应用程序之间的进程间通信链路;所述前端应用程序通过所述进程间通信链路向所述待显示应用程序发送所述图层参数;所述待显示应用程序利用所述图层参数在所述目标显示区域渲染所述待显示应用程序的第二用户界面。
根据本发明实施例的一个方面,提供一种应用程序的用户界面渲染装置,该装置包括:图层参数获取模块,被配置为确定前端应用程序的第一用户界面,并获取所述第一用户界面中的目标显示区域的图层参数;通信链路建立模块,被配置为建立所述前端应用程序与待显示应用程序之间的进程间通信链路;图层参数传送模块,被配置为所述前端应用程序通过所述进程间通信链路向所述待显示应用程序发送所述图层参数;用户界面渲染模块,被配置为所述待显示应用程序利用所述图层参数在所述目标显示区域渲染所述待显示应用程序的第二用户界面。
在本发明的一些实施例中,基于以上技术方案,图层参数获取模块包括:文件加载单元,被配置为所述前端应用程序加载对应于所述第一用户界面的视图布局文件,并确定所述第一用户界面中的目标显示区域;控件确定单元,被配置为通过所述视图布局文件确定一个或者多个用于在所述目标显示区域上绘制图层的目标视图控件;参数获取单元,被配置为利用所述目标视图控件获取所述目标显示区域的图层参数。
在本发明的一些实施例中,基于以上技术方案,控件确定单元包括:控件标识符获取单元,被配置为从所述视图布局文件中获取视图控件的控件标识符;目标控件标识符选取单元,被配置为从所述控件标识符中选取对应于所述目标显示区域的一个或者多个目标控件标识符;目标视图控件确定单元,被配置为根据所述目标控件标识符确定用于在所述目标显示区域上绘制图层的目标视图控件。
在本发明的一些实施例中,基于以上技术方案,所述图层参数包括所述目标显示区域的内存地址。
在本发明的一些实施例中,基于以上技术方案,通信链路建立模块包括:请求发送单元,被配置为所述前端应用程序通过绑定服务接口向所述待显示应用程序发送远程服务绑定请求;接口创建单元,被配置为所述待显示应用程序根据所述远程服务绑定请求创建基于接口定义语言的远程服务接口;通信链路建立单元,被配置为利用所述远程服务接口建立所述前端应用程序与待显示应用程序之间的进程间通信链路。
在本发明的一些实施例中,基于以上技术方案,通信链路建立模块包括:远程服务注册单元,被配置为所述待显示应用程序通过Binder驱动组件在服务管理组件中注册远程服务,并由所述服务管理组件创建与所述待显示应用程序相对应的Binder引用对象;Binder获取单元,被配置为所述前端应用程序通过所述Binder驱动组件向所述服务管理组件发送获取所述Binder引用对象的请求;通信链路建立单元,被配置为根据获取到的所述Binder引用对象,通过所述Binder驱动组件建立所述前端应用程序与待显示应用程序之间的进程间通信链路。
在本发明的一些实施例中,基于以上技术方案,通信链路建立模块包括:消息处理器创建单元,被配置为所述待显示应用程序创建用于接收并处理由所述前端应用程序发送的消息的消息处理器;通信链路建立单元,被配置为利用所述消息处理器建立所述前端应用程序与待显示应用程序之间的进程间通信链路。
在本发明的一些实施例中,基于以上技术方案,用户界面渲染模块包括:视图窗口创建单元,被配置为所述待显示应用程序利用所述图层参数创建对应于所述目标显示区域的视图窗口;用户界面渲染单元,被配置为在所述视图窗口中渲染所述待显示应用程序的第二用户界面。
在本发明的一些实施例中,基于以上技术方案,视图窗口创建单元包括:初始化单元,被配置为所述待显示应用程序利用所述图层参数初始化窗口渲染单元;创建单元,被配置为所述窗口渲染单元通过图形渲染接口创建对应于所述目标显示区域的视图窗口。
在本发明的一些实施例中,基于以上技术方案,所述装置还包括:刷新频率获取模块,被配置为获取由所述前端应用程序配置的所述目标显示区域的刷新频率;用户界面刷新模块,被配置为根据所述刷新频率定时刷新所述待显示应用程序的所述第二用户界面。
在本发明的一些实施例中,基于以上技术方案,所述待显示应用程序为后台运行的导航应用程序,所述第二用户界面为所述导航应用程序渲染的导航地图。
在本发明的一些实施例中,基于以上技术方案,所述装置还包括:信息获取模块,被配置为所述导航应用程序获取与所述导航地图相关的路线引导信息;信息显示模块,被配置为所述导航应用程序将所述路线引导信息发送至所述前端应用程序,以在所述导航地图上显示所述路线引导信息。
根据本发明实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上任一实施例中的导航地图的分屏显示方法。
根据本发明实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行如以上任一实施例中的导航地图的分屏显示方法。
在本发明的一些实施例所提供的技术方案中,通过在前端应用程序与待显示应用程序之间建立进程间通信链路,可以由前端应用程序向待显示应用程序发送目标显示区域的图层参数,从而由待显示应用程序直接在目标显示区域上渲染与第一用户界面分屏显示的第二用户界面。提高了应用程序用户界面显示的灵活性和可控性,为用户提供了更好的双屏互动、分屏显示的交互体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本发明实施例的应用程序的用户界面渲染方法或者应用程序的用户界面渲染装置的示例性系统架构示意图。
图2示意性示出了在一应用场景下导航地图的分屏显示原理示意图;
图3A示意性示出了在一种应用场景下导航地图的分屏显示效果示意图;
图3B示意性示出了在另一应用场景下导航地图的分屏显示效果示意图;
图3C示意性示出了在另一应用场景下导航地图的分屏显示效果示意图;
图3D示意性示出了在另一应用场景下导航地图的分屏显示效果示意图;
图4示意性地示出了本发明的一些实施例中应用程序的用户界面渲染方法的步骤流程图;
图5示意性地示出了在本发明的一些实施例中获取图层参数的步骤流程图;
图6示意性地示出了在本发明的一些实施例中确定目标视图控件的步骤流程图;
图7示意性地示出了在本发明的一些实施例中基于接口定义语言建立进程间通信链路的步骤流程图;
图8示意性地示出了在本发明的其他一些实施例中基于Binder通信模型建立进程间通信链路的步骤流程图;
图9示意性地示出了在本发明的其他一些实施例中基于消息处理器Messenger建立进程间通信链路的步骤流程图;
图10示意性地示出了在本发明的一些实施例中渲染第二用户界面的步骤流程图;
图11示意性地示出了在本发明的一些实施例中创建视图窗口的步骤流程图;
图12示意性地示出了在本发明的一些实施例中刷新第二用户界面的步骤流程图;
图13示意性地示出了本发明的一些实施例中显示路线引导信息的步骤流程图;
图14示意性示出了在本发明的一些实施例中应用程序的用户界面渲染方法在一应用场景下的步骤流程图;
图15示出了在本发明的一个实施例中应用程序的用户界面渲染装置的结构框图;
图16示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了可以应用本发明实施例的应用程序的用户界面渲染方法或者应用程序的用户界面渲染装置的示例性系统架构示意图。
如图1所示,系统架构100可以包括终端设备110、网络120和服务器130。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,应用本发明实施例的系统架构可以具有任意数目的终端设备、网络和服务器,例如服务器130可以是多个服务器组成的服务器集群等。
终端设备110可以是各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机、车载计算机、车载导航仪、车载仪表设备、中控车机等等。
网络120可以是能够为终端设备110和服务器130之间提供通信链路的各种连接类型的通信介质,例如可以是有线通信链路、无线通信链路或者光纤电缆等等。
以本发明在导航应用程序的用户界面渲染中的应用为例,终端设备110例如可以是具有显示界面的车载仪表设备,主要可以在显示界面上呈现车辆各系统工作状况的电子仪表信息,如车速表、里程表、转速表以及各种指示灯等。终端设备110也可以是车载导航仪或者中控车机,主要可以提供导航地图显示、路线引导提示等功能,另外也可以提供音乐、收音机、电话等各种娱乐或者通讯功能。服务器130可以是提供导航地图数据和导航路线查询与计算等服务的服务器。在一个应用场景下,终端设备110上同时安装有多种应用程序,而且其显示界面上一般只能显示一个前台运行的应用程序。基于本发明提供的应用程序的用户界面渲染方法,前端应用程序(如前台运行的音乐APP)可以在终端设备110的显示界面上呈现第一用户界面,同时可以通过进程间通信链路将目标显示区域的图层参数发送给后台运行的导航应用程序(即待显示应用程序),然后由导航应用程序根据接收到的图层参数在目标显示区域上渲染用于呈现导航地图及导航信息的第二用户界面,由此可以实现前端应用程序的第一用户界面与导航应用程序的第二用户界面在同一显示界面上的分屏显示,使得用户在使用其他应用程序的同时能够同步使用导航应用程序。
在本领域的相关技术中,车载导航设备一般具有独立且完整的显示界面,当用户在使用如音乐、收音机等除导航功能以外的其他应用程序并与其进行交互操作时,导航界面将被切换至后台运行,此时用户便无法对导航地图进行查看,自然也无法获得实时导航信息。为了能够为用户提供连续完整的可视化的导航界面,一种可选方案是基于图片创建和传输、转码的方式对导航信息进行分屏显示,亦即将导航界面用多个显示器或者通过多个应用程序串联一同输出,以形成分屏幕显示的效果。
图2示出了在一应用场景下导航地图的分屏显示原理示意图。
如图2所示,在该应用场景下,导航应用的地图画面可以分为主地图和分屏显示地图两部分进行显示。其中,主地图为实时显示画面,通过将用户界面的视图控件(SurfaceView)封装为一个地图组件(MapView),然后调用地图引擎的地图渲染器(MapRender)将地图元素绘制于绘制窗口(onDrawFrame)中,从而将主地图显示到用户界面上。针对分屏显示地图,基于主地图的实现流程,在地图渲染的同时,通过读取像素数据(GL10.glReadPixels)将地图元素转换为一帧帧的图片(Bitmap.creatBitmap),然后通过不断地刷新分屏显示地图对应的用户界面以达到地图动态显示的效果。该方案虽然能够对导航地图进行分屏显示,但是由于需要对图片数据进行传输,而且需要经过图片的转码、大小处理等过程,存在传输效率低、显示性能差等缺陷。除此之外,通过传送图片进行分屏显示将产生较高的CPU占用率,存在卡顿明显的问题。例如一张720P的图片,分屏显示的耗时在100ms以上,无法获得与主地图相近的显示流畅度。
鉴于以上问题,本发明提出了一种应用程序的用户界面渲染方法,该方法可以应用于如上所述的车载导航设备中,也可以应用于中控车机设备、车载电子仪表设备甚至具有图像显示功能的前挡风玻璃等任意的终端设备。该方法的基本原理是由前台运行的前端应用程序直接将目标显示区域的图层参数传送给后台运行的待显示应用程序(如导航应用程序),然后由待显示应用程序根据接收到的图层参数直接在目标显示区域上渲染第二用户界面,从而能够解决以上相关技术中存在的因图片传输和转码再显示而导致的传输效率低、显示效果差等问题。
以基于安卓(Android)操作系统的导航地图的分屏渲染为例,通常情况下,导航地图的显示都是通过视图控件SurfaceView展示到用户界面上的。而SurfaceView又是派生自视图View,这个视图里内嵌了一个专门用于绘制的图层Surface,即可以借助这个图层刷新地图界面。另外,用户还可以自定义Surface的格式和尺寸,通过在页面视图布局文件里指定SurfaceView的位置从而控制Surface的绘制位置。换言之,Surface对应了一块屏幕缓冲区(Raw Buffer),而每个窗口Window都对应一个Surface,任何View都要画在Surface上。Surface也可以理解为是一个Raw Buffer的句柄,只要能够得到这一句柄,就可以直接操作与之对应的屏幕显示画面,亦即可以实现对导航地图的分屏显示。
图3A至图3D分别示出了在不同应用场景中导航地图的分屏显示效果示意图。
如图3A所示,在仪表盘屏幕上可以同时显示仪表应用程序的第一用户界面和导航应用程序的第二用户界面。其中,仪表应用程序在仪表设备上运行,而导航应用程序则在导航设备上运行。位于仪表盘屏幕中心的第一显示区域310为目标显示区域,用于显示导航应用程序的第二用户界面,即导航地图画面;分别位于仪表盘屏幕两侧的第二显示区域320和第三显示区域330用于显示仪表应用程序的第一用户界面,即仪表盘画面。
图3B示出了与图3A类似的在仪表盘屏幕上的分屏显示效果。位于仪表盘屏幕左侧的第四显示区域340为目标显示区域,用于显示导航应用程序的第二用户界面,即导航地图画面;位于仪表盘屏幕右侧的第五显示区域350用于显示仪表应用程序的第一用户界面,即仪表盘画面。
如图3C所示,在车机屏幕上可以同时显示车机应用的第一用户界面和导航应用程序的第二用户界面。其中,车机应用为前台运行的前端应用程序,而导航应用程序为后台运行的待显示应用程序。位于车机屏幕右侧的第六显示区域360为目标显示区域,用于显示导航应用程序的第二用户界面,即导航信息指示画面;位于车机屏幕左侧的第七显示区域370用于显示车机桌面应用的第一用户界面,即图中所示的“本地电台”应用程序的用户界面。
图3D示出了与图3C类似的在车机屏幕上的分屏显示效果。位于车机屏幕右侧的第八显示区域380为目标显示区域,用于显示导航应用程序的第二用户界面,即导航地图画面;位于车机屏幕左侧的第九显示区域390用于显示车机桌面应用的第二用户界面,即图中所示的“音乐”、“收音机”、“电话”等应用程序的用户界面。
下面结合具体实施例对本发明提供的应用程序的用户界面渲染方法做出详细说明。
在本发明的一种实施例中,首先提供一种应用程序的用户界面渲染方法,该方法可以实现前端应用程序的第一用户界面与待显示应用程序的第二用户界面在同一显示屏幕上的分屏显示。
图4示意性地示出了本实施例中应用程序的用户界面渲染方法的步骤流程图。如图4所示,该方法主要可以包括以下步骤:
步骤S410.确定前端应用程序的第一用户界面,并获取第一用户界面中的目标显示区域的图层参数。
前端应用程序是在终端设备前台运行的应用程序,当前端应用程序启动后,便可以在终端设备的显示界面上显示第一用户界面,该第一用户界面内包括有多个显示区域,每个显示区域上可以呈现相应的图层、控件等显示要素。为了实现不同应用程序的分屏显示,本步骤还可以在第一用户界面上确定一处目标显示区域,同时获取该区域的图层参数。其中,图层参数可以包括目标显示区域的内存地址,尤其可以是指向显存的一个物理地址。此外,图层参数还可以包括目标显示区域的位置信息、尺寸信息等其他信息。
步骤S420.建立前端应用程序与待显示应用程序之间的进程间通信链路。
前端应用程序与待显示应用程序可以是在同一终端设备上同时运行的两个应用程序。举例而言,前端应用程序与待显示应用程序均位于车机设备上,其中待显示应用程序为后台运行的导航应用程序,而前端应用程序为除导航应用以外的其他应用(如音乐应用)。当用户同时打开音乐应用和导航应用时,二者是作为两个相互独立的进程而同时存在的。除此之外,前端应用程序与待显示应用程序也可以是分布在两个不同终端设备上的两个应用程序,例如前端应用程序是仪表设备上的仪表应用,而待显示应用程序是车机设备上的导航应用。为了实现前端应用程序与待显示应用程序在同一屏幕上的分屏显示,本步骤可以在二者之间建立进程间通信链路(Inter-Process Communication,简称IPC)。
步骤S430.前端应用程序通过进程间通信链路向待显示应用程序发送图层参数。
基于步骤S420建立的进程间通信链路,前端应用程序能够与待显示应用程序进行跨进程地数据通信。本步骤通过进程间通信链路将前端应用程序获取到的目标显示区域的图层参数发送至待显示应用程序。对于一个待显示应用程序而言,与之建立进程间通信链路的前端应用程序可能是一个或者多个,同时每个前端应用程序也都可以向待显示应用程序发送对应于一个或者多个目标显示区域的图层参数。待显示应用程序可以按照接收顺序依次处理或者并行处理各个图层参数。
步骤S440.待显示应用程序利用图层参数在目标显示区域渲染待显示应用程序的第二用户界面。
待显示应用程序接收到目标显示区域的图层参数后,可以获得目标显示区域的控制权,直接利用该图层参数控制目标显示区域的显示内容。如果待显示应用程序接收到的是由一个前端应用程序发送的对应于多个目标显示区域的多个图层参数,那么待显示应用程序可以在同一显示屏幕的多个不同的目标显示区域上同时渲染第二用户界面,除目标显示区域以外的其他显示区域则继续显示前端应用程序的第一用户界面。如果待显示应用程序接收到的是由分布于不同终端设备上的多个前端应用程序发送的对应于多个目标显示区域的多个图层参数,那么待显示应用程序可以在多个终端设备的显示屏幕上对应目标显示区域的位置内渲染第二用户界面,而每个终端设备上也都可以实现前端应用程序的第一用户界面与待显示应用程序的第二用户界面的分屏显示。
在本实施例所提供的应用程序的用户界面渲染方法中,通过在前端应用程序与待显示应用程序之间建立进程间通信链路,可以由前端应用程序向待显示应用程序发送目标显示区域的图层参数,从而由待显示应用程序直接在目标显示区域上渲染与第一用户界面分屏显示的第二用户界面。提高了应用程序用户界面显示的灵活性和可控性,为用户提供了更好的双屏互动、分屏显示的交互体验。
图5示意性地示出了在本发明的一些实施例中获取图层参数的步骤流程图。
如图5所示,在以上实施例的基础上,步骤S410中的获取第一用户界面中的目标显示区域的图层参数,可以包括以下步骤:
步骤S510.前端应用程序加载对应于第一用户界面的视图布局文件,并确定第一用户界面中的目标显示区域。
当终端设备上启动前端应用程序或者接收到用户对于前端应用程序的控制指令后,前端应用程序会加载一视图布局文件,该视图布局文件用于控制第一用户界面内各个视图对象的布局形式,即各个视图对象的区域分布情况。本步骤同时可以确定第一用户界面中的目标显示区域,该目标显示区域可以是一个连续且封闭的显示区域,也可以是分布在不同位置的多个显示区域。
步骤S520.通过视图布局文件确定一个或者多个用于在目标显示区域上绘制图层的目标视图控件。
在一处显示区域内所显示的内容是由对应的一个或者多个视图控件(SurfaceView)来决定的,在视图布局文件中可以指定每个视图控件的位置和大小,从而可以控制不同图层的绘制位置和绘制尺寸。通过步骤S510中加载的视图布局文件可以确定用于在目标显示区域上绘制图层的一个或者多个目标视图控件。
步骤S530.利用目标视图控件获取目标显示区域的图层参数。
每一个视图控件即对应于显示屏幕上的一处显示区域,利用步骤S520所确定的目标视图控件能够获取目标显示区域的图层参数,该图层参数主要可以是目标显示区域的内存地址,另外也可以包括目标显示区域的区域位置和区域尺寸等其他参数信息。
图6示意性地示出了在本发明的一些实施例中确定目标视图控件的步骤流程图。
如图6所示,在本发明的一些实施例中,步骤S520.通过视图布局文件确定一个或者多个用于在目标显示区域上绘制图层的目标视图控件,可以包括以下步骤:
步骤S610.从视图布局文件中获取视图控件的控件标识符。
每个视图控件都对应一个控件标识符,即控件ID。而且在同一个视图布局文件内集成的每个视图控件都拥有各不相同的控件标识符,从视图布局文件中能够获取到各个视图控件的控件标识符。
步骤S620.从控件标识符中选取对应于目标显示区域的一个或者多个目标控件标识符。
步骤S610获取到的是视图布局文件中所有视图控件的控件标识符,本步骤可以从中选取对应于目标显示区域的一个或者多个目标控件标识符。其中,一个目标显示区域可以单独对应一个目标控件标识符,另外也可以对应多个目标控件标识符,具体与目标显示区域的位置和大小相关。
步骤S630.根据目标控件标识符确定用于在目标显示区域上绘制图层的目标视图控件。
根据选取到的目标控件标识符可以确定相应的控件对象,即用于在目标显示区域上绘制图层的目标视图控件。通过相应的控件对象可以获取到其内部的图层参数。
图7示意性地示出了在本发明的一些实施例中基于接口定义语言(InterfaceDefinition Language,简称IDL)建立进程间通信链路的步骤流程图。
如图7所示,在本发明的一些实施例中,步骤S420.建立前端应用程序与待显示应用程序之间的进程间通信链路,可以包括以下步骤:
步骤S710.前端应用程序通过绑定服务接口向待显示应用程序发送远程服务绑定请求。
待显示应用程序可以创建服务进程Service,并监听来自其他应用程序的远程服务绑定请求。在一个远程服务绑定连接中,发送远程服务绑定请求的前端应用程序属于客户端,而响应远程服务绑定请求的待显示应用程序属于服务端。一般而言,一个待显示应用程序可以同时接收并处理一个或者多个前端应用程序发送的远程服务绑定请求。
步骤S720.待显示应用程序根据远程服务绑定请求创建基于接口定义语言的远程服务接口。
响应于接收到的远程服务绑定请求,待显示应用程序可以利用接口定义语言创建远程服务接口,并通过建立服务进程将远程服务接口实例化,然后将实例化的Binder对象返回给前端应用程序。
步骤S730.利用远程服务接口建立前端应用程序与待显示应用程序之间的进程间通信链路。
前端应用程序在接收到Binder对象后将其转化为接口类型的对象,从而利用远程服务接口建立前端应用程序与待显示应用程序之间的进程间通信链路。
图8示意性地示出了在本发明的其他一些实施例中基于Binder通信模型建立进程间通信链路的步骤流程图。
如图8所示,在本发明的一些实施例中,步骤S420.建立前端应用程序与待显示应用程序之间的进程间通信链路,可以包括以下步骤:
步骤S810.待显示应用程序通过Binder驱动组件在服务管理组件中注册远程服务,并由服务管理组件创建与待显示应用程序相对应的Binder引用对象。
Binder驱动组件类似于网络通信中的路由器,负责将客户端(即前端应用程序)的请求转发到具体的服务端(即待显示应用程序)执行,并将服务端返回的数据传回给客户端。Binder引用对象类似于文件描述符,用于指向提供Bingder服务的待显示应用程序。服务管理组件(ServiceManager)类似于网络通信中的DNS服务器,负责将客户端请求的Binder引用对象转化为具体的服务端地址,以便Binder驱动组件能够转发给具体的服务端。服务端如需提供Binder服务,需要向服务管理组件注册。
步骤S820.前端应用程序通过Binder驱动组件向服务管理组件发送获取Binder引用对象的请求。
服务管理组件中会建立待显示应用程序与Binder引用对象的映射关系。前端应用程序想要获取待显示应用程序提供的Binder服务时,需要通过Binder驱动组件向服务管理组件发送获取Binder引用对象的请求。
步骤S830.根据获取到的Binder引用对象,通过Binder驱动组件建立前端应用程序与待显示应用程序之间的进程间通信链路。
前端应用程序在获取到Binder引用对象后,便可以通过Binder驱动组件与待显示应用程序建立进程间通信链路,从而能够使前端应用程序与待显示应用程序进行跨进程通信。
图9示意性地示出了在本发明的其他一些实施例中基于消息处理器Messenger建立进程间通信链路的步骤流程图。
如图9所示,在本发明的一些实施例中,步骤S420.建立前端应用程序与待显示应用程序之间的进程间通信链路,可以包括以下步骤:
步骤S910.待显示应用程序创建用于接收前端应用程序发送消息的消息处理器。
待显示应用程序作为服务端,首先可以创建一个远程服务线程用于处理来自前端应用程序的连接请求,然后创建用于接收来自前端应用程序的消息的消息处理器Messenger,并将消息处理器的Binder对象返回给前端应用程序。
步骤S920.利用消息处理器建立前端应用程序与待显示应用程序之间的进程间通信链路。
前端应用程序绑定待显示应用程序的远程服务后,可以将Binder对象转化为消息处理器,并通过消息处理器向待显示应用程序发送类型为Message对象的消息,即利用消息处理器建立前端应用程序与待显示应用程序之间的进程间通信链路。如果需要在前端应用程序接收来自待显示应用程序的消息,那么也可以在前端应用程序中创建相应的消息处理器,从而实现双向通信。
除以上示例性实施例中提供的基于接口定义语言、Binder通信模型或者消息处理器Messenger建立进程间通信链路的方式以外,本发明实施例也可以采用ContentProvider、Socket等其他IPC机制实现前端应用程序与待显示应用程序进行跨进程通信。
图10示意性地示出了在本发明的一些实施例中渲染第二用户界面的步骤流程图。
如图10所示,在本发明的一些实施例中,步骤S440.待显示应用程序利用图层参数在目标显示区域渲染待显示应用程序的第二用户界面,可以包括以下步骤:
步骤S1010.待显示应用程序利用图层参数创建对应于目标显示区域的视图窗口。
待显示应用程序在得到前端应用程序传送的图层参数后,便获得了相应视图对象的控制权,进而可以通过图层去管理相应的屏幕缓冲区。具体而言,本步骤可以利用所获得的图层参数创建对应于目标显示区域的视图窗口。该视图窗口用于显示待显示应用程序的第二用户界面,除该视图窗口以外的其他屏幕区域则用于继续显示前端应用程序的第一用户界面。
步骤S1020.在视图窗口中渲染待显示应用程序的第二用户界面。
由步骤S1020完成对视图窗口的创建后,本步骤将在该视图窗口中进行第二用户界面的渲染。以导航地图的渲染为例,作为待显示应用程序的导航应用可以从服务器处获取导航数据,然后通过调用渲染器将地图元素绘制到视图窗口上,从而显示在目标显示区域上,由此实现导航地图与其他应用程序分屏显示的效果。
图11示意性地示出了在本发明的一些实施例中创建视图窗口的步骤流程图。
如图11所示,在本发明的一些实施例中,步骤S1010.待显示应用程序利用图层参数创建对应于目标显示区域的视图窗口,可以包括以下步骤:
步骤S1110.待显示应用程序利用图层参数初始化窗口渲染单元。
待显示应用程序首先利用通过进程间通信链路接收到的前端应用程序发送的图层参数对窗口渲染单元进行初始化,该窗口渲染单元即负责绘制相应的视图图层。
步骤S1120.窗口渲染单元通过图形渲染接口创建对应于目标显示区域的视图窗口。
窗口渲染单元通过调用图形渲染接口创建对应于目标显示区域的视图窗口,该视图窗口用于显示待显示应用程序的第二用户界面。当待显示应用程序接收到对应于不同目标显示区域的多个图层参数时,也可以相应创建多个不同的视图窗口,每个视图窗口即对应一个或者多个终端设备上的多个显示区域。
图12示意性地示出了在本发明的一些实施例中刷新第二用户界面的步骤流程图。
如图12所示,在本发明的一些实施例中,应用程序的用户界面渲染方法还可以包括以下步骤:
步骤S1210.获取由前端应用程序配置的目标显示区域的刷新频率。
与前端应用程序分屏显示的待显示应用程序一般需要以一定的刷新频率对用户界面进行刷新。以导航应用为例,用户在使用导航应用时,自身位置以及导航数据一般都是实时变化的。为了保证导航信息的实时有效性,前端应用程序可以对用于显示导航地图的目标显示区域设置一定的刷新频率。导航应用可以通过进程间通信链路或者其他通信方式获得前端应用程序所设置的刷新频率。
步骤S1220.根据刷新频率定时刷新待显示应用程序的第二用户界面。
待显示应用程序根据获取到的刷新频率可以定时刷新第二用户界面,当待显示应用程序同时在多个终端设备或者在同一终端设备的不同区域上与前端应用程序分屏显示时,每个显示区域可以具有相同或者不同的刷新频率,针对每一前端应用程序的具体设置,待显示应用程序可以适应性地进行第二用户界面的渲染和刷新。
在本发明的一些实施例中,待显示应用程序为导航应用程序,可以在中控车机或者车载仪表系统等终端设备上与其他前端应用程序进行分屏显示。与之相应的,第二用户界面为导航应用程序渲染的导航地图。
图13示意性地示出了本发明的一些实施例中显示路线引导信息的步骤流程图。如图13所示,在本发明的一些实施例中,应用程序的用户界面渲染方法还包括以下步骤:
步骤S1310.导航应用程序获取与导航地图相关的路线引导信息。
导航应用程序除了可以与导航服务器通信获取用于绘制导航地图的导航数据以外,还可以从服务器上获取与导航地图相关的路线引导信息,路线引导信息例如可以包括车道线信息、距离信息、转向指引信息等等。另外,除了直接从导航服务器处通信获取以外,路线引导信息也可以是导航应用程序根据导航数据进行计算和处理后生成的信息。
步骤S1320.导航应用程序将路线引导信息发送至前端应用程序,以在导航地图上显示路线引导信息。
导航应用程序可以将获取到的路线引导信息通过广播协议(broadcast)或者其他通信方式发送至前端应用程序,然后可以将其在显示界面上进行显示,具体可以以箭头、数字等标识符号显示在导航地图的上方图层。例如,路线引导信息指示当前车辆需要在271米后向左转向,那么便可以在导航地图上显示一指示左转的箭头标识,同时也可以在箭头上方提供实时的距离计算结果。
在本发明的一些实施例中,用于对导航信息进行分屏显示的显示界面可以是车载仪表系统的显示界面。在此基础上,当前端应用程序接收到导航应用程序发送的路线引导信息时,可以通过控制器局域网络总线(Controller Area Network,简称CAN)将导航信息发送至车载仪表系统。如此一来,可以将导航信息显示在仪表盘的显示屏幕上,方便用户直接查看。
下面参考图14所示的应用场景对本发明各实施例提供的应用程序的用户界面渲染方法的具体流程进行详细说明,该应用场景基于安卓操作系统来实现。
1.客户端
第一步:前端应用程序(客户端应用)在视图布局文件中集成一个或多个SurfaceView视图控件,并且可以指定视图控件的大小和位置;前端应用程序在启动的时候,会加载这个视图布局文件,并且通过控件ID获取到这个视图控件的对象,再通过这个对象获取到其内部的图层参数,该图层参数对应一处目标显示区域;
第二步:前端应用程序在启动后,调用安卓标准的应用程序编程接口API(context.bindservice)绑定待显示应用程序提供的远程服务,从而建立进程间通信链路,实现跨进程通信。
第三步:前端应用程序将获取到的图层参数通过AIDL接口传送至待显示应用程序。至此,待显示应用程序就得到了前端应用程序的图层对象,而这个图层对象用于控制一处显示区域的显示内容。
2.服务端
第一步:待显示应用程序(服务端应用)在收到前端应用程序的连接请求后,与之建立连接并实现跨进程通信;
第二步:利用前端应用程序传过来的图层参数,初始化窗口渲染单元TGLSurface,TGLSurface为窗口绘制类,主要负责绘制地图界面。
第三步:TGLSurface初始化完成后,通过EGL(OpenGL ES渲染API)的createWindowSurface API创建一个对应于目标显示区域的视图窗口,而这个视图窗口就可以用于显示待显示应用程序的第二用户界面。
第四步:待显示应用程序根据前端应用程序设置的刷新频率,定时刷新第二用户界面。
当本发明实施例提供的应用程序的用户界面渲染方法应用于导航应用的分屏渲染时,只需要将前端应用程序用于分屏显示的图层参数发送给导航应用程序,然后由导航应用程序提供导航地图的渲染和路线指引的标识,提高了导航地图分屏显示的灵活性和可控性。该方案避免了前端应用程序与导航应用程序之间的图像传输、转码再显示等处理过程,使得分屏显示的导航地图不受帧率的困扰,能够获得与主地图相同的显示流畅度。
应当注意,尽管在附图中以特定顺序描述了本发明中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
以下介绍本发明的装置实施例,可以用于执行本发明上述实施例中的应用程序的用户界面渲染方法。对于本发明装置实施例中未披露的细节,请参照本发明上述的应用程序的用户界面渲染方法的实施例。
图15示出了在本发明的一个实施例中应用程序的用户界面渲染装置的结构框图。
如图15所示,本发明实施例中应用程序的用户界面渲染装置1500主要可以包括:图层参数获取模块1510、通信链路建立模块1520、图层参数传送模块1530和用户界面渲染模块1540。其中:图层参数获取模块,被配置为确定前端应用程序的第一用户界面,并获取第一用户界面中的目标显示区域的图层参数;通信链路建立模块,被配置为建立前端应用程序与待显示应用程序之间的进程间通信链路;图层参数传送模块,被配置为前端应用程序通过进程间通信链路向待显示应用程序发送图层参数;用户界面渲染模块,被配置为待显示应用程序利用图层参数在目标显示区域渲染待显示应用程序的第二用户界面。
在本发明的一些实施例中,基于以上技术方案,图层参数获取模块包括:文件加载单元,被配置为前端应用程序加载对应于第一用户界面的视图布局文件,并确定第一用户界面中的目标显示区域;控件确定单元,被配置为通过视图布局文件确定一个或者多个用于在目标显示区域上绘制图层的目标视图控件;参数获取单元,被配置为利用目标视图控件获取目标显示区域的图层参数。
在本发明的一些实施例中,基于以上技术方案,控件确定单元包括:控件标识符获取单元,被配置为从视图布局文件中获取视图控件的控件标识符;目标控件标识符选取单元,被配置为从控件标识符中选取对应于目标显示区域的一个或者多个目标控件标识符;目标视图控件确定单元,被配置为根据目标控件标识符确定用于在目标显示区域上绘制图层的目标视图控件。
在本发明的一些实施例中,基于以上技术方案,图层参数包括目标显示区域的内存地址。
在本发明的一些实施例中,基于以上技术方案,通信链路建立模块包括:请求发送单元,被配置为前端应用程序通过绑定服务接口向待显示应用程序发送远程服务绑定请求;接口创建单元,被配置为待显示应用程序根据远程服务绑定请求创建基于接口定义语言的远程服务接口;通信链路建立单元,被配置为利用远程服务接口建立前端应用程序与待显示应用程序之间的进程间通信链路。
在本发明的一些实施例中,基于以上技术方案,通信链路建立模块包括:远程服务注册单元,被配置为待显示应用程序通过Binder驱动组件在服务管理组件中注册远程服务,并由服务管理组件创建与待显示应用程序相对应的Binder引用对象;Binder获取单元,被配置为前端应用程序通过Binder驱动组件向服务管理组件发送获取Binder引用对象的请求;通信链路建立单元,被配置为根据获取到的Binder引用对象,通过Binder驱动组件建立前端应用程序与待显示应用程序之间的进程间通信链路。
在本发明的一些实施例中,基于以上技术方案,通信链路建立模块包括:消息处理器创建单元,被配置为待显示应用程序创建用于接收并处理由前端应用程序发送的消息的消息处理器;通信链路建立单元,被配置为利用消息处理器建立前端应用程序与待显示应用程序之间的进程间通信链路。
在本发明的一些实施例中,基于以上技术方案,用户界面渲染模块包括:视图窗口创建单元,被配置为待显示应用程序利用图层参数创建对应于目标显示区域的视图窗口;用户界面渲染单元,被配置为在视图窗口中渲染待显示应用程序的第二用户界面。
在本发明的一些实施例中,基于以上技术方案,视图窗口创建单元包括:初始化单元,被配置为待显示应用程序利用图层参数初始化窗口渲染单元;创建单元,被配置为窗口渲染单元通过图形渲染接口创建对应于目标显示区域的视图窗口。
在本发明的一些实施例中,基于以上技术方案,装置还包括:刷新频率获取模块,被配置为获取由前端应用程序配置的目标显示区域的刷新频率;用户界面刷新模块,被配置为根据刷新频率定时刷新待显示应用程序的第二用户界面。
在本发明的一些实施例中,基于以上技术方案,待显示应用程序为后台运行的导航应用程序,第二用户界面为导航应用程序渲染的导航地图。
在本发明的一些实施例中,基于以上技术方案,装置还包括:信息获取模块,被配置为导航应用程序获取与导航地图相关的路线引导信息;信息显示模块,被配置为导航应用程序将路线引导信息发送至前端应用程序,以在导航地图上显示路线引导信息。
本发明各实施例中提供的应用程序的用户界面渲染装置的具体细节已经在对应的方法实施例中进行了详细的描述,因此此处不再赘述。
图16示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图16示出的电子设备的计算机系统1600仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图16所示,计算机系统1600包括中央处理单元(Central Processing Unit,CPU)1601,其可以根据存储在只读存储器(Read-Only Memory,ROM)1602中的程序或者从存储部分1608加载到随机访问存储器(Random Access Memory,RAM)1603中的程序而执行各种适当的动作和处理。在RAM 1603中,还存储有系统操作所需的各种程序和数据。CPU1601、ROM 1602以及RAM 1603通过总线1604彼此相连。输入/输出(Input/Output,I/O)接口1605也连接至总线1604。
以下部件连接至I/O接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1607;包括硬盘等的存储部分1608;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至I/O接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入存储部分1608。
特别地,根据本发明的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理单元(CPU)1601执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本发明实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (14)
1.一种应用程序的用户界面渲染方法,其特征在于,所述方法包括:
前端应用程序在终端设备的显示界面上显示第一用户界面,并获取所述第一用户界面中的目标显示区域的内存地址;
建立所述前端应用程序与后台运行的导航应用程序之间的进程间通信链路;
所述前端应用程序通过所述进程间通信链路向所述导航应用程序发送所述内存地址;
所述导航应用程序通过图层管理屏幕缓冲区,以利用所述内存地址创建对应于所述目标显示区域的视图窗口;
所述导航应用程序在所述视图窗口中渲染第二用户界面。
2.根据权利要求1所述的方法,其特征在于,所述获取所述第一用户界面中的目标显示区域的内存地址,包括:
所述前端应用程序加载对应于所述第一用户界面的视图布局文件,并确定所述第一用户界面中的目标显示区域;
通过所述视图布局文件确定一个或者多个用于在所述目标显示区域上绘制图层的目标视图控件;
利用所述目标视图控件获取所述目标显示区域的内存地址。
3.根据权利要求2所述的方法,其特征在于,所述通过所述视图布局文件确定一个或者多个用于在所述目标显示区域上绘制图层的目标视图控件,包括:
从所述视图布局文件中获取视图控件的控件标识符;
从所述控件标识符中选取对应于所述目标显示区域的一个或者多个目标控件标识符;
根据所述目标控件标识符确定用于在所述目标显示区域上绘制图层的目标视图控件。
4.根据权利要求1所述的方法,其特征在于,所述内存地址是指向显存的物理地址。
5.根据权利要求1所述的方法,其特征在于,所述建立所述前端应用程序与导航应用程序之间的进程间通信链路,包括:
所述前端应用程序通过绑定服务接口向所述导航应用程序发送远程服务绑定请求;
所述导航应用程序根据所述远程服务绑定请求创建基于接口定义语言的远程服务接口;
利用所述远程服务接口建立所述前端应用程序与导航应用程序之间的进程间通信链路。
6.根据权利要求1所述的方法,其特征在于,所述建立所述前端应用程序与导航应用程序之间的进程间通信链路,包括:
所述导航应用程序通过Binder驱动组件在服务管理组件中注册远程服务,并由所述服务管理组件创建与所述导航应用程序相对应的Binder引用对象;
所述前端应用程序通过所述Binder驱动组件向所述服务管理组件发送获取所述Binder引用对象的请求;
根据获取到的所述Binder引用对象,通过所述Binder驱动组件建立所述前端应用程序与导航应用程序之间的进程间通信链路。
7.根据权利要求1所述的方法,其特征在于,所述建立所述前端应用程序与导航应用程序之间的进程间通信链路,包括:
所述导航应用程序创建用于接收并处理由所述前端应用程序发送的消息的消息处理器;
利用所述消息处理器建立所述前端应用程序与导航应用程序之间的进程间通信链路。
8.根据权利要求1所述的方法,其特征在于,所述利用所述内存地址创建对应于所述目标显示区域的视图窗口,包括:
所述导航应用程序利用所述内存地址初始化窗口渲染单元;
所述窗口渲染单元通过图形渲染接口创建对应于所述目标显示区域的视图窗口。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取由所述前端应用程序配置的所述目标显示区域的刷新频率;
根据所述刷新频率定时刷新所述导航应用程序的所述第二用户界面。
10.根据权利要求1所述的方法,其特征在于,所述第二用户界面为所述导航应用程序渲染的导航地图。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
所述导航应用程序获取与所述导航地图相关的路线引导信息;
所述导航应用程序将所述路线引导信息发送至所述前端应用程序,以在所述导航地图上显示所述路线引导信息。
12.一种应用程序的用户界面渲染装置,其特征在于,所述装置包括:
图层参数获取模块,被配置为前端应用程序在终端设备的显示界面上显示第一用户界面,并获取所述第一用户界面中的目标显示区域的内存地址;
通信链路建立模块,被配置为建立所述前端应用程序与后台运行的导航应用程序之间的进程间通信链路;
图层参数传送模块,被配置为所述前端应用程序通过所述进程间通信链路向所述导航应用程序发送所述内存地址;
用户界面渲染模块,被配置为所述导航应用程序通过图层管理屏幕缓冲区,以利用所述内存地址创建对应于所述目标显示区域的视图窗口,所述导航应用程序在所述视图窗口中渲染第二用户界面。
13.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法。
14.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910562756.8A CN110347464B (zh) | 2019-06-26 | 2019-06-26 | 应用程序的用户界面渲染方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910562756.8A CN110347464B (zh) | 2019-06-26 | 2019-06-26 | 应用程序的用户界面渲染方法、装置、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110347464A CN110347464A (zh) | 2019-10-18 |
CN110347464B true CN110347464B (zh) | 2022-01-11 |
Family
ID=68183279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910562756.8A Active CN110347464B (zh) | 2019-06-26 | 2019-06-26 | 应用程序的用户界面渲染方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347464B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111343492B (zh) * | 2020-02-17 | 2022-02-22 | 海信电子科技(深圳)有限公司 | 一种浏览器在不同图层的显示方法及显示设备 |
CN111526425B (zh) * | 2020-04-26 | 2022-08-09 | 北京字节跳动网络技术有限公司 | 视频播放方法、装置、可读介质及电子设备 |
CN111625238B (zh) * | 2020-05-06 | 2023-02-03 | Oppo(重庆)智能科技有限公司 | 一种显示窗口控制方法、装置、终端及存储介质 |
CN111766992B (zh) * | 2020-05-29 | 2022-04-22 | 维沃移动通信有限公司 | 信息显示方法、装置、电子设备及存储介质 |
CN111913769A (zh) * | 2020-06-22 | 2020-11-10 | 大众问问(北京)信息科技有限公司 | 应用显示方法、装置及设备 |
CN112004049B (zh) * | 2020-08-18 | 2022-06-28 | 北京字节跳动网络技术有限公司 | 双屏异显方法、装置和电子设备 |
CN112083996A (zh) * | 2020-09-16 | 2020-12-15 | 努比亚技术有限公司 | 屏幕控制方法、移动终端及计算机可读存储介质 |
CN114706510A (zh) * | 2020-12-17 | 2022-07-05 | 中国移动通信集团终端有限公司 | 一种应用显示方法、装置、设备及计算机存储介质 |
CN114022590B (zh) * | 2020-12-30 | 2023-03-24 | 万翼科技有限公司 | 图片渲染方法及相关设备 |
CN113997786B (zh) * | 2021-12-30 | 2022-03-25 | 江苏赫奕科技有限公司 | 一种适用于车辆的仪表界面显示方法和装置 |
CN114942812A (zh) * | 2022-05-31 | 2022-08-26 | 上海嘉车信息科技有限公司 | 多媒体信息共享方法、装置和电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951271A (zh) * | 2015-07-03 | 2015-09-30 | 上海与德通讯技术有限公司 | 分屏显示方法及电子设备 |
CN104965692A (zh) * | 2014-05-08 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 在桌面应用中跨进程显示数据的方法及系统 |
CN106126236A (zh) * | 2016-06-24 | 2016-11-16 | 北京奇虎科技有限公司 | 终端屏幕的分屏显示方法、装置及终端 |
CN107463370A (zh) * | 2017-06-30 | 2017-12-12 | 百度在线网络技术(北京)有限公司 | 跨进程渲染方法及系统 |
CN108205456A (zh) * | 2017-12-28 | 2018-06-26 | 北京奇虎科技有限公司 | 一种跨进程的窗口渲染方法、设备及存储介质 |
CN108646906A (zh) * | 2018-03-27 | 2018-10-12 | 广东欧珀移动通信有限公司 | 帧率调整方法、装置、存储介质及智能终端 |
CN109388463A (zh) * | 2018-09-27 | 2019-02-26 | 上海哔哩哔哩科技有限公司 | 平板电脑应用软件的分屏显示方法、存储介质及平板电脑 |
CN109388467A (zh) * | 2018-09-30 | 2019-02-26 | 百度在线网络技术(北京)有限公司 | 地图信息显示方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9189466B2 (en) * | 2013-09-13 | 2015-11-17 | Linkedin Corporation | Cross document communication |
-
2019
- 2019-06-26 CN CN201910562756.8A patent/CN110347464B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104965692A (zh) * | 2014-05-08 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 在桌面应用中跨进程显示数据的方法及系统 |
CN104951271A (zh) * | 2015-07-03 | 2015-09-30 | 上海与德通讯技术有限公司 | 分屏显示方法及电子设备 |
CN106126236A (zh) * | 2016-06-24 | 2016-11-16 | 北京奇虎科技有限公司 | 终端屏幕的分屏显示方法、装置及终端 |
CN107463370A (zh) * | 2017-06-30 | 2017-12-12 | 百度在线网络技术(北京)有限公司 | 跨进程渲染方法及系统 |
CN108205456A (zh) * | 2017-12-28 | 2018-06-26 | 北京奇虎科技有限公司 | 一种跨进程的窗口渲染方法、设备及存储介质 |
CN108646906A (zh) * | 2018-03-27 | 2018-10-12 | 广东欧珀移动通信有限公司 | 帧率调整方法、装置、存储介质及智能终端 |
CN109388463A (zh) * | 2018-09-27 | 2019-02-26 | 上海哔哩哔哩科技有限公司 | 平板电脑应用软件的分屏显示方法、存储介质及平板电脑 |
CN109388467A (zh) * | 2018-09-30 | 2019-02-26 | 百度在线网络技术(北京)有限公司 | 地图信息显示方法、装置、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
Android两个surfaceview叠加显示;smileorcryps;《https://blog.csdn.net/smileorcryps/article/details/52614631》;20160921;第1页 * |
图文详解 Android Binder跨进程通信机制原理;心梦无痕;《https://www.cnblogs.com/xinmengwuheng/p/7070167.html》;20170623;第4-6页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110347464A (zh) | 2019-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347464B (zh) | 应用程序的用户界面渲染方法、装置、介质及电子设备 | |
US11513820B2 (en) | Method for resource allocation, terminal, and computer-readable storage medium | |
CN109388467B (zh) | 地图信息显示方法、装置、计算机设备及存储介质 | |
CN110602805B (zh) | 信息处理方法、第一电子设备和计算机系统 | |
US20190057480A1 (en) | Method and apparatus for providing transportation service information | |
US20070288640A1 (en) | Remote rendering of multiple mouse cursors | |
US20130050271A1 (en) | Mobile terminal, image display device mounted on vehicle and data processing method using the same | |
WO2023000888A1 (zh) | 云应用的实现方法、装置、电子设备和存储介质 | |
CN110706675A (zh) | 信息显示方法和装置 | |
US20170034551A1 (en) | Dynamic screen replication and real-time display rendering based on media-application characteristics | |
US20220408143A1 (en) | Control setting method and apparatus, electronic device and interaction system | |
CN113094141A (zh) | 一种页面展示方法、装置、电子设备和存储介质 | |
WO2023045973A1 (zh) | 直播礼物云渲染方法、装置、电子设备及存储介质 | |
US8860740B2 (en) | Method and apparatus for processing a display driver in virture desktop infrastructure | |
CN115185408A (zh) | 一种车载娱乐信息显示方法、装置、设备和介质 | |
CN112527219A (zh) | 基于wayland协议的图形合成方法、装置和系统 | |
CN108089929B (zh) | 一种用插件操作应用程序的方法及装置 | |
CN110147283B (zh) | 一种显示内容切换显示方法、装置、设备及介质 | |
CN113094015A (zh) | 全息多屏显示实现方法、系统、计算机设备和存储介质 | |
EP4134812A2 (en) | Method and apparatus of displaying information, electronic device and storage medium | |
CN115373618B (zh) | 一种多屏显示方法、装置、车机及存储介质 | |
CN115107514A (zh) | 一种车辆仪表交互方法、系统、电子设备及可读存储介质 | |
CN105704202B (zh) | 一种远程地控制图形显示单元的方法 | |
US11544028B2 (en) | Distributed system for displaying a content | |
CN110876068B (zh) | 一种直播间虚拟物品的显示方法、装置、设备及存储介质 |
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 |