一種在低端設備上瀏覽cml文件的方法
2023-10-05 02:04:39
專利名稱:一種在低端設備上瀏覽cml文件的方法
技術領域:
本發明涉及CMMB (中國移動多媒體廣播)多媒體廣播領域,尤其涉及一種在低端設備上瀏覽CML文件的方法。
背景技術:
現有技術中通常使用網際網路瀏覽器作為瀏覽器基礎,如IE,WebKit瀏覽器等,這種瀏覽器支持功能強大,可以支持JavaScript,但缺點在於極其笨重,程序包最少都有IOM以上,更不用說對RAM和CPU的佔用,同時由於複雜度極高,這種瀏覽器也基本上不可能被移植到低端設備上。事實上,由於CMMB信道的特點,CMMB實際業務中也不會發送像網際網路那樣動輒數十M的網頁資源,另外,CMMB是單向網絡,因此網際網路瀏覽器的很多強大功能根本無從發揮。所以CMMB業務非常需要一種符合自身信道和業務特點的輕量瀏覽器。CML :英文名稱為CMMB Markup Language,是CMMB可擴展描述語言。CML是一種基於XML的可擴展描述語言,它以網際網路技術標準HTML/CSS/JavaScript為基礎,作為富媒體的傳輸和顯示技術標準。CML包括三個核心部分XHTML-CP、C-CSS、ECMAScript-CMMB,實際上這個規範與移動網際網路的技術標準HTML、CSS、JavaScript分別只有非常小的差異,可以將其理解為HTML技術在CMMB的一個分支。在多媒體廣播領域中,CML語言規範描述和約定了中國移動多媒體廣播(China Mobile Multimedia Broadcast)數據業務的描述方法,該方法既可以用來構建基於網頁技術的各種數據業務服務,包括各種普通的信息查詢類業務,也可以用於構建業務導航框架;同時,規範對如何在終端設備上將數據業務與其他CMMB應用進行集成的方法做了描述和約定。圖I是現有技術中CML解決方案的示意圖;如圖所示,CMMB伺服器通過CML協議傳輸數據業務到CMMB終端,CMMB終端瀏覽器根據CML協議對數據業務進行CML解析,並基於WebKi t進行顯示。CMMB採用HTML技術做為終端富媒體技術的原因主要是可以適配不同種類的終端和屏幕類型,但這在實際應用中有幾個主要問題多種中低端設備無法運行CML所需的WebKit環境,即使能運行,運行效率又差異 很大,難以保證用戶體驗。CML的動態排版能力被過高的估計了,在實際應用中,多種屏幕下還是需要後臺數據製作為不同屏幕設計不同的網頁分別適配,而並不是像原先設想的可以一種頁面自動適配所有終端類型。由於CMMB是單向通道,CML的互動能力在沒有上行通道的情況下意義不大,實際上大多終端需要的只是靜態圖文瀏覽,CML的強大AJAX能力無從發揮,白白浪費了終端資源。
發明內容
鑑於現有技術存在的問題,本發明提供一種瀏覽CML文件的方法,其特徵在於包括如下步驟步驟一、在伺服器端預先通過WebKit渲染引擎將CML網頁標籤內容針對不同類型終端設備的解析度生成不同的靜態排版位置,並再次寫入頁面中生成針對不同類型終端設備的分辯率的網頁;步驟二、通過CMMB通道下發步驟一所生成的針對不同類型終端設備的分辯率的網頁到相應類型的終端設備;步驟三、終端設備根據網頁中的靜態排版位置對網頁中圖文進行渲染顯示。進一步,本發明所述的瀏覽CML文件的方法,其特徵在於所述步驟一中通過javasrcipt在CML網頁中搜索包含文本和圖片的div DOM節點來獲得文本塊和圖片塊的位置,並將位置信息以約定的形式寫入針對不同類型終端設備的分辯率的頁面內的DIV標 籤。進一步,本發明所述的瀏覽CML文件的方法,其特徵在於所述步驟一還包括根據終端設備類型的不同將引用的圖片轉換成單一圖片格式,並採用圖像處理技術抖動(Dither)進行處理,保持色彩效果。進一步,本發明所述的瀏覽CML文件的方法,其特徵在於所述步驟一和步驟二之間還包括在通過CMMB發布前利用人工對所產生的針對不同類型終端設備分辯率的網頁顯示效果進行校對,查看是否與原始的CML顯示效果基本一致。本發明在後臺將CML通過預先渲染的方法,從中提取CML內容中關鍵的圖文混排的位置信息,將其轉換為針對特定設備(屏幕)靜態圖文混排描述文件,將其通過服務端發布,圖文信息已經得到固化,因此終端的解析和渲染都非常簡單,大大簡化了終端瀏覽富文本內容的技術結構,使得資源開銷大幅降低,更可以為不同的終端類型進行定製。
圖I是現有技術中CML解決方案的示意圖;圖2是本發明所述在低端設備上瀏覽CML文件的方案的示意圖。
具體實施例方式為使本發明的上述目的、特徵和優點更加明顯易懂,下面結合附圖和具體實施方式
對本發明作進一步詳細的說明。由於傳統CML瀏覽器需要在終端側進行CML解析,而該解析過程佔用了終端比較多的資源,因此,本發明採用了設計了一種自定義的輕量的終端富媒體技術規範MiniCML,其在後臺(伺服器端)預先通過工具將CML針對不同類型的終端分別處理成不同的MiniCML包,進行下發。而終端只需要一個非常小的解析渲染引擎就可以完成MiniCML的瀏覽。使用這套方案,後臺可以根據終端類型的硬體能力將MiniCML中的圖片資源進行處理,以得到最大化的優化。MiniCML的設計目標是設計一套以XML為基礎的行動裝置圖文混排描述語言,只要能滿足圖文的靜態排版功能即可。本發明之所以能夠支持低端設備關鍵在於在後臺將CML轉成一種自定義格式(即MiniCML),並以這種格式進行發布應用的過程,並且這個過程針對於每種設備類型都是獨立進行的。MiniCML是應用和設備相關的,這與CML獨立於應用和設備完全不同。這種專一性使得相對於CML的通用性在性能和資源開銷上有很大的優勢。這種專一性使得MiniCML不用考慮同一個頁面去適配不同解析度的終端屏幕(這需要使用複雜的動態排版技術),而MiniCML只需要靜態的排版(因為在生成MiniCML時已經將靜態排版位置生成並寫入頁面中)。MiniCML並無意設計為一種標準化的類似CML的標籤語言,只是根據應用的需要借用CML的一些基礎標籤和語法規則,根據應用不同會有一些變化。以下列出MiniCML的一些核心標籤,另會根據應用不同可能增加一些其他CML標籤。MiniCML核心功能標籤靜態排版信息被寫入到了 DIV的style屬性中(如下)分區DIV標籤(與HTML DIV類同,構造整個版面的大矩形塊)
範例〈DIVstyle =』 x = 100 ;y = 50 ;width = 300 ;height = 300 ;,〉textcontent (/DIV)通過style進行定位段落P標籤(與HTML P相同)範例〈P〉text content〈/P〉文字塊SPAN標籤(與HTML SPAN相同)範例〈SPAN〉textcontent (/SPAN) 換行BR標籤(與HTML BR相同)範例(BR/)圖片MG標籤(與HTML IMG相同)範例〈IMGsrc = " tt. png " style =,x = 100 ;y = 50 height =" 20" /〉在指定位置插入圖片通過style 中的 x, y, width, height 進行定位連結A標籤((與HTML A相同))範例〈Ahref = " value")圖2是本發明所述在低端設備上瀏覽CML文件的方案的示意圖。如圖所示,本發明所述在低端設備上瀏覽CML文件的系統包括如下模塊MiniCML轉換模塊,用於在伺服器端預先通過WebKit渲染引擎將CML網頁標籤內容針對不同類型終端設備的解析度生成不同的靜態排版位置,並再次寫入頁面中生成針對不同類型終端設備的分辯率的網頁;在伺服器端將CML內容轉換為MiniCML (MiniCML為一種靜態圖文混排描述方式,具體標籤上面有描述)。的圖文混排方式的具體的步驟以下面的CML/HTML為例進行說明(html) (body) (div) (div) Test Page (/div) (imgsrc = 『test, png,/〉〈/div) (/body) (/html)首先MiniCML轉換模塊根據最終目標設備的解析度將CML通過WebKit (WebKit為已知技術,在此不詳細闡述)渲染引擎(目前的ChiOme,iPhone,Android瀏覽器都是基於WebKit開源內核)進行渲染Layout。;經過渲染後,CML(HTML)中的基本圖文要素(主要指葉子級別的DIV,P,IMG等要素)的排版位置即確定,即可提取葉子級別的圖文要素,轉換為MiniCML的對應標籤(基本上葉子級別的圖文要素在MiniCML中有對應,沒有對應無法轉換的可拋棄)。即生成MiniCML 文件。實際轉換時,可以將CML/HTML傳給一個PC上運行的WebKit瀏覽器,這個瀏覽器的頁面輸出尺寸被設定為MiniCML將要適配的終端解析度。WebKit在加載完HTML後,文本和圖片的最終排版位置就可以通過Javascript腳本的方式從WebKit中獲取(此為通用技術不闡述),通過javas cipt搜索包含文本和圖片的div DOM節點,來獲得文本塊和圖片塊的位置,並將位置以MiniCML約定的style形式寫入DIV標籤中,例如以上例子獲得〈div〉Test Page (/div)的輸出位置為x = 100, y = 200,width = 20, height = 20.則輸出的 MiniCML 為(div style =,x = 100 ;y = 200 ;width=20 ;height = 20 ; 』 /〉最終輸出的範例(html) (body)〈div,x = 100 ;y = 200 ;width = 20 ;height = 20 ;,〉TestPage(/div)〈div』x = 100 ;y = 300 ;width = 20 ;height = 20 ; 』〉(img src = 『test, png』/〉(/div) (/body)〈/html〉輸出最終只包含文本和圖片節點的DIV節點。其他的DIV節點都被略去。此外,本發明還對引用的圖片資源進行處理。具體來說,根據目標設備要求,將資源轉換成在終端使用佔用資源小的圖片格式(如256色png),另外,由於在轉換為MiniCML時就把CML中的各種圖片格式都轉換為單一格式如256色PNG,這樣可以使得終端引擎可以不必加載多個圖像支持模塊,大大減少資源佔用。真彩圖片在轉換為256色時,出現色彩失真,因此採用圖像處理裡通用的技術抖動(Dither)進行處理,保持色彩效果。此外,由於是後臺處理,因此可以在通過CMMB發布前利用人工對MiniCML的顯示效果進行校對。查看是否與原始的CML顯示效果基本一致。轉換處理完畢之後,通過CMMB通道將所生成的針對不同類型終端設備的分辯率的網頁下發到相應類型的終端設備;終端設備接收到相應網頁內容之後,根據網頁中的靜態排版位置對網頁中圖文進行渲染顯示。具體來說,終端設備通過MiniCML瀏覽模塊進行渲染顯示,改瀏覽模塊包含了MiniCML解析子模塊、MiniCML渲染子模塊和MiniCML頁面控制子模塊。MiniCML解析子模塊用於在XML解析的基礎上,將XML解析生成的XML DOM節點轉化為下一步渲染可識別的渲染對象,例如,標籤為DIV的DOM節點轉化為類名為XXDIV的對象。對應於XML解析生成的DOM節點樹,渲染對象組成了一棵同樣結構的渲染對象樹。解析步驟的作用在於將XML轉換為下一步可識別的中間結果數據結構。 例如對於上面提到的那個CML例子
權利要求
1.一種瀏覽CML文件的方法,其特徵在於包括如下步驟 步驟一、在伺服器端預先通過WebKit渲染引擎將CML網頁標籤內容針對不同類型終端設備的解析度生成不同的靜態排版位置,並再次寫入頁面中生成針對不同類型終端設備的分辯率的網頁; 步驟二、通過CMMB通道下發步驟一所生成的針對不同類型終端設備的分辯率的網頁到相應類型的終端設備; 步驟三、終端設備根據網頁中的靜態排版位置對網頁中圖文進行渲染顯示。
2.根據權利要求I所述的瀏覽CML文件的方法,其特徵在於所述步驟一中通過javasrcipt在CML網頁中搜索包含文本和圖片的div DOM節點來獲得文本塊和圖片塊的位置,並將位置信息以約定的形式寫入針對不同類型終端設備的分辯率的頁面內的DIV標籤。
3.根據權利要求I所述的瀏覽CML文件的方法,其特徵在於所述步驟一還包括根據終端設備類型的不同將引用的圖片轉換成單一圖片格式,並採用圖像處理技術抖動(Dither)進行處理,保持色彩效果。
4.根據權利要求I所述的瀏覽CML文件的方法,其特徵在於所述步驟一和步驟二之間還包括在通過CMMB發布前利用人工對所產生的針對不同類型終端設備分辯率的網頁顯示效果進行校對,查看是否與原始的CML顯示效果基本一致。
全文摘要
一種在低端設備上瀏覽CML文件的方法,其特徵在於包括如下步驟步驟一、在伺服器端預先通過WebKit渲染引擎將CML網頁標籤內容針對不同類型終端設備的解析度生成不同的靜態排版位置,並再次寫入頁面中生成針對不同類型終端設備的分辯率的網頁;步驟二、通過CMMB通道下發步驟一所生成的針對不同類型終端設備的分辯率的網頁到相應類型的終端設備;步驟三、終端設備根據網頁中的靜態排版位置對網頁中圖文進行渲染顯示。本發明終端設備解析和渲染都非常簡單,大大簡化了終端瀏覽富文本內容的技術結構,使得資源開銷大幅降低。
文檔編號G06F17/30GK102831190SQ201210273729
公開日2012年12月19日 申請日期2012年8月3日 優先權日2012年8月3日
發明者許林 申請人:北京中廣睛彩導航科技有限公司