zoukankan      html  css  js  c++  java
  • 合理利用gradle的占位符功能

    1.gradle中可以声明字符串或者其他变量,然后再buildType中使用buildConfigField 来往BuildConfig文件中插入一个字符类型的常量,如下

      先声明

    def umengDebugKey = 'xxxxxxxxxxxxxx'
    然后是使用
    android {
    .....
    buildTypes {
    debug {
    applicationIdSuffix '.dev'
    buildConfigField "String", "UMENG_KEY", ""${umengDebugKey}""
    }
    release {
    minifyEnabled true
    shrinkResources true
    }
    }
    ....
    }

    编译之后你就会发现在buildConfig文件中多出来一行,

    public static final String UMENG_KEY = "559a2ffa67e58e516a001d36";

    而buildConfig文件是个java文件,可以在任何一个类中访问的。
    另外,这个地方可以插入的除了string 还可以是其他基本数据类型,int等都是可以的哦!

    2.除了可以在buildconfig文件中插入字段外,我们还可以在res文件中插入内容,方式和上面的基本类似
      debug {
              applicationIdSuffix ".debug"
              buildConfigField "String", "API_URL",""http://test.example.com/api""
              buildConfigField "boolean", "LOG_HTTP_CALLS", "true"
              resValue "string", "app_name", "Example DEBUG"
          }
    然后就可以直接通过R.string.app_name访问该字段了。
    另外,通过试验发现,如果在主工程和lib工程中同时定义该字段的话,lib中访问到的也是主工程的该字段。
    这样可以实现,从主工程传递字符串到lib工程中。

    3.
    build.gradle文件中有applicationid、version、versioncode等的属性,而这些都是可以在manifest文件中直接访问的,访问的方式就是

    <uses-permission android:name="${applicationId}.permission.MIPUSH_RECEIVE"/>

    这种方式可以非常方便的实现有些第三方库必须绑定包名的情况,然后你可以将第三方库封装到lib中,然后在lib的manifest文件中,通过这种方式定义好包名,最终生成的包的manifest中
    这个字段就是主工程的applicationid了。
  • 相关阅读:
    修改MySQL表中自增编号
    springboot整合mybatis统一配置bean的别名
    kotlin来了!!
    微信小程序获取登录手机号
    maven--package
    修改oracle数据库时间
    oracle启动停止命令
    安装 MySQL 之后初始密码在哪里??
    EntityFramework~~~三种模式
    webqq协议分析之~~~~验证是否需要验证码
  • 原文地址:https://www.cnblogs.com/yiludugufei/p/6028203.html
Copyright © 2011-2022 走看看