近期疫情蔓延,現在大家一聽“宿主”就感覺瘮得慌吧,沒錯,我們就是病毒可能的宿主,但是在移動開發領域,有一個“宿主”是我們經常會提及的,那就是支援外掛的app主體。
隨著Android的發展,國內一線企業的專案模組越來越多,使用者體驗要求也越來越高,想實現小步快跑、快速迭代的目的越來越難,還有65535,應用之間的互相呼叫等等問題,從而催生了外掛化技術的產生。
2012年外掛化概念被提出,到2016年的時候,外掛化技術百家爭鳴,被一線大廠廣泛使用。外掛化技術幾乎引領了Android技術的進步!
近些年,一線網際網路大廠幾乎對移動網際網路形成了壟斷,app的功能越來越多,比如下面這些app(美團、支付寶等):
每個app都集成了許多功能入口,美團上有“美食”、“電影”、“外賣”、“打車”等,每個入口其實都是一個app,只不過被整合到這些入口裡了。如果沒有外掛化技術,美團、淘寶這些app會有多大?幾個G都有可能!
這些大型app是如何把第三方app作為外掛整合到自己的app裡的?
隨便一個app就能隨意呼叫其他app嗎?
當然不能!
外掛化技術最初源於免安裝執行apk的想法,這個免安裝的apk可以理解為外掛,而支援外掛的app 我們一般叫宿主。支援外掛化的app可以在執行時載入和執行外掛,這樣便可以將app中一些功能獨立的模組寫成獨立的外掛,一方面減小了安裝包的大小,另一方面可以實現app功能的動態擴充套件。想要實現外掛化,主要是解決下面三個問題:
1、外掛中程式碼的載入和與主工程的互相呼叫
2、外掛中資源的載入和與主工程的互相訪問
3、四大元件生命週期的管理
外掛化技術涉及得非常廣泛,其中最核心的就是Android的類載入機制和反射機制。
雖然現在很多公司開源了外掛化框架,但還有非常多的開發者對外掛化一知半解。
在這我也分享一份自己收錄整理的Android學習PDF+架構視訊+面試文件+原始碼筆記,還有高階架構技術進階腦圖、Android開發面試專題資料,高階進階架構資料這些都是我閒暇還會反覆翻閱的精品資料。在腦圖中,每個知識點專題都配有相對應的實戰專案,可以有效的幫助大家掌握知識點。
總之也是在這裡幫助大家學習提升進階,也節省大家在網上搜索資料的時間來學習,也可以分享給身邊好友一起學習
如果你有需要的話,可以點贊+評論+轉發,關注我,然後私信我【進階】我發給你