別跟我說你對這個技術還不熟!

語言: CN / TW / HK

外掛化8歲了……

些年,一線網際網路大廠幾乎對移動網際網路形成了壟斷,國內各大網際網路App無一不有自己的外掛化框架。 隨著外掛化 技術的普及,只要你去大型網際網路公司面試 ,都會跟你聊聊外掛化。

外掛化技術是什麼?

開啟你的美團,你平時一般只點外賣對吧?但是 “美食”、“電影”、“外賣”、“打車” 等,每個入口其實都是一個app,只不過被整合到這裡了,這個就是外掛化。

外掛化技術,主要應用在新聞、電商、閱讀、出行、影片、音樂等領域。

外掛化技術發展史

今天我們就來梳理一下外掛化技術的發展脈絡。 (如有錯誤請指正哈)

外掛化技術早在2012年就出現了,最初只支援Activity的動態載入發展,現在已經可以完全模擬app運行了。

2012年7月27日,大眾點評屠毅敏,釋出 AndroidDynamicLoader 第一個Android外掛化開源專案;

2013 年, 23Code 出現,可以自定義控制元件動態下載; Android外掛化技術正式誕生;

2013 3 月,阿里,淘寶的 Atlas 外掛化框架;

2014 3 30 日,任玉剛開源 Android 外掛化專案 dynamic-load-apk

2014年5月,張濤,外掛化框架CJFrameForAndroid;

2014 11 月, houkx GitHub 上釋出了外掛化專案 android-pluginmgr

2014 12 月, AndroidStudio1.0 版本出現;

2015 年, Lody 釋出外掛化專案 Direct- Load-apk

2015 5 月, limpoxe 釋出外掛化框架 Android- Plugin-Framework

2015 7 月, kaedea 釋出外掛化框架 android- dynamical-loading

2015 8 27 日,張勇, DroidPlugin 問世; 這個框架的能把任意的 App 都載入到宿主裡面去。你可以基於這個框架寫一個宿主 App ,然後就可以把別人寫的 App 都當作外掛來載入。

2015 5 月, OpenAtlas 釋出,後改名為 ACDD

2015 10 月,攜程開源外掛化框架 DynamicAPK

2015 12 月底,林光亮的 Small 框架釋出;

2015年,Android外掛化技術可以說是蓬勃發展,百家爭鳴,很多外掛化框架應運而生。同年,Android熱修復技術開始熱門起來……

2016 年起,國內各大網際網路公司陸續開源了自己研發的外掛化框架:

2016 8 月,掌閱推出 Zeus

2017 3 月,阿里推出 Atlas

2017 6 26 日, 360 手機衛士的 RePlugin

2017 6 29 日,滴滴推出 VisualApk

……

外掛化demo展示(作者:小竇子)

我們為什麼要掌握外掛化?

外掛化可以說引領了Android技術的進步,是和原生系統對著幹的 “黑科技” ,因為涉及到的知識面非常的廣,需要對原始碼有深入的理解,所以也是面試官用來檢視應聘者技術功底的工具。

外掛化技術在國內已經是相對比較完善,而且也有比較廣泛的應用了,各種外掛化的開源框架也是層出不窮,但是完整的外掛化技術學習資料在網上還是很難找到的。

而據官方資料,85%安卓開發者不瞭解類載入流程,沒有掌握動態代理底層原理的更是高達96%!這些不懂的話,何談掌握外掛化技術?

要想完全明白外掛化,需要我們瞭解Android系統的底層實現,主要解決以下3個問題:

1、外掛中程式碼的載入和與主工程的互相呼叫;

2、外掛中資源的載入和與主工程的互相訪問;

3、四大元件生命週期的管理;

雖然現在很多公司開源了外掛化框架,但還有非常多的開發者對外掛化一知半解。所以我們特邀了Android資深專家Leo老師,為大家帶來這堂《外掛化技術》系列直播課,幫助大家快速對外掛化有個更深入的理解。線上實時答疑,有疑問,當場解決。

《深入理解360外掛化技術核心》

Leo老師:

多年Android開發專案經驗,騰訊戰略投資創業公司技術總監

專精領域: Android架構,效能優化,flutter混合開發等技術。

課程大綱

5.7

什麼是外掛化,如何載入外掛的類?

1.什麼是外掛化

2.什麼是雙親委託機制

3.如何實現外掛類的載入

4.擼碼實現呼叫外掛中的類

5.8

如何啟動另一個外掛的Activity?

1.Hook是什麼?

2.Activity的啟動流程原始碼分析

3.啟動未註冊Activity的思路分析

4.擼碼實現外掛的Activity的啟動

5.9

如何載入外掛的資源?

1.Resources和AssetManager的關係

2.資源載入流程的原始碼分析

3.擼碼實現外掛的資源載入

4.常見面試題的講解

附贈 Android架構進階 、影片資料

“外掛化,你掌握的怎麼樣?”