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

How Android Product Flavors and Configuration help to maintain and support single code base to distribute multiple client

我有一个要求 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"
        }
    }

提前致谢。

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

Tools:

Android Studio IDE:3.1

Target Version: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 实现 result.And 感谢我所有的推荐作者。

快乐编码:)