组件化开发:优点嘛,项目过大时便于管理;
1、在根目录的gradle.properties文件下添加 isBuildModule=false;
使用isBuildModule来控制这个是Library还是独立的APP;
2、创建一个新的Module,在其build.gradle中添加:
if (isBuildModule.toBoolean()) {
apply plugin: 'com.android.application'
} else {
apply plugin: 'com.android.library'
}
3、新的Module创建两套Manifest文件,两套Manifest分别用于APP模式和Library模式;
也是在build.gradle文件中添加:
sourceSets {
main{
//jni库统一放在libs目录下
// jniLibs.srcDir = ['libs']
if (isBuildModule.toBoolean()){
//单独运行
manifest.srcFile 'src/main/alone/AndroidManifest.xml'
}
else {
//合并到宿主中
manifest.srcFile 'src/main/AndroidManifest.xml'
resources{
//正式版本时.剔除debug文件夹下的所有调式文件
exclude 'src/debug/*'
}
}
}
}
debug下的Manifest:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/AppTheme">
<activity android:name=".HomeActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
releaes下的Manifest:
<application>
<activity android:name=".HomeActivity"></activity>
</application>
这个是我的目录结构:
扫描二维码关注公众号,回复:
12651188 查看本文章

好了,这样就基本完成模块化开发的架子了;在某个模块调试时只需要把gradle.properties文件下的isBuildModule=true就行了,运行的时候应该是这样: