首页> 中国专利> 基于android广电网络浏览器中间件系统构建方法

基于android广电网络浏览器中间件系统构建方法

摘要

本发明涉及一种基于android广电网络浏览器中间件系统构建方法,通过基于webkit开源浏览引擎上扩展OCN网络服务页面的私有标签,属性,对象服务类来实现,同时将网页中内嵌电视实现和VOD节目点播服务整合到webkit浏览引擎中成为一体,作为一个可以在android系统中夸平台的安装包。本发明能为电视机顶盒整合中间件系统带来极大方便,能为机顶盒制造商迅速整合发布产品提供高效率的系统订制服务。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-29

    专利权的转移 IPC(主分类):G06F9/44 登记生效日:20200511 变更前: 变更后: 申请日:20140328

    专利申请权、专利权的转移

  • 2017-02-01

    授权

    授权

  • 2014-07-30

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20140328

    实质审查的生效

  • 2014-07-02

    公开

    公开

说明书

技术领域

本发明涉及一种,特别涉及一种基于android广电网络浏览器中间件系统构建方法。

背景技术

目前广电行业的终端智能化正在逐步进行,各省份地区的运营商都纷纷出自己的智能终端机顶盒,大部分都是使用android平台,或者类似android平台来开发机顶盒。由于各省份的运营商业务有自己的独特性,各地方提供的业务服务形式都是有差异的。特别是双向网络改造后,广电网提供的业务服务也开始逐步多样化。

基于目前OCN提供的服务内容,特别是双向业务,主要包括

1、娱乐教育,包括优化学习,电视学堂,党员教育;

2、金融服务,包括证券资讯,电视银行,彩票天地,东方购物,家有购物,互动商城,特惠机票,东方俱乐部,便民付费等;

3、社区生活,包括智慧长宁,智慧闵行,邮件通知;

4、视频点播VOD服务,这个服务也是目前最受终端用户欢迎的服务。

总结上面的业务,从技术角度分析,主要是以下面的技术形式提供的,

1、HTML形式的双向网页(股票,彩票天地,智慧闵行等),大部分业务是通过此类型技术实现,金融,娱乐服务;

2、视频点播(RTSP),VOD服务,目前最受欢迎的业务;

3、内嵌DVB直播,传统DVB播放,通过机顶盒硬件芯片平台提供的数据流媒体服务。

由于机顶盒中间件双向业务主要包括gui服务和网页形式的业务服务。而开发主要精力还是投入于双向业务的网页这部分解析工作,故将这复杂的部分整合在一个整体,这样方便终端机顶盒的迅速出货。而且google目前准备将在android4.4后取消免费的自带chrome,如果使用google浏览器,需要专门收费,鉴于目前google浏览器是无法完全兼容OCN业务需求,需要专门开发。

发明内容

本发明是针对OCN业务与android机顶盒兼容的问题,提出了一种基于android广电网络浏览器中间件系统构建方法,系统可方便迅速的植入到智能终端机顶盒中,在android机顶盒上实现OCN网络头端的解析,解决OCN业务与android机顶盒兼容问题。

本发明的技术方案为:一种基于android广电网络浏览器中间件系统构建方法,具体包括如下步骤:

1)提取webkit浏览引擎,在此基础上构筑浏览引擎用户界面与浏览引擎基于android的framewor中间层,包括与浏览器上层应用的界面交互接口以及与浏览引擎webcore的信息控制接口;

2)在webkit浏览引擎基础上,构建Webcore底层接口,向上链接framework中间层,向下链接浏览引擎webcore核心库;

3)在webkit浏览引擎基础上,装载网页、过滤网页元素;

4)在装载网页结束后,在webkit浏览引擎上构建DOM树,同时构造与扩展头端服务器网页JS使用的windows对象公用函数类,使webkit浏览引擎直接和JS交互数据;

5)设计内嵌VOD播放模块;

6)在webkit浏览引擎基础上,进行增加HTML协议标签,进行私有标签扩展;

7)在webkit浏览引擎基础上,对新增加HTML协议标签进行渲染,构筑对应私有标签的元素的渲染部分;

8)设计VOD点播RSTP接口,对浏览引擎中构造的各部分接口进行统一封装并建立库;

9)将接口库和调整后的浏览引擎一起装成VOD实现的核心库。

所述步骤4)构造与扩展头端服务器网页JS使用的windows对象公用函数类,构造步骤如下:

a)DOMWindow类为浏览引擎默认类对象,在此基础上扩展类入口;

b)在DOMWindow.h 中增加public 成员CCXJShow *jshow() const;

c)在DOMWindow.cpp中实现;

d)CCXJShow.cpp主体实现以及CCXJShow.h的类对象声明于WebCore核心中,构造包括private的控制类属性对象,以及public功能实现类操作;

e)设计双向数据传送功能,重新定义网页JS的按键操作,通过接口函数获取头端服务信息;

f)将对象添加入webcore核心编译mk文件中参与webcore核心库编译。

所述步骤5)设计内嵌VOD播放模块具体包括:

A、设计JS的window类对象;

B、实现VOD播放核心库;

C、通过外部声明extern int DVMI_VodHfcPlayStart (DVMI_VOD_HFC_PLAY_INFO *tInfo);执行芯片平台的stream流解析器;

D、RTSP的协议实现,兼容服务器端的SM, VS 2种模式;初始化RTSP_DealWithCmdAckTask领命响应任务,需要开启100K的内存空间;初始化RTSP_TCP_DataRecvSMTask数据接收任务,也需要开启100K内存,如果是VS模式则创建RTSP_TCP_DataRecvVSTask数据接收任务,针对OCN网络VOD 2.0协议设计差异的ACK应答方式,播放方式。

所述步骤6)进行私有标签扩展步骤:

1)首先要增加tag和对应的HTML元素的对应关系;

2)然后在webcore下的HTML部分增加对应的HTML元素构造文件,实现HTMLTVElement.cpp以及HTMLTVElement.h 类对象的构造,HTMLTVElement对象也是WebCore域核心类的成员;

3)实现类成员的私有状态变量以及公有窗口信息接口;

4)对扩展标签属性进行定义。

本发明的有益效果在于:本发明基于android广电网络浏览器中间件系统构建方法,可在广电基础网络硬件和前端业务服务器系统作为一个不变的基础,将本发明系统植入到智能终端机顶盒内,减少机顶盒生产厂商的开发周期。这样极大的方便了开发生产环节,有利于广电行业智能化的迅速普及。

附图说明

图1为本发明基于android广电网络浏览器中间件系统构建示意图;

图2为用本发明系统调整后浏览器与传统浏览器框架对比图;

图3为本发明OCN网页window成员扩展逻辑框图;

图4为本发明浏览引擎标签扩展框图;

图5为本发明内嵌电视节目播放接口框图;

图6为本发明VOD视频点播设计框架图;

图7为本发明系统整体平移流程图。

具体实施方式

由于OCN网络头端主体是采用HTML4.0的协议来实现,增加了自己的很多私有属性,标签以及操作按键方法。在此特性基础上,依托于android上浏览引擎webkit开源的特性,将这个解析过程基于传统webkit浏览器做了优化,提炼。

如图1所示基于android广电网络浏览器中间件系统构建示意图,在传统的webkit浏览引擎上做了几块调整,补充,主要都是为了解析OCN头端网络系统方便,同时也方便后续同样工作的整体平移。由于是需要将webkit浏览引擎从智能终端平台中独立提取出来,做一个标准的可安装的应用包,因此需要将webkit浏览引擎独立出来,做一个基于webkit的自己的浏览器。就是类似在android平台上安装百度,UC浏览器一样,平台有自己的浏览器和浏览引擎,UC浏览器安装包同样保留了一套自己的。这样独立出来,可以方便智能机顶盒迅速的搭建起基于OCN业务特色的OTT服务端。

步骤具体如下:

1)构筑NDK环境的浏览引擎的framework中间层,framework中间层设计包含了2块的交互接口,与浏览器上层应用的界面交互接口以及与浏览引擎webcore的信息控制接口:

A:与浏览器上层应用接口,主要设计创建webview类在java域主体部分,设计上层应用针对网页的frame,controller的控制实现部分。同时构筑浏览器的客服端口,针对需要连接的url地址进行内容解析;

B:与浏览引擎内核webcore的信息控制接口设计,主要设计webview,webviewcore的C++域主题实现,方式主要是通过NDK的JNI接口方式,实现浏览引擎和用户中间层的交互控制。Webview类JNI接口主要实现用户对终端设备操作控制接口,比如鼠标移动点击位置响应,浏览引擎装载对应的滑动位置的页面内容装载更新;鼠标或者触摸控制页面放大,缩小比例的控制操作;触摸控制页面左右上下移动的刷新操作等功能接口控制。同时也需要构筑诸如浏览引擎需要主动通知页面用户的反方向信息控制接口,提示当前点击焦点,高亮焦点的操作;提供网页内搜索操作;提供文字输入框操作;提供浏览引擎绘制操作;提供浏览引擎自销毁接口。Webviewcore类构筑提供上层网页JS的函数服务器接口,JS卸载,装载,确认,中断服务接口;提供webviewcore层的绘制服务;提供按键事件服务接口等双向接口服务;

2)Webcore底层接口的实现,webcore底层接口是直接服务于webkit底层浏览引擎核心webcore,接口服务也是承上启下,承上是链接framework中间层;启下是链接浏览引擎webcore核心库。承上的内容同framework中间层的交互描述。针对启下设计,主要包含下面的设计部分:

A:提供内核刷新页面内容的操作接口方法,即图层绘制接口;

B:提供更新文字输入的浏览引擎接口方法;

C:提供鼠标滚动,触摸滑动位置信息提供操作;

D:提供焦点服务逻辑计算的入口接口;

E:提供装载页面的多线程cache机制服务;

F:提供构筑frame,page,dom,layout树触发构造机制接口服务;

G:提供浏览引擎的锚元素接口;

H:提供JS, CSS解析服务操作机制。

3)浏览引擎装载网页,过滤页面使用元素设计。在页面装载过程中,利用浏览引擎核心使用的页面装载cache机制。针对OCN特殊业务焦点绘制,提供JS重载服务。主要是OCN网页的焦点位置特殊性,以及由于webkit浏览引擎发展的局部完善过程,需要针对特殊的页面服务的焦点提供浏览引擎专门绘制服务。该服务通过重载JS操作来实现;

该方法具体实现逻辑,以实例说明如下

I:当webkit cache装载资源请求的时候,就是运行到CachedResourceLoader:: requestResource方法时候,进行装载文件的路径和文件名字判断,if(resourceURL=="/InfoBetPortal/js/pages/index/STB2.js");

II:如果判断这个唯一标准位成功,则让浏览引擎装载本地调整过的JS文件,urllocal=m_document->completeURL("file:///data/www/js/STB2.js");同时设置重新装载本地资源标志

needlocalstb2js=true;

III:从新装载资源操作

      if(needlocalstb2js==true)

        {

           needlocalstb2js=false;

           resource = loadResource(type, urllocal, charset, priority);

        }

4)在装载页面结束后,浏览引擎构建各种树,并提供事件管理机制。我们在构建DOM树的时候创建OCN服务网页的JS函数类服务接口。该服务也是双向控制接口的,接口功能实现了多个模块的JS控制,主要包括内嵌电视播放,内嵌VOD点播,MP3,SIP服务接口设计。同时也为将来OCN页面业务扩展提供接口预留服务。在这里我们是强调此接口扩展的功能性,扩展的方法是普通方法。

5)由于VOD接口函数也来自JS window公用类对象操作,故可以在此设计

内嵌VOD播放模块。此部分设计比较复杂,主要实现了下面几个模块,

A:设计基于V8 JS引擎的信号控制机制,主要是VOD点播时候,监听是否一致处于连接状态。

B:设计VOD点播时候控制面板JS对VOD播放控制接口。

C:通过DOM window对象类的VOD控制扩展部分,对接实际VOD实现的核心库。

D:VOD核心库的实现,包括VOD初始化,关闭的时候资源是否,VOD点播开启,暂停,播放状态控制,以及准确时间点节目播放控制等。

E:将VOD库一起整合入浏览引擎核心库。

6)构筑HTML元素私有标签,主要构筑内嵌电视播放的标签,以及内嵌VOD点播的标签。主要构筑标签主要设计实现下面三块:

A:设计标签对应的渲染部分的链接;

B:获取元素的播放的窗口位置信息,传递给渲染部分;

C:TV播放状态的初始设置,以及状态控制;

7)新增标签渲染部分设计,主要设计内嵌电视播放接口,以及接口的统一设计。主要构筑下面几个模块:

A:获取内嵌电视播放的窗口位置信息,并设置到layout布局树种;

B:绘制paint接口,开启内嵌广播电视播放接口。

C:在渲染析构的时候设计内嵌广播电视资源释放接口。

D:统一构筑内嵌广播电视接口函数库,为不同的硬件平台统一构筑浏览引擎的接口函数库,主要实现播放开启,播放停止,播放暂停,播放时音量控制,播放窗口设置,播放状态控制。将此核心库放入浏览引擎库中。

E:构筑内嵌视频播放的平台实现接口,通过在浏览引擎中初始化函数指针数组一一对应法则,将平台实现的接口转入到android平台framework层的C++域中实现,这样芯片平台通过自己的JNI接口很容易将自己的linux系统实现的芯片电视播放功能接口引入到该层中。

在构建调整中,在浏览引擎构造DOM树时候,构造头端网页JS使用的windows对象公用函数。由于头端JS直接使用window对象成员,故此只能在此部分实现。

    在浏览引擎过滤HTML元素时候,创建头端网页特有的标签。

    在浏览引擎渲染HTML元素时候,设计android系统底层播放接口,后台开启新任务来满足这个内嵌电视的播放需求。此部分为技术创新的重点,内嵌电视私有标签是最重要功能,实现采用了一体设计,既做到了技术保密,也方便了整体项目平移。

    设计VOD点播RSTP接口,满足OCN运营的视频点播功能。此部分也是设计的重点,也采用了一体化设计,兼顾了技术保密和技术整体平移。

如图2所示用本发明系统调整后浏览器与传统浏览器框架对比图,实际上通过NDK的整体开发,直接生成夸平台的android安装包,只需要将包安装在不同的android硬件平台就可以了;而不需要像传统浏览引擎开发,需要针对目标板系统进行深层次的系统开发,而且更换平台,或者android平台升级,只能考虑重新移植系统差异化代码;这样省去了极大的版本维护,移植大批量的代码移植工作,只需要直接安装一个android apk包就可以。在传统的浏览器开发基础做了提炼,特别是针对android平台频繁升级以及考虑后续android平台后续有偿提供浏览器服务,单独开发拥有自己特殊业务的浏览器成为该专利的重点。该调整同时也对智能机顶盒的生产加工做了极大的优化,生产商只管生产盒子就行,广播网的中间件可以由此浏览器中间系统 android系统的GUI来实现。这样极大的方便了开发生产环节,有利于广电行业智能化的迅速普及。

构造DOM树时候创建window成员对象,如图3所示OCN网页window成员扩展逻辑框图,此设计采用双向数据传递业务,而且基于浏览引擎设计了和JS数据交换方式,和之前传统的浏览器和JS交互数据不同,传统的交互方式是在上层增加JS的函数监听方式,传统数据交换方式只能限于浏览器java上层和JS进行交互。采用引擎直接和JS交互,更加方便了后续的开发工作,为后续在android智能机顶盒开发视频共享等功能提供了方便。

以实例说明如下,针对window类成员扩展,

1)DOMWindow类为浏览引擎默认类对象,在此基础上扩展类入口

2)在DOMWindow.h 中增加public 成员CCXJShow *jshow() const;

3)在DOMWindow.cpp中实现

4)CCXJShow.cpp主体实现以及CCXJShow.h的类对象声明于WebCore核心中,构造包括private的控制类属性对象,以及public功能实现类操作。针对功能扩展都基于此类对象的成员扩展,就是此类添加多的功能函数方法。

5)设计双向数据传送功能,比如针对特殊网页定义不同按键的操作方式接口函数,我们使用此接口来重新定义网页JS的按键操作,或者我们可以通过下面的接口函数获取头端服务信息,

NGBSystemInfo systemInfo();

双向信息传输的设计可以满足网页JS对机顶盒的功能要求,也可以方便机顶盒对服务器网页的状态,控制参数的监控。

6)将此类对象添加入webcore核心编译mk文件中参与webcore核心库编译,在webcore的android.mk中

LOCAL_SRC_FILES := 下增加

   page/ CCXJShow.cpp

此设计与传统HTML window成员扩展类似,在引擎构造DOM树时候创建该扩展接口,同时会在HTML/JS调用时候做一个确认是否创建动作,如果创建,则返回之前的统一接口,否则创建一个新的JS接口系统。

该接口系统是设计的可以扩展形式,方便后续头端服务器系统扩展,目前主要支持了下面几块接口功能。就是说后续要开发视频通讯,可以通过此公用平台接口来扩展。

VOD控制、TV播放控制、VOD播放的信号控制,这3块实际上是整合在一个统一的类对象里面,属于同一个类的不同功能成员块,此设计的目的也是属于广电行业服务器特殊的实现。主要是由于广电行业的服务都是通过HTML页面来实现,而且控制都是位于当前页面的所使用JS里面。故此需要做这个统一的功能接口调整。

针对浏览引擎标签扩展如图4所示框图,首先浏览引擎webcore初始化构造过程,后设计引擎过滤HTML标签的链接点,再进行HTML私有标签主体实现,最后进行HTML私有标签渲染和绘制。HTML标签是HTML的重要协议组成部分,比如最常用的a标签等。由于OCN服务器网页使用了许多私有标签,故此需要将标签进行扩展。同时针对标签的属性进行必要的扩展,由于android版本差异会导致使用webkit版本差异,故有扩展标签私有属性的要求,特别是针对a标签的onfocus属性。

以实例说明如下,针对HTML私有标签的扩展,以及针对HTML通用标签的属性扩展,

针对标签扩展

1)首先要增加tag和对应的HTML元素的对应关系

Source/WebCore/html/HTMLTagNames.in

tv interfaceName=HTMLTVElement

vod interfaceName=HTMLVODElement

2)然后在webcore下的HTML部分增加对应的HTML元素构造文件,实现HTMLTVElement.cpp以及HTMLTVElement.h 类对象的构造,HTMLTVElement对象也是WebCore域核心类的成员。

3)实现类成员的私有状态变量以及公有窗口信息接口等方法。

针对属性扩展,以A标签的onfocus属性为例,说明标签属性扩展方法。

1)在browser java域主进程中实现属性操作方法,不能在webview类中实现,否则会抛异常。

2)在browser主进程中设计广播触发的方法,由于只有当前页面的webview类对象才能在上层UI做合法的webview method操作,故此通过主进程设计的controller来获取当前页面的工作的webview类对象;

3)在webcore中判断当前a标签的onfocus属性存在与否进行触发;

4)执行触发函数设计,在webviewcore类对象中设计ngbintrigufocus,通过调用webview中的消息广播函数,将onfocus更新广播发送到java域。

内嵌电视节目播放接口设计,是整个浏览引擎设计的2个核心之一,另外一个设计核心是VOD视频点播。设计思路体现了简易性以及整体平移便捷性。此部分设计框图如图5所示。

以内嵌视频播放为例说明接口整体设计如下,其余功能接口类似:

1、渲染绘制引入TV播放的入口;

2、D_AV_PlayAuto和平台SDK, NgbBrowserAvPlayAuto接口设计,

3、设置ADAPTER_STB_MODULE 函数类接口的整体初始化,通过此封装将将浏览引擎的播放函数转接到芯片平台的SDK接口函数。

以VOD播放为例说明内嵌电视节目接口整体设计如下,其余功能接口类似:

1、设计JS的window类对象

2、实现VOD播放核心库

3、通过外部声明extern int DVMI_VodHfcPlayStart (DVMI_VOD_HFC_PLAY_INFO *tInfo);执行芯片平台的stream流解析器;

4、RTSP的协议实现,兼容服务器端的SM, VS 2种模式;初始化RTSP_DealWithCmdAckTask领命响应任务,需要开启100K的内存空间;初始化RTSP_TCP_DataRecvSMTask数据接收任务,也需要开启100K内存,如果是VS模式则创建RTSP_TCP_DataRecvVSTask数据接收任务。针对OCN网络VOD 2.0协议设计差异的ACK应答方式,播放方式。

简易性,为了后续各个平台统一接口,由浏览引擎主动构造双向接口类封装,其他平台只需要满足此双向接口封装即可。这个在android平台是比较容易实现。

整体平移性,浏览引擎统一封装成的DVB接口构造成单独的.so库,该库随着浏览引擎整体移动,会放入到浏览引擎的lib库中。该lib库将包含几个核心库实现或者库接口,VOD实现的核心库也会将放入此库中,当然该库也会包含浏览引擎的核心库和JS解析库。

改接口设计主要包含下面几个主要的功能:开始播放DVB;停止播放DVB;

播放DVB时候声音控制调整;重复播放;播放的窗口大小。

VOD视频点播设计,此部分是该专利发明核心功能之一,由于VOD视频点播是基于RTSP协议,而RSTP又是标准的TCP/IP协议,故此部分可以完全独立开发实现,而不依赖于第三方硬件平台或者软件平台。设计的思路也体现了简易性和整体平移便捷性。由于VOD的播放控制是通过HTML/JS直接call windows成员函数实现,故此部分设计是非常复杂的一个通信过程。VOD视频点播设计框架图6所示。

简易性,为了后续各个平台统一接口,浏览引擎直接包含构造此部分接口的封装和核心库的实现,这样可以单独维护此点播功能的的后面升级工作。

整体平移性,浏览引擎统一封装成VOD实现的核心库,并将库放入核心库中。

由于VOD播放协议同时也是由信号任务来支持的,此部分虽然为RTSP标准协议,但是操作以及的过程其实是过于复杂的。信号任务的创建以及构造和window接口函数一样,都是基于浏览引擎的frame元素来创建。此部分设计是实现这2个核心部分的关键所在。

VOD点播提供下面的服务:VOD内核初始化;VOD资源释放;VOD播放开启;VOD播放控制,比如暂停,快进,快退;VOD播放节目的指定时间点。

整体平移便捷性的开发,此部分是整个专利发明的重要部分,不但支持了便捷系统平移,同时也加强了整个设计的软件核心技术保密。但是此部分设计是浏览器开发的常用过程,没有很特别的技术门槛,这样整体设计后,可以方便系统设计的签名,对系统运行时候进行保护。设计框架流程图如图7所示,这里最主要的是NDK的双向接口开发,此部分非常耗调试时间。

提供标准接口给android GUI调用,此部分设计主要是考虑整个广电机顶盒中间件功能实现,需要在浏览引擎提供标准接口给GUI应用部分,这样方便应用在java层直接调用使用页面。这样设计极大方便了机顶盒的界面设计,中间件只需要单独考虑launcher界面就行了。此部分作为整体设计的一部分,也是实现最简单的部分。构造一个java类就可以,提供满足业务需求的网页入口函数。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号