大廠標(biāo)配的動態(tài)化解決方案蜂大,高階技術(shù)從未如此簡單!

在Android 高階技術(shù)中蝶怔,動態(tài)化算是一個(gè)方向奶浦,而在動態(tài)化中最知名的就是插件化相關(guān)技術(shù)了。

插件化目前在國內(nèi)基本是所有大廠的標(biāo)配踢星,學(xué)習(xí)性價(jià)比非常高澳叉,但很多人沒有真正地動手去實(shí)踐過,根本不了解其中有多少問題斩狱,會牽涉到多少技術(shù)細(xì)節(jié)耳高,那么我們?nèi)绾握莆詹寮@門高階技術(shù)呢?

首先就要對于Framework有著比較深的了解所踊,因?yàn)椴寮歇?dú)立的業(yè)務(wù),包含獨(dú)立頁面與功能概荷,那么這些 Activity(頁面) 并未在宿主中注冊秕岛,怎么能夠啟動呢?

要想能夠繞過系統(tǒng)的限制误证,來啟動「不存在的」Activity继薛,首先你要對系統(tǒng)的檢測機(jī)制極為熟悉,只有知道的防御方式才能創(chuàng)造攻擊技巧一擊破之愈捅,所以你需要對 Activity的整體啟動流程極為熟悉遏考。

其次你還需要清楚類加載機(jī)制:

  1. 插件中如何訪問宿主中的類呢?
  2. 宿主如何訪問插件中的類呢蓝谨?
  3. 插件與插件中的類要不要支持支持訪問呢灌具?

這些問題都需要你對類的雙親委派機(jī)制極其熟悉,然后巧妙的自定義修改流程實(shí)現(xiàn)譬巫。

最后咖楣,就是資源了:

  1. 是否要支持資源訪問宿主呢?如果插件使用了宿主的資源id芦昔,宿主編譯過程中資源id發(fā)生變化怎么辦呢诱贿?
  2. 如何保證插件的資源和宿主的資源id不沖突呢?
  3. 系統(tǒng)是如何加載資源的咕缎?啟動階段如何合并插件與宿主資源呢珠十?

這些要求你對系統(tǒng)如何加載資源,aapt對資源的處理都要有一定的了解凭豪。

到這里焙蹭,我們已經(jīng)具備了了解一個(gè)插件化框架的基礎(chǔ)知識了。

以360 RePlugin為例墅诡,我們可以帶著問題去剖析它

看看 Replugin 對于組件是如何支持的壳嚎?對于資源是如何支持的桐智?對于插件與宿主的通信是如何支持的?

去拆解它的每個(gè)能力烟馅,結(jié)合自己前面的認(rèn)知说庭,驗(yàn)證自己的理解,這個(gè)階段還能發(fā)現(xiàn)很多的技術(shù)技巧郑趁。

當(dāng)我們拆解完一個(gè)插件化的框架時(shí)刊驴,就已經(jīng)可以說對插件化的原理基本掌握了。

然后我們就可以直接上手實(shí)踐寡润,因?yàn)閷?shí)踐才是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)捆憎,很多時(shí)候我們苦背原理,面試過程中一被問到:

  • 了解過插件化開發(fā)嗎梭纹?
  • 能說說插件化開發(fā)的幾種實(shí)現(xiàn)思路嘛躲惰?
  • 插件化開發(fā)中插件的Activity有幾種啟動方法?
  • 插件化開發(fā)中插件之間如何進(jìn)行組件通信变抽?
  • 插件的混淆如何解決础拨?
  • 插件化開發(fā)的資源沖突問題會存在嗎?如何解決绍载?
  • 在項(xiàng)目中一個(gè)已有模塊诡宗,你是如何收斂成為插件的呢?需要做哪些準(zhǔn)備呢击儡?

諸如此類的層層深挖塔沃,一下子就慌了,所以我們需要手動去實(shí)踐插件化的打包阳谍、下發(fā)(扔到 sdcard加載)蛀柴,去通過具體的實(shí)踐感受整個(gè)流程,加深對原理的理解边坤。

直到可以拋開別人的代碼名扛,借助Framework源碼,自己去實(shí)現(xiàn)插件化的核心邏輯:

從自己啟動一個(gè)不存在的 Activity 開始茧痒,到對所有核心功能的模擬肮韧,這個(gè)階段相信讓你對原理有進(jìn)一步的認(rèn)知,你需要了解到各個(gè)版本系統(tǒng)源碼的差異旺订,如何繞過 hidden api的限制等等弄企。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市区拳,隨后出現(xiàn)的幾起案子拘领,更是在濱河造成了極大的恐慌,老刑警劉巖樱调,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件约素,死亡現(xiàn)場離奇詭異届良,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)圣猎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門士葫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人送悔,你說我怎么就攤上這事慢显。” “怎么了欠啤?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵荚藻,是天一觀的道長。 經(jīng)常有香客問我洁段,道長应狱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任眉撵,我火速辦了婚禮侦香,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘纽疟。我一直安慰自己,他們只是感情好憾赁,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布污朽。 她就那樣靜靜地躺著,像睡著了一般龙考。 火紅的嫁衣襯著肌膚如雪蟆肆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天晦款,我揣著相機(jī)與錄音炎功,去河邊找鬼。 笑死缓溅,一個(gè)胖子當(dāng)著我的面吹牛蛇损,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播坛怪,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼淤齐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了袜匿?” 一聲冷哼從身側(cè)響起更啄,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎居灯,沒想到半個(gè)月后祭务,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體内狗,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年义锥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了柳沙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缨该,死狀恐怖偎行,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贰拿,我是刑警寧澤蛤袒,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站膨更,受9級特大地震影響妙真,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜荚守,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一珍德、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧矗漾,春花似錦锈候、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至誊役,卻和暖如春获列,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蛔垢。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工击孩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鹏漆。 一個(gè)月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓巩梢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親甫男。 傳聞我的和親對象是個(gè)殘疾皇子且改,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 以下文章摘錄自滴滴插件化框架VirtualAPK原理解析(一)之插件Activity管理 具體的使用手冊請參考官方...
    jtsky閱讀 1,332評論 0 4
  • dim.red 0x00 前言 市面上的插件化,已經(jīng)百花齊放板驳,趨于完善又跛。主流的開源框架主要的代表有 Alibaba...
    輕微閱讀 2,657評論 1 52
  • 什么是組件化和插件化? 組件化開發(fā)就是將一個(gè)app分成多個(gè)模塊若治,每個(gè)模塊都是一個(gè)組件(Module)慨蓝,開發(fā)的過程中...
    Jeeson閱讀 3,090評論 1 10
  • RePlugin的開源地址:https://github.com/Qihoo360/RePlugin官方介紹:ht...
    JarryWell閱讀 10,783評論 6 32
  • 引言 先簡單介紹一下Android插件化感混。很早之前已經(jīng)有公司在研究這項(xiàng)技術(shù),淘寶做得比較早礼烈,但淘寶的這項(xiàng)技術(shù)一直是...
    流水潺湲閱讀 11,080評論 8 149