在网上能搜索到的中文学习资料远没有现在这么丰富, 特别是 Dagger, 在网上能搜索到的文章甚至有很多讲的是 Square 的 Dagger1, 学习资料的匮乏加上 Dagger2 本身就是块硬骨头...组件化简单概括就是把一个功能完整的 App 或模块拆分成多个子模块, 每个子模块可以独立编译和运行, 也可以任意组合成另一个新的 App 或模块, 每个模块即不相互依赖但又可以相互交互, 遇到某些特殊情况甚至可以升级或者降级...(ARouter 要求在 URL 中使用 Json 参数传递自定义对象必须实现 SerializationService 接口)
Tips: 建议在 CommonService 中给每个需要提供服务的业务模块都建立一个单独的包...其实解决思路很简单, 无非就是在开发时让每个组件可以独立管理自己的生命周期, 在运行时又可以让每个组件的生命周期与宿主的生命周期进行合并 (在不修改或增加宿主代码的情况下完成)
参数, 比如组件在独立运行时需要其中的一个 Activity 配置了 作为入口, 而当组件集成到宿主中时