项目中使用多模块开发可以有助于各个功能模块分开,方便开发人员的开发和维护。
这篇文章简要介绍下自己摸索的多模块开发的心得。
首先新建一个Project,我的项目名称是:MutipleModule。这里的步骤大家应该都知道,所以不多说。项目结构截图如下:
其次点击项目右键,选择New—>Module
然后会弹出一个选择“添加哪一种类型的Module”的界面,这里我们选择Android Library,然后设置自己Module的名称以及包名等信息,这里我的module名称是:libraryone。
建好Module后项目结构如下:
注意还有最重要的一步就是打开项目的Projuct Structure界面:
选中我们的主Module,选中Dependencies Tab项,点击“+”号,选择Module Dependency。这样添加依赖后在不同模块之间相互引用可以自动添加import语句等。
接着会弹出如下界面,选择我们刚才建的Module。(实际开发中如果有多个Module,则根据项目的实际情况选择自己需要的Module即可)
上面的步骤操作完成后在主Module的build.gradle会看到下面的语句:
当然如果你操作熟练也可以直接在主Module的build.gradle文件中直接添加这行语句。
至此所有的准备工作完成了,你可以直接在不同的模块间相互应用。在本文中是使用主Module的MainActivity打开libraryone模块的FirstActivity界面。简单贴出代码如下:
MainActivity:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
findViewById(R.id.btn_start_module).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,FirstActivity.class);
startActivity(intent);
}
}
);
}
}
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btn_start_module"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击启动第二个模块的!"
android:layout_centerInParent="true"/>
</RelativeLayout>
FirstActivity:
public class FirstActivity extends AppCompatActivity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
}
}
activity_first:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第二个模块!"
android:layout_centerInParent="true"/>
</RelativeLayout>
运行程序启动App后点击MainActivity(主Module)界面的按钮即可打开FirstActivity(libraryone Module)。