Android开发过程中可能会出现需要针对不同客户发布不同的版本,可以通过gradle来控制。
AndroidManifest.xml代码如下:
applyplugin:'com.android.application'
//该段代码使用增加对于的版本控制
def apps = [
//版本1
bread1 : [
appName:"bread1",
applicationId:"com.bread1.admin.aactivity",
versionName:"2.0"
],
//版本2
bread2:[appName:"bread2",
versionName:"3.0",
applicationId:"com.bread2.admin.aactivity",]
];
def app =apps.bread2;//需要打包其他APP类型修改这个值
android {
compileSdkVersion28
defaultConfig {
applicationId app.applicationId
minSdkVersion15
targetSdkVersion28
versionCode1
versionName app.versionName
testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
//控制编译时候代码路径
release {
minifyEnabledfalse
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
sourceSets.release.res.srcDirs=['src/'+app.appName+'/res']
sourceSets.release.java.srcDirs=['src/'+app.appName+'/java']
sourceSets.release.manifest.srcFile'src/'+app.appName+'/AndroidManifest.xml'//如果有不一样的activity需要在这里新加
}
//控制编译时候代码路径
debug{
sourceSets.debug.res.srcDirs=['src/'+app.appName+'/res']
sourceSets.debug.java.srcDirs=['src/'+app.appName+'/java']
sourceSets.debug.manifest.srcFile'src/'+app.appName+'/AndroidManifest.xml'
println"ymk debug"
}
}
//代码资源设置
sourceSets{
main{
java.srcDirs = ['src/main/java']
res.srcDirs=['src/main/res']
}
}
}
dependencies {
implementation fileTree(dir:'libs',include: ['*.jar'])
implementation'com.android.support:appcompat-v7:28.0.0'
implementation'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation'junit:junit:4.12'
androidTestImplementation'com.android.support.test:runner:1.0.2'
androidTestImplementation'com.android.support.test.espresso:espresso-core:3.0.2'
}
然后在工程中 src底下增加对于版本,这么以增加bread2为例子。如下图
其中AndroidManifest.xml是添加的方式 不是覆盖原来代码
将有差异化的代码放到对于bread2底下
到时候需要更换版本只要在gradle里面修改
def app =apps.bread2;//需要打包其他APP类型修改这个值
即可
网友评论