CN112235639B - 一种易升级可扩展的Linux智能电视操作*** - Google Patents
一种易升级可扩展的Linux智能电视操作*** Download PDFInfo
- Publication number
- CN112235639B CN112235639B CN202010896821.3A CN202010896821A CN112235639B CN 112235639 B CN112235639 B CN 112235639B CN 202010896821 A CN202010896821 A CN 202010896821A CN 112235639 B CN112235639 B CN 112235639B
- Authority
- CN
- China
- Prior art keywords
- plug
- library
- module
- function
- main program
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4431—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/458—Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
- H04N21/4586—Content update operation triggered locally, e.g. by comparing the version of software modules in a DVB carousel to the version stored locally
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种易升级可扩展的Linux智能电视操作***包括:UI、主程序、插件集合、平台抽象层库以及基础平台功能库;主程序遍历插件集合中模块插件目录,通过动态加载的方式逐一加载模块插件目录下包含的所有模块插件,遍历完成后主程序将支持的所有模块插件告知UI,UI收到主程序的通告后,根据当前所支持的模块插件显示相应的UI界面;每个插件模块通过平台抽象层库调用基础平台功能库,实现功能接口的调用;降低了软件各层次代码的耦合性,使得软件编译、运行更加灵活方便。
Description
技术领域
本发明涉及一种易升级可扩展的Linux智能电视操作***。
背景技术
现有的电视***至少包含多个功能模块,例如网络模块、蓝牙模块、电视搜台模块、智能APP功能模块等,一个电视厂商往往会做多款不同型号的电视,例如:电视厂商可能出一款智能电视包含智能APP功能模块,另一款非智能电视不包含智能APP功能模块;又例如:电视厂商可能出一款高端品牌的产品包含有蓝牙模块,另一款低端品牌的产品不包含蓝牙模块。这些品牌型号它们可能有大部分功能模块是相同的,只是个别功能模块有差异而已。如果每款品牌型号的代码都是单独编写,那么就会有很多重复编写的工作,另外如果一个模块发现BUG,那么就需要修改所有品牌型号代码的BUG,这样的工作量将是巨大的,且代码不易于同步维护的;为了避免出现前面这种情况问题,有些公司会把公共的部分共用一套代码,差异部分通过编译脚本控制编译的差异部分代码;如果其中一个模块需要更新,此时,若TV***的所有模块是一起编译成一个软件的,那么就需要重新编译整个TV***,同时在升级时候也需要做整个软件的升级。当今很多品牌的TV***都支持在线网络升级,***的大小和网速好坏影响升级的快慢。如果一个功能模块的接口API是直接被上层调用,那么如果需要去除该模块就需要修改调用部分的代码。
上述方法缺点是:
1、所有模块集成在一个软件中,一个模块改动,则需要所有模块都编译,编译耗时较长;
2、如果所有功能模块是编译成一个TV***的,那么升级需要整个软件一起升级,包括没有更新的模块也要一起升级,升级文件较大,升级耗时较长,在网络较差的地方甚至会出现升级不成功的问题;
3、模块不可拆解,模块去除或新增都需要重新编译软件。
发明内容
本发明要解决的技术问题,在于提供一种易升级可扩展的Linux智能电视操作***,降低了软件各层次代码的耦合性,使得软件编译、运行更加灵活方便。
本发明是这样实现的:一种易升级可扩展的Linux智能电视操作***,包括:UI、主程序、插件集合、平台抽象层库以及基础平台功能库;
主程序遍历插件集合中模块插件目录,通过动态加载的方式逐一加载模块插件目录下包含的所有模块插件,遍历完成后主程序将支持的所有模块插件告知UI,UI收到主程序的通告后,根据当前所支持的模块插件显示相应的UI界面;
每个插件模块通过平台抽象层库调用基础平台功能库,实现功能接口的调用。
进一步地,所述主程序遍历插件集合中模块插件目录,通过动态加载的方式逐一加载模块插件目录下包含的所有模块插件进一步具体为:主程序遍历插件集合中模块插件目录,通过动态库加载机制使用dl库的dlopenAPI逐一加载模块插件目录下包含的所有模块插件。
进一步地,所述每个模块插件都需要实现3个函数方法,包括:Plugin_Load、Plugin_Execute以及Server_PublishNotification_Callback;所述主程序使用dl库的dlsymAPI加载调用每个模块插件函数方法;
主程序通过调用Plugin_Load函数方法来获取每个模块插件所提供的接口命令;
主程序通过调用Plugin_Execute函数方法来执行对应模块插件的接口命令来获取相关数据或者执行相关功能动作;
主程序通过调用Server_PublishNotification_Callback函数方法来向模块插件注册回调接口函数,使得插件模块通过该注册的接口回调函数来告知主程序相关的事件通知。
进一步地,所述平台抽象层库调用板卡厂商提供的基础平台功能库,实现功能接口的调用。
进一步地,所述模块插件和平台抽象层库是以共享库或动态链接库形式存在。
本发明具有如下优点:
1、降低了软件各层次代码的耦合性,使得软件编译、运行更加灵活方便;
2、如果只是更新某个功能模块,那么只需要编译该模块插件,升级也只需要升级该模块插件,这样节省编译时间和节省升级时间;
3、在电视***支持网络在线升级时,如果仅是升级个别功能模块,那么这种方法减少了需要下载的软件大小,这样在有些网络较差的地区能提高升级软件的成功率,更加便于TV***的更新换代;
4、降低了电视***与底层板卡的依赖和耦合性,提高了软件的兼容和可移植性;。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明***原理框图;
图2为本发明插件集合的插件目录示意图。
具体实施方式
如图1所示,本发明易升级可扩展的Linux智能电视操作***,包括:UI、主程序、插件集合、平台抽象层库以及基础平台功能库;
主程序遍历插件集合中模块插件目录,通过动态库加载机制使用dl库的dlopenAPI逐一加载模块插件目录下包含的所有模块插件,遍历完成后主程序将支持的所有模块插件告知UI,UI收到主程序的通告后,根据当前所支持的模块插件显示相应的UI界面;
每个插件模块通过平台抽象层库调用基础平台功能库,实现功能接口的调用;
所述平台抽象层库调用板卡厂商提供的基础平台功能库,实现功能接口的调用,所述模块插件和平台抽象层库是以共享库或动态链接库形式存在。
所述每个模块插件都需要实现3个函数方法,包括:Plugin_Load、Plugin_Execute以及Server_PublishNotification_Callback;所述主程序使用dl库的dlsymAPI加载调用每个模块插件函数方法;
主程序通过调用Plugin_Load函数方法来获取每个模块插件所提供的接口命令;
主程序通过调用Plugin_Execute函数方法来执行对应模块插件的接口命令来获取相关数据或者执行相关功能动作;
主程序通过调用Server_PublishNotification_Callback函数方法来向模块插件注册回调接口函数,使得插件模块通过该注册的接口回调函数来告知主程序相关的事件通知。
本发明一种具体实施方式:
1、如图1所示,本方案将***软件拆分为UI、主程序、模块插件、平台抽象层库和基础平台功能库(包含硬件驱动)五层部分;
2、UI与主程序的交互通讯方式根据UI的实现方式不同可以有多种方式,例如如果UI是使用C/C++编写的nativeUI那么可以使用直接调用API接口的方式来调用主程序提供的API接口,UI和主程序交互方式不是本发明的核心重点,本方案实现过程中UI使用WebUI,UI与主程序之间使用websocket进行http报文通讯的方式来进行交互。
3、如图2所示,本发明的核心重点是主程序、功能插件、平台抽象层库三层部分的交互设计。首先将功能模块与主程序分开,每个功能模块拆分成一个独立的共享库(链接动态库)(本文中也称之为模块插件),所有模块插件共同放在一个文件夹下,例如rpc_plugins,每个模块插件单独存放一个目录下,例如蓝牙模块插件放在bluetooth文件夹下,网络插件模块放在network文件夹下等。
4、TV***启动后由主程序去遍历模块插件目录(rpc_plugins),通过动态库加载机制使用dl库的dlopenAPI逐一加载这个目录下包含的所有模块插件,遍历完成后主程序将***支持的所有模块插件告知UI,UI收到主程序的通告后根据当前***所支持的模块插件显示相应的UI界面。
5、每个模块插件都需要实现3个函数方法:Plugin_Load、Plugin_Execute、Server_PublishNotification_Callback。主程序使用dl库的dlsymAPI加载调用每个模块插件的这3个函数方法。主程序通过调用Plugin_Load函数方法来获取每个模块插件所提供的接口命令,
主程序通过调用Plugin_Execute函数方法来执行对应模块插件的接口命令来获取相关数据或者执行相关功能动作,主程序通过调用Server_PublishNotification_Callback函数方法来向模块插件注册回调接口函数,这样插件模块就可以通过这个注册的接口回调函数来告知主程序相关的事件通知。
6、每个模块插件通过直接调用平台抽象层库的API接口来实现功能接口的调用。平台抽象层库是以共享库(动态链接库)形式存在的,主要原因是由于平台抽象层库需要被多个模块插件调用。
7、平台抽象层库通过直接调用基础平台功能库来实现功能接口的调用,之所以在模块插件层和基础平台功能库之间添加一个平台抽象层库主要是为了抽象平台功能,剥离插件模块和基础平台功能库之间的耦合关系,使得更换平台更容易提高扩展兼容性。例如当前如果使用的是novatek的板卡厂商提供基础平台功能库,那么TV***厂商想将板卡更换为mstar的板卡,那么只需要更换为支持mstar提供的基础平台功能库的抽象平台层库即可,上面的几层都无需要修改。同样如果板卡厂商提供的基础平台功能库接口有更新调整,那么也只需更新调整抽象平台层库即可做到不修改上层代码即可实现TV***功能升级。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (3)
1.一种易升级可扩展的Linux智能电视操作***,其特征在于:包括:UI、主程序、插件集合、平台抽象层库以及基础平台功能库;
主程序遍历插件集合中模块插件目录,通过动态库加载机制使用dl库的dlopen API逐一加载模块插件目录下包含的所有模块插件,遍历完成后主程序将支持的所有模块插件告知UI,UI收到主程序的通告后,根据当前所支持的模块插件显示相应的UI界面;
每个插件模块通过平台抽象层库调用基础平台功能库,实现功能接口的调用;每个所述模块插件都需要实现3个函数方法,包括:Plugin_Load、Plugin_Execute以及Server_PublishNotification_Callback;所述主程序使用dl库的dlsym API加载调用每个模块插件函数方法;
主程序通过调用Plugin_Load函数方法来获取每个模块插件所提供的接口命令;
主程序通过调用Plugin_Execute函数方法来执行对应模块插件的接口命令来获取相关数据或者执行相关功能动作;
主程序通过调用Server_PublishNotification_Callback函数方法来向模块插件注册回调接口函数,使得插件模块通过该注册的接口回调函数来告知主程序相关的事件通知。
2.根据权利要求1所述的一种易升级可扩展的Linux智能电视操作***,其特征在于:所述平台抽象层库调用板卡厂商提供的基础平台功能库,实现功能接口的调用。
3.根据权利要求1所述的一种易升级可扩展的Linux智能电视操作***,其特征在于:所述模块插件和平台抽象层库是以共享库或动态链接库形式存在。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010896821.3A CN112235639B (zh) | 2020-08-31 | 2020-08-31 | 一种易升级可扩展的Linux智能电视操作*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010896821.3A CN112235639B (zh) | 2020-08-31 | 2020-08-31 | 一种易升级可扩展的Linux智能电视操作*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112235639A CN112235639A (zh) | 2021-01-15 |
CN112235639B true CN112235639B (zh) | 2023-04-14 |
Family
ID=74115765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010896821.3A Active CN112235639B (zh) | 2020-08-31 | 2020-08-31 | 一种易升级可扩展的Linux智能电视操作*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112235639B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113867840B (zh) * | 2021-09-29 | 2023-06-13 | 四川长虹电器股份有限公司 | 一种智能电视web native插件框架及构建方法 |
CN114546538B (zh) * | 2022-04-27 | 2022-08-02 | 季华实验室 | 一种基于osgi的虚拟仿真平台构建方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164239A (zh) * | 2012-12-11 | 2013-06-19 | 广东电网公司电力科学研究院 | 基于微网可视化平台的插件实现方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7584471B2 (en) * | 2002-09-23 | 2009-09-01 | Telefonaktiebolaget L M Ericsson (Publ) | Plug-in model |
CN102375729A (zh) * | 2010-08-20 | 2012-03-14 | 希姆通信息技术(上海)有限公司 | 基于arena平台高层业务软件的分层架构设计方法 |
CN101950255A (zh) * | 2010-09-16 | 2011-01-19 | 深圳市迎风传讯科技有限公司 | 插件管理方法、插件管理器及机顶盒 |
CN104427388A (zh) * | 2013-09-10 | 2015-03-18 | 国家广播电影电视总局广播科学研究院 | 一种智能电视操作*** |
CN103645901A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种基于事件链的用户界面插件化交互方法 |
CN104333808B (zh) * | 2014-11-14 | 2017-10-10 | 复旦大学 | 用于Android及Linux智能电视机上的通用播放器 |
CN105183458A (zh) * | 2015-08-14 | 2015-12-23 | 深圳联友科技有限公司 | 一种软件平台开发方法及装置 |
US10819581B2 (en) * | 2018-04-05 | 2020-10-27 | Servicenow, Inc. | Performance analytics content gallery |
CN110673844A (zh) * | 2019-09-26 | 2020-01-10 | 苏州中科全象智能科技有限公司 | 一种图像处理软件开发方法及*** |
-
2020
- 2020-08-31 CN CN202010896821.3A patent/CN112235639B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164239A (zh) * | 2012-12-11 | 2013-06-19 | 广东电网公司电力科学研究院 | 基于微网可视化平台的插件实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112235639A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109451472B (zh) | Android智能设备上多蓝牙芯片的动态管理方法 | |
CN112235639B (zh) | 一种易升级可扩展的Linux智能电视操作*** | |
CN105159788B (zh) | 一种Android应用间动态共享资源的方法及*** | |
CN107305553B (zh) | 一种基于Hybrid App中动态跳转Hybrid页面的方法及*** | |
CN107741844B (zh) | 一种应用安装包的生成方法和装置 | |
CN111459539B (zh) | 基于镜像分层的持续集成流水线运行方法及装置 | |
CN102830989B (zh) | 阅读器提供服务的方法、阅读器及终端 | |
CN102833350A (zh) | WebApp更新的处理方法和处理装置 | |
CN102750176A (zh) | 网络电视的软件升级方法及装置 | |
CN105808278A (zh) | 一种客户端版本升级方法及装置 | |
CN102523295B (zh) | 一种插件注册方法及*** | |
CN110968331A (zh) | 应用程序运行的方法和装置 | |
CN108874412A (zh) | 用于更新界面布局的方法、装置、设备及*** | |
CN113360211A (zh) | 基于控件的加载显示方法及相关设备 | |
CN107193565B (zh) | 跨移动端开发原生app的方法 | |
CN113656005B (zh) | 应用组件库构建方法、应用组件配置方法及相关装置 | |
US10078532B2 (en) | Resource management method and device for terminal system among multiple operating systems | |
CN110413292B (zh) | 应用程序的轻应用安装方法、移动终端及存储介质 | |
CN113778477A (zh) | 文件处理方法及装置、计算机可读存储介质、电子设备 | |
CN108733399A (zh) | 动态更新配置数据的方法和装置 | |
CN101551746A (zh) | 移动通讯终端对ui界面配置方法 | |
CN104581695A (zh) | 移动终端配置方法和*** | |
CN115129740B (zh) | 一种云原生环境下的分布式微服务数据库更新方法及*** | |
CN109032651B (zh) | 应用更新方法、智能终端及计算机可读存储介质 | |
JP2007026318A (ja) | 携帯電話機、プログラム作成方式、プログラム更新方式、プログラム作成方法及びプログラム更新方法 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230403 Address after: Room 305, building 2, No. 15, Wanyuan street, Beijing Economic and Technological Development Zone, Daxing District, Beijing 102600 Applicant after: Beijing Zhixiang Information Technology Co.,Ltd. Address before: 350000 room 2-17z, building 1, No. 27 Huli Road, Mawei District, Fuzhou City, Fujian Province (in the pilot Free Trade Zone) Applicant before: Fuzhou Zhixiang Information Technology Co.,Ltd. |