资料介绍
软件简介
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模型框架研究 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次下载 | 免费
评论
查看更多