Нам нужно создавать разные приложения для разных клиентов из одной исходной базы. Приложение для каждого клиента должно быть фирменным - то есть иметь разные изображения, цвета и т. Д. Большинство ресурсов - например, макеты, строки - будут доступны всем клиентам.
Мы думаем об использовании sourceSet
в build.gradle
. Например:
android {
...
sourceSets {
Main {
// resources common to all clients
resSrcDirs = 'res'
// resources specific to client1
resSrcDirs += 'client1/res'
// resources specific to client2
//resSrcDirs += 'client2/res'
...
// The same approach taken for manifest that contains application theme
manifestSrcFile=client1/AndroidMainifest.xml
// manifestSrcFile=client2/AndroidManifiest.xml
...
}
}
}
Перед каждой сборкой мы раскомментируем / закомментируем выделенные строки в build.gradle
.
Мы думаем, что это будет работать, но задаемся вопросом, есть ли лучший способ сделать это.