Android Gradle配置productFlavors、apk路径及文件名示例

productFlavors

productFlavors {
    defaultConfig {
        //versionNameSuffix 'default'
    }
    developTest {
        minSdkVersion 15
        applicationId 'cn.appblog.example'
        targetSdkVersion 28
        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
        versionCode versionCode
        versionName versionName
        //versionNameSuffix 'devtest'
    }
    productTest {
        minSdkVersion 15
        applicationId 'cn.appblog.example'
        targetSdkVersion 28
        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
        versionCode versionCode
        versionName versionName
        //versionNameSuffix 'protest'
    }
    home {
        minSdkVersion 15
        applicationId 'cn.appblog.example'
        targetSdkVersion 28
        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
        versionCode versionCode
        versionName versionName
        //versionNameSuffix 'home'
    }
    update {
        minSdkVersion 15
        applicationId 'cn.appblog.example'
        targetSdkVersion 28
        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
        versionCode versionCode
        versionName versionName
        //versionNameSuffix 'update'
    }
    googleplay {
        minSdkVersion 15
        applicationId 'cn.appblog.example'
        targetSdkVersion 28
        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
        versionCode versionCode
        versionName versionName
        //versionNameSuffix 'googleplay'
    }
}

apk路径及文件名

applicationVariants.all { variant ->
    variant.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + '/outputs/' + versionName)  //指定apk输出目录
    def buildName = 'AppBlog'
    if (variant.buildType.name.equals('release')) {
        variant.outputs.all { output ->
            def type = variant.buildType.name
            def flavor = variant.productFlavors[0].name
            def releaseApkName
            if (flavor.equals('defaultConfig')) {
                releaseApkName = buildName + '-v' + versionName + '-release.apk'
            } else {
                releaseApkName = buildName + '-v' + versionName + '-release' + '-' + flavor + '.apk'
            }
            //def releaseApkName = buildName + '_' + type + "_" + versionName + '_' + getTime() + '.apk'
            outputFileName = releaseApkName
        }
    } else if (variant.buildType.name.equals('debug')) {
        variant.outputs.all { output ->
            def flavor = variant.productFlavors[0].name
            println 'flavor: ' + flavor
            def debugApkName = buildName + '-v' + versionName + "-debug" + "-" + flavor + '.apk'
            outputFileName = debugApkName
        }
    }
}
上一篇 Android 8.0踩坑记录之Only fullscreen opaque activities can request orientation
下一篇 OkHttp在Android 4.4及以下不支持TLS协议的解决方法
目录
文章列表
1 AWS配置RDS公网访问
AWS配置RDS公网访问
2
搭建YApi可视化接口管理平台
搭建YApi可视化接口管理平台
3
关于Redisson锁的使用和理解
关于Redisson锁的使用和理解
4
Hexo下Mathjax的转义问题
Hexo下Mathjax的转义问题
5
Magento版本查看
Magento版本查看
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。