一、概述
組件化開(kāi)發(fā)優(yōu)點(diǎn)多多,我也不多講。但怎么樣去搭建一個(gè)組件化的項(xiàng)目?下面就帶大家一步步的集成,少走點(diǎn)彎路。
二、創(chuàng)建組件化項(xiàng)目
1.首先創(chuàng)建項(xiàng)目,項(xiàng)目結(jié)構(gòu)如下:
app關(guān)聯(lián)lib-main、lib-personal 兩個(gè)模塊
模塊 lib-main、lib-personal 關(guān)聯(lián)lib-core
模塊 lib-core 關(guān)聯(lián)lib-base模塊。

二、集成阿里的ARouter
- 阿里GitHub的ARouter
-
集成ARouter的順序:
2.1 在lib-base模塊build.gradle文件關(guān)聯(lián)阿里的API庫(kù):compile 'com.alibaba:arouter-api:1.3.1'
2.2 在app、lib-main、lib-personal 三個(gè)模塊的build.gradle文件加上編輯生成代碼的依賴(lài),如下圖:
編輯生成代碼的依賴(lài).png
2.3 在app項(xiàng)目里面的build.gradle文件添加組件:apply plugin: 'com.alibaba.arouter'
2.4 在整個(gè)項(xiàng)目最外面的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();
}
}
五、測(cè)試ARouter
ARouter.getInstance().build("/personal/login/activity").navigation();
六、特別注意
ARouter允許一個(gè)module中存在多個(gè)分組,但是不允許多個(gè)module中存在相同的分組,會(huì)導(dǎo)致映射文件沖突。意思就是說(shuō)不同的module第一個(gè)路徑要不一樣,比如:path = "/app/main/activity" 和path="/personal/login/activity" 這兩個(gè)路徑是不同的module,如果都以/app或者/personal開(kāi)頭是不行的。
七、關(guān)于模塊間數(shù)據(jù)的交互
1. 小數(shù)據(jù),個(gè)人推薦用GSON轉(zhuǎn)成Json字符串進(jìn)行交互。
2. 大數(shù)據(jù),可以參考ARouter的開(kāi)發(fā)文檔,上面有作介紹。
