美文网首页
组件化(一),项目搭建

组件化(一),项目搭建

作者: 火星局 | 来源:发表于2018-10-09 14:39 被阅读0次

文章参考
1.新建不包含activity的项目app
2.根据业务组件新建依赖包,空壳app组件以及公共组件依赖包

image.png

3.项目下的gradle.properties文件下配置开关

# 每次更改“isModule”的值后,需要点击 "Sync Project" 按钮
# isModule是“ false集成开发模式”和“true组件开发模式”的切换开关
#isModule=true
isModule=false

4.gradle中配置动态切换集成开发和组件开发的模式

//业务组件
if (isModule.toBoolean()) {
    apply plugin: 'com.android.application'
} else {
    apply plugin: 'com.android.library'
}

// app 永远是
apply plugin: 'com.android.application'
// 公共组件永远是
apply plugin: 'com.android.library'

5.gradle中配置 集成模式和组件模式访问的mainfest,组件开发时候的“登陆页面,引导页”等

 sourceSets {
            main {
                if (isModule.toBoolean()) {
                    manifest.srcFile 'src/main/module/AndroidManifest.xml'
                } else {
                    manifest.srcFile 'src/main/AndroidManifest.xml'
//                //集成开发模式下排除debug文件夹中的所有Java文件,包含的登陆页,引导页等
//                java {
//                    exclude 'debug/**'
//                }
                }
            }
        }

6.添加相互依赖

如app依赖
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation project(':common')
    implementation deps.multidex
    if (!isModule.toBoolean()) {
        implementation project(':module_mian')
        implementation project(':module_demo1')
        implementation project(':module_demo2')
        implementation project(':module_demo3')
    }
}

业务组件依赖公共组件
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation project(':common')
    annotationProcessor deps.aroutercompiler
}

7.混淆,只在app中混淆,方便管理其它业务组件的混淆
8.自定义config.gradle ,方便管理其它第三方以来。

def  deps = [:]
deps.compileSdkVersion = 26
deps.minSdkVersion = 15
deps.targetSdkVersion = 26
deps.appcompat ='com.android.support:appcompat-v7:26.1.0'
deps.testImplementation = 'junit:junit:4.12'
deps.androidTestImplementationrunner ='com.android.support.test:runner:1.0.2'
deps.androidTestImplementationespresso = 'com.android.support.test.espresso:espresso-core:3.0.2'
deps.arouterapi ='com.alibaba:arouter-api:1.4.0'
deps.aroutercompiler='com.alibaba:arouter-compiler:1.2.1'
deps.multidex = 'com.android.support:multidex:1.0.2'
ext.deps = deps

// 在gradle 中通过api的形式添加需要引入的以来,具体引用形式以android srudio版本为准

9.配置路由,如破64k的限制,jks签名配置
路由配置参考
突破64k限制,jks签名配置参考
10.未完,待续
11 组件化(二)消息推送

相关文章

网友评论

      本文标题:组件化(一),项目搭建

      本文链接:https://www.haomeiwen.com/subject/iaveaftx.html