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