我是靠谱客的博主 轻松夕阳,最近开发中收集的这篇文章主要介绍插件化设计一,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.插件化开发原理? 新的解决方案: 第一点:不需要安装APK文件,直接可以使用其中的资源 第二点:插件APK资源是在主程序运行中获取的(类库强大) --- 运行时可以干这些事情

2.插件化架构设计? 假设:登录设计(LoginActivity) 代理模式 - 静态代理(选择性监听我想要的方法)


看框架:看包结构和类结构
角色划分:
目标接口:自定义目标接口(IPlugin)
目标对象:具体的Activity(开发者定义的Activity,我们需要提供基类:PluginActivity、PluginFragmentActivity、PluginFragment、PluginService、PluginReceiver、PluginContentProvider......)
代理对象:需要自定义(ProxyPluginActivity、ProxyPluginFragmentActivity、ProxyPluginService等等)
演示效果:基于DL(Dynamic Loading)
第一步:加载插件程序
第二步:启动插件程序
第三步:通过代理类实现
PluginProxyActivity
代理对象需要持有目标对象的引用
目的:就是为了获取目标对象Activity中资源,拿到资源之后,再将这些资源显示到代理对象上面
复制代码

3.Activity、FragmentActivity实现 定义插件化架构设计: 第一步:定义目标接口 第二步:定义目标对象 第三步:定义代理对象 第四步:实现目标对象


目标对象 - 插件程序的生命周期方法,都是由代理对象进行管理和控制
复制代码

注意:目标对象的生命周期的方法不要回调代理对象的生命周期方法,如果回调,那么会出现回调死循环
第五步:实现代理对象
代理对象的生命周期管理 — 在清单文件中配置,有系统帮助我们管理
ProxyPluginActivity代理对象的attach方法的执行流程
1、主程序调用pluginManager.startPluginActivity启动Activity
2、系统会自动调用代理对象的onCreate方法
3、在代理对象(ProxyPluginActivity)的onCreate方法中调用impl.onCreate(getIntent());
进行初始化目标对象(也就是管理具体的插件程序)
4、在ProxyImpl类中启动插件launchTargetActivity
5、在launchTargetActivity方法中调用attach方法,绑定代理对象的目标对象
复制代码

因为我们代理Activity(ProxyPluginActivity)修饰符不要写成了抽象类,否则 宿主主程序引用出错

adb push D:AndroidProjectArchitect_PluginB_Simpleappbuildoutputsapkapp-debug.apk /storage/emulated/0/DynamicLoadHost //5.0记得开启读写权限

最后

以上就是轻松夕阳为你收集整理的插件化设计一的全部内容,希望文章能够帮你解决插件化设计一所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部