android field 类型,Gradle buildConfigField 使用Hashmap ArrayList 等类型
buildConfigField可以在gradle脚本中定义我们需要的变量,然后在代码中引用。
官方文档上buildConfigField 定义的格式是这样的:
void buildConfigField(String type, String name, String value)
我们可以很方便的定义基础类型,如type为Long String int boolean等基础类型,但是我们能不能定义数组,Hashmap,ArrayList等java常用的数据结构呢?
答案是可以的,我们可以定义任何我们想要的对象。
如我们可以定义字符串数组:
buildConfigField "String[]", "ARRAY",
"{" +
"\"test1\"," +
"\"test2\"," +
"\"test3\"" +
"}"
和Map类型:
buildConfigField "java.util.Map", "NAME_MAP",
"new java.util.HashMap
"String>() {{ put(\"name\", \"John\"); put(\"name1\", \"daniel\"); put(\"name2\", " +
"\"anna\"); }}"
测试下,build.gradle中定义如下:
//string 类型需要引号包括
buildConfigField "String", "CHANNEL_KEY", "\"APP_CHANNEL\""
buildConfigField "String[]", "ARRAY",
"{" +
"\"test1\"," +
"\"test2\"," +
"\"test3\"" +
"}"
buildConfigField "java.util.Map", "NAME_MAP",
"new java.util.HashMap
"String>() {{ put(\"name\", \"John\"); put(\"name1\", \"daniel\"); put(\"name2\", " +
"\"anna\"); }}"
buildConfigField "java.util.ArrayList", "NAME_ARRAYLIST",
"new java.util.ArrayList() {{ add(\"John\"); add( \"daniel\"); add(\"anna\"); }}"
build后生成的BuildConfig文件如下:
/**
- Automatically generated file. DO NOT MODIFY
*/
package com.wxkly.aroutertest;
public final class BuildConfig {
// Fields from default config.
public static final String[] ARRAY = {"test1","test2","test3"};
public static final String CHANNEL_KEY = "APP_CHANNEL";
public static final java.util.ArrayList NAME_ARRAYLIST = new java.util.ArrayList() {{ add("John"); add( "daniel"); add("anna"); }};
public static final java.util.Map NAME_MAP = new java.util.HashMap() {{ put("name", "John"); put("name1", "daniel"); put("name2", "anna"); }};
public static final boolean isBuild = false;
public static final int size = 0;
}
可以看到生成了相应的java.util.ArrayList,java.util.Map。
这里需要注意的是buildConfig文件中无法使用import引入相关的包名,所有我们在定义buildConfigField的时候需要使用类名加package路径如:java.util.Map 。
android field 类型,Gradle buildConfigField 使用Hashmap ArrayList 等类型相关推荐
- android build获取ext,android – 如何在Gradle中获取当前构建类型
我的问题非常直接且易于理解. 题 在Gradle中,有什么办法可以在运行时获取当前的构建类型.例如,在运行assembleDebug任务时,build.gradle文件中的任务是否可以根据此任务与调试 ...
- 利用 Android Studio 和 Gradle 打包多版本APK
视频汇总首页:http://edu.51cto.com/lecturer/index/user_id-4626073.html ==================================== ...
- java调用android打包_Android Gradle打包基础
Android gradle打包基础 gradle目录 [代码]java代码:12345MyApp├── build.gradle ( 可以查看Gradle的版本 )├── settings.grad ...
- Android Studio中Gradle使用详解
转自:http://www.jianshu.com/p/02cb9a0eb2a0 一)基本配置 build配置 buildscript {repositories {jcenter() }depend ...
- Java和Android构建工具Gradle深入了解
Gradle3.0编程与自动化构建 gradle是一款最新的,功能强大的构建工具,它使用程序代替传统的XML配置,构建项目更加灵活.gradle有丰富的第三方插件. Gradle相关介绍及开发环境搭建 ...
- Android Studio build.gradle配置详解
Android Studio是采用gradle来构建项目的,gradle是基于groovy语言的,如果只是用它构建普通Android项目的话,是可以不去学groovy的.当我们创建一个Android项 ...
- android 项目build.gradle,Android build.gradle 配置详解
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Gradle 简介 Android Studio 是采用 Gradle 来构建项目的.Gradle 是一个非常先进的项目 ...
- 使用gradle构建android项目,Android中使用Gradle来构建App项目的入门指南
gradle是Android开发中引入的全新的构建系统,因为全新的构建系统主要是出于下面的目的: 1. 方便复用代码和资源 2. 构建多种版本的apk更见简单,不论是为多渠道构建不同的apk还是构建不 ...
- Android Studio之gradle的配置与介绍
1.gradle的简单介绍 Gradle是可以用于Android开发的新一代的Build System,也是Android Studio默认的build工具.其实Gradle脚本是基于一种JVM语言- ...
最新文章
- DNS域名解析优化之tinydns/djbdns篇——测试篇
- 在AI Studio上部署外部可以直接调用的云端服务
- centos安装python3_在CentOS8 上安装Python3
- 2018.08.20高二互测
- 竞品分析方法论:7个视角,50+维度
- [spring boot]自定义log配置文件名
- java 判断日期为第几天
- (转载)mysql 用drop和delete方法删除用户的区别
- MySQL索引原理及慢查询优化,了解一下?
- 微信小程序盲盒系统源码 带教程
- php酒店系统论文,PHP酒店网站管理系统毕业论文
- Python 教程之再见 Excel你 Python 的spreadsheets电子表格
- 手写Vue个人组件库——fl-Badge
- 扁豆凝集素LCA/LcH填料/小扁豆凝集素-琼脂糖凝胶/双花扁豆凝集素DBA/黑皮扁豆凝集素
- LaTeX教程(一)——LaTeX介绍以及导言详解
- 一战赚了1090亿,恐怖的张一鸣!
- 数字电路技术基础(三)
- PC版小米cc机器人自定义api接口插件PJ版
- 以太网转串口ttl 原理图 PCB
- Linux Socekt 相关操作代码