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了。
  • 相关阅读:
    利用win10自带的虚拟机Hyper-V安装Centos7的步骤教程
    Java元组Tuple介绍与使用
    Fiddler高级用法-设置断点
    Fiddler高级用法-抓取手机app数据包
    Fiddler基础用法-抓取浏览器数据包
    dig 命令
    curl 命令
    vmware虚拟机三种网络连接方式
    解决虚拟机vmware虚拟机安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题
    linux 文件系统 xfs、ext4、ext3 的区别
  • 原文地址:https://www.cnblogs.com/yiludugufei/p/6028203.html
Copyright © 2011-2022 走看看