Android TV-電視開發(fā)知識點速覽

原文鏈接:Android-Tv

本文總結(jié) Android-TV 開發(fā)過程中坏怪,常見的基礎(chǔ)知識點搀缠。主要分為TV-UI,IPTV,OTT,DVB,TVOS,DEBUG等幾大模塊展開烧颖。適用于常見盒子,電視代嗤,投影儀等TV開發(fā)棘钞。

MindMap

開局一張圖,直接上腦圖

android-tv.png

UI

Android TV 界面開發(fā)有別與傳統(tǒng)的移動手機端開發(fā)干毅,TV端的交互主要是有用戶遙控器操作完成宜猜,因而在TV上按鍵和焦點的處理顯得尤為重要,其次TV端的輸出顯示媒介主要是電視顯示屏硝逢,不同的電視所能支持的輸入顯示分辨率也不一樣姨拥,因而分辨率的適配也是TV界面開發(fā)需要考慮的一點,除此之外TV界面的設(shè)計也與手機上的小屏顯示不一樣渠鸽,由于是大屏顯示叫乌,對UI的設(shè)計需更加偏平話,便捷化徽缚。

  • 焦點 TV上焦點處理
  • 按鍵 可以了解下Android View事件分發(fā)流程憨奸,針對具體的業(yè)務(wù)進行事件分發(fā),攔截處理
  • 屏幕適配 TV上屏幕適配只需適配常見的720p 1080p 常見的幾種分辨率即可凿试。
  • 播放器 TV上播放器一般分為硬件軟件排宰,如果定制開發(fā),建議硬解那婉,其他情況可以考慮ijkplayer等
  • UI組件 TV上常見的的控件ListView GridView RecycleView TabLayout ViewPager ScorllView等

IPTV

IPTV概念的普及板甘,國內(nèi)主要靠電信,聯(lián)通吧恃,移動虾啦,廣電四大寬帶運營商麻诀。IPTV主要特點如下:

  • 基于城域網(wǎng)傳輸
  • 主要面向電視等大屏終端輸出
  • 內(nèi)容來源主要為牌照商

OTT

OTT的概率痕寓,國內(nèi)主要靠互聯(lián)網(wǎng)行業(yè)推動,類似小米/樂視電視蝇闭,盒子呻率,創(chuàng)維,康佳呻引,海信等智能電視礼仗。OTT主要特點如下:

  • 基于互聯(lián)網(wǎng)傳送
  • 除了面向電視等終端輸出外,還有手機,pad等元践,即所謂的“多屏互動”韭脊。
  • 內(nèi)容主要來源于牌照商,視頻網(wǎng)內(nèi)容(有版權(quán))+其他

DVB

DVB的概念单旁,存在時間最早沪羔,即傳統(tǒng)的廣電業(yè)務(wù)。DVB系統(tǒng)按照信號傳播的順序可以分成前端系統(tǒng)象浑,傳輸系統(tǒng)和終端系統(tǒng)蔫饰。其中前端系統(tǒng)一般位于節(jié)目生產(chǎn)部門(例如電視臺等部門),而終端系統(tǒng)一般用戶設(shè)備中(例如機頂盒)

傳輸標(biāo)準(zhǔn)

區(qū)別于傳送方式的不同愉豺,DVB的通用國際標(biāo)準(zhǔn)又可以分為以下:

DVB-S,數(shù)字衛(wèi)星電視系統(tǒng)篓吁,即通常山區(qū)里面的“戶戶通”小鍋。
DVB-T,數(shù)字地面電視廣播系統(tǒng),即通常區(qū)域電視塔發(fā)射出來的信號蚪拦,國內(nèi)標(biāo)準(zhǔn)對應(yīng)為DTMB
DVB-C,數(shù)字有線電視系統(tǒng)杖剪,即通常通過Cable線傳輸信號

分層結(jié)構(gòu)

DVB標(biāo)準(zhǔn)中描述的系統(tǒng)根據(jù)所屬的層次不同從上層到底層可以分為:音視頻編碼層,服務(wù)信息層驰贷,基帶傳輸層摘盆,信道編碼層,射頻層饱苟。對于Android開發(fā)而言孩擂,主要涉及的為服務(wù)信息層。服務(wù)信息層主要分為:

  • PSI 節(jié)目引導(dǎo)信息
  • SI 業(yè)務(wù)信息

PSI

PSI信息由節(jié)目關(guān)聯(lián)表PAT箱熬、條件接收表CAT类垦、節(jié)目映射表PMT和網(wǎng)絡(luò)信息表NIT組成,這些表會被插入到TS流中城须。 PSI信息是對單一TS流的描述蚤认,它是TS流的引導(dǎo)信息;PSI信息指定了如何從一個攜帶多個節(jié)目的傳輸流中找到指定的節(jié)目糕伐。 下面給出的是節(jié)目引導(dǎo)信息(或稱節(jié)目特定信息砰琢,PSI)的四個表結(jié)構(gòu)

  • PAT節(jié)目關(guān)聯(lián)表 將節(jié)目號碼和節(jié)目映射表PID相關(guān)聯(lián),是獲取數(shù)據(jù)的開始
  • PMT節(jié)目映射表 指定一個或多個節(jié)目的PID
  • CAT條件接收表 將一個或多個專用EMM流分別與唯一的PID相關(guān)聯(lián)
  • NIT網(wǎng)絡(luò)信息表 描述整個網(wǎng)絡(luò)良瞧,如多少個TS流陪汽、頻點和調(diào)制方式等信息

SI

PSI只提供了單個TS流的信息,使接收機能夠?qū)蝹€TS流中的不同節(jié)目進行解碼褥蚯; 但是挚冤,它不能提供多個TS流的相關(guān)業(yè)務(wù),也不能提供節(jié)目的類型赞庶、節(jié)目名稱训挡、開始時間澳骤、節(jié)目簡介等信息。 因此澜薄,DVB對PSI進行了擴展为肮,提供了其他不同類型的表,形成了SI肤京。
SI定義的表弥锄,并不需要全部傳輸, 其中蟆沫,SDT籽暇、EIT和TDT是必須傳輸?shù)模?而又以SDT和EIT最為重要,利用這2個表可以構(gòu)成功能不同的EPG饭庞, 如提供節(jié)目附加信息戒悠、節(jié)目分類、節(jié)目預(yù)定和家長分級控制等舟山。

S 業(yè)務(wù)I信息表分為以下幾類:

  • SDT業(yè)務(wù)描述表 SDT描述了業(yè)務(wù)內(nèi)容及信息绸狐,連接了NIT、EIT和PMT(PSI)
  • BAT業(yè)務(wù)群關(guān)聯(lián)表 BAT將網(wǎng)絡(luò)中所有的業(yè)務(wù)分成了多個業(yè)務(wù)群累盗,以此界定用戶寒矿。
  • EIT事件信息表 EIT按時間順序提供每一個業(yè)務(wù)所包含的事件信息
  • RST運行狀態(tài)表
  • TDT事件信息表 TDT為時間和日期表(Time&Date Table),它僅傳送UTC時間和日期信息若债。
  • TOT事件偏移表 TOT表提供了UTC時間和日期信息符相,以及和本地時間的時差
  • ST填充表
  • SIT選擇信息表
  • DIT間斷信息表

SEARCH

DVB的搜臺從用戶角度來說,一般可以分為自動搜臺蠢琳,全頻點搜臺啊终,手動搜臺。其中手動搜臺實質(zhì)是單頻點搜臺傲须,自動搜臺是檢索到ts流里面的頻點信息后蓝牲,還是回到單頻點搜臺,全頻點搜臺一般是固定了頻率的數(shù)組泰讽,依次掃描單頻點例衍。

機頂盒搜臺的實質(zhì)是從TS流中獲取并存儲每套節(jié)目的音視頻PID值和構(gòu)建出電子節(jié)目節(jié)目指南。

以下總結(jié)三種搜臺實現(xiàn)流程:

①:主頻點鎖頻->NIT獲取ServiceList ->獲取SDT
機頂盒軟件開發(fā)廠商會在機頂盒內(nèi)設(shè)定一個初始頻點(MainFrenquency).或稱主頻點,機頂盒可以根據(jù)這個主頻點的物理參數(shù),如頻點.符號率,和調(diào)制方式,去鎖定此頻點.如某機頂盒設(shè)置506MHZ作為數(shù)字節(jié)目的承載主頻點已卸,獲取NIT(Network Information Table)佛玄,NIT表由以下兩個描述:1.Cable Delivery System Descriptor,這個描述主要包含了頻點咬最,符號率翎嫡,調(diào)制參數(shù)等信息;2.ServiceList Descriptor永乌,這個描述主要包含當(dāng)前節(jié)目信息的描述惑申,通過NIT表獲取ServiceList,進而獲得SDT(Service Descriptor Table)表翅雏,獲取SDT.依靠SDT.機頂盒可以知道頻道名,頻道類型節(jié)目開始時間,節(jié)目名稱,節(jié)目長度,節(jié)目分類等信息,通過系統(tǒng)的BAT(業(yè)務(wù)群關(guān)聯(lián)表)過濾節(jié)目信息圈驼,可以構(gòu)建出EPG應(yīng)用的頻道列表.將播放節(jié)目和業(yè)務(wù)名稱關(guān)聯(lián)起來顯示于節(jié)目列表中蚌讼,最后將新的節(jié)目信息寫入E2PROM之類的非易失存儲介質(zhì)中必搞,開機自動讀取這個存儲器中的數(shù)據(jù)。E2PROM之類的非易失存儲介質(zhì)中暇藏,開機自動讀取這個存儲器中的數(shù)據(jù)橄抹。至此機頂盒的節(jié)目搜索工作算是完成靴迫。

②:主頻點鎖頻->PAT獲取->PMT獲取
機頂盒找到主頻點獲取PAT表。PAT(Program Association Table)表是不加密的楼誓。PAT是一個傳輸流所有節(jié)目的總?cè)肟邳c.每路TS流都有一個PAT和一個PMT,但是最后合成的TS流中只有一個PAT和與相對應(yīng)的總的多個PMT(Program Map Table),通過這兩個表的信息進而獲取搜取的節(jié)目信息玉锌,并將節(jié)目信息寫入寫入E2PROM之類的非易失存儲介質(zhì)中,開機自動讀取這個存儲器中的數(shù)據(jù)疟羹。

③:間隔跨頻點鎖頻->獲取頻點的節(jié)目信息主守。
全頻點搜臺方式:通過設(shè)置的最低頻點和最高頻點,機頂盒從最低頻點榄融,一般系統(tǒng)最低頻點為幾十MHz参淫,然后每增長8M,依次搜臺到最高頻點愧杯,搜所到這一頻點的節(jié)目信息涎才,便寫入某一特定的存儲空間,最后寫入E2PROM之類的非易失存儲介質(zhì)中力九,

PLAY

播放主要分為大屏播放以及畫中畫播放憔维,一直搞不懂為啥還要有畫中畫這種業(yè)務(wù)場景的需求。畫中畫一般需要雙demux支持畏邢。
dvb的播放流程與傳統(tǒng)的播放器調(diào)用有所差別业扒,一般需要底層,jni層封裝單獨的播放器接口調(diào)用舒萎。
dvb播放需傳入頻點信息程储,音視頻pid,以及音視頻類型等。

TVOS

先看下官方簡介-NGB TVOS臂寝,全稱Next Generation Broadcasting Network TVOS章鲤,是中華人民共和國國家新聞出版廣電總局科技司帶頭研發(fā)的基于Linux和安卓系統(tǒng)的一套應(yīng)用于網(wǎng)絡(luò)電視的操作系統(tǒng)。其開發(fā)者自稱“兼顧現(xiàn)有操作系統(tǒng)的技術(shù)咆贬,比如Linux败徊、安卓”,并增加信息安全模塊掏缎,加強用戶的信息安全保障皱蹦,是專門針對電視終端的操作系統(tǒng)煤杀。
根據(jù)以上描述,結(jié)合NGB相關(guān)規(guī)范沪哺,不難看出沈自,TVOS其實還是基于Android系統(tǒng)開發(fā)改造,主要是通用規(guī)范了中間層接口規(guī)范辜妓,為硬件軟件廠家集成通用接口枯途。
一套完整的TVOS系統(tǒng),基本集合了DVB+IPTV的業(yè)務(wù)功能籍滴。TVOS應(yīng)用層面基本覆蓋如下幾個方面

  • 桌面 >>>>>> 一般支持動態(tài)配置更新
  • 直播 >>>>>> 分為DVB直播(需傳統(tǒng)廣電Cable線支持)酪夷,IPTV直播(http或者udp)
  • 回看 >>>>>> 目前主要是IPTV回看,走http
  • 時移 >>>>>> 目前主要是IPTV時移孽惰,走http晚岭,也有部分rtsp
  • 點播 >>>>>> 目前主要是IPTV回看,走http灰瞻,也有部分rtsp
  • 多屏互動 >> 主要通過DLNA,AIRLPAY等集成腥例,也有部分通過局域網(wǎng)socket實現(xiàn)或者組播實現(xiàn)
  • 設(shè)置 >>>>>> 定制化設(shè)置,主要包含網(wǎng)絡(luò)設(shè)置酝润,圖像設(shè)置燎竖,系統(tǒng)設(shè)置,其他設(shè)置等
  • 本地媒體 >> 主要提供外置usb或者sdcard多媒體文件瀏覽播放要销,或者apk安裝等
  • 應(yīng)用管理 >> 主要提供本地應(yīng)用管理以及遠程應(yīng)用推薦构回,升級等
  • 系統(tǒng)升級 >> 主要提供系統(tǒng)ROM升級,分IP形式升級以及Cable形式升級
  • 消息管理 >> 主要提供前端消息下發(fā)疏咐,終端消息分發(fā)纤掸,上報等
  • 廣告管理 >> 主要提供前端廣告下發(fā),終端廣告分發(fā)等浑塞,包含IP雙向廣告借跪,以及Cable單向廣告
  • 終端管理 >> 主要提供遠程運維,遠程升級等酌壕,一般采用tr069,mqtt,xmpp等協(xié)議
  • 數(shù)據(jù)采集 >> 主要進行用戶行為分析掏愁,需終端應(yīng)用埋點集成上報數(shù)據(jù),前端進行大數(shù)據(jù)分析卵牍,一般采用mqtt,xmpp等

DEBUG

TV端的開發(fā)調(diào)試工作果港,與手機端也有些差異,TV端調(diào)試方式大致如下:

  • AndoroidStudio 調(diào)試 糊昙,可以直接debug

  • adb命令行辛掠,Linux常用命令

  • 串口工具,需拆盒子

  • Tftp 文件傳輸

  • 系統(tǒng)簽名 释牺,root ,remout等

  • stetho ,可在谷歌瀏覽器遠程查看數(shù)據(jù)庫萝衩,sp回挽,文件等信息。

  • Android-Debug-Database 欠气,瀏覽器在線插件數(shù)據(jù)庫

REF

推薦閱讀

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末厅各,一起剝皮案震驚了整個濱河市镜撩,隨后出現(xiàn)的幾起案子预柒,更是在濱河造成了極大的恐慌,老刑警劉巖袁梗,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宜鸯,死亡現(xiàn)場離奇詭異,居然都是意外死亡遮怜,警方通過查閱死者的電腦和手機淋袖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锯梁,“玉大人即碗,你說我怎么就攤上這事∧暗剩” “怎么了剥懒?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長合敦。 經(jīng)常有香客問我初橘,道長,這世上最難降的妖魔是什么充岛? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任保檐,我火速辦了婚禮,結(jié)果婚禮上崔梗,老公的妹妹穿的比我還像新娘夜只。我一直安慰自己,他們只是感情好蒜魄,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布扔亥。 她就那樣靜靜地躺著,像睡著了一般权悟。 火紅的嫁衣襯著肌膚如雪砸王。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天峦阁,我揣著相機與錄音谦铃,去河邊找鬼。 笑死榔昔,一個胖子當(dāng)著我的面吹牛驹闰,可吹牛的內(nèi)容都是我干的瘪菌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼嘹朗,長吁一口氣:“原來是場噩夢啊……” “哼师妙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起屹培,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤默穴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后褪秀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蓄诽,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年媒吗,在試婚紗的時候發(fā)現(xiàn)自己被綠了仑氛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡闸英,死狀恐怖锯岖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情甫何,我是刑警寧澤出吹,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站沛豌,受9級特大地震影響趋箩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜加派,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一叫确、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧芍锦,春花似錦竹勉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至孽水,卻和暖如春票腰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背女气。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工杏慰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓缘滥,卻偏偏與公主長得像轰胁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子朝扼,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容