開源Android容器化框架Atlas開發者指南

ckxllf發表於2019-08-16

  Atlas是古希臘神話中的天神,是波士頓動力公司的機器人,藉助搜尋引擎,得以發現這個名詞背後許許多多的含義。在手機淘寶,Atlas是一個紮根於Android客戶端的一個元件化容器框架,相比神話中用手和頭支撐起蒼天的泰坦神族,Atlas在手淘默默無聞地承載著手淘上豐富業務的執行,伴隨著數不清的功能在...

  Android方向的大牛們都已經深入瞭解了外掛化所帶來的巨大的便利,一直也沒時間去搞一套詳細的記憶,在這裡,僅以原始碼分析的形式進行外掛化框架的鞏固,文集中會具體分析原始碼,框架結構,執行原理等方面,除了加深記憶,也讓我們一起進步。

  隨著手機淘寶業務的快速增長,協作研發團隊的不斷擴大,技術也面臨著更多挑戰:一方面程式碼量快速上升導致方法過多,限制打包的正常輸出;另一個方面各業務線的開發和整合都需要到一個 apk上,業務間相互耦合嚴重,整合開發工作效率低下,這個大背景下,急需要做一次從構建,整合,交付的技術改造, 於是Atlas作為手淘執行的容器誕生了,它靈活的解決了各個業務開發期間的相互獨立解耦,而且提供了各個模組線上獨立動態能力。

  Atlas是什麼?

  Atlas是一個Android客戶端容器框架,主要提供了元件化、動態性、解耦化的支援。支援在編碼期、Apk執行期以及後續運維修復期的各種問題。

  在工程期,實現工程獨立開發,除錯功能,工程模組的獨立。

  在執行期間,實現完整的元件生命週期對映,類隔離等機制。

  在運維期間,提供快速增量的更新修復功能,快速升級。

  Atlas是工程期和執行期共同起作用的框架,它儘量將一些工作放在工程期,這樣保證執行期的簡單、穩定。

  Atlas的整體設計,分為五層: 無錫正規婦科醫院

  第一層稱之為Hack層,包括OS Hack toolkit & verifier,這裡對系統能力做一些擴充套件,然後做一些安全校驗。

  第二層是Bundle Framework,就是的容器基礎框架,提供Bundle管理、載入、生命週期、安全等一些最基本的能力。

  第三層是執行期管理層,包括清單,會把所有的Bundle和它們的能力列在一個清單上,在呼叫時方便查詢;另外是版本管理,會對所有Bundle的版本進行管理;再就是代理,這裡就是和業界一些外掛化框架機制類似的地方,會代理系統的執行環境,讓Bundle執行在的容器框架上;然後還有除錯和監控工具,是為了方便工程期開發除錯。

  第四層是業務層了,這裡向業務方暴露了一些介面,如框架生命週期、配置檔案、工具庫等等。

  最上面一層是應用接入層,就是的業務程式碼了。

  所以Atlas作為一個框架提供了相對完整的能力,業務層的開發可以在框架生命週期的各個環節做一些自定義的動作,也可以自由的呼叫系統、框架,乃至其它元件釋放的能力


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2653948/,如需轉載,請註明出處,否則將追究法律責任。

相關文章