后續(xù)嘗試都會持續(xù)更新和關(guān)注:
Atlas猿推、VirtualAPK、RePlugin三者的體驗(yàn)感受 - 插件化對比【暫無Shadow】
https://blog.csdn.net/u013254166/article/details/80431288 - VirtualApk詳細(xì)過程捌肴,對比Atlas蹬叭、RePlugin
Qihoo360/RePlugin - 考察了現(xiàn)在仍在更新的幾個(gè)插件化方案與項(xiàng)目切合度做出的決定藕咏,主要原因是它僅Hook了一個(gè)點(diǎn)、并且支持多進(jìn)程具垫,參考 http://www.reibang.com/p/d43e1fb426f3 概念介紹侈离。
參考官方走起:
-主程序(主模塊App)接入指南> https://github.com/Qihoo360/RePlugin/wiki/主程序接入指南Gradle等問題> RePlugin 初體驗(yàn)
-官方插件(新建一個(gè)Application's module或者單獨(dú)一個(gè)工程)接入指南> https://github.com/Qihoo360/RePlugin/wiki/插件接入指南
-插件創(chuàng)建接入詳細(xì)教程> https://github.com/Qihoo360/RePlugin/wiki/詳細(xì)教程
--內(nèi)置插件方式(可以搶先嘗試,簡單些) https://github.com/Qihoo360/RePlugin/wiki/插件的管理#內(nèi)置插件 參考:https://blog.csdn.net/qq_35159110/article/details/81481655
--外置插件方式 https://github.com/Qihoo360/RePlugin/wiki/插件的管理#外置插件 參考: 360插件化方案RePlugin學(xué)習(xí)筆記-外置插件
--關(guān)于被惡意下發(fā)的apk侵害還是需要考慮插件安全校驗(yàn)的https://github.com/Qihoo360/RePlugin/wiki/插件的管理#安全與簽名校驗(yàn)
- 個(gè)人練習(xí)地址 NetNut/DocPro - 主模塊app和插件Application模塊在一個(gè)工程筝蚕,方便測試; 多人協(xié)同是否需要多個(gè)工程卦碾,看情況吧,效率高起宽,方便管理就好洲胖!
- (注意:測試發(fā)現(xiàn)如果安裝過插件,即使你刪除了assets下面apk或者jar坯沪,下次重新運(yùn)行還是會加載插件的绿映,應(yīng)該是有緩存的,具體文檔沒特別細(xì)看腐晾!注意就好....)叉弦。另外,測試有問題藻糖,可能還需你clean一下工程之類的淹冰。坑總歸還是有的....
- 另外我們一般都是外置插件的方式,需要我們考慮apk的更新(是否是新版本更新巨柒,需要校驗(yàn)是否是正確的apk等細(xì)節(jié)樱拴。如果打算采用這個(gè)框架,建議相關(guān)文檔都過一遍洋满,心里有個(gè)小底要好些晶乔。)
- 界面Theme配置就是常規(guī)就行,插件和宿主都是一樣.
<activity
android:name=".MainActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
.......
</activity>
- 上一篇練習(xí)的代理方式的插件牺勾,各種問題正罢,好煩呀...(#.#)
- 先這樣認(rèn)識下吧。其他的還需要自己多加練習(xí)和看文檔妮....到后面的后面的后面的后面還需要你去了解人家的機(jī)制源碼!!!
Tencent/Shadow - 可以持續(xù)關(guān)注
didi/VirtualAPK - com.didi.virtualapk:core:0.9.8 (Android 9.0 supported, RePlugin also)
***參考官方走起: ***didi/VirtualAPK
- 官方問題總結(jié)禽最,不一定有你需要的答案 https://github.com/didi/VirtualAPK/wiki/常見問題解答
實(shí)踐工程 NetNut/DocPro - 配置下來腺怯,感覺和那個(gè)360的Replugin很像,方式都差不多川无。不過360的庫是拆分了插件和宿主分別使用的呛占。而didi都在宿主配置;另外就是使用思路都類似懦趋。didi一開始會有坑:
我的主要坑:
1. 插件布局沒有一個(gè)id晾虑,導(dǎo)致打包c(diǎn)an't find id的錯(cuò)誤
2. gradle版本太高的問題
3.插件編譯時(shí)buildToolsVersion不支持28+的問題
4. 有時(shí)候報(bào)Can't delete ...之類的紅色錯(cuò)誤,記得rebuild一下。如果還是有問題帜篇,就關(guān)閉AS糙捺,然后重啟之后可能還需要rebuild一下工程
4.x. 插件的布局文件,界面文件的相關(guān)命名不要和宿主相同笙隙,不然點(diǎn)擊跳轉(zhuǎn)頁面洪灯,總是發(fā)現(xiàn)還是當(dāng)前宿主的頁面,包括后續(xù)的空間id竟痰,最好都安裝標(biāo)準(zhǔn)格式签钩,增加插件前綴名稱:
5.注意需要采用如下方式編譯插件 - 具體后面再看看
- 注意需要簽名打包才行 - 還真是各種麻煩呀!
- 注意不要多次加載插件坏快,不然報(bào)錯(cuò)
// 判斷plugin是否已經(jīng)加載
if (null == PluginManager.getInstance(MainActivity.this).getLoadedPlugin("com.skl.virtualapkpluginapk")) {
PluginManager.getInstance(MainActivity.this).loadPlugin(new File(apkPath));
}
- 有些錯(cuò)誤如果沒有人遇到铅檩,可以網(wǎng)上搜下,比如gradle版本之類的問題莽鸿,可以針對性的調(diào)試昧旨,或者坑就沒了
- 附上幾個(gè)相關(guān)的坑的記錄鏈接,有需要的或許里面有答案 - 同樣祥得,如果打算采用兔沃,就要基本上通讀一下,避免后續(xù)遇到的一系列問題可以快點(diǎn)的找到解決入口级及!
插件化之VirtualApk實(shí)戰(zhàn)一:項(xiàng)目配置
https://blog.csdn.net/a31081314/article/details/82661009
alibaba/atlas - 動態(tài)組件化框架粘拾,參考 阿里Atlas淘寶動態(tài)組件化框架詳細(xì)攻略
wequick/Small - 可以學(xué)習(xí)鴨
待續(xù).....
說明:入門,基礎(chǔ)知識创千,自己嘗試,三方插件使用等等入偷。都是為了后續(xù)的學(xué)習(xí)添加一份動力追驴。每個(gè)人都有自己的進(jìn)階路線,還需努力...一起堅(jiān)持疏之!