基于Webkit的嵌入式浏览器的研究与实现

更新时间:2023-05-31 12:21:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于犠犲犫犽犻狋的嵌入式浏览器的研究与实现

赵经纬 周 余 王自强 都思丹

)(南京大学电子科学与工程系 南京 210093

摘 要:现有的嵌入式浏览器M,,其中有的浏览器不支持中文,有的浏览器不开放源代码,inimooeraIE,Gzilla等,p有的浏览器不支持L有的浏览器图片渲染效果差。而W具有渲染速inux平台,ebkit作为轻量级的开源浏览器引擎,占用内存少的特点。本文分析了嵌入式浏览器的相关技术和W改进了W研度快,ebkit的系统框架,ebkit相关功能,

发了基于W在N支持多窗口打开页ebkit的嵌入式浏览器。实验表明,CPhone平台上该嵌入式浏览器支持中文显示,面链接,耗费资源少,图片渲染速度快,可广泛应用于P手机等便携式网络终端。DA、关键词:W;W;浏览器;嵌入式ebkitebcore中图分类号:TP2  文献标识码:A

犚犲狊犲犪狉犮犺犪狀犱犻犿犾犲犿犲狀狋犪狋犻狅狀狅犳犲犿犫犲犱犱犲犱犫狉狅狑狊犲狉犫犪狊犲犱狅狀犠犲犫犽犻狋狆

ZhaoJinweihouYuaniianuSidan Z W DggZqg

,,)(Nanin10093NaninniversitDeartmentofElectronicScienceandEnineerinjg2pggjguy

:,,,犃犫狊狋狉犪犮狋EmbeddedbrowserssuchasMinimooeraIE,Gzillaarewidelsedinembeddedsstems.Howeversomepyuy’,’,,cantsuortChinesesomecantsuortLinuxsomehavepoorimaerenderinrarenotGPL.Webkitasappppggo,lihtweihtoensourcebrowsereninehasgoodimaerenderinndlessmemoronsumtion.Thisarticleanalsesggpgggaycpy

,theembeddedbrowserrelatedtechniuesandtheframeworkofWebkitintroducestheimrovementoftheWebkitqprelatedfunctionsandthedesinofembeddedbrowserbasedonWebkit.Italsointroduceshowtomakeitsuortgpp

Chineseandthemultiaelinktooenthewindow.ItcanbewidelsedinPDA,cellphoneandotherportablepgpyunetworkterminals.

:W;W;;犓犲狑狅狉犱狊ebkitebcorebrowserembeddedsstermy狔

0 引  言

近年来,随着嵌入式设备,尤其是移动设备的发展,嵌入式设备拥有更加强大的处理能力,使用嵌入式浏览器通过无线通信网络快速方便地实现上网功能已经成为现实,而嵌入式浏览器则是针对特定的系统设计,为用户提供网页浏览等基本操作的系统,主要应用在便携式网络终端和信息家电中,例如手机、数字电视机顶盒、PDA、IPTV机顶

]16

盒等[。其与普通P嵌入式浏览器具有体C浏览器不同,

开发的浏览器,也是开放源码项目但该浏览器的缺点是不支持表格,布局过于简单,不支持中文,浏览效果比较差。因此研发一款开放源代码、图片渲染效果好和浏览速度快并支持中文的嵌入式浏览器有着极大的应用价值。

本文分析了嵌入式浏览器的特点,深入研究了

[]0

的框架,并对核心模块功能进行了分析和研究,Webkit1

最后基于该框架结构,在NCPhone平台上实现了基于

完成了浏览网页等基本功能。Linux系统的嵌入式浏览器,

积小、对C速度快和实时性强等PU和内存的开销低、特点。

现有的嵌入式浏览器存在着一些不足,著名的开源浏

[]

览器F在P但是对于嵌入式irefox7,C上具有强大的功能,

1 嵌入式浏览器分析

嵌入式浏览器主要负责处理用户的网页请求,解析从并将其显示给用户。作为嵌入式Web服务器返回的数据,

设备上的网络信息终端,嵌入式浏览器应该支持多种网络传输协议与文件格式以实现网页的正确显示。嵌入式浏览器通常基于专用的平台,与普通的X86平台在CPU速度和内存大小上有着明显的区别,因此需要对CPU开销低,内存占用少并能提供常用的网页浏览功能,嵌入式系统中的显示设备通常是3需要嵌入式浏20×640的LCD,

设备来说其复杂的内部机制是制约其应用发展的一个关

[]

键,目前还没有成功的嵌入式应用;Minimo8不支持中文,

虽然开放源代码,但还未开发L只支持inux的版本,

;,且不开放源WindowmobileIE也只支持Windowmobile

[]

,使用G代码;而GinuxTK作为GUI平台zilla9是基于L

·135·内容版权归作者所有

4卷 第3

电子测量技术

并随HTMJavaScrit脚本,L文件一起传送到客户端浏览p

器上时,其中HTML文本中的JavaScrit将由pJavaScritCore解析执行,JavaScritCore引擎采用新的解pp释器—SuirrelFish执行JavaScrit脚本,SuirrelFish是qpq采用字节码实现,与传统的遍历语法树相比较,有着极高的效率和极小的内存开销。

)通过布局管理器L5aout对DOM树中的可视元素y排版,分配位置、高度、宽度,并由CSS规定输出的特性比如颜色字体等。再由R显示给终ender进行视觉化表达,端用户。

览器能合理的布局排版整个页面。

2犲犫犽犻狋系统分析 犠

2.1犲犫犽犻狋总体框架 犠

使用HWebkit是一款开源的网页浏览引擎,TML、

、CSSJavaScrit和DOM等标准技术来实现加载并显示窗p口中的网页内容,并拥有清晰的源码结构、极快的渲染速度。W/、/、/、ebkit目前支持HTML4.05.0CSS12DOM12、///、、JS16HTTPFILE、GIFJPEGPNG、XML、SSL3FTPSVG、RSS2.0等。其主要由布局渲染(Webcore)和avaScript引擎(JavaScriptCore)等组成,还包括Plantform与平台相关的一些功能,如图形图像,字体,Unicode,I/O,输入法等。

.2 犎狋狋狆请求流程分析

在Webkit中,主要通过Webcore和JavaScriptCore处理接收到的内容并且创建版面样式,显示文本、图片、表格单元和其他类型的内容。在Webkit中不同的目录里面定义了许多不同的数据结构实现URL请求的独立管理,一个Http请求在W

ebkit中的主要流程如下:1)用户从嵌入式浏览器界面开始输入URL地址,然后界面把URL发送到渲染进程,渲染进程再进行处理,然后把网络连接地址变成一个资源的消息,通过I

PC机制把消息发送到资源下载进程,这样就完成了把URL连接请求发送到下载进程的过程,如图1所示。

图1 U

RL连接请求2

)当消息分发到资源下载进程后,资源下载进程中的函数BeginRequest()把消息变成一个网络下载请求,创建一个下载的工作任务,完成设置定时器、启动下载任务等一系列操作。

)当资源下载进程对资源下载请求进行处理后,调用网络库相关接口开始建立TCP连接,以及HTTP数据的上传和下载操作。

4)服务器响应Http请求后,

返回给本地HTML/XHTML源数据,当获得相关数据后通过DOM把HTML

文本解析成DOM树。当用户请求的网页里面包含

·136·

3 犠

犲犫犽犻狋嵌入式浏览器设计3.1 架构设计

目前的商业化嵌入式操作系统功能完善,但使用费用高昂,使用Linux内核的嵌入式操作系统不仅功能强大,便于开发移植,而且价格低廉。针对NCPhone系统内存和CPU速度限制问题,采用Webkit作为嵌入式浏览器引擎,GTK作为GUI图形界面库开发嵌入式浏览器。Webkit封装了用户操作的接口函数,上层应用程序通过调用Webkit提供的API实现网页浏览器的各种功能,从而设计嵌入式浏览器的操作界面,如窗口、菜单、滚动条等。整个浏览器框架结构如图2所示,该架构的基础是文档对象模型DOM(DocumentObjectModel),这里文档对象模型指用来表示页面文档元素的对象树。文档对象模型把文档元素看作对象,从而使用户对Html、XML的操作转化为对对象的操作,这样可以更好地封装了对Html、XML的操作,增加了程序的模块化程度。而且文档对象树规范还提供了对ECMAScript的绑定,可以方便的用来实现JavaScr

ipt。该架构的特点是利用文档对象模型进行页面元素的管理,将各个处理过程模块化,结构清晰,有效简化了嵌入式浏览器的开发,并提供了良好的扩展性。

图2 浏览器架构

3.2 多窗口支持

由于Webkit引擎不支持在新窗口中打开页面链接,需要对Webkit引擎做改进,改进思路如图3所示。为了统一WebKitWebView对象信号类型,在Webkit中引入

GTK的信号机制通过g_signal_new定义createwebview信号,将WebKitWebView对象与createwebview信号进

内容版权归作者所有

J2

基于的嵌入式浏览器的研究与实现赵经纬等:

行绑定,当用户通过触摸屏点击链接时,启动一个Http请求时,浏览器判断此请求类型,如果是页面内链接,则通过IPC机制将资源消息直接发送到下载进程然后在当前窗口

显示网页内容;如果是页面外链接,则通过g___sinalemitg_并把Ubname触发createwebview信号,RL当作参数y

传递给W当浏览器WebKitWebView对象,ebKitWebView对象接收c浏览器新建一窗口,然reatewebview

信号后,后再通过发送H最终显ttp请求资源消息下载网页内容,示在新建的窗口中。

第3期

译移植到N运行效果如图4所示,经过各CPhone平台上,种网页浏览测试,该嵌入式浏览器能浏览网页,对网页经过解析之后可以将文字、图片、GIF动画等基本元素正确地排版显示出来,通过点击网页中的链接,可以在新窗口中打开新链接。用户也可以通过该嵌入式浏览器接受邮件

,完成网页搜索,实现主页设置、前进、后退、收藏夹保存等PC浏览器常用的基本功能。

图3 新窗口打开U

RL.3 中文支持

由于目前嵌入式浏览器只支持英文,需要对系统进行改进使其能正常显示中文,Linux下通过设定Locale来支持不同的字符集和编码从而完成国际化,常见的字符集和编码有ASCII、ISO8859、GB2312、GB18030、Unicode等。Locale是根据计算机用户所使用的语言,所在的国家及地区,以及当地的文化传统所定义的一个软件运行时的环境,鉴于Unicode涵盖的字符集最广,选择UTF8的编码。在系统中加入字体的匹配模块fontconfig

,字体光栅化引擎reetype,文本渲染库pang

o,2D矢量图形库cairo等,然后通过exportLC_ALL=zh_CN.UTF8设定Locale,使浏览器支持中文显示。

.4 实验结果

本文的试验平台是NCPhone,基于主频为400MHz的微处理器S3C2440a、两片32M16b位宽的SDRAM级联成的64M32bit位宽的SDRAM和128M的NANDLASH以及240×320触摸屏的硬件系统,此外NCPhone试验平台还支持WIFI、CDMA。

将基于Webkit的嵌入式浏览器和所依赖的库交叉编

图4 嵌入式浏览器界面

该嵌入式浏览器CPU主频为400MHz、内存为64M的NCPhone平台上运行时,测试该浏览器浏览不同网站的CPU和内存使用情况,

如表1所示。表1 犆

犘犝和内存使用网站百度网易新浪南京大学CPU(%)

12%15%17%13%MEMORY(%)

28%

30%

29%

29%

.5 性能分析

由于该嵌入式浏览器采用Linux内核和改进的

Webkit引擎,从实验结果数据和浏览不同类型的网站效果可以得出,基于Webkit的嵌入式浏览器与其他嵌入式浏

览器相比,具有耗费资源少、支持中文显示、支持多窗口打开页面链接、图片渲染速度快的特点,并能支持更多的协议与格式,包括HTML4.0/5.0、CSS1/2、DOM1/2、JS16、HTTP/FILE、GIF/JPEG/PNG、XML等。

 结  论

本文分析了嵌入式浏览器的相关技术和Webkit系统框架,并对Webkit引擎作了相应的改进。通过实验表明,

内容版权归作者所有

·137·3f3F34

4卷 第3

电子测量技术

[]/://8inimo.mozillaminimo[EBOL].httswiki. Mp

/mozilla.orMobile.g[/]/[]:///zilla.zilla.EBOLhttzilla.9www.levien.com Ggpg

/[]ebkit.TheWebKitOenProects[EBOL].10 Wpj

:///httwebkit.or.pg

参考文献

作者简介

基于W支持中文显示、ebkit的嵌入式浏览器耗费资源少、支持多窗口打开页面链接,另外还可以实现编辑邮件,网上搜索等功能。该嵌入式浏览器可以广泛地应用于多种场合,比如P手机等便携式网络终端中,有着极大的应DA、用前景。

[]步丰林.嵌入式浏览器中J1avaScrit和Dom的 周林,p

支持[]计算机工程,,():J.20043012114117.[]基于L2inux的嵌入式浏览器的设计及实现 张申亚.[]信阳师范学院学报,,():J.2007104499514.[]张俊,顾亚平,等.一种作用在数字机顶盒中3 吕艳华,

的嵌入式浏览器设计[]仪器仪表学报,):J.2006(S320442546.

[]曾欢,张志华.基于S4mbianOS的S60OSS 路佳栋,y

]中国科技论文在线,Web浏览器的研究[J.2007

():04810.

[]张连芳,李广成.嵌入式浏览器的设计开发[]5J. 袁明,

微型机与应用,():200345659.[]都思丹,王自强,等.应用处理器P6XA255上的 周余,嵌入式L]计算机应用,):inux系统开发[J.2004(5

158160.

[]/://7ozilla.Firefox[EBOL].httwww.mozilla. Mp

/or.cn.g

赵经纬,男,硕士研1984年2月出生,主要研究方向为嵌入式系统、究生,Linux操作系统。

:mail.comEmail2008zhw@gj

周余,男,博士,讲师,主要研究方向为嵌入式系统、Linux操作系统。

:mail.comEmailnackzhou@g

王自强,男,博士,副教授,主要研究方向为嵌入式系统、Linux操作系统。

:Emailzwanlxmail.com@gqg都思丹,女,教授,博士生导师,主要研究方向为图像信号与信息处理、Linux操作系统。:Emaildsdese.nu.edu.cn@j

櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒櫒

(上接第131页)

参考文献

[]模糊自整定P1ID温控系统的仿真研究及设 王春霞.

计[长春:东北师范大学,:D].20053539.[]赵国树.模糊P2ID控制算法在恒速升温系统 周黎英,中的应用[]仪器仪表学报,,():J.2008292405409.[]李鸣.模糊P3ID控制在过程控制装置上的应 杨大勇,用[]微计算机信息,,():J.2007231012021.[]孙玉坤.生物发酵过程温度模糊P4ID控制系 李文娟,统的研究[]微计算机信息,,():J.200824314345.[]李元科.电阻炉温度控制系统[]传感器技术,5J. 孙凯,

,():20032225052.[]潘海鹏.电阻炉智能温度控制系统的设计与仿6 邢伟,真研究[]浙江理工大学学报,,():J.2008255806.[]周露,李东江,等.7MATLAB模糊逻辑工具箱 闻新,

的分析与应用[北京:科学出版社,:M].2001

112129.

[]模糊控制技术[北京:中国电力出版社,8M]. 廉小亲.

:2003105162.

作者简介

闫向勇,男,汉族,内蒙1979年出生,古工业大学信息工程学院06级硕士研究生,主要研究方向为嵌入式系统。:Emailanxianon004sina.com@ygyg

董志学,男,汉族,副教授,内蒙古工业大1963年出生,学硕士研究生导师,主要从事嵌入式系统教学与科研工作。

·138·

内容版权归作者所有

本文来源:https://www.bwwdw.com/article/aiu4.html

Top