Android之Gradle基礎

需求一

在gradle文件中創建N個公共變量,在app和library中可以調用

  • 在項目下創建一個文件config.gradle
ext {
    // 自定義變量
    test_envi = "http://192.168.0.1"
    online_envi = "http://www.shuzhuchengfu.com"
    // 定義字典
    test_map = [
            name:"zhangsan",
            age:19
    ]

    url = [
            debug: "http://192.168.0.1",
            release: "http://www.shuzhuchengfu.com"
    ]
}
  • 在項目的主gradle 文件中引入該文件
apply from: "config.gradle"
  • 在app的gradle中調用配置的變量如下(library同理)
println("hello gradle")
println "hello gradle"

println "test_envi : ${test_envi}"
println "online_envi : ${online_envi}"
println "rootProject.ext.test_envi : ${rootProject.ext.test_envi}"
println "name : ${test_map.name} , age : ${test_map.age}"

println " ========= "

test_map.each {
    k,v -> println("${k} : ${v}")
}

需求二

在BuildConfig類中增加變量

  • app下的build.gradle
def url = rootProject.ext.url
android{
	buildTypes{
		debug{
			buildConfigField("String","HTTP_URL","\"${url.debug}\"")
		}
		release{
			buildConfigField("String","HTTP_URL","\"${url.release}\"")
		}
	}
}
  • BuildConfig.java
public final class BuildConfig {
  ...
  // Fields from build type: debug
  public static final String HTTP_URL = "http://192.168.0.1";
}

需求三

在清單文件中替代佔位變量

  • app下的build.gradle
def url = rootProject.ext.url
android{
	buildTypes{
		debug{
			manifestPlaceholders.put("UMENG_CHANNEL","channel_debug")
		}
		release{
			manifestPlaceholders.put("UMENG_CHANNEL","channel_release")
		}
	}
}
  • 清單文件中替代UMENG_CHANNEL
    <application>
    	<meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL}" />
    </application>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章