能不能给个集成Small插件化的最佳实践? 老项目其实并不老,也就大半年历史,100K+ java代码量,已经用了multidex。 主要有这几个问题: 老项目代码应该放在宿主App,还是放在插件App里面? 如何把用到第三方库拆分出来,放在lib里面吗?lib的dex是如何被app使用的? 百度地图SDK等是否可以做成插件lib?
Activity
Carlos2927 commentedon Jul 9, 2016
@galenlin 老项目集成small插件确实是个头疼的问题,有没有好的建议
galenlin commentedon Jul 9, 2016
@offbye, @Carlos2927
基本原则
宿主中不要放业务逻辑。只做加载插件以及调起主插件的操作。
重构步骤
1. 拆
lib.*
- 公共模块插件lib.*
插件模块,包括统计、地图、网络、图片等库。lib.utils
插件lib.style
插件2. 拆
app.*
- 业务模块插件app.*
模块,他们可以依赖lib.*
模块,显示调用lib.*
中的各个APIapp.main
主插件3. 下沉宿主 - 宿主分身模块
宿主分身模块要求以
app+*
格式命名,他们将被宿主、lib.*
、app.*
模块自动依赖并允许这些模块透明地访问自己的代码或者资源。需要注意的是,分身模块最终是并入到宿主的而非插件,建议使用分身的情形有:Sample示例
JuanbingTeam commentedon Jul 22, 2016
“宿主工程不能有任何依赖lib的动作。”
这个让我查了好久,共勉!
wangjiujiu commentedon Oct 23, 2017
如果要加入百度地图功能,是要将百度地图的sdk放入宿主中吗?