目前開(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è)緊急版本,但緊急版本雖然可解決燃眉之急,但在用戶(hù)體驗(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é)人稱(chēng),首先,大部分開(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)宿主的代碼和資源。而在滴滴打車(chē)中,其他業(yè)務(wù)模塊均需要宿主提供的訂單、定位、賬號(hào)等數(shù)據(jù),因此插件不可能和宿主沒(méi)有交互。

基于上述,滴滴自行研發(fā)了這款插件化框架,它功能全面、兼容性好,還能夠適用于有耦合的業(yè)務(wù)插件,這就是VirtualAPK存在的意義。業(yè)內(nèi)認(rèn)為,在加載耦合插件方面,VirtualAPK可以說(shuō)是開(kāi)源方案的首選。

分享到

xiesc

相關(guān)推薦