简单!
全部博文(366)
分类: 嵌入式
2012-02-07 14:41:31
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、DirectFB、MiniGUI等等,使用不同的平台和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.
另外,还有WebKit、brow***、Amaya和Ghostzilla等等一些开源的浏览器引擎和浏览器可供大家开发时参考。