滴滴開(kāi)源業(yè)界首個(gè)耦合型全兼容Android插件化框架
6月30日消息,滴滴出行今日披露了首個(gè)開(kāi)源項(xiàng)目VirtualAPK,該款插件化框架可幫助企業(yè)隨時(shí)通過(guò)更新插件的方式來(lái)發(fā)布新功能,包括修復(fù)嚴(yán)重crash或進(jìn)行業(yè)務(wù)“試錯(cuò)”,擁有功能完備、基本無(wú)入侵、插件可輕松訪問(wèn)宿主代碼和資源、高兼容性這四大核心優(yōu)勢(shì)。
滴滴方面表示, VirtualAPK支持四大組件和幾乎所有的Android特性,且插件開(kāi)發(fā)等同于原生Android開(kāi)發(fā)。該項(xiàng)目在內(nèi)部已得到成功驗(yàn)證,在迭代過(guò)程中不斷的進(jìn)行高密度機(jī)型適配和細(xì)節(jié)特性支持,運(yùn)行狀態(tài)穩(wěn)定,足以支撐滴滴部分乃至全部業(yè)務(wù)的動(dòng)態(tài)發(fā)版需求。
目前開(kāi)發(fā)者可登陸Github(https://github.com/didi/VirtualAPK)查看該項(xiàng)目的詳細(xì)介紹和源代碼,也可在滴滴的開(kāi)源平臺(tái)上(https://didi.github.io/)獲取更多信息。
在傳統(tǒng)APP發(fā)布過(guò)程中,大多數(shù)開(kāi)發(fā)者采用固定時(shí)段發(fā)版節(jié)奏,比如兩周或一個(gè)月更新一次,但如果一個(gè)新版本發(fā)布運(yùn)行后發(fā)現(xiàn)存在大量crash,此時(shí)大多數(shù)公司會(huì)選擇立刻發(fā)一個(gè)緊急版本,但緊急版本雖然可解決燃眉之急,但在用戶體驗(yàn)方面將造成不可挽回的損失。
除此之外,還有一種常見(jiàn)情況,比如早期創(chuàng)業(yè)公司,需要通過(guò)迅速“試錯(cuò)”來(lái)嘗試找準(zhǔn)市場(chǎng)方向,要進(jìn)行頻繁發(fā)版,甚至一天一發(fā),但在正常發(fā)版流程中,顯然不現(xiàn)實(shí)。
VirtualAPK有效解決了上述問(wèn)題,通過(guò)VirtualAPK將業(yè)務(wù)模塊插件化,就可以隨時(shí)通過(guò)更新插件的方式來(lái)發(fā)布新功能,無(wú)論是修復(fù)crash還是業(yè)務(wù)“試錯(cuò)”都可以高效進(jìn)行。
實(shí)際上,市場(chǎng)上已經(jīng)有很多優(yōu)秀的開(kāi)源插件化框架,滴滴之所以選擇自行研發(fā)VirtualAPK,相關(guān)負(fù)責(zé)人稱,首先,大部分開(kāi)源框架支持的功能還不夠全面。 除了DroidPlugin,大部分都只支持Activity。
其次,兼容性問(wèn)題嚴(yán)重,大部分開(kāi)源方案不夠健全。 由于國(guó)內(nèi)Rom嘗試深度定制Android系統(tǒng),這導(dǎo)致了諸多的插件框架的兼容性問(wèn)題,而目前已有的開(kāi)源方案中,除了個(gè)別開(kāi)源方案外,其他方案對(duì)兼容性問(wèn)題的適配度嚴(yán)重不足。
第三,已有的開(kāi)源方案不適合滴滴的業(yè)務(wù)場(chǎng)景,雖然DroidPlugin從功能的完整性和兼容性上來(lái)看,是一款非常完善的插件框架,然而它的使用場(chǎng)景和滴滴的業(yè)務(wù)不符,DroidPlugin側(cè)重于加載第三方獨(dú)立插件,比如微信,并且插件不能訪問(wèn)宿主的代碼和資源。而在滴滴打車中,其他業(yè)務(wù)模塊均需要宿主提供的訂單、定位、賬號(hào)等數(shù)據(jù),因此插件不可能和宿主沒(méi)有交互。
基于上述,滴滴自行研發(fā)了這款插件化框架,它功能全面、兼容性好,還能夠適用于有耦合的業(yè)務(wù)插件,這就是VirtualAPK存在的意義。業(yè)內(nèi)認(rèn)為,在加載耦合插件方面,VirtualAPK可以說(shuō)是開(kāi)源方案的首選。