Android 组件化中使用动态创建的作用是解耦;
1. 反射机制
反射有两个作用:1.反编译:.class->.java;2.通过反射机制访问java对象中的属性,方法,构造器等;
实现反射,实际上是得到Class对象
2. 动态创建fragment
- 开发中经常会用到activity+多fragment的场景;
- 正常使用activity引用fragment方式时是强引用(import包名),在组件化项目中,如果fragment是组件module中的,
activity是主module或其他module的, 就会造成耦合严重,当需要移除时也很麻烦,那么如何降低耦合呢, 这就可以通过上面说的反射实现;
使用反射会相对安全,也会降低耦合,但反射会造成一定的效率下降;
ARouter也提供了跨模块获取fragment对象的操作
- 使用跨模块获取Fragment非日常适合在单Activity+多fragment的app架构中使用,因为fragment划分模块作为入口的设计,使用ARouter的方式非常适应模块间解耦的要求;
- 当业务模块选用fragment的形式作为业务入口时,需要充分考虑模块间业务跳转的解耦性,以保证业务分离后不会造成app崩溃
3. 动态配置Application
- 开发中我们经常会遇到某些功能模块中需要一些初始化的操作,只能强引用到主module的application中,这种情况如何更好的解耦呢?