Android-Plugin-Framework是一个Android插件化框架,用于通过动态加载的方式免安装运行插件apk
最新版本: 'com.github.limpoxe:Android-Plugin-Framework:0.0.70@aar'
此项目主要目标是为了运行非独立插件,而不是任意第三方app。
尽管此框架支持独立插件,但目标并不是为了支持任意三方app,不同于平行空间或应用分身之类的产品。 非独立插件相比任意三方app来说,可以预见到其使用了哪些系统api和特性,而且所有行为都是可以预测的。而任意三方app是不可预测的。 框架的做法是按需hook,即需要用到哪些系统特性和api,就对哪些特性和api提供支持。这种做法对开发非独立插件和二方独立插件而言完全足够。 目前已经添加了对常用特性和api的支持,如需使用的api还未支持请联系作者。
FEATURE
- 框架透明, 插件开发与普通apk开发无异,无约定约束
- 支持非独立插件和独立插件(非任意三方)
- 支持四大组件/Application/Fragment/Accessibility/LaunchMode/so
- 支持插件Theme/Style,宿主Theme/Style,轻松支持基于主题属性的皮肤切换
- 支持插件发送Notification/时在RemoteViews中携带插件中的资源(只支持5.x及以上, 且不支持miui8)
- 支持插件热更新:即在插件模块已经被唤起的情况先安装新版本插件,无需重启插件进程(前提是插件高度内敛,宿主
不主动
持有插件中的任何对象) - 支持全局服务:即插件向容器注册一个服务,其他所有插件已经宿主都获取并调用此服务
- 支持DataBinding(仅限独立插件)
- 支持插件WebView加载插件本地HTML文件
- 支持插件Fragment/View内嵌宿主Activity中
- 支持FileProvider
- 支持2.3-9.0</