组件化App配置一览
- 项目根目录gradle.properties配置:
IsBuildModule=false
build.gradle文件配置
buildTypes {
debug {
buildConfigField "String", "ENV", "\"debug\""
signingConfig signingConfigs.debug
}
release {
buildConfigField "String", "ENV", "\"release\""
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
//需要加上该参数否则会提示debug not found
publishNonDefault true
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:25.3.1'
//router
compile 'com.github.mzule.activityrouter:activityrouter:1.2.2'
}
resourcePrefix "base_"
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
debugCompile project(path: ':Library', configuration: 'debug')
releaseCompile project(path: ':Library', configuration: 'release')
annotationProcessor 'com.github.mzule.activityrouter:compiler:1.1.7'
}
if (IsBuildModule.toBoolean()) {
apply plugin: 'com.android.application'
} else {
apply plugin: 'com.android.library'
}
sourceSets {
main {
if (IsBuildModule.toBoolean()) {
manifest.srcFile 'src/main/debug/AndroidManifest.xml'
} else {
manifest.srcFile 'src/main/release/AndroidManifest.xml'
}
}
}
resourcePrefix "modulea_"
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':BaseModule')
annotationProcessor 'com.github.mzule.activityrouter:compiler:1.1.7'
}
Module类创建
@Module("app")
public class AppModule {
}
@Module("library")
public class Library {
}
@Module("baseModule")
public class BaseModule {
}
@Module("moduleA")
public class ModuleA {
}
@Modules({"app", "moduleA"})
public class CommonApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
}
}
- 给使用到的Activity类添加别名(可传值),用于Routers寻址
@Router("AAA")
public class TestA extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.modulea_testa);
}
}
@Router("AAA/:id/:title")
public class TestA extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.modulea_testa);
}
}
主项目下AndroidManifest.xml配置
- 配置RouterActivity,common为自定义标识
<activity
android:name="com.github.mzule.activityrouter.router.RouterActivity"
android:theme="@android:style/Theme.NoDisplay">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="common" />
</intent-filter>
</activity>
Routers.open(context, "common://AAA");
Routers.open(context, "common://AAA/13/这是标题");