Component Initializer (组件初始化器)介绍
Android组件化架构中用于各个组件在Application启动时进行初始化操作的框架
组件初始化的各个方案对比
为什么要使用Component Initializer
1. 使用注解来标记Component类
@Component
public class Component implements IComponent {
@Override
public void init(Context context) {
}
}
相对于配置文件(xml,或者.MF),注解方式是最方便的
2. 可以配置组件的初始化依赖
有一种场景是组件A的初始化依赖于组件B先初始化完成,此时我们可以通过@Component注解的dependencies属性来配置这种依赖关系
@Component(
name = "ComponentA",
dependencies = {
"ComponentB"}
)
public class ComponentA implements IComponent {
@Override
public void init(Context context) {
}
}
我们的框架会保证ComponentB在ComponentA之前初始化
3. 不使用反射,效率高
我们是通过注入new ComponentA()代码来实现ComponentA类的初始化,不是通过反射,所以效率高
4. 使用简便
只需要一行代码
public class MyApplication extends Application {
@Override
public void onCreate() {
super.