Atlas是古希臘神話(huà)中的天神,是波士頓動(dòng)力公司的機(jī)器人,借助搜索引擎,得以發(fā)現(xiàn)這個(gè)名詞背后許許多多的含義。在手機(jī)淘寶,Atlas是一個(gè)扎根于Android客戶(hù)端的一個(gè)組件化容器框架,相比神話(huà)中用手和頭支撐起蒼天的泰坦神族,Atlas在手淘默默無(wú)聞地承載著手淘上豐富業(yè)務(wù)的運(yùn)行,伴隨著數(shù)不清的功能在...
Android方向的大牛們都已經(jīng)深入了解了插件化所帶來(lái)的巨大的便利,一直也沒(méi)時(shí)間去搞一套詳細(xì)的記憶,在這里,僅以源碼分析的形式進(jìn)行插件化框架的鞏固,文集中會(huì)具體分析源碼,框架結(jié)構(gòu),運(yùn)行原理等方面,除了加深記憶,也讓我們一起進(jìn)步。
隨著手機(jī)淘寶業(yè)務(wù)的快速增長(zhǎng),協(xié)作研發(fā)團(tuán)隊(duì)的不斷擴(kuò)大,技術(shù)也面臨著更多挑戰(zhàn):一方面代碼量快速上升導(dǎo)致方法過(guò)多,限制打包的正常輸出;另一個(gè)方面各業(yè)務(wù)線(xiàn)的開(kāi)發(fā)和集成都需要到一個(gè) apk上,業(yè)務(wù)間相互耦合嚴(yán)重,集成開(kāi)發(fā)工作效率低下,這個(gè)大背景下,急需要做一次從構(gòu)建,集成,交付的技術(shù)改造, 于是Atlas作為手淘運(yùn)行的容器誕生了,它靈活的解決了各個(gè)業(yè)務(wù)開(kāi)發(fā)期間的相互獨(dú)立解耦,而且提供了各個(gè)模塊線(xiàn)上獨(dú)立動(dòng)態(tài)能力。
開(kāi)源Android容器化框架Atlas開(kāi)發(fā)者指南
Atlas是什么?
Atlas是一個(gè)Android客戶(hù)端容器框架,主要提供了組件化、動(dòng)態(tài)性、解耦化的支持。支持在編碼期、Apk運(yùn)行期以及后續(xù)運(yùn)維修復(fù)期的各種問(wèn)題。
在工程期,實(shí)現(xiàn)工程獨(dú)立開(kāi)發(fā),調(diào)試功能,工程模塊的獨(dú)立。
在運(yùn)行期間,實(shí)現(xiàn)完整的組件生命周期映射,類(lèi)隔離等機(jī)制。
在運(yùn)維期間,提供快速增量的更新修復(fù)功能,快速升級(jí)。
Atlas是工程期和運(yùn)行期共同起作用的框架,它盡量將一些工作放在工程期,這樣保證運(yùn)行期的簡(jiǎn)單、穩(wěn)定。
Atlas的整體設(shè)計(jì),分為五層:
第一層稱(chēng)之為Hack層,包括OS Hack toolkit & verifier,這里對(duì)系統(tǒng)能力做一些擴(kuò)展,然后做一些安全校驗(yàn)。
第二層是Bundle Framework,就是的容器基礎(chǔ)框架,提供Bundle管理、加載、生命周期、安全等一些最基本的能力。
第三層是運(yùn)行期管理層,包括清單,會(huì)把所有的Bundle和它們的能力列在一個(gè)清單上,在調(diào)用時(shí)方便查找;另外是版本管理,會(huì)對(duì)所有Bundle的版本進(jìn)行管理;再就是代理,這里就是和業(yè)界一些插件化框架機(jī)制類(lèi)似的地方,會(huì)代理系統(tǒng)的運(yùn)行環(huán)境,讓Bundle運(yùn)行在的容器框架上;然后還有調(diào)試和監(jiān)控工具,是為了方便工程期開(kāi)發(fā)調(diào)試。
第四層是業(yè)務(wù)層了,這里向業(yè)務(wù)方暴露了一些接口,如框架生命周期、配置文件、工具庫(kù)等等。
最上面一層是應(yīng)用接入層,就是的業(yè)務(wù)代碼了。
所以Atlas作為一個(gè)框架提供了相對(duì)完整的能力,業(yè)務(wù)層的開(kāi)發(fā)可以在框架生命周期的各個(gè)環(huán)節(jié)做一些自定義的動(dòng)作,也可以自由的調(diào)用系統(tǒng)、框架,乃至其它組件釋放的能力
關(guān)于開(kāi)源Android容器化框架Atlas的詳細(xì)內(nèi)容:
開(kāi)源Android容器化框架Atlas開(kāi)發(fā)者指南
(本課程主要講解Atlas框架的使用方法。)
開(kāi)源Android容器化框架Atlas開(kāi)發(fā)者指南