Android Studio之BuildConfig类

2023-10-31

转自:http://blog.csdn.net/lvxiangan/article/details/71601451

Android Studio开发中,把一个module输出打包为jar文件,我们会发现里面多了一个BuildConfig类,但在整个开发过程中我们始终没有写过这个类,这是怎么回事呢?

原来,BuildConfig类是一个根据build.gradle配置文件自动生成的类,有点类似于R.class,生成后不能修改。它具备以下特点:


1、该类位置在applicationId(应用包名)下面,如



2、巧用BUILD_TYPE属性进行版本查看、DEBUG属性日志控制等。

[java] view plain copy
  1. Log.d("com.emp.unionpay", BuildConfig.BUILD_TYPE);  

生产包BuildConfig.BUILD_TYPE = “release”;

测试包BuildConfig.BUILD_TYPE = “debug”;


日志输出控制:

[java] view plain copy
  1. if (BuildConfig.DEBUG) {  
  2.     Log.d("<span style="font-family:Arial, Helvetica, sans-serif;">com.emp.unionpay</span><span style="font-family:Arial, Helvetica, sans-serif;">""I am a debug");</span>  
  3. }  

3、自定义BuildConfig类的内容

下面代码将向我们展示,如何向BuildConfig添加自己想要的一些值。修改build.gradle文件:

[java] view plain copy
  1. android {  
  2.   
  3.     buildTypes {  
  4.         debug {  
  5.             buildConfigField "String""URL",   "\"http://www.baidu.com/\""  
  6.             buildConfigField "int",    "MONEY",  "1000"  
  7.         }  
  8.         release {  
  9.             minifyEnabled false  
  10.             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'  
  11.         }  
  12.     }  
  13. }  

我们在buildType中的任意type(包括自定义的)中输入buildConfigField语法来实现的,此方法有三个参数buildConfigField(String type,String name,String value),解释下:

String type 要创建的字段类型,如上面的String与int
String name 要创建的字段名,如上面的BASE_URL与DATE
String value 创建此字段的值,如上面的\"http://www.baidu.com/\"

但这里要注意一点就是,当创建的类型为String时,定义value的时候要注意加上字符串不能缺少的双引号"",由于参数本身要传入的类型也是String,所以我们在添加的时候加上转义字符。





本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Studio之BuildConfig类 的相关文章

随机推荐

  • @Async注解线程池

    在启动类上添加 EnableAsync配合该注解使用 自定义线程池方法 implements AsyncConfigurer extends AsyncSupportConfigurer Bean 注入线程池 public interfac
  • Shell中表示数字跨度的几种方式

    在Shell脚本中 如果要输出数字为0 20中3的倍数 可以使用下面三种方式来完成 方式一 i 0 i lt 20 i 3 for i 0 i lt 20 i 3 do echo i done 方式二 0 20 3 for i in 0 2
  • ElasticSearch 评分排序

    背景 通过脚本改变评分 背景 近期有一个需求 需要对优惠券可用商品列表加个排序 只针对面值类的券不包括折扣券 需求是这样的 假设有一张面值券 50 块钱 可用商品列表 A 100 B 40 C 10 当用户查询当前券可用商品列表的时候优先将
  • RuntimeError: expected dtype Double but got dtype Float 损失求导出错

    求导出现问题 源代码 修改为 把损失修改为loss clone detach requires grad
  • 卫星通信的资源调度 vs 地面无线通信的资源调度

    以OFDM系统为例 考虑多个用户共用多个子载波的场景 一 两类资源 调整时频资源 即基站或卫星决定给各个用户在哪些时隙分配多少子载波 调整发射功率 即基站或卫星决定给每个用户在每个子信道上的功率是多大 用字母 P n k P n k Pn
  • 【TestNG】TestNG使用教程详解

    一 TestNG介绍 TestNG是Java中的一个测试框架 类似于JUnit 和NUnit 功能都差不多 只是功能更加强大 使用也更方便 详细使用说明请参考官方链接 https testng org doc index html 二 Te
  • anaconda 创建虚拟环境、激活及使用的基本方法

    1 查看当前存在的虚拟环境 conda env list 2 创建虚拟环境 环境名 conda create n 环境名 python X X 3 激活指定虚拟环境 activate 环境名 4 删除虚拟环境 conda remove n
  • c++ 鼠标控制

    windows下获得鼠标位置和控制鼠标 include
  • 使用nodejs开发一个markdown文档管理小系统(一)Using Nodejs to quickly develop a markdown management system...

    好多年没碰过前端jquery了 用一两天时间重温一下 刚好写个小工具 不递归取文件夹和文件 只写一层 保持足够简单 验证和参数判断暂不写 毕竟只写了几个小时而已 功能算完备了 添加一个简单的管理员权限管理修改的所有功能即可放出去了 看来还不
  • LaTeX各种算法排版

    1 首先在导言区加入语句 usepackage algorithm usepackage algorithmic 2 例1 begin algorithm caption A label alg A begin algorithmic ST
  • AUTOSEMO“恒以致远,共创共赢”主题研讨会圆满落幕

    2023年8月31日 中国汽车工业协会软件分会中国汽车基础软件生态标委会 简称 AUTOSEMO 与天津市西青区人民政府联合主办 北京经纬恒润科技股份有限公司承办的 恒以致远 共创共赢 主题研讨会在天津隆重召开 本次研讨会是AUTOSEMO
  • vue2.0使用less 创建全局的颜色变量,配置主题色

    1 使用场景 项目中需要统一配置前端的主题样式 我们可以使用less创建 theme colors rgba 54 174 149 1 变量 供全局调用 2 安装依赖 cnpm install less less loader save 安
  • 【Android】WebView控件最全使用解析

    WebView控件最全使用解析 一 WebView 概述 二 WebView使用基础篇 2 1添加方式 2 2 加载远程网页 2 3 加载本地网页 2 4 加载HTML片段 2 5 WebView 常用方法 三 WebView 进阶篇 3
  • Android--Recovery模块之恢复出厂设置

    一 在进行详细流程分析之前 先看一下几个重要概念 一 Recovery的工作需要整个软件平台的配合 从架构角度看 有三个部分 1 Main system 用boot img启动的Linux系统 Android的正常工作模式 2 Recove
  • 【MyBatis】自定义resultMap三种映射关系

    目录 一 一对一映射 One to One 1 1 表关系 1 2 resultMap设置自定义映射 二 一对多映射 One to Many 2 1 创建实体 2 2 级联方式处理映射关系 2 3 定义SQL 2 4 OrderMapper
  • jquery 购物车飞入特效--全网最简单

    有个插件 jquery fly js 可以搞定 好象特点之一是有抛物线效果 如果要求不高 可以看看我这个 其实也是在网上看到的 作了些改进 三个元素 被点击的div 飞翔的小红点 装小红点的div 购物车 div 被点击的 div div
  • (一)@Input属性讨论

    Input Declares a data bound input property Angular automatically updates data bound properties during change detection 大
  • PAT C入门题目-7-111 输出学生成绩 (20 分)(动态内存分配)

    7 111 输出学生成绩 20 分 本题要求编写程序 根据输入学生的成绩 统计并输出学生的平均成绩 最高成绩和最低成绩 建议使用动态内存分配来实现 输入格式 输入第一行首先给出一个正整数N 表示学生的个数 接下来一行给出N个学生的成绩 数字
  • vue3+uniapp+TS+Vite+uView-plus(uniapp-nutui)微信小程序模板搭建

    官网下载目录结构 DCloud uni preset vue 码云 开源中国 gitee com 下载zip压缩包即可 目录 一 依赖下载 二 运行 三 vite config json文件修改 四 uView plus组件库加载 1 安装
  • Android Studio之BuildConfig类

    转自 http blog csdn net lvxiangan article details 71601451 Android Studio开发中 把一个module输出打包为jar文件 我们会发现里面多了一个BuildConfig类 但