寫在前面;
這幾年移動開發業界興起的「 插件化技術 」的旋風,各個大廠都推出了自己的插件化框架,各種開源框架都評價自身功能優越性,令人目不暇接。隨着公司業務快速發展,項目增多,開發資源卻有限,如何能在有限資源內滿足需求和項目的增長,同時又能快速響應問題和迭代新需求,這就是一個矛盾點。此時,插件化技術正好風生水起,去了解各個主流框架實現思路,看看能對目前工作是否有幫助,是很有必要的。
主要分為以下幾個部分
插件化介紹
入門知識
實現原理
主流框架
實戰
小結
進階資料
插件化介紹
百度百科里是這么定義插件的:「 是一種遵循一定規范的應用程序接口編寫出來的程序,只能運行在程序規定的系統平台下,而不能脫離指定的平台單獨運行。」,也就是說,插件可以提供一種動態擴展能力,使得應用程序在運行時加載原本不屬於該應用的功能,並且做到動態更新和替換。
那么在 Android 中,何為「 插件化 」,顧名思義,就是把一些核心復雜依賴度高的業務模塊封裝成獨立的插件,然后根據不同業務需求進行不同組合,動態進行替換,可對插件進行管理、更新,后期對插件也可進行版本管理等操作。在插件化中有兩個概念需要講解下:
宿主
所謂宿主,就是需要能提供運行環境,給資源調用提供上下文環境,一般也就是我們主 APK ,要運行的應用,它作為應用的主工程所在,實現了一套插件的加載和管理的框架,插件都是依托於宿主的APK而存在的。
插件
插件可以想象成每個獨立的功能模塊封裝為一個小的 APK ,可以通過在線配置和更新實現插件 APK 在宿主 APK 中的上線和下線,以及動態更新等功能。
那么為何要使用插件化技術,它有何優勢,能給我們帶來什么樣好處,這里簡單列舉了以下幾點:
讓用戶不用重新安裝 APK 就能升級應用功能,減少發版本頻率,增加用戶體驗。
提供一種快速修復線上 BUG 和更新的能力。
按需加載不同的模塊,實現靈活的功能配置,減少服務器對舊版本接口兼容壓力。
模塊化、解耦合、並行開發、 65535 問題。
