Как варианты и конфигурация продуктов Android помогают поддерживать и поддерживать единую базу кода для распространения нескольких клиентов

У меня есть требование, чтобы варианты и конфигурации продуктов Android помогали поддерживать и поддерживать единую базу кода для распределения по нескольким клиентам. Я сослался на несколько ссылок, это дает основную идею. Мой вопрос на самом деле я иду в правильном направлении. Я очень новый для такого рода сценария.

Например: название продукта: клиент MohanApp 1: мультфильм, клиент 2: Disney, клиент 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 ответ

Решение

Я нашел решение для 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 / Брендинг приложений / ProductFalvour Спасибо Android Studio за достижение результата. И спасибо всем моим реферальным авторам.

Удачного кодирования:)

Другие вопросы по тегам