Android 插件化學習

作者:小楠總
鏈接:http://www.reibang.com/p/b6d0586aab9f
來源:簡書
著作權歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權,非商業(yè)轉(zhuǎn)載請注明出處火脉。

插件化概述

提到插件化,就不得不提起方法數(shù)超過65535的問題,我們可以通過Dex分包來解決斑响,同時也可以通過使用插件化開發(fā)來解決。插件化的概念就是由宿主APP去加載以及運行插件APP钳榨。

下面是一些插件化的優(yōu)勢:

在一個大的項目里面舰罚,為了明確的分工,往往不同的團隊負責不同的插件APP薛耻,這樣分工更加明確营罢。
各個模塊封裝成不同的插件APK,不同模塊可以單獨編譯饼齿,提高了開發(fā)效率饲漾。
解決了上述的方法數(shù)超過限制的問題。
可以通過上線新的插件來解決線上的BUG缕溉,達到“熱修復”的效果考传。
減小了宿主APK的體積。

下面是插件化開發(fā)的缺點:

插件化開發(fā)的APP不能在Google Play上線倒淫,也就是沒有海外市場伙菊。

綜上所述败玉,如果您的APP不需要支持海外的話,還是可以考慮插件化開發(fā)的镜硕。
各個插件框架比較:


插件化框架對比.png

[1] 獨立插件:一個完整的apk包运翼,可以獨立運行。比如從你的程序跑起淘寶兴枯、QQ血淌,但這加載起來是要鬧哪樣? 非獨立插件:依賴于宿主财剖,宿主是個殼悠夯,插件可使用其資源代碼并分離之以最小化,這才是業(yè)務需要嘛躺坟。 -- “所有不能加載非獨立插件的插件化框架都是耍流氓”沦补。
[2] ACDD加載.so用了Native方法(libdexopt.so),不是Java層咪橙,源碼見dexopt.cpp夕膀。
[3] Service更新頻度低,可預先注冊在宿主的manifest中美侦,如果沒有很好的理由說服我产舞,現(xiàn)不支持。
[4] 要實現(xiàn)宿主菠剩、各個插件資源可互相訪問易猫,需要對他們的資源進行分段處理以避免沖突。
[5] 這些框架修改aapt源碼具壮、重編准颓、覆蓋SDK Manager下載的aapt,我只想說“殺(wan)雞(de)焉(kai)用(xin)牛(jiu)刀(hao)”嘴办。Small使用gradle-small-plugin瞬场,在后期修改二進制文件,實現(xiàn)了PP段分區(qū)涧郊。
[6] 使用public-padding對資源id的TT段進行分區(qū),分開了宿主和插件眼五。但是插件之間無法分段妆艘。
[7] 除了宿主提供一些公共資源與代碼外,我們?nèi)孕璺庋b一些業(yè)務層面的公共庫看幼,這些庫被其他插件所依賴批旺。公共插件打包的目的就是可以單獨更新公共庫插件,并且相關插件不需要動到诵姜。
[8] AppCompat: Android Studio默認添加的主題包汽煮,Google主推的Metrial Design包也依賴于此。大勢所趨。
[9] 聯(lián)調(diào)插件:使用Android Studio調(diào)試宿主時暇赤,可直接在插件代碼中添加斷點調(diào)試心例。

在學習插件化的時候,需要掌握Android系統(tǒng)的一些Framework層面的知識以及一些編程相關的知識鞋囊,其中包括:
Binder機制
Android系統(tǒng)止后、APP、Activity等四大組件的啟動流程
APK安裝過程
Android資源的加載過程
Hook機制
面向接口(抽象)編程
面向切面編程
等等

相關的參考資料有:
《Android開發(fā)藝術探索》
《Android源碼與設計模式》
寫給Android App開發(fā)人員看的Android底層知識:http://www.cnblogs.com/Jax/p/6864103.html
Small主頁:https://github.com/wequick/Small
Small使用介紹:http://www.reibang.com/p/7990714d10cb

作者:小楠總鏈接:http://www.reibang.com/p/b6d0586aab9f來源:簡書著作權歸作者所有溜腐。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權译株,非商業(yè)轉(zhuǎn)載請注明出處。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挺益,一起剝皮案震驚了整個濱河市歉糜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌望众,老刑警劉巖现恼,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異黍檩,居然都是意外死亡叉袍,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門刽酱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喳逛,“玉大人,你說我怎么就攤上這事棵里∪笪模” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵殿怜,是天一觀的道長典蝌。 經(jīng)常有香客問我,道長头谜,這世上最難降的妖魔是什么骏掀? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮柱告,結(jié)果婚禮上截驮,老公的妹妹穿的比我還像新娘。我一直安慰自己际度,他們只是感情好葵袭,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著乖菱,像睡著了一般坡锡。 火紅的嫁衣襯著肌膚如雪蓬网。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天鹉勒,我揣著相機與錄音帆锋,去河邊找鬼。 笑死贸弥,一個胖子當著我的面吹牛窟坐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绵疲,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼哲鸳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盔憨?” 一聲冷哼從身側(cè)響起徙菠,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎郁岩,沒想到半個月后婿奔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡问慎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年萍摊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片如叼。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡冰木,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出笼恰,到底是詐尸還是另有隱情踊沸,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布社证,位于F島的核電站逼龟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏追葡。R本人自食惡果不足惜腺律,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辽俗。 院中可真熱鬧疾渣,春花似錦、人聲如沸崖飘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽朱浴。三九已至吊圾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間翰蠢,已是汗流浹背项乒。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留梁沧,地道東北人檀何。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像廷支,于是被迫代替她去往敵國和親频鉴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,734評論 25 707
  • 本篇是學習插件化的第一篇,無技術干貨施敢,純扯淡向周荐。主要內(nèi)容是對于市面上插件化框架的簡單分析和建立起對于插件化的最基礎...
    見事遲閱讀 3,745評論 1 13
  • 紛飛不絕的雪,用了整個下午的時間抒發(fā)了離別僵娃,也許是太過于思念概作,便忍不住
    痞子的幸福白羊閱讀 184評論 0 0
  • 三年后,我32歲了默怨,我想成為怎樣的自己讯榕?現(xiàn)在的自己很盲目,滿以為寫作就是我的成長快車道先壕,我只要堅持寫作就能幫助我實...
    伊伊視覺筆記閱讀 303評論 0 0
  • 他拿起干巴巴的抹布瘩扼,順手將剛掉在方桌上的土抹掉,“又掉土了”垃僚,他說著看了一眼東邊的床集绰,哦,又忘了谆棺,她已經(jīng)去世一年多...
    無名指姑娘閱讀 230評論 0 0