android studio 多版本控制

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类型修改这个值

即可

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 设置 Java 版本 在根目录下的build.gradle文件下添加 ext{ .... } 中的内容: ext{...
    xiechengfa阅读 5,642评论 0 2
  • Gradle配置最佳实践 本文会不定期更新,推荐watch下项目。如果喜欢请star,如果觉得有纰漏请提交issu...
    Solang阅读 5,574评论 0 4
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,950评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,466评论 2 59
  • 距离湄公河惨案发生已过几度春秋,无论是电视剧还是电影,每次看着都热泪盈眶,不愿看见流血不愿看见牺牲,然而现实中平静...
    简单ly阅读 2,812评论 0 1