1.manifestPlaceholders
用于自定义AndroidManifest.xml中的值
defaultConfig: {
manifestPlaceholders = [
KEY_1: VALUE_1
]
}
<meta-data android:value="${KEY_1}" android:name="SOME_KEY"/>
<meta-data android:value="${applicationId}" android:name="GRADLE_AUTO_ADD_DEFAULT"/>
2.buildConfig
用于自定义Java中的参数相关
defaultConfig {
//格式为buildConfigField "类型", "字段明", "值"
//类型为java类型如boolean,String,int
//类似与宏替换,所以字符串要带上转义的引号或用单引号
buildConfigField "String", "QQ_APPID", '\"VALUE_QQ_APPID\"'
buildConfigField("int", "WB_APPID", '12345')
}
import xx.module.packageName.BuildConfig;
BuildConfig.QQ_APPID; //String: "VALUE_QQ_APPID"
BuildConfig.WB_APPID; //int: 12345
3. gradle的ext属性
ext {
dictFormat = [
"key1": 1,
"key2": "value2",
]
applicationId = "com.app.package"
wx = [
"WX_APP_ID": "VALUE_APP_ID",
"WX_APP_SECRET": "VALUE_SECRET",
]
}
//注意不是app下的build.gradle,一定是最顶层的build.gradle
apply from: "config.gradle"
rootProject.ext.applicationId;
rootProject.ext.wx.WX_APP_ID;
4. 修改包名
接入微信需要在app包名下新建WXEntryActivity.java,最简单当然是放到app项目中,但是对模块化抽离微信相关功能就不友好了