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作為一個框架提供了相對完整的能力,業務層的開發可以在框架生命周期的各個環節做一些自定義的動作,也可以自由的調用系統、框架,乃至其它組件釋放的能力
關於開源Android容器化框架Atlas的詳細內容:
(本課程主要講解Atlas框架的使用方法。)
