CN113867840A - 一种智能电视web native插件框架及构建方法 - Google Patents
一种智能电视web native插件框架及构建方法 Download PDFInfo
- Publication number
- CN113867840A CN113867840A CN202111153598.4A CN202111153598A CN113867840A CN 113867840 A CN113867840 A CN 113867840A CN 202111153598 A CN202111153598 A CN 202111153598A CN 113867840 A CN113867840 A CN 113867840A
- Authority
- CN
- China
- Prior art keywords
- function
- plug
- module
- framework
- play
- 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.)
- Granted
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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种智能电视WEB NATIVE插件框架及构建方法,框架包括TV插件初始化流程模块:用于加载tv_plugin插件并调用插件plugin_init函数,这个函数调用register_mod注册了play和scan两个功能模块;JS调用流程模块:用于调用play.channel最终调到框架control()函数,框架根据参数查找到play功能模块,并委托给play功能模块的process()函数,最终调用play功能模块的channel()函数;功能模块回调流程模块:play功能模块检测到on_sig_chg()事件,调用notify_listener()通知浏览器,浏览器调用已经注册的play.handleEvent()函数来处理事件。本发明规范了调用和回调的参数传递,实现了多个插件共存,每个插件独立发布和维护。
Description
技术领域
本发明涉及智能电视WEB NATIVE插件技术领域,尤其涉及一种智能电视WEBNATIVE插件框架及构建方法。
背景技术
在智能电视中,基础的功能如电视、播放器、网络等功能都是NATIVE(如C/C++)实现的,为了在WEB中使用这些功能,需要通过浏览器的NATIVE插件机制将这些接口导出到JS对象。
智能电视功能很多,基础功能都是NATIVE实现。由于WEB浏览器限制,往往只支持一个NATIVE插件,如果按照传统方式所有功能模块放到一个WEB NATIVE插件中,将导致插件异常庞大,并且后续如果扩展功能的话,需要更改的地方很多,还要重新编译发布,降低插件的稳定性,版本维护也很麻烦。
发明内容
本发明提供了一种智能电视WEB NATIVE插件框架及构建方法,以解决现有技术中由于WEB浏览器限制,往往只支持一个NATIVE插件,如果将所有的NATIVE功能模块都整合在一个插件中,将导致插件很庞大,并且后续每次增加功能或者功能模块的话就需要修改整个插件,这种方式不够灵活,后期维护困难的问题。
本发明采用的技术方案是:提供一种智能电视WEB NATIVE插件框架,包括:
TV插件初始化流程模块:用于加载tv_plugin插件并调用插件plugin_init函数,这个函数调用register_mod注册了play和scan两个功能模块;
JS调用流程模块:用于调用play.channel最终调到框架control()函数,框架根据参数查找到play功能模块,并委托给play功能模块的process()函数,最终调用play功能模块的channel()函数;
功能模块回调流程模块:play功能模块检测到on_sig_chg()事件,调用notify_listener()通知浏览器,浏览器调用已经注册的play.handleEvent()函数来处理事件。
本发明还提供一种智能电视WEB NATIVE插件框架构建方法,包括:
S1:遍历插件路径下的共享库文件,动态链接加载插件并调用插件初始化函数;
S2:每个插件设置一个固定名字的公共初始化函数,用来初始化插件并注册功能模块;
S3:功能模块通过名字与上层对应,框架控制核心通过上层调用参数中功能模块名查找到注册的功能模块,分发调用请求给对应的功能模块处理;
S4:功能模块通过参数中的函数名来调用不同的功能函数。
作为智能电视WEB NATIVE插件框架构建方法的一种优选方式,所述S1包括:
将框架编译成共享库放到lib目录,将插件编译成共享库后放到plugin目录,浏览器在启动时链接框架共享库,框架在启动时会扫描plugin目录,将动态链接加载plugin目录下的共享库并尝试调用plugin_init()初始化插件。
作为智能电视WEB NATIVE插件框架构建方法的一种优选方式,实现所述S3的方法包括规范参数格式和功能模块分发两部分:
规范参数格式:规范化JS与NATIVE接口参数和结果,以及回调参数;
功能模块分发:上层JS与框架通过control函数交互,框架控制核心根据JS调用control函数时参数中功能模块名将调用请求分发到注册的对应功能模块,并将参数中value部分再传递到选中的模块。
作为智能电视WEB NATIVE插件框架构建方法的一种优选方式,所述S4包括:
一个插件有多个功能模块,每个功能模块在实现ModInterface接口的process函数时需要通过第一个参数找到具体功能,并将剩下的参数作为具体功能函数的参数,对功能函数进行调用。
本发明的有益效果是:本发明规范了调用和回调的参数传递,实现了多个插件共存,每个插件独立发布和维护。
附图说明
图1为本发明公开的智能电视WEB NATIVE插件框架结构图。
图2为本发明公开的智能电视WEB NATIVE插件框架构建方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步详细描述,但本发明的实施方式不限于此。
实施例1:
参见图1,图1示出了一种智能电视WEB NATIVE插件框架,其包括:
TV插件初始化流程模块:用于加载tv_plugin插件并调用插件plugin_init函数,这个函数调用register_mod注册了play和scan两个功能模块;
JS调用流程模块:用于调用play.channel最终调到框架control()函数,框架根据参数查找到play功能模块,并委托给play功能模块的process()函数,最终调用play功能模块的channel()函数;
功能模块回调流程模块:play功能模块检测到on_sig_chg()事件,调用notify_listener()通知浏览器,浏览器调用已经注册的play.handleEvent()函数来处理事件。
实施例2
参见图2,本实施例提供一种智能电视WEB NATIVE插件框架方法,框架会遍历插件路径下的共享库文件,动态链接加载插件并调用插件初始化,每个插件在初始化中向框架注册功能模块名。在WEB调用框架NATIVE接口时,框架调度核心根据参数中功能模块名分发给注册的功能模块处理。
主要包括四部分:
S1:框架遍历插件路径下的共享库文件,动态链接加载插件并调用插件初始化函数。
将框架编译成共享库放到lib目录,将插件编译成共享库后放到plugin目录,浏览器在启动时链接框架共享库,框架在启动时会扫描plugin目录,将动态链接加载plugin目录下的共享库并尝试调用plugin_init()初始化插件。框架查找和初始化插件的伪代码如下:
框架还实现了register_mod函数,提供给每个插件在初始化时注册功能模块,伪代码如下:
S2、每个插件都有一个固定名字的公共初始化函数,用来初始化插件并注册功能模块。
插件是被框架管理的,实现具体功能模块的动态库。每个插件都有一个固定名字的公共初始化函数plugin_init,用来初始化和注册功能模块。
plugin_init:由每个插件实现的初始化函数,是整个插件的入口。通过在plugin_init函数中调用register_mod实现功能模块注册(一个插件可以注册多个功能模块)。伪代码如下:
ModInterface:功能模块接口,每个具体的功能模块需要继承并实现这个接口,以便框架调度管理,注意功能模块名name必须是唯一的,并且要与JS调用的参数中module匹配。伪代码如下:
S3:功能模块通过名字与上层JS对应,框架通过上层JS调用参数中功能模块名查找到注册的功能模块,分发调用请求给对应的功能模块处理。主要包括规范参数格式和功能模块分发两部分:
规范参数格式:要实现调用分发到不同模块并且执行到对应的功能,需要规范化JS与NATIVE接口参数和结果,以及回调参数。为方便和易于理解,使用JSON格式数据,主要包括以下几种格式:
调用功能参数:
返回调用结果:
插件回调参数:
params=[事件名,事件信息...];
功能模块分发:上层JS与框架是通过control函数交互的。框架控制核心根据JS调用control函数时参数中功能模块名(如下module部分)将调用请求分发到注册的对应功能模块,并将参数中value部分再传递到选中的模块。伪代码如下:
S4:功能模块通过参数中的函数名来调用不同的功能函数。
一个插件可以有多个功能模块,每个功能模块在实现ModInterface接口的process函数时需要通过第一个参数(value[0]对应函数名)找到具体功能,并将剩下的参数value[1…]作为具体功能函数的参数,对功能函数进行调用。伪代码如下:
如有返回值,需要设置返回值result的status表示执行状态,value表示执行结果。
功能模块回调通知:在底层收到事件时可以回调通知到JS。伪代码如下:
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (5)
1.一种智能电视WEB NATIVE插件框架,其特征在于,包括:
TV插件初始化流程模块:用于加载tv_plugin插件并调用插件plugin_init函数,这个函数调用register_mod注册了play和scan两个功能模块;
JS调用流程模块:用于调用play.channel最终调到框架control()函数,框架根据参数查找到play功能模块,并委托给play功能模块的process()函数,最终调用play功能模块的channel()函数;
功能模块回调流程模块:play功能模块检测到on_sig_chg()事件,调用notify_listener()通知浏览器,浏览器调用已经注册的play.handleEvent()函数来处理事件。
2.一种智能电视WEB NATIVE插件框架构建方法,其特征在于,包括:
S1:遍历插件路径下的共享库文件,动态链接加载插件并调用插件初始化函数;
S2:每个插件设置一个固定名字的公共初始化函数,用来初始化插件并注册功能模块;
S3:功能模块通过名字与上层对应,框架控制核心通过上层调用参数中功能模块名查找到注册的功能模块,分发调用请求给对应的功能模块处理;
S4:功能模块通过参数中的函数名来调用不同的功能函数。
3.根据权利要求2所述的智能电视WEB NATIVE插件框架构建方法,其特征在于,所述S1包括:
将框架编译成共享库放到lib目录,将插件编译成共享库后放到plugin目录,浏览器在启动时链接框架共享库,框架在启动时会扫描plugin目录,将动态链接加载plugin目录下的共享库并尝试调用plugin_init()初始化插件。
4.根据权利要求3所述的智能电视WEB NATIVE插件框架构建方法,其特征在于,实现所述S3的方法包括规范参数格式和功能模块分发两部分:
规范参数格式:规范化JS与NATIVE接口参数和结果,以及回调参数;
功能模块分发:上层JS与框架通过control函数交互,框架控制核心根据JS调用control函数时参数中功能模块名将调用请求分发到注册的对应功能模块,并将参数中value部分再传递到选中的模块。
5.根据权利要求4所述的智能电视WEB NATIVE插件框架构建方法,其特征在于,所述S4包括:
一个插件有多个功能模块,每个功能模块在实现ModInterface接口的process函数时需要通过第一个参数找到具体功能,并将剩下的参数作为具体功能函数的参数,对功能函数进行调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153598.4A CN113867840B (zh) | 2021-09-29 | 2021-09-29 | 一种智能电视web native插件框架及构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153598.4A CN113867840B (zh) | 2021-09-29 | 2021-09-29 | 一种智能电视web native插件框架及构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113867840A true CN113867840A (zh) | 2021-12-31 |
CN113867840B CN113867840B (zh) | 2023-06-13 |
Family
ID=79000682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111153598.4A Active CN113867840B (zh) | 2021-09-29 | 2021-09-29 | 一种智能电视web native插件框架及构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113867840B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102625182A (zh) * | 2012-03-31 | 2012-08-01 | 百视通网络电视技术发展有限责任公司 | 互联网电视业务中集成和控制视频播放器的方法和系统 |
CN103294458A (zh) * | 2012-02-28 | 2013-09-11 | 鼎亿数码科技(上海)有限公司 | 基于插件的软件开发方法 |
CN103377059A (zh) * | 2012-04-23 | 2013-10-30 | 阿里巴巴集团控股有限公司 | 基于jQuery框架的功能模块动态加载方法和装置 |
CN103927163A (zh) * | 2014-03-06 | 2014-07-16 | 中国人民解放军装甲兵工程学院 | 插件框架处理装置及插件系统 |
CN104765617A (zh) * | 2015-05-04 | 2015-07-08 | 北京奇虎科技有限公司 | 基于html5实现的流应用功能接口分发方法及系统 |
US20150317042A1 (en) * | 2014-05-02 | 2015-11-05 | Lexmark International Technology, S.A. | System and Methods for Loading an Application and its Modules in a Client Device |
CN105204883A (zh) * | 2014-06-26 | 2015-12-30 | 优视科技有限公司 | 一种插件加载处理方法及装置 |
CN106155749A (zh) * | 2016-07-28 | 2016-11-23 | 浪潮(北京)电子信息产业有限公司 | 一种监控插件扩展方法及装置 |
US20170031579A1 (en) * | 2014-02-28 | 2017-02-02 | Popin Inc. | Program |
CN106648627A (zh) * | 2016-11-30 | 2017-05-10 | 武汉斗鱼网络科技有限公司 | 将直播应用软件移植到火狐浏览器的方法及装置 |
CN107396186A (zh) * | 2017-08-11 | 2017-11-24 | 四川长虹电器股份有限公司 | Linux设备WebOS系统应用管理方法 |
CN109814943A (zh) * | 2018-12-21 | 2019-05-28 | 北京城市网邻信息技术有限公司 | 服务构建方法、加载方法及装置、电子设备、存储介质 |
CN112068898A (zh) * | 2020-09-01 | 2020-12-11 | 上海熙菱信息技术有限公司 | 一种可配置插件式服务集成系统及方法 |
CN112235639A (zh) * | 2020-08-31 | 2021-01-15 | 福州智象信息技术有限公司 | 一种易升级可扩展的Linux智能电视操作系统 |
-
2021
- 2021-09-29 CN CN202111153598.4A patent/CN113867840B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294458A (zh) * | 2012-02-28 | 2013-09-11 | 鼎亿数码科技(上海)有限公司 | 基于插件的软件开发方法 |
CN102625182A (zh) * | 2012-03-31 | 2012-08-01 | 百视通网络电视技术发展有限责任公司 | 互联网电视业务中集成和控制视频播放器的方法和系统 |
CN103377059A (zh) * | 2012-04-23 | 2013-10-30 | 阿里巴巴集团控股有限公司 | 基于jQuery框架的功能模块动态加载方法和装置 |
US20170031579A1 (en) * | 2014-02-28 | 2017-02-02 | Popin Inc. | Program |
CN103927163A (zh) * | 2014-03-06 | 2014-07-16 | 中国人民解放军装甲兵工程学院 | 插件框架处理装置及插件系统 |
US20150317042A1 (en) * | 2014-05-02 | 2015-11-05 | Lexmark International Technology, S.A. | System and Methods for Loading an Application and its Modules in a Client Device |
CN105204883A (zh) * | 2014-06-26 | 2015-12-30 | 优视科技有限公司 | 一种插件加载处理方法及装置 |
CN104765617A (zh) * | 2015-05-04 | 2015-07-08 | 北京奇虎科技有限公司 | 基于html5实现的流应用功能接口分发方法及系统 |
CN106155749A (zh) * | 2016-07-28 | 2016-11-23 | 浪潮(北京)电子信息产业有限公司 | 一种监控插件扩展方法及装置 |
CN106648627A (zh) * | 2016-11-30 | 2017-05-10 | 武汉斗鱼网络科技有限公司 | 将直播应用软件移植到火狐浏览器的方法及装置 |
CN107396186A (zh) * | 2017-08-11 | 2017-11-24 | 四川长虹电器股份有限公司 | Linux设备WebOS系统应用管理方法 |
CN109814943A (zh) * | 2018-12-21 | 2019-05-28 | 北京城市网邻信息技术有限公司 | 服务构建方法、加载方法及装置、电子设备、存储介质 |
CN112235639A (zh) * | 2020-08-31 | 2021-01-15 | 福州智象信息技术有限公司 | 一种易升级可扩展的Linux智能电视操作系统 |
CN112068898A (zh) * | 2020-09-01 | 2020-12-11 | 上海熙菱信息技术有限公司 | 一种可配置插件式服务集成系统及方法 |
Non-Patent Citations (2)
Title |
---|
张艳秋: ""面向服务动态更新与负载平衡调度的数据平面架构的研究"", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
郭娜;黄永平;吴学义: "基于插件的动态模块框架研究", 吉林大学学报(信息科学版) * |
Also Published As
Publication number | Publication date |
---|---|
CN113867840B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107239416B (zh) | 为智能设备提供统一抽象表示的计算机系统及实现方法 | |
CN113268319A (zh) | 基于微服务架构的业务流程定制与分布式流程调度方法 | |
CN102819452B (zh) | 一种从android系统获取数据的方法 | |
CA2511916A1 (en) | System and method of building wireless component applications | |
US7191232B2 (en) | Extendable provisioning mechanism for a service gateway | |
CN111309375B (zh) | 生成远程过程调用工具包的方法、装置、介质和电子设备 | |
CN116089036B (zh) | 多线程多模块的业务流编排处理方法、设备及存储介质 | |
CN107329809B (zh) | 一种面向多数据源的分布式事务处理方法及系统 | |
CN114579091B (zh) | 跨操作系统的机器人流程自动化系统及方法 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
US6222916B1 (en) | Method and apparatus for introducing and modifying telecommunications services | |
CN114489585A (zh) | 一种治理功能插件化的微服务开发框架及实现方法 | |
CN102426537B (zh) | Cad中外部集成进程调用主程序进程的方法及装置 | |
US20020069257A1 (en) | Provisioning mechanism for a service gateway | |
CN113867840A (zh) | 一种智能电视web native插件框架及构建方法 | |
CN113760264A (zh) | 多应用之间组件复用的方法和装置 | |
CN113064737B (zh) | 使软件通信体系结构的组件在多核处理器并行运行的方法 | |
US11924039B2 (en) | System and method for optimization of network function management and computer readable medium thereof | |
US20030088661A1 (en) | Method for constructing distributed software components | |
CN112527535B (zh) | 一种基于原生WebView扩展应用的互动方法及终端 | |
CN112953770B (zh) | 边缘云网关免配置接入的方法、系统、介质及云端管理系统 | |
CN114579206A (zh) | 动态加载应用程序的方法、装置、设备及介质 | |
CN112905273A (zh) | 一种服务调用方法和装置 | |
CN109669793A (zh) | 中间件进程内对象调用方法 | |
CN101478655A (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 |