Android Studio之BuildConfig类

https://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,所以我们在添加的时候加上转义字符。

posted @ 2018-04-02 18:18  petercao  阅读(1601)  评论(0编辑  收藏  举报