隨著應(yīng)用的體積越來(lái)越大, 插件化也逐漸受到關(guān)注,參考. 應(yīng)用插件化把模塊完全解耦, 使用下載更新的方式, 擴(kuò)展應(yīng)用, 是平臺(tái)化類應(yīng)用的必然選擇. 國(guó)內(nèi)很多公司實(shí)現(xiàn)了各式各樣的方法, 360的DroidPlugin是比較有意思的一個(gè), 使用預(yù)占位的方式注冊(cè)四大組件, 實(shí)現(xiàn)熱更新,參考, 也可以直接讀源碼理解實(shí)現(xiàn)邏輯.
應(yīng)用插件化實(shí)踐--DroidPlugin的使用
之前寫過(guò)有關(guān)于Android 插件方向的文章,解析了一下Android的插件原理與運(yùn)行方式。很多小伙伴都問我,為什么不把我制作的插件放到Github上,讓大家共享一下。
我只能說(shuō),大哥啊,這個(gè)插件是我在公司研發(fā)的時(shí)候制作的,商業(yè)機(jī)密,不能開源啊。
剛好,最近逛github的時(shí)候,看到了奇虎360手機(jī)助手團(tuán)隊(duì)的一個(gè)Android插件開源項(xiàng)目。今天,我們就具體的分析一下它的原理與實(shí)現(xiàn)邏輯。讓大家更清楚的了解,一個(gè)Android插件的構(gòu)造。
360 Android 插件項(xiàng)目 DroidPlugin
這個(gè)框架是奇虎360手機(jī)助手團(tuán)隊(duì),最近在github上開源出來(lái)的Android插件框架。這種精神是很值得鼓勵(lì)的。
github地址為: https://github.com/Qihoo360/DroidPlugin
好,一下純屬引入了官方的說(shuō)明:
說(shuō)明
DroidPlugin是360手機(jī)助手在Android系統(tǒng)上實(shí)現(xiàn)了一種新的插件機(jī)制:
它可以在無(wú)需安裝、修改的情況下運(yùn)行APK文件,此機(jī)制對(duì)改進(jìn)大型APP的架構(gòu),實(shí)現(xiàn)多團(tuán)隊(duì)協(xié)作開發(fā)具有一定的好處。
鏈接地址:Android插件實(shí)例——360 DroidPlugin詳解,androiddroidplugin
360 Android插件(DroidPlugin)無(wú)需安裝運(yùn)行APK的原理是什么,用途都有哪些?
今天上網(wǎng)偶爾瀏覽到GibtHub上一個(gè)叫做DroidPlugin的360手機(jī)助手插件,不明覺厲,但很感興趣。這個(gè)插件,對(duì)我們普通開發(fā)者,有什么價(jià)值和意義?請(qǐng)開發(fā)、運(yùn)營(yíng)的高手解讀一下,謝謝!
鏈接地址:360 Android插件(DroidPlugin)無(wú)需安裝運(yùn)行APK的原理是什么,用途都有哪些?
前段時(shí)間,奇虎360在Github上發(fā)布了一個(gè)Android開源項(xiàng)目DroidPlugin,這是一個(gè)實(shí)現(xiàn)動(dòng)態(tài)加載的Android插件框架,可以免安裝、免修改的運(yùn)行第三方APK。一時(shí)間,它被譽(yù)為安卓黑科技,引起行業(yè)內(nèi)的關(guān)注。
據(jù)其官方文檔介紹,DroidPlugin的目的是改進(jìn)大型APP的架構(gòu),實(shí)現(xiàn)多團(tuán)隊(duì)協(xié)作開發(fā)。它的部分特性如下:
支持Android 2.3 - 6.0(Android M)系統(tǒng)版本。
集成簡(jiǎn)單,將DroidPlugin引入到項(xiàng)目后僅需很少代碼集成。
高度隔離,宿主App和插件App之間的是完全隔離的。
插件管理,插件的空進(jìn)程等會(huì)被及時(shí)處理,靜態(tài)廣播會(huì)被當(dāng)作動(dòng)態(tài)處理。
DroidPlugin的原理是利用Android一個(gè)進(jìn)程可以運(yùn)行多個(gè)APK的機(jī)制,通 過(guò)API欺騙讓系統(tǒng)以為只有宿主App存在,同時(shí)通過(guò)預(yù)先占坑來(lái)創(chuàng)造插件App的運(yùn)行環(huán)境,最后通過(guò)動(dòng)態(tài)代理實(shí)現(xiàn)函數(shù)hook、Binder代理繞過(guò)部分系統(tǒng)服務(wù)限制,從而實(shí)現(xiàn)應(yīng)用的組件化。
據(jù)InfoQ了解,它的作者是360高級(jí)工程師張勇,InfoQ記者對(duì)其進(jìn)行了采訪,了解了項(xiàng)目背后的更多信息。同時(shí),張勇也接受InfoQ邀請(qǐng),將于12月18日在ArchSummit北京2015架構(gòu)師大會(huì)上作“分拆:DroidPlugin的實(shí)現(xiàn)原理及其應(yīng)用”的分享。
受訪嘉賓介紹
張勇,從2009年開始從事Android的研發(fā)工作,分別在機(jī)鋒網(wǎng)、金山、360從事過(guò)桌面、安全、市場(chǎng)等Android APP的研發(fā)管理工作。2011年加入360手機(jī)助手團(tuán)隊(duì),目前在奇虎從事360手機(jī)助手Android客戶端的研發(fā)工作,專注于Android APP安全、架構(gòu)領(lǐng)域。