gradle里的配置
sourceSets {
main { //重定义主程序各数据指向,因为是用eclipse导出的gradle
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
productFlavors { //分支信息,程序里添加分支项时名称及包名必须于该处定义一致
aaa {
minSdkVersion 10
applicationId 'com.aaa'
targetSdkVersion 21
versionCode 34
versionName '3.4'
}
bbb {
minSdkVersion 10
applicationId 'com.bbb'
targetSdkVersion 21
versionCode 1
versionName '1.0'
}
}
//分支数据定向
aaa {
res.srcDirs = ['aaa/res', 'aaa']
java.srcDirs = ['aaa']
}
bbb {
res.srcDirs = ['bbb/res', 'bbb']
java.srcDirs = ['bbb']
}
}
写项目的时候经常会遇到以下的情况:
1.需要生成测试版本和正式版本的apk
2.测试版本和正式版本的URL是不一样的
3.测试版本和正式版本的包名需要不一致,这样才能安装到同一部手机上面。
4.不同apk需要应用名不同,图标不同,某些常量不同....
如果你有以上的需求,看这篇文章就对了
When developing an app, you usually have many slightly different versions of this app. The most common example is probably the backend you want to use: production or staging.
当我们做开发的时候,经常会需要生成多个版本的app。最常见的就是测试版和正式版。
You usually define the base URLs with the other constants of the app. Switching from one environment to the other is done by (un)commenting the right lines:
我们经常需要在应用中定义一些常量,当应用正式发布的时候,常常是注释掉测试用的部分,放开正式的部分,就像下面一样: