隨著應(yīng)用的體積越來越大, 插件化也逐漸受到關(guān)注,參考. 應(yīng)用插件化把模塊完全解耦, 使用下載更新的方式, 擴(kuò)展應(yīng)用, 是平臺化類應(yīng)用的必然選擇. 國內(nèi)很多公司實(shí)現(xiàn)了各式各樣的方法, 360的DroidPlugin是比較有意思的一個, 使用預(yù)占位的方式注冊四大組件, 實(shí)現(xiàn)熱更新,參考, 也可以直接讀源碼理解實(shí)現(xiàn)邏輯.
應(yīng)用插件化實(shí)踐--DroidPlugin的使用
之前寫過有關(guān)于Android 插件方向的文章姆怪,解析了一下Android的插件原理與運(yùn)行方式。很多小伙伴都問我,為什么不把我制作的插件放到Github上遵倦,讓大家共享一下颜懊。
我只能說采够,大哥啊黄虱,這個插件是我在公司研發(fā)的時候制作的旷坦,商業(yè)機(jī)密袭艺,不能開源啊搀崭。
剛好,最近逛github的時候猾编,看到了奇虎360手機(jī)助手團(tuán)隊的一個Android插件開源項(xiàng)目瘤睹。今天,我們就具體的分析一下它的原理與實(shí)現(xiàn)邏輯答倡。讓大家更清楚的了解轰传,一個Android插件的構(gòu)造。
360 Android 插件項(xiàng)目 DroidPlugin
這個框架是奇虎360手機(jī)助手團(tuán)隊瘪撇,最近在github上開源出來的Android插件框架获茬。這種精神是很值得鼓勵的港庄。
github地址為: https://github.com/Qihoo360/DroidPlugin
好,一下純屬引入了官方的說明:
說明
DroidPlugin是360手機(jī)助手在Android系統(tǒng)上實(shí)現(xiàn)了一種新的插件機(jī)制:
它可以在無需安裝恕曲、修改的情況下運(yùn)行APK文件,此機(jī)制對改進(jìn)大型APP的架構(gòu)鹏氧,實(shí)現(xiàn)多團(tuán)隊協(xié)作開發(fā)具有一定的好處。
鏈接地址:Android插件實(shí)例——360 DroidPlugin詳解佩谣,androiddroidplugin
360 Android插件(DroidPlugin)無需安裝運(yùn)行APK的原理是什么度帮,用途都有哪些?
今天上網(wǎng)偶爾瀏覽到GibtHub上一個叫做DroidPlugin的360手機(jī)助手插件稿存,不明覺厲笨篷,但很感興趣。這個插件瓣履,對我們普通開發(fā)者率翅,有什么價值和意義?請開發(fā)袖迎、運(yùn)營的高手解讀一下冕臭,謝謝!
鏈接地址:360 Android插件(DroidPlugin)無需安裝運(yùn)行APK的原理是什么燕锥,用途都有哪些辜贵?
前段時間,奇虎360在Github上發(fā)布了一個Android開源項(xiàng)目DroidPlugin归形,這是一個實(shí)現(xiàn)動態(tài)加載的Android插件框架托慨,可以免安裝、免修改的運(yùn)行第三方APK暇榴。一時間厚棵,它被譽(yù)為安卓黑科技,引起行業(yè)內(nèi)的關(guān)注蔼紧。
據(jù)其官方文檔介紹婆硬,DroidPlugin的目的是改進(jìn)大型APP的架構(gòu),實(shí)現(xiàn)多團(tuán)隊協(xié)作開發(fā)奸例。它的部分特性如下:
支持Android 2.3 - 6.0(Android M)系統(tǒng)版本彬犯。
集成簡單,將DroidPlugin引入到項(xiàng)目后僅需很少代碼集成查吊。
高度隔離谐区,宿主App和插件App之間的是完全隔離的。
插件管理菩貌,插件的空進(jìn)程等會被及時處理卢佣,靜態(tài)廣播會被當(dāng)作動態(tài)處理。
DroidPlugin的原理是利用Android一個進(jìn)程可以運(yùn)行多個APK的機(jī)制箭阶,通 過API欺騙讓系統(tǒng)以為只有宿主App存在虚茶,同時通過預(yù)先占坑來創(chuàng)造插件App的運(yùn)行環(huán)境,最后通過動態(tài)代理實(shí)現(xiàn)函數(shù)hook仇参、Binder代理繞過部分系統(tǒng)服務(wù)限制嘹叫,從而實(shí)現(xiàn)應(yīng)用的組件化。
據(jù)InfoQ了解诈乒,它的作者是360高級工程師張勇罩扇,InfoQ記者對其進(jìn)行了采訪,了解了項(xiàng)目背后的更多信息怕磨。同時喂饥,張勇也接受InfoQ邀請,將于12月18日在ArchSummit北京2015架構(gòu)師大會上作“分拆:DroidPlugin的實(shí)現(xiàn)原理及其應(yīng)用”的分享肠鲫。
受訪嘉賓介紹
張勇员帮,從2009年開始從事Android的研發(fā)工作,分別在機(jī)鋒網(wǎng)导饲、金山捞高、360從事過桌面、安全渣锦、市場等Android APP的研發(fā)管理工作硝岗。2011年加入360手機(jī)助手團(tuán)隊,目前在奇虎從事360手機(jī)助手Android客戶端的研發(fā)工作袋毙,專注于Android APP安全型檀、架構(gòu)領(lǐng)域。