Android 打包配置与输出教程

一、背景

正常在Android开发过程中,我们会遇到各种环境和各种版本的配置与验证,第一种是通过代码去修改,第二种是通过配置来完成

1.1分析

代码修改:

        代码修改的好处是快速,不需要通过gradle完成,便捷。但是也弊端是必然出现的,因为每次修改,如果大量配置文件需要修改就会导致修改特别多,最核心的问题就是上线发布容易出错,导致配置忘记修改回来

gradle配置:

        gradle配置可以根据不同的buildtype或者productflover来完成指定的环境配置,这些配置基本都是一样,只是里面的参数变量值不同。这趟可以很好的规避一些问题,但是gradle修改可能会引起执行慢的问题,需要同步

二、常见的配置

1.文件打包输出名称

// 自定义输出配置
applicationVariants.all { variant ->
    variant.outputs.all {
        if (variant.buildType.name == "pre") {
            outputFileName = Test.apk"
        } else {
            outputFileName = "${variant.buildType.name}.apk"
        }

    }
}

在android{

目录下

}

variant.buildType.name:配置的buildTypes环境,这个也是构建类型

    buildTypes {
        release {
            buildConfigField("Boolean", 'isDebug', "false")
            buildConfigField("String", 'Channel', "\"release\"")
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
        }

        pre {
            buildConfigField("Boolean", 'isDebug', "true")
            buildConfigField("String", 'Channel', "\"test\"")
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
        }

        debug {
            buildConfigField("Boolean", 'isDebug', "true")
            buildConfigField("String", 'Channel', "\"debug\"")
        }

    }

三、dependencies版本冲突强制指定

正常引用格式:androidx.datastore:datastore-preferences:1.0.0

group :name:useVersion

configurations.all {
    resolutionStrategy.eachDependency {
        DependencyResolveDetails details ->
            def requested = details.requested
            if (requested.group == "androidx.appcompat") {
                if (requested.name == "appcompat") {
                    details.useVersion "1.3.1"
                }
            }
    }
}

相关推荐

  1. Android 打包配置输出教程

    2023-12-05 15:56:06       35 阅读
  2. Jenkins在window下配置Android打包配置

    2023-12-05 15:56:06       39 阅读
  3. 突破编程_C++_基础教程输入输出文件)

    2023-12-05 15:56:06       21 阅读
  4. nginx输出日志配置查看

    2023-12-05 15:56:06       17 阅读
  5. C# 打印输出以及文件输入输出

    2023-12-05 15:56:06       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-05 15:56:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-05 15:56:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-05 15:56:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-05 15:56:06       20 阅读

热门阅读

  1. 安陆FPGA调试中遇到的问题总结

    2023-12-05 15:56:06       51 阅读
  2. AWS中使用ECS时ecsTaskExecutionRole缺失

    2023-12-05 15:56:06       40 阅读
  3. 2-- 简要介绍 Kubernetes

    2023-12-05 15:56:06       35 阅读
  4. MiniDumpWriteDump函数生成dmp文件

    2023-12-05 15:56:06       44 阅读
  5. Xshell远程登录AWS EC2 Linux实例

    2023-12-05 15:56:06       48 阅读
  6. Github项目-CNNResnet9-残差神经网络水果多分类项目

    2023-12-05 15:56:06       39 阅读
  7. sklearn教程:titanic泰坦尼克号数据集

    2023-12-05 15:56:06       33 阅读
  8. 快速学习PyQt5的高级自定义控件

    2023-12-05 15:56:06       34 阅读