Android产品风味和配置如何帮助维护和支持单个代码库以分发多个客户端

时间:2018-03-14 14:20:58

标签: android build.gradle android-productflavors code-maintainability

我要求Android产品风味和配置帮助维护和支持单个代码库来分发多个客户端。  我提到了几个链接,它给出了一个基本的想法。我的问题实际上是我正在朝着正确的方向发展。我对这种情况很新。

例如: 产品名称:MohanApp 客户1:卡通, 客户2:迪士尼, 客户3:Pogo,

flavorDimensions "app", "server"
    productFlavors {
        cartoon {
            dimension "app"
            applicationId 'com.cc.whitelabel.cartoon'
            manifestPlaceholders = [
                    appIcon: "@drawable/cartoon_network"
            ]
        }
        disney {
            dimension "app"
            applicationId 'com.cc.whitelabel.disney'
        }
        pogo {
            dimension "app"
            applicationId 'com.cc.whitelabel.pogo'
        }
        dev {
            dimension "server"
        }
        staging {
            dimension "server"
        }
        production {
            dimension "server"
        }
    }

先谢谢。

1 个答案:

答案 0 :(得分:0)

我找到了Android WhiteLabeling / App Branding / ProductFalvours的解决方案,在这里我分享了我的build.gradle来创建应用商标。 gradle文件语法可能因IDE的版本而异。

  

工具:

     

Android Studio IDE:3.1

     

目标版本:27

AppModule build.gradle

android {
    compileSdkVersion 27

    defaultConfig {
        applicationId "com.appmohan"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 2
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    // APK signing configuration
    android.signingConfigs {
        MobileApp { }
    }

    flavorDimensions "app"
    productFlavors {
        cartoon {
            dimension "app"
            applicationId "com.appmohan.cartoon"
            versionName '1.0.1'
            versionCode 2
            minSdkVersion 21
            targetSdkVersion 26
        }
        disney {
            dimension "app"
            applicationId "com.appmohan.disney"
            versionName "1.0.1"
            versionCode 2
            minSdkVersion 21
            targetSdkVersion 26
        }
        pogo {
            dimension "app"
            applicationId "com.appmohan.pogo"
            versionName "1.0.1"
            versionCode 2
            minSdkVersion 21
            targetSdkVersion 26
        }
    }


    android.buildTypes {
        debug {
            //do our url stuff
        }
        stagging {
            //do our url stuff
        }
        release {
            //do our url stuff
        }
    }

    sourceSets.cartoon{
        res.srcDirs = ['res', 'src/cartoon/res']
    }
    sourceSets.disney{
        res.srcDirs = ['res', 'src/disney/res']
    }
    sourceSets.pogo{
        res.srcDirs = ['res', 'src/pogo/res']
    }
}

出于实验和教育目的,我创建了这个应用程序。 GitHub Link AndroidWhiteLabel/App Branding/ProductFalvour 感谢Android Studio实现的结果。感谢所有推荐作者。

快乐编码:)