一、概述
组件化开发优点多多,我也不多讲。但怎么样去搭建一个组件化的项目?下面就带大家一步步的集成,少走点弯路。
二、创建组件化项目
1.首先创建项目,项目结构如下:
app关联lib-main、lib-personal 两个模块
模块 lib-main、lib-personal 关联lib-core
模块 lib-core 关联lib-base模块。
二、集成阿里的ARouter
- 阿里GitHub的ARouter
-
集成ARouter的顺序:
2.1 在lib-base模块build.gradle文件关联阿里的API库:compile 'com.alibaba:arouter-api:1.3.1'
2.2 在app、lib-main、lib-personal 三个模块的build.gradle文件加上编辑生成代码的依赖,如下图:
2.3 在app项目里面的build.gradle文件添加组件:apply plugin: 'com.alibaba.arouter'
2.4 在整个项目最外面的build.gradle添加:classpath "com.alibaba:arouter-register:1.0.2"
三、在Application里初始化ARouter
ARouter.init(this); // 尽可能早,推荐在Application中初始化
四、在Activity上添加注解
@Route(path = "/app/main/activity")
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void home(View view){
ARouter.getInstance().build("/main/home/activity").navigation();
}
public void login(View view){
ARouter.getInstance().build("/personal/login/activity").navigation();
}
}
五、测试ARouter
ARouter.getInstance().build("/personal/login/activity").navigation();
六、特别注意
ARouter允许一个module中存在多个分组,但是不允许多个module中存在相同的分组,会导致映射文件冲突。意思就是说不同的module第一个路径要不一样,比如:path = "/app/main/activity" 和path="/personal/login/activity" 这两个路径是不同的module,如果都以/app或者/personal开头是不行的。
七、关于模块间数据的交互
1. 小数据,个人推荐用GSON转成Json字符串进行交互。
2. 大数据,可以参考ARouter的开发文档,上面有作介绍。