資料介紹
軟件簡介
Shadow是一個騰訊自主研發(fā)的Android插件框架,經(jīng)過線上億級用戶量檢驗(yàn)。 Shadow不僅開源分享了插件技術(shù)的關(guān)鍵代碼,還完整的分享了上線部署所需要的所有設(shè)計(jì)。
與市面上其他插件框架相比,Shadow主要具有以下特點(diǎn):
- 復(fù)用獨(dú)立安裝App的源碼:插件App的源碼原本就是可以正常安裝運(yùn)行的。
- 零反射無Hack實(shí)現(xiàn)插件技術(shù):從理論上就已經(jīng)確定無需對任何系統(tǒng)做兼容開發(fā),更無任何隱藏API調(diào)用,和Google限制非公開SDK接口訪問的策略完全不沖突。
- 全動態(tài)插件框架:一次性實(shí)現(xiàn)完美的插件框架很難,但Shadow將這些實(shí)現(xiàn)全部動態(tài)化起來,使插件框架的代碼成為了插件的一部分。插件的迭代不再受宿主打包了舊版本插件框架所限制。
- 宿主增量極小:得益于全動態(tài)實(shí)現(xiàn),真正合入宿主程序的代碼量極小(15KB,160方法數(shù)左右)。
- Kotlin實(shí)現(xiàn):core.loader,core.transform核心代碼完全用Kotlin實(shí)現(xiàn),代碼簡潔易維護(hù)。
支持特性
- 四大組件
- Fragment(代碼添加和Xml添加)
- DataBinding(無需特別支持,但已驗(yàn)證可正常工作)
- 跨進(jìn)程使用插件Service
- 自定義Theme
- 插件訪問宿主類
- So加載
- 分段加載插件(多Apk分別加載或多Apk以此依賴加載)
- 一個Activity中加載多個Apk中的View
- 等等……
編譯與開發(fā)環(huán)境
環(huán)境準(zhǔn)備
第一次clone Shadow的代碼到本地后,建議先在命令行編譯一次。
-
在編譯前,必須設(shè)置
ANDROID_HOME
環(huán)境變量。 -
在編譯時,必須使用
gradlew
腳本,以保證采用了項(xiàng)目配置的Gradle版本。
在命令行測試編譯時可以執(zhí)行這個任務(wù):
./gradlew build
如果沒有出錯,再嘗試用Android Studio打開工程。
- 必須使用3.4或更高版本的Android Studio打開工程。(業(yè)務(wù)插件開發(fā)時沒有限制)
- 必須關(guān)閉Android Studio的Instant Run功能。
然后就可以在IDE中選擇sample-host
模塊直接運(yùn)行了。
?
Shadow的所有代碼都位于projects
目錄下的3個目錄,分別是:
-
sdk
包含SDK的所有代碼 -
test
包含SDK的自動化測試代碼 -
sample
包含演示代碼
其中sample
應(yīng)該是大家體驗(yàn)Shadow的最佳環(huán)境。 詳見sample
目錄中的README介紹。
自己寫的測試代碼出錯?
以我們多年的插件環(huán)境下業(yè)務(wù)開發(fā)經(jīng)驗(yàn),插件框架是不可能一步到位實(shí)現(xiàn)完美的。 因此,我們相信大部分業(yè)務(wù)在接入時都是需要一定的二次開發(fā)工作。 Shadow現(xiàn)有的代碼滿足的是我們自己的業(yè)務(wù)現(xiàn)在的需求。得益于全動態(tài)的設(shè)計(jì), 插件框架和插件本身都是動態(tài)發(fā)布的,插件包里既有插件代碼也有插件框架代碼, 所以可以根據(jù)新版本插件的需要同時開發(fā)插件框架。
例如,ShadowActivity沒有實(shí)現(xiàn)全所有Activity方法,你寫的測試代碼可能用到了, 就會出現(xiàn)Method Not Found錯誤,只需要在ShadowActivity中實(shí)現(xiàn)對應(yīng)方法就可以了。 大部分方法的實(shí)現(xiàn)都只是需要簡單的轉(zhuǎn)調(diào)就能工作正常。
如果遇到不會實(shí)現(xiàn)的功能,可以提Issue。最好附上測試代碼。
后續(xù)開發(fā)
- 原理與設(shè)計(jì)說明文檔
- 多插件支持的演示工程
- 自動化測試用例補(bǔ)充
- 開源包含下載能力的manager實(shí)現(xiàn)
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
- ChatGPT:AI模型框架研究 9次下載
- KICAD插件使用說明書 8次下載
- TYPE C24PIN雙排插件原理圖 30次下載
- 12*12插件觸控開關(guān)原理圖 4次下載
- 6*6紅柄插件觸控開關(guān)原理圖 7次下載
- 6*6防水插件觸控開關(guān)原理圖 11次下載
- 12*12防水插件觸控開關(guān)原理圖 11次下載
- 4.5*4.5插件觸控開關(guān)原理圖 9次下載
- 6*6插件觸控開關(guān)原理圖下載 6次下載
- Android Studio學(xué)習(xí)教程(電子書+源碼)資料下載 0次下載
- Unity3D插件——LitJson下載 0次下載
- android框架與應(yīng)用開發(fā)介紹 7次下載
- 基于微信支付、支付寶支付等第三方支付的Android框架 5次下載
- 基于Android的BATMAN協(xié)議應(yīng)用框架的研究 0次下載
- ANDROID開發(fā)關(guān)鍵技術(shù) 75次下載
- Rust構(gòu)建QEMU插件的框架 934次閱讀
- qiling框架和AFLplusplus安裝 2040次閱讀
- 騰訊開源的前端框架介紹 2196次閱讀
- 使用platformio平臺和Arduino框架開發(fā)STM32G0 3919次閱讀
- Android中注入型漏洞基礎(chǔ)理論總結(jié) 1083次閱讀
- 利用Xposed去hook住Android系統(tǒng)框架層函數(shù)去脫殼 4200次閱讀
- 干貨:如何構(gòu)建一個JavaScript插件系統(tǒng)(附源碼) 3094次閱讀
- 基于Android操作系統(tǒng)實(shí)現(xiàn)車載人機(jī)界面應(yīng)用程序的設(shè)計(jì) 2895次閱讀
- dfrobot面包板實(shí)驗(yàn)插件LED插件包簡介 1340次閱讀
- 最常用的Maven插件有哪些詳細(xì)資料介紹 3768次閱讀
- Shadow Art: 頌揚(yáng)中國皮影戲藝術(shù)的 AI 實(shí)驗(yàn) 5539次閱讀
- GSLAM:一套通用的SLAM框架與基準(zhǔn) 8625次閱讀
- KASAN是如何實(shí)現(xiàn)檢測的?如何根據(jù)shadow memory的值判斷內(nèi)存訪問操作是否valid? 9589次閱讀
- 電子接插件電鍍技術(shù) 3566次閱讀
- jquery插件寫法及用法(jQuery插件開發(fā)全解析) 1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論