嵌入式浏览器研究

1 .引言

    随着3C融合时代的到来,越来越多的消费类电子产品中有浏览器应用的需求,目前,数字电视机顶盒、IPTV机顶盒、数字电视一体机和手机等等产品中很多都已支持浏览器应用。

    由于消费类电子产品本身的CPU处理能力低、内存容量受限。低功耗等一些特性,使得在PC上非常流行的IE浏览器、 Netscape 浏览器、 Firefox 浏览器等无法直接应用在消费类电子产品中,因此出现了专门针对消费类电子产品的嵌入式浏览器。

   目前,嵌入式浏览器分为两大类,一类是用在手机中,基于无线信道、支持WAP协议的嵌入式浏览器,也称作WAP浏览器,另一类就是本文我们要重点介绍的、用于数字电视类终端中的嵌入式Web浏览器。

2. 消费类电子 产品对浏览器的要求

       消费类电子产品对成本非常敏感,而且,显示屏幕、操作方式与 PC 机都有很大的不同,这就造成了 嵌入式浏览器必须满足这些特定的要求,这也是嵌入式浏览器的主要开发难点,这些要求包括:

    l        CPU的开销要低。消费类电子产品CPU 能力弱,功耗低,种类繁多,大多数RISC 架构,有些是基于专门的 DSP 核心,这些处理器的运算能力远远比不上 PC 的CPU,所以,要求浏览器一定要能在100MHz一下的主频上可以运行。

   l        内存占用要小。目前市场上常见的数字电视机顶盒配置是4M Flash,16M内存,一般来说,要求嵌入式浏览器运行期间占用内存在6M下,代码小于1M。IPTV 机顶盒的配置会相对比数字电视机顶盒高,使嵌入式浏览器发挥空间更大。

   l        消费类电子产品是以电视作为显示设备,必须考虑电视显示的特点:标准的电视显示范围为720*576,但是很多模拟电视实际显示不了这么大的范围,一般推荐的范围为640*480,这是浏览器在排版的时候必须要考虑的。另外,目前绝大部分电视还是采用阴极射线管,隔行扫描的方式来显示的,这导致线条,图像,文字在电视机上很容易出现闪烁,目前很多机 顶盒芯片已经考虑硬件抗闪烁功能,但这还不够,嵌入式浏览器必须考虑支持软件抗闪烁。  

 l        消 费类电子产品一般是通过遥控器来操作的,遥控器不可能跟键盘一样复杂。遥控器上的按钮一般包括:上下左右方向键、确认键、返回键、数字键和其他功能键。对 于使用嵌入式浏览器来说,主要通过方向键、确认键和返回键来完成。基于这个特点,要求网页中焦点不能过多,另外焦点之间的跳动必须合理。当网页超出电视显 示范围的时候,用户可以通过方向键移动,但左右移动不推荐,这要求浏览器必须把网页排版在合理的宽度内,用户可以上下方向移动察看网页内容。

3.嵌入式浏览器的技术需求

3.1应支持的网络通信协议

   首先 嵌入式浏览器对多种网络的支持是一个必不可少的要求。这样才能充分利用已有的数据资源,建立业务。嵌入式浏览器要能应用在数字电视终端中,则该浏览器必须支持相应的数字电视 数据广播协议。 我国的有线数字电视标准是以欧洲 DVB 标准为基础,在数据广播中采用以 DSMCC 中基于对象的数据轮播( OC )作为数据传输标准,因此数字电视中的嵌入式浏览器技术方案应考虑符合这一标准。

    第二,在IPTV应用中,嵌入式浏览器要做到对 HTTP 协议的完整支持,可以实现与 Internet 的互联。当然,部分浏览器也提供了对 FTP 协议支持,使机顶盒对网络 的文件传输、下载更加方便快捷。 对于敏感数据需要采用 SSL 协议,建议支持 SSL2.0/3.0

3.2 应支持的技术规范

   嵌入式浏览器应提供对 HTML的支持,这是最基本的要求,目前,一般要求支持HTML4.0及以上。

    CSS( Cascading Style Sheets 层叠样式表单 由于实现了网页内容与风格分离,因此可以很好地支持在应用层开发。对 CSS 的完整支持为业务的应用开发提供了极大便利,也成为了嵌入式浏览器基本的支撑技术。 HTML CSS 在浏览器中的运用最直接体现在电视中的界面美观性,以 EPG (电子节目指南)为例,传统 EPG 形式单一,样式一旦确定则只能更新数据,无法更改背景、颜色或字体等界面风格;运用 HTML CSS 技术则可以动态更新界面,使整个 EPG 丰富起来,增强了收视效果,并体现了数字电视个性化发展趋势。目前在嵌入式浏览器中要求支持 CSS2.0

    XML 技术对于数字电视和IPTV业务等相关领域来说比较重要,它拥有良好的扩展性、高效的数据传输能力、极佳的自我描述性。但由于业务与成本等多方面的影响,嵌入式浏览器应支持 XML 的应用,建议支持XML1.0或以上、以及DOM2( Document Object Model 文档对象模型 )。

    嵌入式浏览器需要实现对 JavaScript 的 支持。 JavaScript 作为一种脚本语言本身可以提供良好的网络交互性,还可以被用来开发一些小游戏。建议支持 Javascript1.1 或以上。

    POP & SMTP 等协议的支持,可以使浏览器实现消费电子产品收发电子邮件的功能,一般来讲这是可选实现的。  

    对图片和动画的支持也是嵌入式浏览器的一个主要方面,嵌入式浏览器一般要求提供对JPEG、GIF、BMP、PNG图片格式以及GIF动画的支持,可选支持FLASH动画。

3.3 特殊的显示技术要求

    由于嵌入式操作系统一般没有提供像 windows 系统一样丰富的图形用户接口,因此在完成同样的显示画面效果时,嵌入式浏览器必须采用自己独特的方式来实现图形显示功能。电视与 PC 显示器的本质区别决定了嵌入式浏览器的要对这些区别做 必要的改善和优化。设计浏览器时需注意对窗口的裁减、字体的选择、图层叠加、反走样以及抗闪烁等显示结构方面的优化处理。由于目前对这部分技术工作并没有相关的技术规范与测试标准出台,因此目前市场上的嵌入式浏览器产品的优化处理程度、显示效果存在明显的差异。

4.主流嵌入式浏览器的比较

    在国内消费类电子产品中的嵌入式浏览器主要分为两类,一类是自主研发的专用浏览器,另一类是购买第三方的商用嵌入式浏览器。目前,商用嵌入式浏览器主要有 ANT Software Limited的 Fresco 浏览器 、深圳茁壮公司的IPanel 浏览器、 OpenTV Device Mosaic 浏览器、 Opera的Opera 浏览器 EnReach  的 e-Browser 浏览器。在数字电视方面,创系统 在国内占有量很大,所以他们的浏览器也在很多机 顶盒上集成,目前创维浏览器还主要跟他们自己的头端配合 在兼容性方面有欠缺。新盛视公司 在的嵌入式浏览器方面也有一定的技术积累。以下我们对这些浏览器就前面提到的技术要求作一个对照比较。

5.嵌入式浏览器开发

     除了购买商用嵌入式浏览器外,也有终端厂家自行开发嵌入式浏览器用在自己的产品中。一般地讲,嵌入式浏览器的软件架构可分为传输协议层、浏览器引擎层和显示层三个部分,如下图所示。

           嵌入式浏览器的软件架构图

    传输 协议层 主要负责网络数据的接收, 通过 HTTP SSL或数字电视的数据广播协议来正确接收网络传输的数据  

    浏览器引擎层是浏览器的核心,包含了所支持的W3C技术规范的解析器 或引擎,这样的架构,使得浏览器的核心模块――浏览器引擎层与平台无关,与显示无关。可以方便地移植到不同的平台上,而核心部分不需要更改。 引擎层解析 生成带有显示信息和控制信息的中间结果 ; 同时也负责图像数据的解码以及解释执行网页中的 JavaScript 脚本.  

   显示层 : 负责显示由 引擎层 解析过的网页 , 并处理用户与页面的交互。一般地,显示层都是基于某一嵌入式GUI库的,如:Qt/E、DirectFBMiniGUI 等等,使用不同的平台和GUI库,这部分是要做移植工作的。

    可以看出, 引擎层是嵌入式浏览器开发的难点,它涉及了多个标准规范,包含了多方面的技术,开发者从头开始设计,其难度和工作量都是很大的,因此,很多都是在开源浏览器代码基础上经过裁减、优化和移植而来的,但就是这样,其难度也是不小的, 有人在通过裁减 Firefox 来实现自己的嵌入式浏览器,但最后说:这样做的难度与重新开发一款新的嵌入式浏览器没有什么区别,甚至还会出现更多问题!正是如此,目前嵌入式浏览器领域,真正自己开发做得好的并不多。

         为了便于大家开发浏览器,这里介绍几个开源的浏览器:

    Mozilla Firefox 是一个自由的,开放源码的浏览器,适用于 Windows, Linux 和 MacOS X平台,它是目前在PC上最火的一个开源浏览器,Gecko是Firefox 的浏览器引擎,开发人员可以通过对Gecko的研究和裁减,来实现自己的浏览器。

    Konqueror /embedded是符合GNU条款的自由软件。Konqueror /embedded是针对嵌入式Linux,由著名的桌面操作环境KDE下的浏览器Konqueror 派生出来的。Konqueror /embedded将Konqueror 中关于KHTML,SSL(Security Socket Layer:安全套接层 ),Javascript 等内容继承下来,同时简化了Konqueror 中很多类的定义,剔除了原来KDElib 部分,以适应在不同的嵌入式平台下能构成功移植和运行。Konqueror /embedded完整地支持HTML4(Hypertext Markup Language:超文本链接标示语言)和CSSL(Cascading Style Sheets:层叠样式表单)部分支持CSS2、JavaScript(ECMAScript  262)、cookies、SSL、IPv6.

    另外,还有WebKitbrowsex Amaya Ghostzilla 等等一些开源的浏览器引擎和浏览器可供大家开发时参考。

你可能感兴趣的:(JavaScript,浏览器,嵌入式,firefox,引擎,产品)