博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
插件化设计一
阅读量:6581 次
发布时间:2019-06-24

本文共 1474 字,大约阅读时间需要 4 分钟。

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:\AndroidProject\Architect_PluginB_Simple\app\build\outputs\apk\app-debug.apk /storage/emulated/0/DynamicLoadHost //5.0记得开启读写权限

转载地址:http://ocino.baihongyu.com/

你可能感兴趣的文章
图片转流
查看>>
ubunto应用软件
查看>>
HTML 标签说明
查看>>
锋利的jQuery-2--判断jQuery获取到的对象是否存在$().length
查看>>
linux 查询系统版本命令、查询端口号是否被占用命令
查看>>
java笔记八:IO流之字符流与字符缓冲流
查看>>
Docker 命令收集
查看>>
myeclipse注册码生成器
查看>>
怎样快速学好PHP技术之PHP学习方法总结
查看>>
iOS App间相互跳转漫谈 part2
查看>>
Java CAS 原理剖析
查看>>
ISCC2014 writeup
查看>>
Kotlin 知识梳理(1) Kotlin 基础
查看>>
js正则表达式
查看>>
iOS socket通信,编解码,浮点型数据解析
查看>>
手把手教你如何新建scrapy爬虫框架的第一个项目(下)
查看>>
前端基础15:JS作用域基础
查看>>
Linux系统相关命令
查看>>
BATJ面试必会之 Spring 篇(一)
查看>>
表驱动法
查看>>