1.本发明涉及车辆显示技术领域,特别是涉及一种在车辆内进行应用程序显示的方法及系统,以及一种车辆。
背景技术:2.随着汽车智能驾驶和/或智能座舱的发展,消费者对汽车内的屏幕需求也越来越旺盛。现有的多数汽车(包括传统燃油汽车、新能源汽车等)都将大屏化、多屏化作为汽车是否智能的一个重要标签。而车载显示屏作为人机交互的入口,常常是为了服务主驾驶,同时,越来越多的汽车在副驾驶和后排也配备了显示屏来服务车内其他乘员。但是,目前大多数车载应用程序只允许在特定的显示屏上使用(例如车载应用程序只能在车辆的中控显示屏中使用),而不能在车内其他显示屏上使用。此外,目前允许在多个显示屏上使用的车载应用都是定制开发生成,与正常开发车载应用相比,定制开发车载应用的成本高、周期长,并且对所有车载应用均进行定制开发也不符合企业的实际生产需求。
技术实现要素:3.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种应用程序显示方法及系统,用于解决现有技术中车载应用程序只能在特定显示屏中显示的问题。
4.为实现上述目的及其他相关目的,本发明提供一种应用程序显示方法,所述方法包括以下步骤:
5.获取控制指令,所述控制指令包括在多个显示屏中选取目标显示屏,并在所述目标显示屏中预启动目标应用程序;
6.根据所述控制指令,将所述目标显示屏与所述目标应用程序进行关联;
7.创建所述目标应用程序对应的画面,并将所述画面在关联后的目标显示屏中进行显示。
8.可选地,所述方法还包括:
9.对所述目标应用程序进行配置,使所述目标应用程序在所述多个显示屏中存在启动入口;
10.以及,在所述目标显示屏上的目标应用程序启动入口被触发时,生成在所述目标显示屏上预启动所述目标应用程序的控制指令。
11.可选地,所述根据所述控制指令,将所述目标显示屏与所述目标应用程序进行关联的过程包括:
12.判断所述目标应用程序与所述多个显示屏中的其他显示屏是否存在关联;
13.若存在关联,则根据所述控制指令断开所述目标应用程序与其他显示屏的关联,并在完成断开后,根据所述控制指令将所述目标程序与所述目标显示屏进行关联;
14.若不存在关联,则根据所述控制指令将所述目标程序与所述目标显示屏进行关联。
15.可选地,所述方法还包括:将预先开发完成的应用程序上架至应用程序资源池中,则在所述目标显示屏上获取所述目标应用程序的过程包括:
16.获取在所述目标显示屏上触发的目标应用程序下载请求;
17.基于所述目标应用程序下载请求从所述应用程序资源池中获取所述目标应用程序的安装包,并在所述安装包的存储容量小于所述目标显示屏的预留存储空间时,将所述目标应用程序安装至所述目标显示屏中。
18.可选地,所述多个显示屏包括:车辆的中控显示屏、设置在车辆内除中控显示屏之外的其它显示屏。
19.本发明还提供一种应用程序显示系统,所述系统包括有:
20.采集模块,用于获取控制指令,所述控制指令包括在多个显示屏中选取目标显示屏,并在所述目标显示屏中预启动目标应用程序;
21.关联模块,用于根据所述控制指令,将所述目标显示屏与所述目标应用程序进行关联;
22.显示模块,用于创建所述目标应用程序对应的画面,并将所述画面在关联后的目标显示屏中进行显示。
23.可选地,所述系统还包括:
24.配置模块,用于对所述目标应用程序进行配置,使所述目标应用程序在所述多个显示屏中存在启动入口;
25.控制指令模块,用于在所述目标显示屏上的目标应用程序启动入口被触发时,生成在所述目标显示屏上预启动所述目标应用程序的控制指令。
26.可选地,所述关联模块根据所述控制指令,将所述目标显示屏与所述目标应用程序进行关联的过程包括:
27.判断所述目标应用程序与所述多个显示屏中的其他显示屏是否存在关联;
28.若存在关联,则根据所述控制指令断开所述目标应用程序与其他显示屏的关联,并在完成断开后,根据所述控制指令将所述目标程序与所述目标显示屏进行关联;
29.若不存在关联,则根据所述控制指令将所述目标程序与所述目标显示屏进行关联。
30.可选地,所述多个显示屏包括:车辆的中控显示屏、设置在车辆内除中控显示屏之外的其它显示屏。
31.本发明还提供一种应用程序显示系统,所述系统包括有:
32.应用层,用于对目标应用程序进行配置,使所述目标应用程序在所述多个显示屏中存在启动入口,以及在目标显示屏上所述目标应用程序的启动入口被触发时,生成在所述目标显示屏上预启动所述目标应用程序的控制指令;其中,目标显示屏为多个显示屏中的某个显示屏;
33.系统层,用于获取应用层生成的控制指令,以及根据所述控制指令将所述目标显示屏与所述目标应用程序进行关联,并在完成关联后,在所述目标显示屏中创建并显示所述目标应用程序对应的画面。
34.本发明还提供一种车辆,包括有:多个显示屏;
35.以及,与所述多个显示屏连接的控制器,所述控制器内设置有如上述中任一所述
的应用程序显示系统。
36.如上所述,本发明提供一种应用程序显示方法及系统,具有的有益效果是:本发明中的应用程序(例如车载应用程序)可以在多个显示屏中的某个显示屏上创建并显示对应的画面,即本发明中的应用程序可以在多个显示屏中的任意一个显示屏中进行使用或显示;所以,本发明可以解决现有技术中车载应用程序只能在特定显示屏上使用的技术问题。此外,本发明中的应用程序是在开发完成后上架至应用程序资源池中,当用户需要在某个显示屏上使用某个应用程序时,可以直接从应用程序资源池中下载安装对应的应用程序,然后再在该显示屏中使用对应的应用程序;相当于本发明在多个显示屏上使用的是正常开发生成的应用程序,与现有技术中定制开发应用相比,本发明可以减少应用程序开发成本,缩短应用程序开发周期。而且本发明在进行应用程序更新时,只需要将更新后的应用程序版本上架至应用程序资源池即可,既不会依赖车辆的ota(over
‑
the
‑
air technology,空中下载技术,简称ota),也不需要更新整个车机系统。
附图说明
37.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
38.图1为本发明中一实施例提供的应用程序显示方法的流程示意图;
39.图2为本发明中另一实施例提供的应用程序显示方法的流程示意图;
40.图3为本发明中又一实施例提供的应用程序显示方法的流程示意图;
41.图4为本发明中一实施例提供的应用程序显示系统的硬件结构示意图;
42.图5为本发明中另一实施例提供的应用程序显示系统的硬件结构示意图;
43.图6为本发明中又一实施例提供的应用程序显示系统的框架示意图;
44.图7为本发明中一实施例提供的一种车辆的框架示意图;
45.图8为本发明中一实施例提供的应用程序上架及安装的流程示意图;
46.图9为本发明中另一实施例提供的一种车辆的框架示意图。
47.元件标号说明
48.m10
ꢀꢀꢀꢀꢀꢀ
配置模块
49.m20
ꢀꢀꢀꢀꢀꢀ
控制指令模块
50.m30
ꢀꢀꢀꢀꢀꢀ
采集模块
51.m40
ꢀꢀꢀꢀꢀꢀ
关联模块
52.m50
ꢀꢀꢀꢀꢀꢀ
显示模块
具体实施方式
53.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施
例中的特征可以相互组合。
54.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
55.随着智能座舱及智能驾驶迅猛发展,消费者对汽车内显示屏幕的需求越来越旺盛,不管是传统燃油车还是新能源汽车,都将大屏化、多屏化作为汽车更加智能的一个重要标签。而车内的显示屏幕作为人机交互的入口,不仅仅是为了服务主驾驶而存在,越来越多的车厂在副驾驶和后排也配备了显示屏幕供车内乘员使用。但是,目前大多数车载应用只允许在特定的显示屏上使用,而不能在车内其他显示屏上使用;例如“理想one”车型,其副驾驶屏幕上的应用程序app(application,简称app或应用程序app)只允许在psd(passenger side display,副驾驶侧显示器,简称psd)上使用,而这种应用程序的使用方式对现有车辆中的“一拖多”的系统架构而言,显然是一种浪费。其中,一拖多是指:单颗控制芯片soc控制多个显示屏。对于此种情形,现有的部分汽车企业往往也会选取2至3个应用程序进行定制开发,然后允许定制开发出的应用程序在多块屏幕上实现双开和多屏异显;而与正常开发车载应用相比,定制开发车载应用的成本高、周期长,汽车企业不可能对所有的应用程序都采用定制开发,并且定制开发由于周期长,也无法满足市场海量应用程序快速上车的需求,不符合汽车企业的实际生产需求。此外,针对车载应用只允许在特定的显示屏上使用的另一种情形,即应用程序只允许在csd(center stack display,中控显示屏,简称csd)上使用,现有的汽车企业会定制开发屏幕分享的应用程序app,然后通过实时截取csd上的界面分享给其他显示屏幕进行显示,且允许其他显示屏幕反向控制csd,来达到使用csd上应用的效果。此种方案的缺陷在于:需要定制屏幕分享的应用程序app,且交互场景较为繁杂,副驾驶和后排乘员需要通过多步操作才能获得csd的控制权限,交互成本较高。因此,本发明提出一种新的技术方案,可以以较小的成本、较少的配置工作量和较短的配置周期来让应用程序资源池中的多个应用在多个显示屏幕上使用。
56.根据上述记载的问题,本发明提供一种应用程序显示方法,如图1所示,该方法包括以下步骤:
57.s10,获取控制指令,所述控制指令包括在多个显示屏中选取目标显示屏,并在所述目标显示屏中预启动目标应用程序;
58.s20,根据所述控制指令,将所述目标显示屏与所述目标应用程序进行关联;
59.s30,创建所述目标应用程序对应的画面,并将所述画面在关联后的目标显示屏中进行显示。
60.根据本实施例的记载,本方法中的应用程序(例如车载应用程序)可以在多个显示屏中的某个显示屏上创建并显示对应的画面,即本方法中的应用程序可以在多个显示屏中的任意一个显示屏中进行使用或显示;所以,本实施例中的应用程序显示方法可以解决现有技术中车载应用程序只能在特定显示屏上使用的技术问题。
61.作为另一示例性实施例,本发明还提供一种应用程序显示方法,如图2所示,该方法包括以下步骤:
62.s110,获取目标应用程序,并对目标应用程序进行配置,使目标应用程序在多个显
示屏中存在启动入口;
63.s120,获取用户在目标显示屏上触发目标应用程序启动入口时生成的控制指令;其中,当目标显示屏上的目标应用程序启动入口被用户触发时,生成用户在目标显示屏上预启动目标应用程序的控制指令;其中,目标显示屏为多个显示屏中的某个显示屏;
64.s130,根据控制指令将目标显示屏与目标应用程序进行关联,并在完成关联后,在目标显示屏中创建并显示目标应用程序对应的画面。
65.由此可知,本实施例首先获取目标应用程序,然后通过对目标应用程序进行配置,在多个显示屏上生成目标应用程序的启动入口,或者通过对目标应用程序进行配置,使目标应用程序在多个显示屏中存在启动入口;再获取用户在目标显示屏上触发目标应用程序启动入口时生成的控制指令,并根据控制指令将目标显示屏与目标应用程序进行关联,以及在完成关联后,在目标显示屏中创建并显示目标应用程序对应的画面。其中,目标显示屏为多个显示屏中的某个显示屏。相当于本实施例中的应用程序(例如车载应用程序)可以在多个显示屏中的某个显示屏上创建并显示对应的画面,即本实施例中的应用程序可以在多个显示屏中的任意一个显示屏中进行使用或显示;所以,本实施例可以解决现有技术中车载应用程序只能在特定显示屏上使用的技术问题。同时,本实施例与现有技术中定制开发应用相比,本实施例可以减少应用程序开发成本,缩短应用程序开发周期。而且本实施例在进行应用程序更新时,只需要将更新后的应用程序版本上架至应用程序资源池即可,既不会依赖车辆的ota,也不需要更新整个车机系统。此外,由于本实施例在多个显示屏上使用的是正常开发生成的应用程序,所以本实施例可以直接基于安卓系统原生的多屏架构来开发应用程序app,减小应用程序app的开发工作量,缩短开发周期,降低开发成本。作为示例,本技术实施例中的应用程序资源池类似于手机的应用市场,用于提供应用安装包供用户下载安装。
66.根据上述记载,步骤s110中对目标应用程序进行配置的方式可以是:在目标应用程序的manifest的文件中配置目标应用程序,使目标应用程序支持在多个显示屏中的任意一个显示屏进行显示;即在目标应用程序的manifest的文件中配置目标应用程序在多个显示屏中的任意一个显示屏进行显示的屏幕id参数为有效。本实施例在对目标应用程序完成配置后,每个显示屏的显示页面上,都存在目标应用程序的启动入口icon。作为示例,若用户准备在第二显示屏display[1]上显示目标应用程序,则对目标应用程序进行配置的方式如下:
[0067][0068][0069]
其中,当value="true"时,目标应用程序支持在第二显示屏display[1]上显示,即在第二显示屏display[1]上存在目标应用程序的启动入口。当value="false"时,目标
应用程序不支持在第二显示屏display[1]上显示,即在第二显示屏display[1]上不存在目标应用程序的启动入口。本技术实施例中,value默认值为false,即未经过配置的应用程序,默认不支持在第二显示屏display[1]上显示。在本方法的一些实施例中,目标应用程序的图标可以作为目标应用程序在显示屏上的启动入口icon。
[0070]
对其中的代码解释如下:
[0071]“<application android:resizeableactivity="false">”,表示目标应用程序不支持分屏显示,即在其他显示屏中不存在目标应用程序的启动入口;
[0072]“<!
‑‑
supports showing on display1.‑‑
>”,表示位于其下面的代码用于支持在第二显示屏display[1]的显示功能;
[0073]“<meta
‑
data android:name="eos_supports display[1]"android:value="true"/>”,表示为目标应用程序配置标签“eos_supports display[1]”,且只有满足eos_supports display[1]值为“true”时,目标应用程序才支持在第二显示屏display[1]上显示,即当value="true"时,目标应用程序才支持在第二显示屏display[1]上显示。
[0074]“<activity android:name="xxx.*activity"/>”,表示每次新建的activity需要为androidmanifest添加该内容,用于声明目标应用程序的activity。
[0075]
在一示例性实施例中,根据控制指令将目标显示屏与目标应用程序进行关联的过程包括:获取用户在目标显示屏上触发目标应用程序启动入口时所生成的控制指令,然后根据控制指令判断目标应用程序与多个显示屏中的其他显示屏是否存在关联;如果存在关联,则根据控制指令断开目标应用程序与其他显示屏的关联,并在完成断开后,根据控制指令将目标程序与目标显示屏进行关联;如果不存在关联,则根据控制指令将目标程序与目标显示屏进行关联。例如,以应用程序x(即目标应用程序)为例,当用户在第一显示屏display[0]上触发应用程序x的图标时,此时用于控制第一显示屏的控制器将用户当前次的触发指令作为用户欲启动应用程序x的控制指令,并将当前次的触发指令传输给第一显示屏display[0]的touchedwindow,同时应用程序x也按照其正常启动流程,创建形成属于应用程序x的activity,然后控制器基于用户当前次的触发指令将应用程序x的activity与第一显示屏display[0]进行关联,完成第一显示屏display[0]与应用程序x的关联。若此时应用程序x已在第二显示屏display[1]上打开,或应用程序x已与第二显示屏display[1]建立了关联;则控制器会根据用户当前次的触发指令,断开与第二显示屏display[1]的关联,即从第二显示屏display[1]中关闭应用程序x,并控制应用程序x按照其正常启动流程,创建形成属于应用程序x的activity,然后再基于用户当前次的触发指令,将应用程序x的activity与第一显示屏display[0]进行关联,完成第一显示屏display[0]与应用程序x的关联。在应用程序x与第一显示屏display[0]完成关联后,应用程序x的画面会在第一显示屏display[0]上创建并显示。本实施例通过建立显示屏与应用程序的关联,可以保证每个应用程序在同一时刻最多被一个显示屏在使用,从而实现同一款应用程序可以在多个显示屏上分时使用。
[0076]
在一示例性实施例中,本方法还包括:将预先开发完成的应用程序上架在应用程序资源池中,则获取目标应用程序的过程包括:获取用户在目标显示屏上触发的目标应用程序下载请求;基于目标应用程序下载请求从应用程序资源池中获取目标应用程序的安装包,并在安装包的存储容量小于目标显示屏的预留存储空间时,将目标应用程序安装至目
标显示屏中。本实施例通过将预先开发完成的应用程序上架至应用商城中,当用户需要在某个显示屏上使用某个应用程序时,可以直接从应用程序资源池中下载安装对应的应用程序,然后再在该显示屏中使用对应的应用程序;相当于本方法在多个显示屏上使用的是正常开发生成的应用程序,所以本方法与现有技术中定制开发应用相比,本方法可以减少应用程序开发成本,缩短应用程序开发周期。而且本方法在进行应用程序更新时,只需要将更新后的应用程序版本上架至应用程序资源池即可,既不会依赖车辆的ota,也不需要更新整个车机系统。作为示例,本技术实施例中的应用程序资源池类似于手机的应用市场,用于提供应用安装包供用户下载安装。
[0077]
根据上述记载,本方法一些实施例中的多个显示屏包括:车辆的中控显示屏、设置在车辆内除中控显示屏之外的其它显示屏。其中,设置在车辆内除中控显示屏之外的其他显示屏可以是:设置在副驾驶座位的显示屏、设置在后排座位的显示屏。作为示例,车辆的中控显示屏可以作为第一显示屏display[0],设置在副驾驶作为的显示屏可以作为第二显示屏display[1]。
[0078]
另外,现有技术中某些应用还可以采用双开方案,即同一应用允许在多个屏幕上使用,彼此独立、互不干扰,但是此场景较为理想,实现起来需要花费的成本和代价更大,例如存在以下问题:a、需要大量使用hook技术去修改android源码,实现起来难度较大,且破坏android沙盒设计;如果有海外出口需求,google的cts认证很大概率通过不了,影响项目量产;b、增加应用对系统四大组件(activity/service/broadcastreceiver/contentprovider)状态维护难度,无法保障双开应用之间完全隔离,增加业务复杂度;即有可能存在,本该在副驾屏提示的交互ui却显示在csd屏幕上;c、对系统产生额外开销,内存使用double级增长,还会使现有的进程调度、内存清理、内存泄漏等优化策略失效,间接引起系统卡顿,影响用户体验。
[0079]
因此,针对上述问题,本发明还提供了一种应用程序显示方法,如图3所示,该方法包括以下步骤:
[0080]
对应用程序a(以下简称应用a)进行多屏幕分时使用配置;例如在应用a的manifest的文件中配置应用a支持在多个显示屏上显示,即在应用a的manifest的文件中配置在多个显示屏进行显示的屏幕id参数为有效;使得完成配置后应用a在多个显示屏的显示页面上,都存在对应的启动入口icon。作为示例,本实施可以将目标应用程序在显示屏上的图标作为目标应用程序在显示屏上的启动入口icon。
[0081]
当用户在第一显示屏display[0]上触发应用a的启动入口icon(即触发应用a的图标)时,控制器中的framework系统层会判断应用a是否在其他显示屏上打开。若应用a未在其他显示屏display[n]上打开,则应用a按照其正常启动流程,创建形成属于应用a的activity,然后控制器基于用户当前次的触发指令将应用a的activity与第一显示屏display[0]进行关联,在第一显示屏display[0]上创建并显示应用a所对应的画面。若应用a已在其他显示屏display[n]上打开,则在第一显示屏display[0]弹出提示弹窗,提示用户应用a正在被其他显示屏display[n]打开使用,是否需要断开应用a与其他显示屏display[n]的关联;若用户选择否,则在第一显示屏display[0]上的弹窗消失,同时应用a也不在第一显示屏display[0]上打开,即不在第一显示屏display[0]上创建应用a所对应的画面,并结束当前应用a的显示工作;若用户选择是,则断开应用a与其他显示屏display[n]的关联,
即从其他显示屏display[n]上关闭应用程序a,然后将应用a的activity与第一显示屏display[0]进行关联,在第一显示屏display[0]上创建并显示应用a所对应的画面,即在断开关联后,在第一显示屏display[0]上打开应用a。
[0082]
当用于在第一显示屏display[0]上打开应用a后,即应用a所对应的画面在第一显示屏display[0]中显示时,应用a会通过activity#getdisplay()获得当前应用界面所在的屏幕信息,以及应用a还会记录用户在第一显示屏display[0]上的触摸操作,同时应用a还会保留用户对应的触摸信息,直至应用界面在不同屏幕间转移以及界面销毁重新创造时,应用a再通过activity#getdisplay()来更新当前屏幕信息。
[0083]
在本实施例中,当用户需要知道应用a当前处于哪一个屏,用户可以通过context类的getdisplay获取到当前的显示屏,然后再通过当前显示屏的getdisplayid获取当前的屏幕id。
[0084]
综上所述,本发明提供的应用程序显示方法(简称本方法)中的应用程序可以在多个显示屏上进行单独使用,保证了每个应用程序在同一时刻最多被一个显示屏在使用,从而实现同一款应用程序可以在多个显示屏上分时使用。同时,如果本方法中的应用程序为车载应用程序,则本方法可以解决现有技术中车载应用程序只能在特定车载显示屏上使用的技术问题。此外,本方法中的应用程序是在开发完成后上架至应用程序资源池中,当用户需要在某个显示屏上使用某个应用程序时,可以直接从应用程序资源池中下载安装对应的应用程序,然后再在该显示屏中使用对应的应用程序;相当于本方法在多个显示屏上使用的是正常开发生成的应用程序,所以本方法可以减少应用程序开发成本,缩短应用程序开发周期。而且本方法在进行应用程序更新时,只需要将更新后的应用程序版本上架至应用程序资源池即可,既不会依赖车辆的ota,也不需要更新整个车机系统。
[0085]
如图4所示,本发明还提供一种应用程序显示系统,所述系统包括有:
[0086]
采集模块m30,用于获取控制指令,所述控制指令包括在多个显示屏中选取目标显示屏,并在所述目标显示屏中预启动目标应用程序;
[0087]
关联模块m40,用于根据所述控制指令,将所述目标显示屏与所述目标应用程序进行关联;
[0088]
显示模块m50,用于创建所述目标应用程序对应的画面,并将所述画面在关联后的目标显示屏中进行显示。
[0089]
根据本实施例的记载,本系统中的应用程序(例如车载应用程序)可以在多个显示屏中的某个显示屏上创建并显示对应的画面,即本系统中的应用程序可以在多个显示屏中的任意一个显示屏中进行使用或显示;所以,本实施例中的应用程序显示系统可以解决现有技术中车载应用程序只能在特定显示屏上使用的技术问题。
[0090]
根据上述记载,如图5所示,在另一示例性实施例中,该系统还可以包括:
[0091]
配置模块m10,用于对所述目标应用程序进行配置,使所述目标应用程序在所述多个显示屏中存在启动入口;
[0092]
控制指令模块m20,用于在所述目标显示屏上的目标应用程序启动入口被触发时,生成在所述目标显示屏上预启动所述目标应用程序的控制指令。
[0093]
具体地,本实施例首先获取目标应用程序,并对目标应用程序进行配置,使目标应用程序在多个显示屏中存在启动入口;然后再获取用户在目标显示屏上触发目标应用程序
启动入口时生成的控制指令,并根据控制指令将目标显示屏与目标应用程序进行关联,以及在完成关联后,在目标显示屏中创建并显示目标应用程序对应的画面。其中,目标显示屏为多个显示屏中的某个显示屏。相当于本实施例中的应用程序(例如车载应用程序)可以在多个显示屏中的某个显示屏上创建并显示对应的画面,即本实施例中的应用程序可以在多个显示屏中的任意一个显示屏中进行使用或显示;所以,本实施例可以解决现有技术中车载应用程序只能在特定显示屏上使用的技术问题。同时,本实施例与现有技术中定制开发应用相比,本实施例可以减少应用程序开发成本,缩短应用程序开发周期。而且本实施例在进行应用程序更新时,只需要将更新后的应用程序版本上架至应用程序资源池即可,既不会依赖车辆的ota,也不需要更新整个车机系统。此外,由于本实施例在多个显示屏上使用的是正常开发生成的应用程序,所以本实施例可以直接基于安卓系统原生的多屏架构来开发应用程序app,减小应用程序app的开发工作量,缩短开发周期,降低开发成本。作为示例,本技术实施例中的应用程序资源池类似于手机的应用市场,用于提供应用安装包供用户下载安装。
[0094]
根据上述记载,本系统对目标应用程序进行配置的方式可以是:在目标应用程序的manifest的文件中配置目标应用程序,使目标应用程序支持在多个显示屏中的任意一个显示屏进行显示;即在目标应用程序的manifest的文件中配置目标应用程序在多个显示屏中的任意一个显示屏进行显示的屏幕id参数为有效。本实施例在对目标应用程序完成配置后,每个显示屏的显示页面上,都存在目标应用程序的启动入口icon。作为示例,若用户准备在第二显示屏display[1]上显示目标应用程序,则对目标应用程序进行配置的方式如下:
[0095][0096]
其中,当value="true"时,目标应用程序支持在第二显示屏display[1]上显示,即在第二显示屏display[1]上存在目标应用程序的启动入口。当value="false"时,目标应用程序不支持在第二显示屏display[1]上显示,即在第二显示屏display[1]上不存在目标应用程序的启动入口。本技术实施例中,value默认值为false,即未经过配置的应用程序,默认不支持在第二显示屏display[1]上显示。在本系统的一些实施例中,目标应用程序的图标可以作为目标应用程序在显示屏上的启动入口icon。
[0097]
对其中的代码解释如下:
[0098]“<application android:resizeableactivity="false">”,表示目标应用程序不支持分屏显示,即在其他显示屏中不存在目标应用程序的启动入口;
[0099]“<!
‑‑
supports showing on display1.‑‑
>”,表示位于其下面的代码用于支持在第二显示屏display[1]的显示功能;
[0100]“<meta
‑
data android:name="eos_supports display[1]"android:value="true"/>”,表示为目标应用程序配置标签“eos_supports display[1]”,且只有满足eos_supports display[1]值为“true”时,目标应用程序才支持在第二显示屏display[1]上显示,即当value="true"时,目标应用程序才支持在第二显示屏display[1]上显示。
[0101]“<activity android:name="xxx.*activity"/>”,表示每次新建的activity需要为androidmanifest添加该内容,用于声明目标应用程序的activity。
[0102]
在一示例性实施例中,关联模块根据控制指令将目标显示屏与目标应用程序进行关联的过程包括:获取用户在目标显示屏上触发目标应用程序启动入口时所生成的控制指令,然后根据控制指令判断目标应用程序与多个显示屏中的其他显示屏是否存在关联;如果存在关联,则根据控制指令断开目标应用程序与其他显示屏的关联,并在完成断开后,根据控制指令将目标程序与目标显示屏进行关联;如果不存在关联,则根据控制指令将目标程序与目标显示屏进行关联。例如,以应用程序x(即目标应用程序)为例,当用户在第一显示屏display[0]上触发应用程序x的图标时,此时用于控制第一显示屏的控制器将用户当前次的触发指令作为用户欲启动应用程序x的控制指令,并将当前次的触发指令传输给第一显示屏display[0]的touchedwindow,同时应用程序x也按照其正常启动流程,创建形成属于应用程序x的activity,然后控制器基于用户当前次的触发指令将应用程序x的activity与第一显示屏display[0]进行关联,完成第一显示屏display[0]与应用程序x的关联。若此时应用程序x已在第二显示屏display[1]上打开,或应用程序x已与第二显示屏display[1]建立了关联;则控制器会根据用户当前次的触发指令,断开与第二显示屏display[1]的关联,即从第二显示屏display[1]中关闭应用程序x,并控制应用程序x按照其正常启动流程,创建形成属于应用程序x的activity,然后再基于用户当前次的触发指令,将应用程序x的activity与第一显示屏display[0]进行关联,完成第一显示屏display[0]与应用程序x的关联。在应用程序x与第一显示屏display[0]完成关联后,应用程序x的画面会在第一显示屏display[0]上创建并显示。本实施例通过建立显示屏与应用程序的关联,可以保证每个应用程序在同一时刻最多被一个显示屏在使用,从而实现同一款应用程序可以在多个显示屏上分时使用。
[0103]
在一示例性实施例中,本系统还包括:将预先开发完成的应用程序上架在应用程序资源池中;获取目标应用程序的过程包括:获取用户在目标显示屏上触发的目标应用程序下载请求;基于目标应用程序下载请求从应用程序资源池中获取目标应用程序的安装包,并在安装包的存储容量小于目标显示屏的预留存储空间时,将目标应用程序安装至目标显示屏中。本实施例通过将预先开发完成的应用程序上架至应用商城中,当用户需要在某个显示屏上使用某个应用程序时,可以直接从应用程序资源池中下载安装对应的应用程序,然后再在该显示屏中使用对应的应用程序;相当于本系统在多个显示屏上使用的是正常开发生成的应用程序,所以本系统与现有技术中定制开发应用相比,本系统可以减少应用程序开发成本,缩短应用程序开发周期。而且本系统在进行应用程序更新时,只需要将更新后的应用程序版本上架至应用程序资源池即可,既不会依赖车辆的ota,也不需要更新整个车机系统。作为示例,本技术实施例中的应用程序资源池类似于手机的应用市场,用于提供应用安装包供用户下载安装。
[0104]
根据上述记载,本系统一些实施例中的多个显示屏包括:车辆的中控显示屏、设置
在车辆内除中控显示屏之外的其它显示屏。其中,设置在车辆内除中控显示屏之外的其他显示屏可以是:设置在副驾驶座位的显示屏、设置在后排座位的显示屏。作为示例,车辆的中控显示屏可以作为第一显示屏display[0],设置在副驾驶作为的显示屏可以作为第二显示屏display[1]。
[0105]
在另一具体实施例中,本发明还提供了一种应用程序显示系统,该系统可以执行如图3所示的应用程序显示方法,该系统具备的功能和效果参见上述方法,此处不再进行赘述。
[0106]
综上所述,本发明提供的应用程序显示系统(简称本系统)中的应用程序可以在多个显示屏上进行单独使用,保证了每个应用程序在同一时刻最多被一个显示屏在使用,从而实现同一款应用程序可以在多个显示屏上分时使用。同时,如果本系统中的应用程序为车载应用程序,则本系统可以解决现有技术中车载应用程序只能在特定车载显示屏上使用的技术问题。此外,本系统中的应用程序是在开发完成后上架至应用程序资源池中,当用户需要在某个显示屏上使用某个应用程序时,可以直接从应用程序资源池中下载安装对应的应用程序,然后再在该显示屏中使用对应的应用程序;相当于本系统在多个显示屏上使用的是正常开发生成的应用程序,所以本系统可以减少应用程序开发成本,缩短应用程序开发周期。而且本系统在进行应用程序更新时,只需要将更新后的应用程序版本上架至应用程序资源池即可,既不会依赖车辆的ota,也不需要更新整个车机系统。
[0107]
本发明还提供一种应用程序显示系统,如图6所示,该系统包括有:
[0108]
应用层,用于对目标应用程序进行配置,使所述目标应用程序在所述多个显示屏中存在启动入口,以及在目标显示屏上所述目标应用程序的启动入口被触发时,生成在所述目标显示屏上预启动所述目标应用程序的控制指令;其中,目标显示屏为多个显示屏中的某个显示屏;
[0109]
系统层,用于获取应用层生成的控制指令,以及根据所述控制指令将所述目标显示屏与所述目标应用程序进行关联,并在完成关联后,在所述目标显示屏中创建并显示所述目标应用程序对应的画面。
[0110]
由此可知,本实施例首先对获取的目标应用程序进行配置,使目标应用程序在多个显示屏中存在启动入口;然后再获取用户在目标显示屏上触发目标应用程序启动入口时生成的控制指令,并根据控制指令将目标显示屏与目标应用程序进行关联,以及在完成关联后,在目标显示屏中创建并显示目标应用程序对应的画面。其中,目标显示屏为多个显示屏中的某个显示屏。相当于本系统中的应用程序(例如车载应用程序)可以在多个显示屏中的某个显示屏上创建并显示对应的画面,即本系统中的应用程序可以在多个显示屏中的任意一个显示屏中进行使用或显示;所以,本系统可以解决现有技术中车载应用程序只能在特定显示屏上使用的技术问题。同时,本系统与现有技术中定制开发应用相比,本系统可以减少应用程序开发成本,缩短应用程序开发周期。而且本系统在进行应用程序更新时,只需要将更新后的应用程序版本上架至应用程序资源池(例如应用程序商城)即可,既不会依赖车辆的ota,也不需要更新整个车机系统。此外,由于本系统在多个显示屏上使用的是正常开发生成的应用程序,所以本系统可以直接基于安卓系统原生的多屏架构来开发应用程序app,减小应用程序app的开发工作量,缩短开发周期,降低开发成本。在图6中,app表示application,简称为应用程序app或app;a应用(或a)、b应用(或b)以及c应用(或c)可以为
相同或不同的应用程序;csd(center stack display,简称csd)为车辆的中控显示屏;psd(passenger side display,简称psd)为副驾驶侧显示器;fwk等同于其他实施例中的framework;“displayid:0”等同于其他实施例中第一显示屏display[0];“displayid:1”等同于其他实施例中第二显示屏display[1];“diver(display)”等同于其他实施例中的其他显示屏display[n]。
[0111]
本发明还提供一种车辆,如图7所示,该车辆包括有:多个显示屏;
[0112]
以及,与所述多个显示屏连接的控制器,所述控制器内设置有如上述中任一所述的应用程序显示系统。
[0113]
其中,控制器和多个显示屏之间通过lvds协议进行视频及触摸控制指令的传输。单个控制器或单颗控制芯片控制多个显示屏的方案称为“一拖多”方案。本车辆具备的功能和效果参见上述方法或系统,此处不再进行赘述。
[0114]
在一示例性实施例中,本发明还提供一个将新应用程序上架至上述车辆以及在上述车辆中安装新应用程序的过程,如图8所示,有:
[0115]
s200,获取需要上架的新应用程序app;
[0116]
s210,对新应用程序app完成多屏幕分时使用的配置;
[0117]
s220,通过云管理操作平台将新应用程序app的安装包apk推送至云端服务器tsp;
[0118]
s230,车辆的控制器通过车载的应用程序资源池获取应用的更新信息以及上架信息;所述上架信息包括该新应用程序app的上架信息;
[0119]
s240,用户通过第一显示屏上的应用程序资源池下载安装新应用程序app;其中,第一显示屏可以为中控显示屏;
[0120]
s250,在多个显示屏上对新应用程序进行分时使用;
[0121]
s260,结束新应用程序的上架以及安装过程。
[0122]
根据本实施例的记载,本发明在进行应用程序更新时,只需要将更新后的应用程序版本上架至应用程序资源池即可,既不会依赖车辆的ota,也不需要更新整个车机系统。即所有需要上架的应用程序在完成配置后,可以直接上架至车载的应用程序资源池,并且用户也可以通过中控显示屏下载安装新的应用程序,然后可以直接在各个屏幕上使用,从而不需要借助ota来升级整个车机系统。
[0123]
根据上述记载,车辆上架应用程序后框架示意图如图9所示。其中,控制器,是车载信息娱乐系统应用商城的终端载体。云端服务器tsp,主要用于存放各个应用程序的安装包。pc电脑,是指终端电脑,用于支持在线登录账户密码访问云管理操作平台cmp。云管理操作平台cmp,包含平台管理控制界面,主要用于后台管理员已经验证配置通过的安装包上传至云端服务器tsp。应用程序资源池,类似于手机的应用市场,用于提供应用安装包供用户下载安装。作为示例,本实施例中的应用程序资源池可以为应用程序商城。
[0124]
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。