现在的位置: 首页 > 综合 > 正文

嵌入式浏览器研究

2013年09月02日 ⁄ 综合 ⁄ 共 3985字 ⁄ 字号 评论关闭

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

browsex

Amaya

Ghostzilla

等等一些开源的浏览器引擎和浏览器可供大家开发时参考。

抱歉!评论已关闭.