《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 解決方案 > 如何將Android帶入互聯(lián)網(wǎng)數(shù)字家庭? 第三篇

如何將Android帶入互聯(lián)網(wǎng)數(shù)字家庭? 第三篇

挑戰(zhàn) 2 : 適合大屏的豐富多媒體影音體驗(yàn)
2011-08-08
作者:章立 ARM家庭軟件架構(gòu)師

在第一篇中,我們分享了數(shù)字家庭軟件平臺(tái)的發(fā)展趨勢(shì)和特點(diǎn)(http://ihrv.cn/article/index.aspx?id=133757);在第二篇中,我們歸納了將Android移植到電視、機(jī)頂盒平臺(tái)需要面對(duì)的五大技術(shù)挑戰(zhàn)并重點(diǎn)探討了挑戰(zhàn)1 : 符合電視體驗(yàn)的2D/3D圖形性能和用戶交互模式方面的挑戰(zhàn)。在本篇中,我們將一起來(lái)繼續(xù)分析其他的技術(shù)挑戰(zhàn)。

  • 挑戰(zhàn) 2 : 適合大屏的豐富多媒體影音體驗(yàn):

Android設(shè)計(jì)時(shí)是以移動(dòng)手持設(shè)備為目標(biāo)的,因此并沒(méi)有考慮作為家庭娛樂(lè)中心的電視和機(jī)頂盒的多媒體影音需求。在下述方面需要改進(jìn):

    • 更加優(yōu)化的多媒體框架;
    • 支持更多的音視頻文件格式和容器;
    • 支持更多的音視頻編解碼標(biāo)準(zhǔn);


Android的版本更新進(jìn)化過(guò)程中,Android使用過(guò)兩套多媒體框架:OpenCore和Stagefright。 在Gingerbread之前使用的是OpenCore(在Froyo中,OpenCore和Stagefright同時(shí)存在),之后Stagefright完全替換了OpenCore。相比較而言,Stagefright架構(gòu)更加簡(jiǎn)單,添加新的feature,新的parser更加容易。圖一描述了多媒體框架在Android整個(gè)軟件架構(gòu)中的位置。
 

圖一 從Froyo到Gingerbread Android多媒體架構(gòu)的變化


針對(duì)多媒體框架的修改和定制,一般我們有三個(gè)選擇: 
第一,直接在OpenCore或者Stagefright上進(jìn)行修改或者定制。這個(gè)選擇相對(duì)簡(jiǎn)單,只需要在相應(yīng)的框架上做相關(guān)的修改。缺點(diǎn)是由于Stagefright支持的文件格式和編解碼標(biāo)準(zhǔn)較少,需要一定的工作量來(lái)支持一些家庭娛樂(lè)中常見(jiàn)的多媒體格式和編碼,同時(shí)也不便于重用已有的一些成果。
第二,集成已有的成熟的開(kāi)源多媒體框架,比如Gstreamer或者FFMPEG。
這樣做的好處是可以最大程度的利用已有的資源和成果;如果是選擇集成Gstreamer的話,則有大量的Plug in可以利用。圖二表述了將Gstreamer集成到Android之后的多媒體架構(gòu)。

集成Gstreamer的Android多媒體架構(gòu)

圖二 集成Gstreamer的Android多媒體架構(gòu)


第三集成商業(yè)或者私有的多媒體框架。


ARM的合作伙伴特別是在多媒體方面有多年積累的伙伴,會(huì)希望將自己私有的多媒體架構(gòu)集成進(jìn)Android, 一方面,他們對(duì)私有架構(gòu)的性能非常自信;另一方面也可以重用自身很多已有的成果,形成差異化。另外一方面,ARM的軟件合作伙伴也提供了一些商業(yè)的多媒體框架供選擇, 比如VisualOn推出的VOME。 

在考慮過(guò)選擇何種方案定制多媒體框架后, 我們來(lái)看看作為家庭娛樂(lè)中心的電視、機(jī)頂盒對(duì)所支持的多媒體格式的需求與Android自身支持能力之間的差異。圖三到圖五分別列出了電視平臺(tái)在音視頻文件格式(容器)和編碼解碼格式的主流需求與Android 3.0原生能力之間的差異。

Android TV平臺(tái)對(duì)音視頻文件格式的需求與Android 3.0原生能力的差異

圖三 Android TV平臺(tái)對(duì)音視頻文件格式的需求與Android 3.0原生能力的差異

Android TV平臺(tái)對(duì)音頻編解碼格式的需求與Android 3.0原生能力的差異

圖四 Android TV平臺(tái)對(duì)音頻編解碼格式的需求與Android 3.0原生能力的差異

Android TV平臺(tái)對(duì)音頻編解碼格式的需求與Android 3.0原生能力的差異

圖五 Android TV平臺(tái)對(duì)音頻編解碼格式的需求與Android 3.0原生能力的差異


從上面三張圖的比較,我們可以看出Android 3.0原生支持的格式與電視平臺(tái)對(duì)媒體文件格式和編解碼格式的主流需求還有不小的差距,彌補(bǔ)這些差距正是將Android移植到互聯(lián)數(shù)字家庭必須開(kāi)展的工作。

  • 挑戰(zhàn) 3 : 集成數(shù)字電視相關(guān)功能:
    • 集成數(shù)字電視協(xié)議棧,比如DVB-T,DVB-C, ATSC等;
    • 針對(duì)數(shù)字電視功能擴(kuò)展API接口;


截至到Android 3.1, Android內(nèi)沒(méi)有集成任何數(shù)字電視協(xié)議相關(guān)的協(xié)議棧, 如DVB-C/T/S 或其他。 因此如何集成DTV/STB 相關(guān)協(xié)議棧也是Android TV/STB 開(kāi)發(fā)過(guò)程中不得不面對(duì)的問(wèn)題。由于各個(gè)國(guó)家,各個(gè)地區(qū)的數(shù)字電視標(biāo)準(zhǔn)存在較大的差異化,因此對(duì)于數(shù)字電視相關(guān)協(xié)議棧的集成需要根據(jù)實(shí)際需求開(kāi)展。一般來(lái)說(shuō),開(kāi)發(fā)Android TV / STB 的合作伙伴具備一定的數(shù)字電視/機(jī)頂盒開(kāi)發(fā)經(jīng)驗(yàn),將軟件組件集成進(jìn)去技術(shù)上難度不大,包括對(duì)CA的集成。

    圖六從架構(gòu)的角度描述了數(shù)字電視相關(guān)軟件組件的集成到Android后的情形。

                               圖六 集成了數(shù)字電視相關(guān)組件的Android架構(gòu)

 圖六 集成了數(shù)字電視相關(guān)組件的Android架構(gòu)


從上圖可以看出,除了需要集成相關(guān)的C/C++ 庫(kù)到Library這一層外;在Application Framework這一層也需要做相應(yīng)的封裝將相關(guān)的API暴露給應(yīng)用層。
關(guān)于如何實(shí)現(xiàn)和定義Android TV數(shù)字電視功能相關(guān)的API,目前各家Android TV的廠家都沒(méi)有標(biāo)準(zhǔn),這也是Android TV/ STB最大的風(fēng)險(xiǎn)和挑戰(zhàn)之一。目前在Android TV/STB中實(shí)現(xiàn)數(shù)字電視相關(guān)的API大致有兩種方式(不限于兩種):

  • Java Application + Customized Application Framework + JNI + DTV/STB Specific Libraries
  • Browser (HTML5 + JavaScript) + C/C++ DTV/STB Specific Libraries


第一種方式如圖六所示,在Application Framework這一層對(duì)一系列JNI進(jìn)行封裝,形成數(shù)字電視功能相關(guān)的Java Level的Class; 第二種方式,通過(guò)修改Webkit,讓JavaScript去call 相關(guān)的C level API從而將數(shù)字電視的功能嵌入到瀏覽器網(wǎng)頁(yè)之中。

圖七和圖八給出了第一種方式的一個(gè)示例, 包括封裝哪些類以及相應(yīng)的Data Flow的一個(gè)示例。

新增的數(shù)字電視功能相關(guān)的Java Package/Class

圖七 示例 : 新增的數(shù)字電視功能相關(guān)的Java Package/Class


示例 :新增的數(shù)字電視功能相關(guān)的Java Package/Class的數(shù)據(jù)流

圖八 示例 :新增的數(shù)字電視功能相關(guān)的Java Package/Class的數(shù)據(jù)流


  • 挑戰(zhàn) 4 : 推動(dòng)應(yīng)用開(kāi)發(fā)者開(kāi)發(fā)適合于TV的Android應(yīng)用;

Android TV/STB 能否真正取得商業(yè)的成功,極大程度上取決于Android TV Application Store能否成功。目前雖然Google Android Market上已經(jīng)有了20多萬(wàn)的應(yīng)用,但是沒(méi)有一個(gè)應(yīng)用是真正為電視量身定做的。換句話說(shuō)Android TV需要自己的應(yīng)用和應(yīng)用商店!

那么,如何推動(dòng)應(yīng)用開(kāi)發(fā)者開(kāi)發(fā)適合TV的Android應(yīng)用? 在2011年6月21號(hào)ARM在深圳舉辦的Android TV/STB 技術(shù)交流會(huì)上,來(lái)自于國(guó)內(nèi)主流的運(yùn)營(yíng)商,芯片商,電視系統(tǒng)廠商,軟件設(shè)計(jì)公司的代表就這個(gè)問(wèn)題展開(kāi)了深入的討論。其中有幾個(gè)共識(shí)一起分享一下:

第一, 需要形成相對(duì)統(tǒng)一的Android TV的API規(guī)范; 至少要有標(biāo)準(zhǔn)化的Android TV/STB SDK 或者 NDK, 包括Emulator;

第二, 需要各家電視系統(tǒng)商家,包括運(yùn)營(yíng)商能以共享的心態(tài)來(lái)推動(dòng)應(yīng)用市場(chǎng)的建設(shè);各家維護(hù)各家的應(yīng)用市場(chǎng)難以支撐Android TV的商業(yè)成功;

第三, 需要形成靈活的商業(yè)模式吸引應(yīng)用開(kāi)發(fā)者開(kāi)發(fā)Android TV的應(yīng)用;

第四, 針對(duì)TV的Android應(yīng)用要充分考慮TV和用戶交互方式的特點(diǎn), 從最簡(jiǎn)單的“上下左右確認(rèn)返回”六個(gè)鍵做起;

第五, 需要推動(dòng)Android TV相關(guān)的便利的開(kāi)發(fā)工具在應(yīng)用開(kāi)發(fā)者的使用

雖然很多共識(shí)還需要進(jìn)一步的細(xì)化,更需要落實(shí);但所有的合作伙伴都已經(jīng)意識(shí)到對(duì)于Android TV或者說(shuō)智能電視來(lái)說(shuō),應(yīng)用是王道;而要推動(dòng)應(yīng)用的發(fā)展和繁榮,必須抱著一種開(kāi)放和共享的心態(tài)!

在下一篇(最后一篇)中, 我們會(huì)繼續(xù)探討將Android帶入互聯(lián)網(wǎng)數(shù)字家庭的挑戰(zhàn)5 : 如何部署內(nèi)容保護(hù) 以及Android TV和GoogleTV的一些比較。

 

章立(Leon Zhang) 是ARM的家庭軟件架構(gòu)師 ,同時(shí)他也是ARM戰(zhàn)略軟件聯(lián)盟部門的一員. Leon 擁有多年產(chǎn)品開(kāi)發(fā)和項(xiàng)目管理經(jīng)驗(yàn), 曾經(jīng)參與了數(shù)字錄像機(jī)、機(jī)頂盒、數(shù)字電視,網(wǎng)絡(luò)電視以及智能電視(如GoogleTV)等產(chǎn)品的開(kāi)發(fā)。作為家庭軟件架構(gòu)師,他專注于下一代互聯(lián)網(wǎng)智能電視及數(shù)字家庭的軟件架構(gòu). 而作為戰(zhàn)略軟件聯(lián)盟的成員,他致力于為ARM家庭應(yīng)用市場(chǎng)的合作伙伴建立強(qiáng)大的軟件生態(tài)系統(tǒng)。 Leon 碩士畢業(yè)于同濟(jì)大學(xué)。 他的工作地點(diǎn)在中國(guó)上海.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。