Andorid Studio 模块化开发相关配置

下面以宿主APP模块和Uer_Module模块为例:

第一步:在项目根目录gradle.properties配置文件中添加如下代码
isNeedUserModule=true#isNeedUserModule=false
第二步 在user_module中的build.gradle文件中加入了如下代码来控制此库是library还是APP:
if (!isNeedUserModule.toBoolean()) {apply plugin: 'com.android.application'} else {apply plugin: 'com.android.library'}
第三步 在user_module中的build.gradle文件中加入了如下代码来指定AndroidManifest.xml文件路径:
android{ sourceSets { main { if (!isNeedUserModule.toBoolean()) { manifest.srcFile 'src/main/app/AndroidManifest.xml' } else { manifest.srcFile 'src/main/module/AndroidManifest.xml' } }}}

其中 app中的AndroidManifest 内容如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.finddreams.module_user"><application> <activity android:name=".LoginActivity" android:label="@string/app_name" android:theme="@style/AppTheme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity></application>

module目录下的AndroidManifest 如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.finddreams.module_user" ><application> <activity android:name=".LoginActivity"></activity></application></manifest>
第四步 在user_module中的build.gradle文件中加入了如下代码来为该模块的下的资源自动添加前缀 避免模块之间资源命名重复:
resourcePrefix "module_user"
第五步 在宿主app中的build.gradle文件中加入了如下代码来动态引入user_module模块
 if (isNeedUserModule.toBoolean()) {compile project(':user_module')}
第六步 配置页面跳转路由

目前成熟的开源路由框架有:

美团的WMRouter

阿里的ARouter

可参考 《阿里路由框架ARouter的使用步骤》