美文网首页
组件化项目中关于BuildConfig的使用

组件化项目中关于BuildConfig的使用

作者: wayDevelop | 来源:发表于2018-05-14 10:49 被阅读0次

分享一个自己写的组件化项目github地址,建议读者clone项目后跟着项目看这篇文章,有任何不明白的地方可留言或者关注我加我微信,我看到后会立刻回复你
组件化Demo传送门

本文是组件化项目的时候关于BuildConfig的一些小知识点,因为Module解耦,不同的Module很难区分环境,所以我主要在BaseModule的build文件里面定义一个变量,主要是针对线上和线下环境,当然读者可以自定义更多的变量,希望对你有所帮助。

BuildConfig是什么?

BuildConfig是android在编译过程中自动生成的一个配置文件。

在不同的编译模式下会生成不同的变量,我们可以利用这些变量来方便不同编译环境下的开发,比如日志的打印(开发环境下可以打印Verbose一级,发布环境下可以打印Warn一级)。

BuildConfig有哪些变量?

没有自己变动过gradle文件的话,自动生成的BuildConfig一般如下文所示。

public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String APPLICATION_ID = "com.xxxx.xxx.xx";
  public static final String BUILD_TYPE = "debug";
  public static final String FLAVOR = "";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0";
}

BuildConfig在哪里?

如图所示


BuildConfig如何使用?

同java常量。

public class MainActivity extends AppCompatActivity {

    TextView msgText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String lineSep = System.getProperty("line.separator", "\n");

        msgText = (TextView) findViewById(R.id.msgText);

        String DEBUG = "DEBUG = "+ BuildConfig.isDebug

        msgText.setText(msg);
    }
}

BuildConfig可以添加其他变量吗?

可以的。

在app模块的build.gradle中(不是Project的),有个buildTypes节点,我们修改如下。

    buildTypes {
        debug {
           buildConfigField "boolean", "isDebug", "true"
        }
        release {
           buildConfigField "boolean", "isDebug", "true"
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
    }

其中isDebug是我们自己定义的,编译后的BuildConfig

public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String APPLICATION_ID = "com.qefee.pj.testbuildconfig";
  public static final String BUILD_TYPE = "debug";
  public static final String FLAVOR = "";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0";
  // Fields from build type: debug
  public static final boolean isDebug = true;
}

可以看到系统已经为我们生成了.

相关文章

  • 组件化项目中关于BuildConfig的使用

    分享一个自己写的组件化项目github地址,建议读者clone项目后跟着项目看这篇文章,有任何不明白的地方可留言或...

  • Android Hilt实战初体验: Dagger替换成Hilt

    在组件化AwesomeGithub项目中使用了Dagger来减少手动依赖注入代码。虽然它能自动化帮我们管理依赖项,...

  • iOS 组件化实战篇(私有库)

    前沿 本片文章主要讲解我们项目中为什么要组件化 组件化的好处 怎么使用组件化 怎么实现组件化 为什么要组件化 ...

  • 依赖module中BuildConfig.DEBUG值为fals

    项目中想用BuildConfig.DEBUG判断环境,debug模式下依赖module中BuildConfig中代...

  • Android Navigation组件(三)

    在组件化项目中使用Navigation Navigation组件目前并不能完美的支持组件化项目,主要问题是在mod...

  • iOS开发中的组件化开篇

    什么是组件化? 它是一种App架构思路,对代码进行封装,封装成组件,组件可以单独使用。项目中使用组件包括基础组件(...

  • iOS组件化整体架构

    说组件化的结构,是指整个项目工程使用组件化模式开发时,整个项目中包含的所有组件结构。而不是指某一个组件工程的结构。...

  • iOS 组件化之CTMediator

    关于iOS组件化网上资料太多,这里只是从个人观点说明一下怎么使用组件化和使用组件化的优点和缺点首先下载CTMedi...

  • vue父子组件通信高级用法

    vue项目的一大亮点就是组件化。使用组件可以极大地提高项目中代码的复用率,减少代码量。但是使用组件最大的难点就是父...

  • vue实战-vue父子组件通信方式汇总

    vue项目的一大亮点就是组件化。使用组件可以极大地提高项目中代码的复用率,减少代码量。但是使用组件最大的难点就是父...

网友评论

      本文标题:组件化项目中关于BuildConfig的使用

      本文链接:https://www.haomeiwen.com/subject/jssddftx.html