1.什么是插件化開發(fā)
首先我們要對插件化的概念有一個認識:插件化開發(fā)是將整個app拆分成很多模塊,這些模塊包括一個宿主和多個插件,每個模塊都是一個apk(組件化的每個模塊是個lib),最終打包的時候?qū)⑺拗鱝pk和插件apk分開或者聯(lián)合打包。
插件式開發(fā)通俗的講就是把一個很大的app分成n多個比較小的app,其中有一個app是主app。基本上可以理解為讓一個apk不安裝也可以被運行。只不過這個運行是有很多限制的運行,所以才叫插件否則就叫病毒了。
2.插件化開發(fā)的優(yōu)缺點
優(yōu)點:
1.模塊解耦
2.解除單個dex函數(shù)不能超過65535的限制
3.支持動態(tài)升級
4.高效開發(fā)(編譯速度更快)
基于插件化的開發(fā)列舉一個比較突出的優(yōu)點:
app的擴展非常容易,如一個新的功能界面要加到舊版本的應(yīng)用程序中,只需把這個新的功能界面做為一個插件,只開發(fā)這個小的插件就可以了,舊的應(yīng)用程序可以保持不變,連編譯打包都不需要。
缺點:
1.增加了主應(yīng)用程序的邏輯難度
2.成熟穩(wěn)定的解決方案較少
3.現(xiàn)階段開放出來的插件化開發(fā)框架
1?Dynamic-load-apk ? ?百度
2?Direct-Load-apk? ?FinalLody
3?Android-Plugin-Framework? limpoxe
4?ACDD? ? ? ? ? ? ? ? ? ? ? bunnyblue
5 DynamicAPK? ? ? ? ? ?攜程
6 DroidPlugin? ? ? ? ? ? ? @cmzy, 360
7?Small? ? ? ? ? ? ? ? ? ? ? ? wequick
這些框架的優(yōu)缺點總結(jié)如下圖:

可以看出Small支持較為全面。
下一篇將會講解如何使用Small框架進行插件化開發(fā)