《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > 如何將Android帶入互聯網數字家庭? 第二篇

如何將Android帶入互聯網數字家庭? 第二篇

挑戰1 : 符合電視體驗的2D/3D圖形性能和用戶交互模式方面的挑戰
2011-08-07
作者:章立 ARM的家庭軟件架構師

    在上一篇中,我們探討了數字/機頂盒軟件架構的現狀與未來,分享了數字家庭軟件平臺未來的發展趨勢和特點(http://www.viuna.cn/article/index.aspx?id=133757)。在本篇中,我們將一起來探討為什么Android能夠成為未來數字家庭軟件平臺的選擇之一;而我們又如何才能將原本為手持設備量身定做的Android移植到電視/機頂盒平臺?


1. 首先,我們需要回答的第一個問題就是: Why Android?
為什么
Android能夠成為未來數字家庭軟件平臺的有力競爭者?
先來看看Android自身的天然的優勢:

  • Android 是一套完整的消費電子設備的軟件解決方案,它包括:
    • Linux 內核;
    • 完整的中間件,包括2D/3D圖形,多媒體框架,WebKit,Dalvik虛擬機等等;
    • 健壯的可以重用的應用程序框架以及便利實用SDK/NDK開發工具。
  • Android是個開源項目:
    • 可以自由的定制和移植;(有碎片化的風險,本文不做討論)
    • Android基于Apache2.0 license,方便用于商業用途。
  • Android的生態系統已經建立:
    • Google Market上已經有了超過20萬的Android應用
    • 每天有超過40萬個Android設備被激活
  • Android中集中了大量ARM架構的優化,在ARM上Android可以獲得倍增的性能和用戶體驗。
    除了這些優勢,Android移植到電視/機頂盒平臺,劣勢也很明顯:
  • 沒有TV/STB相關的API,造成Android TV/STB的應用程序框架的非標準化。
  • Android不是為TV/STB設計的,需要做大量的定制,移植和優化工作。
  • Google完全控制Android,包括新的性能,架構和應用程序框架的變化,路線圖等等。 這對于定制和移植Android的廠商有一定的風險。
  • Google官方的GoogleTV 對于AndroidTV的影響:
    開發
    AndroidTV的合作伙伴需要謹慎的考慮GoogleTV對
    AndroidTV的影響:
    • 如何兼容GoogleTV?
    • GoogleTV開源后,如何快速高效的merge到GoogleTV?
    • 是否可以重用GoogleTV的生態系統?

這些都是需要考慮的問題同時也是風險所在。由于成為GoogleTV Leading Partner有很高門檻,同時GoogleTV開源的時間仍然很難確認,對于希望開發Android TV/STB的合作伙伴,我們建議在軟件架構設計和定制時,考慮到未來兼容GoogleTV的可能性;因為有很多定制和移植工作,即便在GoogleTV開源后,仍然是需要的。

圖一描述了Google已經發布的針對的不同的目標設備的Android版本。
 


圖一 Google發布的針對不同設備的Android版本



從圖一我們可以看出GoogleTV是以Android為基礎的一個分支;根據Google最新的路線圖,未來的Android主線會演化成適用于手機,平板和電視三類設備。

2. 那么, 如何才能將
Android移植到電視或機頂盒平臺呢?要說清楚這個問題, 首先我們必須明確將Android移植到電視或機頂盒平臺上需要面對哪些挑戰?

  • 挑戰1 :電視用戶對于用戶界面,圖形的性能以及用戶交互模式有完全不同于手機用戶的體驗。這包括:
    • TV的分辨率要求至少720p/1080p以及大于30fps的幀率;
    • TV的OSD要求32位的色彩深度;而android默認的是16bit;
    • TV的用戶界面,包括界面上內容的組織方式不同于手機;
    • TV用戶使用遙控器而不是觸摸屏;
    • TV因為是大屏設備,對2D/3D圖形的性能有更高的要求,需要硬件加速。
  • 挑戰 2 : 適合于大屏的豐富的多媒體影音體驗:
    • 更加優化的多媒體框架;
    • 支持更多的音視頻文件格式和容器;
    • 支持更多的音視頻編解碼標準;
  • 挑戰 3 : 集成DTV/STB功能:集成數字電視協議棧,
    • 比如DVB-T,DVB-C, ATSC等;
    • 針對數字電視功能擴展API接口;
  • 挑戰 4 : 推動應用開發者開發適合于TV的Android應用;
  • 挑戰 5 : 內容保護
    • 如何部署CA?
    • 如何部署DRM?

接下來我們將來討論如何應對這五大挑戰。由于篇幅關系,本篇將重點討論挑戰1。 在第三篇和第四篇中,我們會依次對其他挑戰展開討論。

首先我們將挑戰1中面臨的問題分為兩類:

第一類:圖形圖像顯示相關的問題: 
 

    • TV的分辨率要求至少720p/1080p以及大于30fps的幀率;
    • TV的OSD要求32位的色彩深度;而android默認的是16bit;
    • TV因為是大屏設備,對2D/3D圖形的性能有更高的要求,需要硬件加速

針對上述問題,需要至少對下列模塊進行修改或集成,如圖二所示: 
 


圖二 應對挑戰1的第一類問題需要涉及的模塊



第二類: 用戶交互模式相關的問題: 
 

    • TV的用戶界面,包括界面上內容的組織方式不同于手機;
    • TV用戶使用遙控器而不是觸摸屏;

針對這類問題,需要對Android中的下列模塊進行修改,具體請參見圖三:
 


圖三 應對挑戰1的第二類問題需要涉及的模塊



3. 2D和3D圖形的性能是Android TV整體性能的關鍵點;在Android中,我們可以通過優化Skia和SurfaceFlinger來加速2D性能。

  • 如何優化Skia來加速Full HD的2D體驗?
    • 重用Skia中大量的Neon優化;或者用Neon進行進一步優化;
    • 利用GPU(OpenGL ES/OpenVG/…)來做Skia的后端在
    • Image Decoder中嵌入硬件decoder。



圖四說明了上述優化可能發生在Skia架構中的哪些模塊?
 


圖四 Skia優化可能涉及的模塊


 

  • 如何通過優化SurfaceFlinger加速2D?
    • Android1.6(Donut)之前(包含Donut)的版本,需要實現“copybit”的HAL來實現2D硬件加速。
    • Android1.6以后的版本,將“Copybit”封裝進了OpenGL ES;通過硬件實現的OpenGL ES 2D API來實現硬件加速。
  • Android3.0(Honeycomb)在2D上增加了新的功能,包括:
    • 通過在AndroidManifest.xml中設置
<android:hardwareAccelerated=“true”>來啟動硬件加速2D;
    • 應用開發者可以控制硬件加速的作用域,是全局的還是某個Activity或者某個View
    • 通過運用GPU可以帶來更加流暢的用戶體驗

在下篇中, 我們將繼續探討如何將Android移植到電視/機頂盒平臺; 同時也會重點介紹GoogleTV以及GoogleTV與AndroidTV之間的對比。

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 日韩一区二区三区四区不卡 | 欧美一级级a在线观看 | 国产全黄a一级毛片 | 亚洲成a人片在线观看中文!!! | 国产97色在线 | 亚洲 | 一级毛片ab片高清毛片 | 亚洲高清一区二区三区久久 | 免费成年人视频在线观看 | 手机看片日韩国产 | 久久九九色 | 男人看片资源 | 国产 欧美 日韩在线 | 人人艹人人插 | 性欧美巨大的视频 | 欧美国产亚洲精品a第一页 欧美国产在线观看 | 欧美精品一区二区三区免费播放 | 精品精品国产理论在线观看 | 欧美一欧美一区二三区性 | 精品在线播放 | 免费在线色 | 色列里番h本全彩无遮挡影片 | 国产亚洲欧美日本一二三本道 | 天天爱添天天爱添天天爱添 | 最新日韩伦理片免费 | 欧洲精品不卡1卡2卡三卡四卡 | 黄网站在线免费 | 高清欧美一区二区免费影视 | 欧美一级xxx | 美国一级片网站 | 欧美午夜视频一区二区三区 | 大尺度激烈叫床视频免费 | 99热99re8国产在线播放 | 欧美人与禽杂交大片 | 中文字幕日韩精品一区口 | 狠狠天天| 在线天堂中文在线资源网 | 欧美一区视频在线 | 一级片黄色免费 | 日本不卡视频在线观看 | 国产综合影院 | 国产欧美激情一区二区三区-老狼 |