国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種嵌入式瀏覽器在數(shù)字電視中的應(yīng)用與研究

2012-12-31 00:00:00張娜娜劉衛(wèi)東張靜
電腦知識(shí)與技術(shù) 2012年31期

摘要:隨著嵌入式技術(shù)的深入發(fā)展和廣泛應(yīng)用,瀏覽器已經(jīng)成為嵌入式終端的核心組成部分,它除了能夠完成網(wǎng)頁(yè)瀏覽的功能,還可以通過(guò)網(wǎng)頁(yè)的形式呈現(xiàn)用戶界面(UI)。該文研究了一種嵌入式瀏覽器在數(shù)字電視UI中的應(yīng)用,首先介紹了嵌入式瀏覽器引擎及瀏覽器開(kāi)發(fā)中的關(guān)鍵技術(shù),深入研究了這種嵌入式瀏覽器的軟件系統(tǒng)架構(gòu)與嵌入式瀏覽器引擎的移植,最后介紹了移植函數(shù)接口。

關(guān)鍵詞:數(shù)字電視;嵌入式瀏覽器;瀏覽器引擎;UI界面設(shè)計(jì)

中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2012)31-7574-04

近年來(lái),數(shù)字視頻廣播在我國(guó)得到了飛速發(fā)展。中央及各地方省臺(tái)的衛(wèi)星電視節(jié)目普遍采用了數(shù)字傳輸,數(shù)字電視由于其高效、方便及技術(shù)先進(jìn)而在全球范圍內(nèi)廣泛推廣。我國(guó)規(guī)劃將在2015年全面停止播放模擬電視節(jié)目。

隨著數(shù)字電視和計(jì)算機(jī)技術(shù)的發(fā)展,嵌入式技術(shù)在越來(lái)越多的領(lǐng)域得到廣泛的應(yīng)用,瀏覽器已經(jīng)成為嵌入式終端的核心組成部分,它除了能夠完成網(wǎng)頁(yè)瀏覽的功能,還可以通過(guò)網(wǎng)頁(yè)的形式呈現(xiàn)用戶界面(UI)。本文研究了一種嵌入式瀏覽器在數(shù)字電視UI中的應(yīng)用,首先介紹了嵌入式瀏覽器引擎及瀏覽器開(kāi)發(fā)中的關(guān)鍵技術(shù),深入研究了這種嵌入式瀏覽器的軟件系統(tǒng)架構(gòu)與嵌入式瀏覽器引擎的移植,最后介紹了移植函數(shù)接口。

1 嵌入式瀏覽器

1.1 嵌入式瀏覽器概述

近來(lái),嵌人式技術(shù)成為研究熱點(diǎn),隨著人們對(duì)嵌人式系統(tǒng)的關(guān)注,嵌人式瀏覽器也浮出水面。嵌入式瀏覽器,是指能夠在資源受限的嵌入式設(shè)備上運(yùn)行的瀏覽器軟件,首先它是一個(gè)網(wǎng)絡(luò)信息瀏覽器,支持Http或者Wap等其它傳輸協(xié)議、支持Html、Javascript或擴(kuò)展XML等標(biāo)記語(yǔ)言,可以完成網(wǎng)頁(yè)的瀏覽功能;其次適合在非PC的嵌入式信息設(shè)備中存在、運(yùn)行并完整實(shí)現(xiàn)通訊傳輸協(xié)議、標(biāo)記語(yǔ)言所規(guī)定的功能,能夠根據(jù)嵌入式設(shè)備的多樣性需要而方便地進(jìn)行裁減和修改,并滿足信息設(shè)備使用者對(duì)獲取文字、圖像、聲音、視頻等信息的需求。

瀏覽器最重要或者說(shuō)核心的部分是瀏覽器引擎,也就是我們說(shuō)的瀏覽器內(nèi)核。瀏覽器引擎分為排版引擎和JS引擎,排版引擎也稱為“頁(yè)面渲染引擎”,它負(fù)責(zé)整理信息加入CSS、取得頁(yè)面內(nèi)容(HTML、XML、圖像等),計(jì)算網(wǎng)頁(yè)的顯示方式,然后輸出到顯示器。所有網(wǎng)頁(yè)瀏覽器、電子郵件客戶端以及其它需要編輯、顯示網(wǎng)絡(luò)內(nèi)容的應(yīng)用程序都需要排版引擎。JS引擎主要是解決用戶交互的問(wèn)題,主要有:捕捉事件,譬如用戶移動(dòng)鼠標(biāo),在文本框里輸入文字,點(diǎn)擊按鈕等等;響應(yīng)動(dòng)作,改變頁(yè)面的內(nèi)容及顯示方式。

1.2 主流的嵌入式瀏覽器引擎

目前主流的瀏覽器引擎主要有以下幾種:

Trident:是微軟的窗口操作系統(tǒng)(Windows)搭載的網(wǎng)頁(yè)瀏覽器——Internet Explorer的排版引擎的名稱,Trident引擎被設(shè)計(jì)成一個(gè)軟件組件(模塊),使得其它軟件開(kāi)發(fā)人員很容易的將網(wǎng)頁(yè)瀏覽的功能加到他們自行開(kāi)發(fā)的應(yīng)用程序里。它的第一個(gè)版本隨著1997年10月Internet Explorer第四版釋出,之后不斷的加入新的技術(shù)并隨著新版本的Internet Explorer釋出。

Gecko:中文名“壁虎”,是由Mozilla基金會(huì)開(kāi)發(fā)的布局引擎的名字。Gecko是套開(kāi)放原始碼的、以C++編寫的網(wǎng)頁(yè)排版引擎。Gecko的作用是讀取諸如HTML、CSS、XUL和JavaScript等的網(wǎng)頁(yè)內(nèi)容,并顯示到電腦屏幕或打印出來(lái)。這套排版引擎提供了一個(gè)豐富的程序界面以供因特網(wǎng)相關(guān)的應(yīng)用程序使用,例如網(wǎng)頁(yè)瀏覽器、HTML編輯器、客戶端/服務(wù)器等等。Gecko是跨平臺(tái)的,能在Microsoft Windows、Linux和Mac OS X等主要操作系統(tǒng)上運(yùn)行。

WebKit:是一個(gè)開(kāi)源的瀏覽器引擎,WebKit 所包含的 WebCore 排版引擎和 JSCore 引擎來(lái)自于 KDE 的 KHTML 和 KJS,當(dāng)年蘋果比較了 Gecko 和 KHTML 后,仍然選擇了后者,就因?yàn)樗鼡碛星逦脑创a結(jié)構(gòu)、極快的渲染速度。

Presto:是一個(gè)由Opera Software開(kāi)發(fā)的瀏覽器排版引擎,供Opera 7.0及以上使用。Presto取代了舊版Opera 4至6版本使用的Elektra排版引擎,包括加入動(dòng)態(tài)功能,例如網(wǎng)頁(yè)或其部分可隨著DOM及Script語(yǔ)法的事件而重新排版。

以瀏覽器引擎內(nèi)核來(lái)論,現(xiàn)在的全球?yàn)g覽器格局,基本上以IE的Trident內(nèi)核(也被稱為IE內(nèi)核)、Firefox的Gecko內(nèi)核以及Webkit三足鼎立,最晚發(fā)力的Webkit成長(zhǎng)最快。

2 嵌入式瀏覽器開(kāi)發(fā)中的關(guān)鍵技術(shù)

網(wǎng)頁(yè)布局,重新排版的技術(shù):目前的網(wǎng)頁(yè)都是基于PC的瀏覽模式而開(kāi)發(fā)的,借助于鼠標(biāo)靈活的操控性,因而頁(yè)面布局排版相對(duì)密集,由于我們是近距離瀏覽網(wǎng)頁(yè),字體樣式相對(duì)較小,并不適合直接搬移到電視機(jī)平臺(tái)上做遠(yuǎn)距離瀏覽使用,如何提取頁(yè)面中有用的信息、重新排版成適合于電視機(jī)平臺(tái)遠(yuǎn)距離觀看瀏覽,是電視機(jī)平臺(tái)瀏覽器開(kāi)發(fā)的關(guān)鍵技術(shù)之一。

先進(jìn)的遙控交互技術(shù):我們觀看電視節(jié)目一般是遠(yuǎn)距離觀看,因此數(shù)字電視瀏覽器需要遙控器的支持,而對(duì)于書(shū)房電視機(jī)或者廚房電視機(jī),觸摸操作會(huì)更方便使用。在各種情況下,結(jié)合瀏覽器的排版顯示模式,開(kāi)發(fā)出適合各種場(chǎng)景的舒適的人機(jī)交互手段,提高用戶的體驗(yàn)觀感,也將是瀏覽器開(kāi)發(fā)的一個(gè)重要技術(shù)方向。

3 一種嵌入式瀏覽器在數(shù)字電視UI中設(shè)計(jì)與實(shí)現(xiàn)

3.1 數(shù)字電視嵌入式瀏覽器軟件系統(tǒng)架構(gòu)設(shè)計(jì)

在數(shù)字電視系統(tǒng)中,各種數(shù)字電視應(yīng)用都可以基于瀏覽器進(jìn)行開(kāi)發(fā)實(shí)現(xiàn),嵌入式瀏覽器在數(shù)字電視軟件系統(tǒng)中占據(jù)越來(lái)越重要的地位。數(shù)字電視瀏覽器的研發(fā),支持基于支持Web、Java 和Macromedia Flash 技術(shù)開(kāi)發(fā)的各種數(shù)字電視業(yè)務(wù)應(yīng)用,同時(shí)以 W3C、ECMA、DVB- MHP等面向?yàn)g覽器應(yīng)用的技術(shù)協(xié)議和歐洲D(zhuǎn)VB數(shù)據(jù)廣播技術(shù)協(xié)議為基礎(chǔ),內(nèi)置DVB、DSM- CC、OC協(xié)議及DVB功能模塊,通過(guò)一系列結(jié)構(gòu)描述和參數(shù)規(guī)定,定義基于瀏覽器應(yīng)用的編程規(guī)范、傳輸和接收規(guī)范、解析與運(yùn)行規(guī)范,便于對(duì)數(shù)字電視功能模塊的開(kāi)發(fā)和對(duì)業(yè)務(wù)應(yīng)用的統(tǒng)一支持管理。按照上述原則對(duì)數(shù)字電視嵌入式瀏覽器軟件系統(tǒng)進(jìn)行設(shè)計(jì),如圖1:

底部為上層提供硬件環(huán)境,OS與驅(qū)動(dòng)程序。上層主要是一些通用協(xié)議,接口,通信機(jī)制,函數(shù)庫(kù)等。它們的主要功能為:

通信協(xié)議:主要由TCP/IP協(xié)議族及SI/PSI相關(guān)DVB協(xié)議層組成,用來(lái)與網(wǎng)絡(luò)模塊進(jìn)行交互通信。解析及排版顯示協(xié)議:主要功能是將HTML解析、JavaScript解析及CSS解析三個(gè)子模塊解析之后形成一顆完整的DOM樹(shù),然后結(jié)合各個(gè)DOM節(jié)點(diǎn)的CSS屬性從上到下計(jì)算出可顯示節(jié)點(diǎn)的寬高度及顯示位置,調(diào)用接口顯示出來(lái)。

RTP:實(shí)時(shí)傳輸協(xié)議,提供實(shí)時(shí)的端對(duì)端的服務(wù),RTP協(xié)議詳細(xì)說(shuō)明了在互聯(lián)網(wǎng)上傳遞音頻和視頻的標(biāo)準(zhǔn)數(shù)據(jù)包格式。RTSP:實(shí)時(shí)流傳輸協(xié)議,是TCP/IP協(xié)議體系中的一個(gè)應(yīng)用層協(xié)議。Socket:也稱作“套接字”,用于描述IP地址和端口,是一個(gè)通信鏈的句柄。

XML:可擴(kuò)展標(biāo)記語(yǔ)言,是一種標(biāo)記語(yǔ)言。它被設(shè)計(jì)用來(lái)傳送及攜帶數(shù)據(jù)信息,不用來(lái)表現(xiàn)或展示數(shù)據(jù),而HTML語(yǔ)言則用來(lái)表現(xiàn)數(shù)據(jù)。Glib與Glibe是庫(kù)函數(shù)。

OPENGL:圖形用戶接口,是一些C程序函數(shù)接口(API),一個(gè)跨平臺(tái)的3D圖形跟模型庫(kù);OPENGL/ES是基于OPENGL開(kāi)發(fā)的,去除多余的實(shí)現(xiàn),增加了兩個(gè)可編程著色器:頂點(diǎn)著色器和片元著色器,增加了數(shù)據(jù)的處理速度和編程的靈活性。DirectFB:輕量級(jí)的硬件圖形加速庫(kù),它集成了支持半透明的視窗系統(tǒng)以及在LinuxFramebuffer驅(qū)動(dòng)之上的多層顯示。它是以最小的資源開(kāi)銷來(lái)實(shí)現(xiàn)最高的硬件加速性能,通過(guò)軟件來(lái)實(shí)現(xiàn)為底層硬件不支持的圖形操作提供硬件抽象,主要支持2D功能。DBus:應(yīng)用程序間通信的消息總線系統(tǒng)

再上層通過(guò)中間層連接到ATV,DTV,DMP,媒體播放,3D引擎與應(yīng)用程序?qū)印?/p>

3.2 嵌入式瀏覽器引擎的移植

瀏覽器項(xiàng)目開(kāi)發(fā)的核心工作是選定合適的瀏覽器引擎,并完成瀏覽器引擎的移植工作。以項(xiàng)目需求和實(shí)施方案為依據(jù),通過(guò)對(duì)嵌入式瀏覽器相關(guān)的關(guān)鍵技術(shù)的分析和研究,得出嵌入式瀏覽器移植的系統(tǒng)結(jié)構(gòu)圖,如圖2所示。

嵌入式瀏覽器通過(guò)一些接口函數(shù)實(shí)現(xiàn)與其他模塊的通信,向下與底層驅(qū)動(dòng)模塊通信,完成基本的硬件驅(qū)動(dòng)、進(jìn)程管理、內(nèi)存管理等工作,向上與應(yīng)用層通信,并提供圖形、網(wǎng)絡(luò)、PLUG-IN等接口。其它應(yīng)用可以通過(guò)PLUG-IN接口或者直接用HTML,Javascript及其擴(kuò)展語(yǔ)言來(lái)實(shí)現(xiàn)。

在瀏覽器引擎移植工作完成之后,針對(duì)于瀏覽器引擎為系統(tǒng)平臺(tái)帶來(lái)Web App和Hybrid App兩個(gè)技術(shù)方向:

1)針對(duì)于Web App技術(shù)方向,需要開(kāi)發(fā)出獨(dú)立的通用瀏覽器程序,核心技術(shù)在于如何提高通用瀏覽器在電視機(jī)遙控系統(tǒng)中的用戶體驗(yàn)效果。

2)針對(duì)于Hybrid App技術(shù)方向,由于Web的內(nèi)容大多情況下是以Native App的附屬內(nèi)容存在,因此應(yīng)用程序的UI方面以及交互控制方面應(yīng)以本機(jī)UI系統(tǒng)及交互控制系統(tǒng)為主。

對(duì)于以上開(kāi)發(fā)內(nèi)容,將分別形成兩種不同的開(kāi)發(fā)方向:使用瀏覽器負(fù)責(zé)UI及交互控制、不使用瀏覽器負(fù)責(zé)UI及交互控制。我們這里只研究第一種情況,如圖3。

使用瀏覽器負(fù)責(zé)UI及交互控制的開(kāi)發(fā)方向,即是我們開(kāi)發(fā)的瀏覽器的思想,上層應(yīng)用程序?qū)?huì)統(tǒng)一使用HTML+CSS+JavaScript來(lái)進(jìn)行開(kāi)發(fā),其優(yōu)點(diǎn)是開(kāi)發(fā)成本低、跨平臺(tái)和終端、迭代更新容易;缺點(diǎn)是瀏覽的體驗(yàn)短期內(nèi)還無(wú)法超越原生應(yīng)用、消息推送不夠及時(shí)、調(diào)用本地文件系統(tǒng)的能力弱、不支持離線模式。對(duì)于合作開(kāi)發(fā)來(lái)講,合作思路可以依據(jù)我們選定瀏覽器引擎的情況下,由合作方完成瀏覽器開(kāi)發(fā)以及基于我們的3D引擎中間層完成UI及交互控制系統(tǒng)的開(kāi)發(fā)與集成工作。

4 瀏覽器移植主要API函數(shù)接口介紹

本文介紹的這種嵌入式瀏覽器定義了一組較為完整的、標(biāo)準(zhǔn)的應(yīng)用程序接口API,保證了應(yīng)用的互操作性和平臺(tái)無(wú)關(guān)性,使得數(shù)字電視業(yè)務(wù)應(yīng)用能獨(dú)立于硬件平臺(tái)和操作系統(tǒng),使其開(kāi)放性和移植性更強(qiáng)。

主要API函數(shù)接口介紹如下:

5 結(jié)束語(yǔ)

本文基于嵌入式瀏覽器的應(yīng)用已在數(shù)字電視上移植成功。實(shí)踐證明由嵌入式瀏覽器實(shí)現(xiàn)人機(jī)交互,使UI設(shè)計(jì)簡(jiǎn)化為網(wǎng)頁(yè)設(shè)計(jì),可以減少UI變化帶來(lái)的代碼更新。

嵌入式瀏覽器還有許多應(yīng)用空間,如電子節(jié)目指南(EPG)、視頻點(diǎn)播(VOD)和增強(qiáng)廣告、IP電話和可視電話等。根據(jù)實(shí)際需求開(kāi)發(fā)各種基于數(shù)字電視的增值交互業(yè)務(wù),開(kāi)發(fā)更多的互動(dòng)節(jié)目、游戲娛樂(lè)節(jié)目、各類針對(duì)性的咨詢節(jié)目以及服務(wù)應(yīng)用將會(huì)大大推動(dòng)數(shù)字電視的推廣與發(fā)展。

參考文獻(xiàn):

[1] 董春岳.數(shù)字電視機(jī)頂盒廣播式瀏覽器的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2010:57-70.

[2] 石功恒,陳建勛.基于Linux的嵌入式瀏覽器的研究[J].微型機(jī)與應(yīng)用,2011,30(10):95-97.

[3] 龐恒志.基于WebKit的嵌入式瀏覽器研究與移植[D].成都:電子科技大學(xué),2010:20-44.

[4] 楊超,雷航.一種數(shù)字電視機(jī)頂盒瀏覽器中間件設(shè)計(jì)[J].微計(jì)算機(jī)信息,2009,25(2-3):197-199.

[5] 周正勇,陽(yáng)富民,胡貫榮.一種嵌入式瀏覽器的核心技術(shù)及特色[J].計(jì)算機(jī)工程與設(shè)計(jì),2003,24(3):21-23.

常宁市| 盐池县| 平阴县| 衡南县| 利辛县| 白山市| 黔西| 田林县| 吉林市| 道真| 梨树县| 陇川县| 石家庄市| 中牟县| 永寿县| 呼图壁县| 太湖县| 浠水县| 深圳市| 荆门市| 高唐县| 潜江市| 淮阳县| 万盛区| 九龙县| 从化市| 扶沟县| 蒙城县| 卓资县| 加查县| 木兰县| 石河子市| 铅山县| 汉阴县| 毕节市| 迁西县| 罗田县| 景洪市| 手机| 永寿县| 崇左市|