中间件装置、中间件实现方法和电视机的制作方法

文档序号:10573097阅读:307来源:国知局
中间件装置、中间件实现方法和电视机的制作方法
【专利摘要】本发明公开了一种中间件装置、中间件实现方法和电视机,涉及智能电视领域,用于解决解决底层驱动代码与上层业务逻辑不统一的问题。中间件装置包括:电视应用程序接口单元、电视接口单元、中间件单元、硬件抽象单元。本发明的实施例应用于电视机。
【专利说明】
中间件装置、中间件实现方法和电视机
技术领域
[0001]本发明涉及智能电视领域,尤其涉及一种中间件装置、中间件实现方法和电视机。
【背景技术】
[0002]传统智能电视系统由各芯片提供商提供各自的底层驱动以及上层的业务逻辑,同一电视制造商的不同的电视机型由于底层驱动代码与上层业务逻辑不统一,因此需要分别维护一整套电视系统代码,这为电视制造商带来的极大的不便性:同样或类似的问题可能重复出现在不同的电视机型上,需要投入大量的人力物力去调试和开发;而且不同的电视机型的差异性也为开发人员的知识延续及技术积累带来很多困难。

【发明内容】

[0003]本发明的实施例提供一种中间件装置、中间件实现方法和电视机,用于解决底层驱动代码与上层业务逻辑不统一的问题。
[0004]为达到上述目的,本发明的实施例采用如下技术方案:
[0005]第一方面,提供了一种中间件装置,包括:
[0006]电视应用程序接口单元,用于为上层应用程序调用电视接口单元提供转换功能,并且按照功能模块生成功能模块标识和第一参数集合并向所述电视接口单元的与所述功能模块相对应的接口发送所述功能模块标识和第一参数集合,其中,所述功能模块标识指示调用所述中间件装置的功能模块,所述第一参数集合包括与所述功能模块相关的所有参数,所述上层应用程序的编程语言与所述电视接口单元的编程语言不同;
[0007]电视接口单元,用于根据功能模块向所述电视应用程序接口单元提供调用接口,根据所述功能模块标识从所述第一参数集合中提取第二参数集合,并按照所述功能模块标识的指示向中间件单元的对应接口发送所述第二参数集合,其中,所述功能模块标识和所述第二参数集合指示功能模块的业务逻辑;
[0008]所述中间件单元,用于根据所述电视接口单元所调用的接口进行业务逻辑动作,并向硬件抽象单元的对应接口发送所述第二参数集合;
[0009]所述硬件抽象单元,用于结合所述第二参数集合和所述中间件单元所调用的接口为不同芯片厂商的驱动提供接口,由所述不同芯片厂商的驱动实现对应功能,并且根据编译脚本的配置来编译所述不同芯片厂商的驱动。
[0010]第二方面,提供了一种中间件实现方法,应用于第一方面所述的中间件装置,包括:
[0011]为上层应用程序调用电视接口单元提供转换功能,并且按照功能模块生成功能模块标识和第一参数集合并向所述电视接口单元的与所述功能模块相对应的接口发送所述功能模块标识和第一参数集合,其中,所述功能模块标识指示调用所述中间件实现方法的功能模块,所述第一参数集合包括与所述功能模块相关的所有参数,所述上层应用程序的编程语言与所述电视接口单元的编程语言不同;
[0012]根据功能模块向所述电视应用程序接口单元提供调用接口,根据所述功能模块标识从所述第一参数集合中提取第二参数集合,并按照所述功能模块标识的指示向中间件单元的对应接口发送所述第二参数集合,其中,所述功能模块标识和所述第二参数集合指示功能模块的业务逻辑;
[0013]根据所述电视接口单元所调用的接口进行业务逻辑动作,并向硬件抽象单元的对应接口发送所述第二参数集合;
[0014]结合所述第二参数集合和所述中间件单元所调用的接口为不同芯片厂商的驱动提供接口,由所述不同芯片厂商的驱动实现对应功能,并且根据编译脚本的配置来编译所述不同芯片厂商的驱动。
[0015]第三方面,提供了一种电视机,包括第一方面所述的中间件装置。
[0016]本发明的实施例提供的中间件装置、中间件实现方法和电视机,为上层应用程序调用电视接口单元提供转换功能,并且按照功能模块生成功能模块标识和第一参数集合并向电视接口单元的与功能模块相对应的接口发送功能模块标识和第一参数集合,其中,功能模块标识指示调用中间件的功能模块,第一参数集合包括与功能模块相关的所有参数,上层应用程序的编程语言与电视接口单元的编程语言不同;根据功能模块向电视应用程序接口单元提供调用接口,根据功能模块标识从第一参数集合中提取第二参数集合,并按照功能模块标识的指示向中间件单元的对应接口发送第二参数集合,其中,功能模块标识和第二参数集合指示功能模块的业务逻辑;根据电视接口单元所调用的接口进行业务逻辑动作,并向硬件抽象单元的对应接口发送第二参数集合;结合第二参数集合和中间件单元所调用的接口为不同芯片厂商的驱动提供接口,由不同芯片厂商的驱动实现对应功能,并且根据编译脚本的配置来编译不同芯片厂商的驱动。首先划分不同功能模块,抽象出各功能模块的业务逻辑,将业务逻辑的接口提供给芯片厂商用于实现底层驱动,解决了底层驱动代码与上层业务逻辑不统一的问题。
【附图说明】
[0017]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]图1为本发明的实施例提供的电视机的结构示意图;
[0019]图2为本发明的实施例提供的中间件装置的结构示意图;
[0020]图3为本发明的实施例提供的中间件实现方法的流程示意图。
【具体实施方式】
[0021]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022]本发明提供了一种电视机,参照图1中所示,包括:上层应用程序101、中间件装置102、底层应用程序103。上层应用程序101将用户操作发送给中间件装置102,由中间件装置102调用底层应用程序103,并且中间件装置102将底层应用程序103的响应结果反馈给上层应用程序101。
[0023]实施例1:
[0024]本发明提供了一种中间件装置,作为图1中所示的电视机中的中间件装置102,参照图2中所示,包括:
[0025]电视应用程序接口(英文简称:TV API,英文全称:televis1n applicat1nprogram interface)单元201,用于为上层Android(中文名称:安卓)应用程序调用电视接口单元202提供转换功能,并且按照功能模块生成功能模块标识和第一参数集合并向电视接口单元202的与功能模块相对应的接口发送功能模块标识和第一参数集合,其中,功能模块标识指示调用本发明的中间件的功能模块,第一参数集合包括与功能模块相关的所有参数,上层应用程序的编程语言与电视接口单元202的编程语言不同。
[0026]示例性的,以搜台为例,搜台不仅涉及图像,还涉及声音、搜索电视信号等。因此首先划分出不同的功能模块,其中,功能模块按照功能包括3D、声音、图像、数据、工厂参数以及通道管理等模块,每个模块都按照本发明提供的中间件实现方法逐层调用。每个模块以及每一层都采用设计模式中的单例模式来进行操作,这样以避免对象的非法创建和调用,也有助于系统的稳定性和健壮性。
[0027]示例性的,例如对于对应声音模块的来说,可以以不同数值的功能模块标识来分别指示调节声音、设置声音音效等,但是在电视应用程序接口 201调用电视接口单元202的接口时都根据功能模块标识统一调用电视接口单元202的声音模块接口,因此电视应用程序接口 201可以以多对一的方式将上层应用程序的多个调用汇集成对电视接口单元202的一个调用。
[0028]第一参数集合包括该功能模块的所有相关参数,例如对于声音模块的第一参数集合可以包括音量、均衡、音效、通道(通道包括耳机、同轴还是电视喇叭等)等。本领域的技术人员可以理解:第一参数集合可以是结构体,结构体中的数据可以是整型、数组、字符串等类型,第一参数集合还可以是指针,指向上述所有相关参数的起始地址空间。
[0029]优选的,上层Android应用程序的编程语言为Java,电视接口单元202以及从电视接口单元202向下的其他各层的编程语言为C或C++,则电视应用程序接口单元201通过JNI(英文全称:java native interface,中文名称:java本地接口)机制为上层Android应用程序调用电视接口单元202提供转换功能。
[0030]电视接口(英文简称:TVinterface,英文全称:televis1n interface)单元202,用于根据功能模块向电视应用程序接口单元201提供调用接口,根据功能模块标识从第一参数集合中提取第二参数集合,并按照功能模块标识的指示向中间件单元203的对应接口发送第二参数集合,其中,功能模块标识和第二参数集合指示功能模块的业务逻辑。
[0031]电视接口单元202针对如上所述的功能模块为电视应用程序接口单元201提供调用接口,示例性的,以声音模块为例,进行设置音量或设置声音音效时不会用到第一参数集合中的所有数据,电视接口单元202的声音模块接口接收到电视应用程序接口单元201的功能模块标识和第一参数集合后,根据功能模块标识所指示的进行设置音量还是设置声音音效,从第一参数集合中提取关键数据成为第二参数集合,功能模块标识和第二参数集合一起指示该功能模块所要进行的业务逻辑,例如设置音量时就从第一参数集合中提取音量数据和通道数据作为第二参数集合,向功能模块标识所指示的中间件单元203的设置音量接口发送第二参数集合,中间件单元203根据这些数据可以进行设置音量的业务逻辑动作。
[0032]可选的,参照图2中所示,电视接口单元202还可以包括适配模块2021,适配模块2021包括与功能模块标识对应的客户端类,适配模块2021作为IPC(英文名称:inter-process communicat1n,中文名称:进程间通信)通信的客户端通过IPC通信方式向中间件单元203的对应接口发送第二参数集合。凡是对中间件单元203的调用,均通过各功能模块的适配模块2021中的对应客户端类进行调用,目的是降低耦合以及方便后期维护。
[0033]另外需要说明的是,适配模块2021的接口调用中间件单元20 3的对应接口,例如,适配模块2021的设置音量接口调用中间件单元203的设置音量接口;适配模块2021的设置声音音效接口调用中间件单元203的设置声音音效接口。
[0034]中间件(英文名称:midware)单元203用于根据电视接口单元202所调用的接口进行业务逻辑动作,并向硬件抽象单元204的对应接口发送第二参数集合
[0035]中间件单元203在与电视接口单元202通过IPC通信时以服务(英文名称:service)的方式运行。
[0036]可选的,参照图1中所示,中间件单元203还包括数据分离模块2031,数据分离模块2031用于对不同功能模块的中间件单元203的数据进行访问,例如,进行设置音量时为了下次开机时保持当前音量需要将音量数据进行存储。数据分离模块2031利用单例系统数据库类统一对各个模块的数据进行访问。数据分离模块屏蔽了不同芯片商的差异,并对数据进行了数据分离,降低数据和代码的耦合性。
[0037]需要说明的是中间件单元203的接口调用硬件抽象单元204的对应接口,例如,中间件单元203的设置音量接口调用硬件抽象单元204的设置音量接口;中间件单元203的设置声音音效接口调用硬件抽象单元204的设置声音音效接口。
[0038]硬件抽象单元(英文简称:HAL,英文全称:hardware abstract layer)204用于结合第二参数集合和中间件单元203所调用的接口为不同芯片厂商的驱动提供接口,由不同芯片厂商的驱动实现对应功能,并且根据编译脚本的配置来编译不同芯片厂商的驱动。
[0039]硬件抽象单元204向下面的驱动单元提供第二参数集合和中间件单元所调用的本层的接口,由不同芯片厂商实现驱动层的程序代码,另外,还根据编译脚本的配置来编译不同芯片厂商的驱动。
[0040]示例性的,以声音模块的设置音量为例,中间件单元203的设置音量接口调用硬件抽象单元204的设置音量接口之后,硬件抽象单元204向驱动层提供音量数据和通道数据以及设置音量接口,只要芯片厂商实现的驱动层的程序代码能够在设置音量接口中实现根据音量数据和通道数据设置音量的功能即可。
[0041]本发明的所提供的中间件实现方法,通过分层调用不仅可以清楚的梳理电视架构逻辑,更有助于定位和发现问题。每一层都有各自的测试接口用例,可以无需上层UI,直接通过串口工具测试调用每一层的接口,来快速定位和排查问题所在的逻辑层。代码架构的每层都利用gtest框架编写测试程序接口,无需依赖上层的调用,直接通过测试命令单独测试每一层的关键接口,以便发现和定位问题所在模块位置。
[0042]本发明的实施例提供的中间件装置,包括:电视应用程序接口单元,用于为上层应用程序调用电视接口单元提供转换功能,并且按照功能模块生成功能模块标识和第一参数集合并向电视接口单元的与功能模块相对应的接口发送功能模块标识和第一参数集合,其中,功能模块标识指示调用中间件的功能模块,第一参数集合包括与功能模块相关的所有参数,上层应用程序的编程语言与电视接口单元的编程语言不同;电视接口单元,用于根据功能模块向电视应用程序接口单元提供调用接口,根据功能模块标识从第一参数集合中提取第二参数集合,并按照功能模块标识的指示向中间件单元的对应接口发送第二参数集合,其中,功能模块标识和第二参数集合指示功能模块的业务逻辑;中间件单元,用于根据电视接口单元所调用的接口进行业务逻辑动作,并向硬件抽象单元的对应接口发送第二参数集合;硬件抽象单元,用于结合第二参数集合和中间件单元所调用的接口为不同芯片厂商的驱动提供接口,由不同芯片厂商的驱动实现对应功能,并且根据编译脚本的配置来编译不同芯片厂商的驱动。首先划分不同功能模块,抽象出各功能模块的业务逻辑,将业务逻辑的接口提供给芯片厂商用于实现底层驱动,解决了底层驱动代码与上层业务逻辑不统一的问题。
[0043]实施例2:
[0044]本发明提供了一种中间件实现方法,应用于图2中所示的中间件装置,参照图3中所示,包括:
[0045]S301、为上层应用程序调用电视接口单元提供转换功能,并且按照功能模块生成功能模块标识和第一参数集合并向电视接口单元的与功能模块相对应的接口发送功能模块标识和第一参数集合,其中,功能模块标识指示调用中间件实现方法的功能模块,第一参数集合包括与功能模块相关的所有参数,上层应用程序的编程语言与电视接口单元的编程语言不同。
[0046]可选的,上层应用程序的编程语言为Java;电视接口单元的编程语言为C或C++;为上层应用程序调用电视接口单元提供转换功能,包括:通过JNI机制为上层应用程序调用电视接口单元提供转换功能。
[0047]可选的,电视接口单元还包括适配模块,适配模块包括与功能模块标识对应的客户端类;
[0048]按照功能模块标识的指示向中间件单元的对应接口发送第二参数集合,包括:客户端类通过IPC通信方式向中间件单元的对应接口发送第二参数集合。
[0049]S302、根据功能模块向电视应用程序接口单元提供调用接口,根据功能模块标识从第一参数集合中提取第二参数集合,并按照功能模块标识的指示向中间件单元的对应接口发送第二参数集合,其中,功能模块标识和第二参数集合指示功能模块的业务逻辑。
[0050]可选的,中间件单元还包括数据分离模块,数据分离模块用于对不同功能模块的中间件单元的数据进行访问。
[0051]S303、根据电视接口单元所调用的接口进行业务逻辑动作,并向硬件抽象单元的对应接口发送第二参数集合。
[0052]S304、结合第二参数集合和中间件单元所调用的接口为不同芯片厂商的驱动提供接口,由不同芯片厂商的驱动实现对应功能,并且根据编译脚本的配置来编译不同芯片厂商的驱动。
[0053]本发明的实施例提供的中间件实现方法,为上层应用程序调用电视接口单元提供转换功能,并且按照功能模块生成功能模块标识和第一参数集合并向电视接口单元的与功能模块相对应的接口发送功能模块标识和第一参数集合,其中,功能模块标识指示调用中间件的功能模块,第一参数集合包括与功能模块相关的所有参数,上层应用程序的编程语言与电视接口单元的编程语言不同;根据功能模块向电视应用程序接口单元提供调用接口,根据功能模块标识从第一参数集合中提取第二参数集合,并按照功能模块标识的指示向中间件单元的对应接口发送第二参数集合,其中,功能模块标识和第二参数集合指示功能模块的业务逻辑;根据电视接口单元所调用的接口进行业务逻辑动作,并向硬件抽象单元的对应接口发送第二参数集合;结合第二参数集合和中间件单元所调用的接口为不同芯片厂商的驱动提供接口,由不同芯片厂商的驱动实现对应功能,并且根据编译脚本的配置来编译不同芯片厂商的驱动。首先划分不同功能模块,抽象出各功能模块的业务逻辑,将业务逻辑的接口提供给芯片厂商用于实现底层驱动,解决了底层驱动代码与上层业务逻辑不统一的问题。
[0054]应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0055]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0056]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0057]在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0058]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0059]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0060]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:read-only memory,英文简称:ROM)、随机存取存储器(英文全称:random access memory,英文简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0061]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【主权项】
1.一种中间件装置,包括: 电视应用程序接口单元,用于为上层应用程序调用电视接口单元提供转换功能,并且按照功能模块生成功能模块标识和第一参数集合并向所述电视接口单元的与所述功能模块相对应的接口发送所述功能模块标识和第一参数集合,其中,所述功能模块标识指示调用所述中间件装置的功能模块,所述第一参数集合包括与所述功能模块相关的所有参数,所述上层应用程序的编程语言与所述电视接口单元的编程语言不同; 所述电视接口单元,用于根据功能模块向所述电视应用程序接口单元提供调用接口,根据所述功能模块标识从所述第一参数集合中提取第二参数集合,并按照所述功能模块标识的指示向中间件单元的对应接口发送所述第二参数集合,其中,所述功能模块标识和所述第二参数集合指示功能模块的业务逻辑; 所述中间件单元,用于根据所述电视接口单元所调用的接口进行业务逻辑动作,并向硬件抽象单元的对应接口发送所述第二参数集合; 所述硬件抽象单元,用于结合所述第二参数集合和所述中间件单元所调用的接口为不同芯片厂商的驱动提供接口,由所述不同芯片厂商的驱动实现对应功能,并且根据编译脚本的配置来编译所述不同芯片厂商的驱动。2.根据权利要求1所述的中间件装置,其特征在于, 所述上层应用程序的编程语言为Java; 所述电视接口单元的编程语言为C或C++; 所述电视应用程序接口单元,具体用于通过JNI机制为所述上层应用程序调用所述电视接口单元提供转换功能。3.根据权利要求1所述的中间件装置,其特征在于,所述中间件单元还包括数据分离模块,所述数据分离模块用于对不同功能模块的所述中间件单元的数据进行访问。4.根据权利要求1所述的中间件装置,其特征在于, 所述电视接口单元还包括适配模块,所述适配模块包括与所述功能模块标识对应的客户端类; 所述电视接口单元,具体用于所述客户端类通过IPC通信方式向所述中间件单元的对应接口发送所述第二参数集合。5.—种中间件实现方法,包括: 为上层应用程序调用电视接口单元提供转换功能,并且按照功能模块生成功能模块标识和第一参数集合并向所述电视接口单元的与所述功能模块相对应的接口发送所述功能模块标识和第一参数集合,其中,所述功能模块标识指示调用所述中间件实现方法的功能模块,所述第一参数集合包括与所述功能模块相关的所有参数,所述上层应用程序的编程语言与所述电视接口单元的编程语言不同; 根据功能模块向所述电视应用程序接口单元提供调用接口,根据所述功能模块标识从所述第一参数集合中提取第二参数集合,并按照所述功能模块标识的指示向中间件单元的对应接口发送所述第二参数集合,其中,所述功能模块标识和所述第二参数集合指示功能模块的业务逻辑; 根据所述电视接口单元所调用的接口进行业务逻辑动作,并向硬件抽象单元的对应接口发送所述第二参数集合; 结合所述第二参数集合和所述中间件单元所调用的接口为不同芯片厂商的驱动提供接口,由所述不同芯片厂商的驱动实现对应功能,并且根据编译脚本的配置来编译所述不同芯片厂商的驱动。6.根据权利要求5所述的中间件实现方法,其特征在于, 所述上层应用程序的编程语言为Java; 所述电视接口单元的编程语言为C或C++; 所述为上层应用程序调用电视接口单元提供转换功能,包括:通过JNI机制为所述上层应用程序调用所述电视接口单元提供转换功能。7.根据权利要求5所述的中间件实现方法,其特征在于,所述中间件单元还包括数据分离模块,所述数据分离模块用于对不同功能模块的所述中间件单元的数据进行访问。8.根据权利要求5所述的中间件实现方法,其特征在于, 所述电视接口单元还包括适配模块,所述适配模块包括与所述功能模块标识对应的客户端类; 所述按照所述功能模块标识的指示向中间件单元的对应接口发送所述第二参数集合,包括:所述客户端类通过IPC通信方式向所述中间件单元的对应接口发送所述第二参数集入口 O9.一种电视机,包括如权利要求1-4中任一项所述的中间件装置。
【文档编号】H04N21/443GK105933767SQ201610247433
【公开日】2016年9月7日
【申请日】2016年4月20日
【发明人】张伟丽
【申请人】青岛海信电器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1