xPlugin Android 消息化插件框架开源项目

我要开发同款
匿名用户2020年07月24日
67阅读
开发技术Java
所属分类AndroidUI组件、手机/移动开发、Android UI 组件
授权协议Apache

作品详情

一.介绍Android消息化插件框架 利用消息最大化解耦,使插件在启动时可异步加载,提高应用启动效率.目前所有接口通过AndroidAPI[19,30]各版本兼容测试.

特性:资源共享:可指定RuntimeModule,其他Module可使用其提供的类型和资源.资源隔离:每个插件模块尽量使用自己内部的类型和资源,避免类型和资源冲突问题.消息通信:模块间通过消息通信实现相互调用,最大化的解耦,延迟加载依赖,在模块被调用时加载(可设置自动异步加载依赖模块).接近原生:接近原生方式使用系统API,部分限制及解决方法参考如下信息.

限制:

Activity:不支持外部应用直接启动,如有需要建议在宿主中注册或实现自定义Activity进行跳转.Service:不支持外部应用直接启动,使用场景有限,更新不频繁,如有需要建议在宿主中注册.Broadcast:使用动态注册实现,需要应用处于运行状态,如需实现静态注册建议在宿主中注册.ContentProvider:不支持外部应用直接启动,如有需要建议在宿主中注册.系统进程资源问题:Notification等需要系统进程加载应用内资源的情况,建议由应用包装包接口供插件使用.overridePendingTransition动画资源问题:类似系统进程资源问题,但可以在宿主中添加同名资源,或通过ActivityHelper#registerOverridePendingTransitionAnimId设置映射关系,框架将自动处理加载过程.二.软件架构

注意:Demo工程中main模块编译完成后会在runtime目录输出其他Module依赖的资源文件,使得其他Module可以使用RuntimeModule提供的类型和资源.

三.常用接口PluginRuntime:插件初始化入口类,在Application初始化时使用.Installer:插件安装及加载的工具类,从这里可以获取已安装和已加载的插件的信息.PluginMsg:插件消息,插件之间通信.PluginEntry:消息注册的入口.Plugin:宿主(Host)和子模块(Module)的父类,通过Plugin.getPlugin(插件中的类型或其实例)可以获取对应插件的信息.

更多信息见: https://gitee.com/juefeng_com/xPlugin

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论