事實上,移動技術已經在新興市場風生水起了,新興和發達國家之間的移動領域有著巨大的差異。特別是3G和4G移動網絡尚未在新興國家得到廣泛地應用,甚至即使有3G的連接,也是時斷時續的。此外,3G網絡在很多情況下對于大多數人來說都太昂貴了。另一方面,Gautam Roy曾寫道,全球96%的人可以連接到2G網絡,全球有一半以上的人口在使用它。Facebook于是在此背景下定義了自己的目標,即:
很小的應用足跡(在1MB APK以內);較低的數據使用率并支持2G網絡;支持較老的、2009年代的設備。這個主要的架構決定Facebook引擎要用一個代理服務器,而安卓應用實現為瘦客戶端,如下圖所示:
這個架構的設計使得該服務器要承擔繁重的工作,Roy說,通過把來自于Facebook后端服務的數據抓取出來并打包給客戶端使用。這個客戶端應用本身設計成一種虛擬機,提供攝像頭、SQL lite和UI引擎之類OS資源的訪問。此外,這個客戶端依賴于本地緩存,以避免針對同一事項發起多次請求。有趣的是,Facebook的工程師們為了取代HTTPS在TLS層上設計了它們自定義的信息協議,以便將來減少數據的使用以及削減建立安全連接所需的時間。
由于這些設計選擇,Roy總結說,Facebook工程師們在登錄、啟動、摘取刷新和圖像加載上實現了一流的性能,并且,即使在低性能和時斷時續的網絡上也能確保正確性。
查看英文原文:How Facebook Designed its Android App for Emerging Markets