iHeartRadio是一家總部位于紐約市的公司,該公司在一個(gè)應(yīng)用中提供無限量的音樂和成千上萬的電臺(tái)。該公司的業(yè)務(wù)包括無線電廣播、線上服務(wù)、移動(dòng)、數(shù)字和社交媒體、現(xiàn)場(chǎng)音樂會(huì)和活動(dòng)、整合、音樂研究服務(wù)和獨(dú)立媒體代理。
自2008年推出以來,該應(yīng)用的全球下載量已超過了10億次。不過,到2017年底,該應(yīng)用的代碼庫已經(jīng)現(xiàn)出老化態(tài)勢(shì),并且在管理代碼和集成新功能方面也變得捉襟見肘。
策略
iHeartRadio在開始升級(jí)代碼時(shí)選擇了Android架構(gòu)組件。簡(jiǎn)單易用的Room持久性庫可以處理異步查詢等任務(wù)并支持RxJava(iHeartRadio在其代碼中廣泛使用此功能),因而得到了iHeartRadio工程師的青睞。
他們還采用了生命周期感知型組件,這些組件可根據(jù)其他組件的生命周期狀態(tài)變化來執(zhí)行相應(yīng)的響應(yīng)操作。iHeartRadio工程師發(fā)現(xiàn)這些組件對(duì)于縮小注入Activity和Fragment的依賴性非常有用。此外,該公司使用ViewModel創(chuàng)建了原型,它允許數(shù)據(jù)在屏幕旋轉(zhuǎn)等配置更改后繼續(xù)存在。
結(jié)果
iHeartRadio發(fā)現(xiàn)可以輕松遷移到架構(gòu)組件并使用這些庫來測(cè)試集成的效果。Room和其他組件需要使用的樣板代碼量很少,這意味著應(yīng)用的代碼目前在顯著縮短。架構(gòu)組件還減少了內(nèi)存泄漏。另一個(gè)好處是加入團(tuán)隊(duì)的新開發(fā)者可以迅速上手,開始編碼工作。
總的來說,采用架構(gòu)組件后,iHeartRadio得以創(chuàng)建了一個(gè)更清晰、更精簡(jiǎn)的代碼庫,有助于防止開發(fā)者出錯(cuò)。這對(duì)任何應(yīng)用來說都是一種助益,特別是對(duì)于向全球受眾群體提供一體化數(shù)字音頻的應(yīng)用。
使用入門
作為Android Jetpack的一部分,Android架構(gòu)組件面向所有開發(fā)者開放。Android架構(gòu)組件使用入門。