點心、MIUI、樂眾OS架構師講Android底層故事
7月 31 日消息,點心 OS 架構師萬瓊柱、小米科技首席架構師汪文俊、盛大樂眾 ROM 架構師郭振做客第 169 期 IT 龍門陣,講述 Android 底層故事。
Android 如何有效加載資源
點心 OS 架構師萬瓊柱演講主題為《Android 資源體系介紹》。“資源”是程序運營邏輯之外的其他靜態內容。使用資源機制,可協助分離 UI 展現和應用邏輯,使程序有更加結構,并適配不同的硬件配置等。
萬瓊柱講解,通過資源 ID 分段,以最佳的方式從資源表中執行查找。
AAPT:圖片類已壓縮過的資源在 APK 中是無壓縮 ZipEntry 存儲的,這樣可以避免運行時每個資源0-64kb 的內存開銷,可以用最節省內存的方式訪問,另外不需要壓縮也節省了 CPU 消耗。
ZipAlign:確保無壓縮的資源文件在 APK 內是按 4 字節對齊的,可以直接被 mmap 到進程內存空間,并使訪問具有最佳性能。
運行時:盡力通過 mmap 的方式控制 Heap 內存消耗,緩存較小的資源到內存中來加快訪問速度。
點心操作系統 Web 化
如何組織深度定制版 android 中的資源?萬瓊柱介紹了以下場景和需要解決的問題:
上層 APK 需要以二進制方式發布以便保護知識產權;
上層 APK 存在廠商定制,需要以來平臺資源和 Java 庫;
上層 APK 成套存在,公用資源和代碼會提取進入系統框架;
需與多家硬件廠商并發合作,但不希望產生多套二進制文件;
解決方法:不允許廠商刪除 Framework 中的資源(合理假設)、但廠商可以任意增加資源,不會妨礙預編譯的點心 APP 對資源 ID 的預期。控制資源 ID 的生成,參照 public.xml 機制,擴充 AAPT 的資源類型,在執行 public ID 預分配后,給點心已知的所有資源 ID 賦值。
點心操作系統三年來,已從整體操作系統發展到操作系統 Web 化。前年,點心做整體操作系統。去年,點心操作系統應用化,從操作系統發展到工具 Apps 集合:例如安卓優化大師、安卓省電、點心桌面、點心撥號、點心鬧鐘等。今年和明年,實現操作系統 Web 化,從操作系統演化到 Web/原生混合式 Apps ,例如:點心壁紙,點心極速桌面。
應用在模擬器上測試可覆蓋大部分的機型
現場有開發者提問,Android 最大的問題是設備型號太多,適配太困難。對于如何適配問題,小米科技首席架構師汪文俊表示,對于小米來說會尊重 Google CTS,不會讓應用為 MIUI 做改變。
汪文俊建議,開發者在開發應用時,由于手機設備型號太多,無法一一去測試,一般會在模擬器上進行測試,基本可覆蓋大部分的機型。
他透露,MUI 團隊最開始只有 3 個人,現在工程師 70 多人,加上測試 、設計,團隊成員共 160 個人。
樂眾 ROM:打造手機娛樂平臺
盛大樂眾 ROM 架構師郭振演講主題為《Android 賬戶同步備份框架》。Android 從2.0之后加入了賬戶、同步、備份框架,郭振介紹了這三個框架的架構和設計,并從系統開發的角度討論如何與 Android 的賬戶同步備份框架對接,將自己的服務集成到 Android 系統中。
對于 Android 碎片化問題,郭振認為 Google 愿意看到這種場景。“Google 愿意看到 Android 碎片化、多元化。iPhone 已是街機,但 Android 有很多機皇,每個廠商可以滿足用戶不同的需求。Google 樂見很多互聯網廠商、手機廠商參與到 Android 發展中。”
他表示,樂眾 OM 依托盛大文學、視頻等資源,將打造手機娛樂平臺。目前,樂眾 ROM 已支持 16 款機型。