1. 代理(ProxyActivity)
做法:宿主声明一个activity,并实现相关的方法,方法内部回调真实activity的逻辑
优点:
只申请一个actiivty
插件activity开发无痛,使用无痛
弊端:
对于没有在宿主activity中声明过的方法就不能回调
2. 动态生成activity
做法:宿主声明一个固定名称的activity,但宿主不需要包含activity,在插件中加载一个activity时通过动态代码生成一个与声明activity同名的类,并继承需要调起的activity
优点:
只申请一个activity
插件activity与一般无异
activity有新增方法不需要修改壳部分
弊端:
在运行时才生成activity,可能会慢(或许可以改成生成插件时就生成 ?)
需要替换类加载器
插件内存在多个activity时替换不了