資料介紹
軟件簡介
Shadow是一個騰訊自主研發的Android插件框架,經過線上億級用戶量檢驗。 Shadow不僅開源分享了插件技術的關鍵代碼,還完整的分享了上線部署所需要的所有設計。
與市面上其他插件框架相比,Shadow主要具有以下特點:
- 復用獨立安裝App的源碼:插件App的源碼原本就是可以正常安裝運行的。
- 零反射無Hack實現插件技術:從理論上就已經確定無需對任何系統做兼容開發,更無任何隱藏API調用,和Google限制非公開SDK接口訪問的策略完全不沖突。
- 全動態插件框架:一次性實現完美的插件框架很難,但Shadow將這些實現全部動態化起來,使插件框架的代碼成為了插件的一部分。插件的迭代不再受宿主打包了舊版本插件框架所限制。
- 宿主增量極小:得益于全動態實現,真正合入宿主程序的代碼量極小(15KB,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模型框架研究 9次下載
- KICAD插件使用說明書 8次下載
- TYPE C24PIN雙排插件原理圖 30次下載
- 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插件的框架 934次閱讀
- qiling框架和AFLplusplus安裝 2040次閱讀
- 騰訊開源的前端框架介紹 2196次閱讀
- 使用platformio平臺和Arduino框架開發STM32G0 3919次閱讀
- Android中注入型漏洞基礎理論總結 1083次閱讀
- 利用Xposed去hook住Android系統框架層函數去脫殼 4200次閱讀
- 干貨:如何構建一個JavaScript插件系統(附源碼) 3094次閱讀
- 基于Android操作系統實現車載人機界面應用程序的設計 2895次閱讀
- dfrobot面包板實驗插件LED插件包簡介 1340次閱讀
- 最常用的Maven插件有哪些詳細資料介紹 3768次閱讀
- Shadow Art: 頌揚中國皮影戲藝術的 AI 實驗 5539次閱讀
- GSLAM:一套通用的SLAM框架與基準 8625次閱讀
- KASAN是如何實現檢測的?如何根據shadow memory的值判斷內存訪問操作是否valid? 9589次閱讀
- 電子接插件電鍍技術 3566次閱讀
- jquery插件寫法及用法(jQuery插件開發全解析) 1w次閱讀
下載排行
本周
- 1涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 2錦銳科技CA51F2 SDK開發包
- 24.06 MB | 29次下載 | 1 積分
- 3錦銳CA51F005 SDK開發包
- 19.47 MB | 3次下載 | 1 積分
- 4蘋果iphone 11電路原理圖
- 4.98 MB | 3次下載 | 2 積分
- 5基礎模擬電子電路
- 3.80 MB | 3次下載 | 1 積分
- 6RA-Eco-RA6M4-100PIN-V1.0開發板資料
- 34.89 MB | 1次下載 | 免費
- 7STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊
- 3.32 MB | 1次下載 | 免費
- 8聯想A820t手機維修圖紙包括主板原理圖 尾板原理圖 點位圖
- 0.62 MB | 次下載 | 5 積分
本月
- 1AI智能眼鏡產業鏈分析
- 4.43 MB | 383次下載 | 免費
- 2蘇泊爾電磁爐線路的電路原理圖資料合集
- 2.02 MB | 296次下載 | 5 積分
- 3貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 94次下載 | 1 積分
- 4長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
- 0.46 MB | 91次下載 | 5 積分
- 5涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 6錦銳科技CA51F2 SDK開發包
- 24.06 MB | 29次下載 | 1 積分
- 7AO4803A雙P通道增強型場效應晶體管的數據手冊
- 0.11 MB | 28次下載 | 2 積分
- 8長虹液晶彩電LS29機芯的技術資料說明
- 3.42 MB | 16次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191388次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論