Android Studio 多渠道打包
来源:互联网 发布:鬼来电 知乎 编辑:程序博客网 时间:2024/05/16 12:42
-----------------------------------------------Android Studio 多渠道打包---------------------------
defaultConfig {
applicationId "app.sunniwell.net.metting"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
buildConfigField("String","API_HOST","\"http://192.168.0.96:8080\"")
}
buildTypes {//发布类型
release { //发 布
minifyEnabled true //开启混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//指定混淆文件
buildConfigField("String", "API_HOST", "\"http://192.168.0.97:8080\"")
}
custom {
minifyEnabled true //开启混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField("String", "API_HOST", "\"http://192.168.0.98:8080\"")
}
}
----------------------------------说明---------------------------------------------------
注意上面带下划线字体的部分。
这个方法需要三个参数,分别是 字段变量类型,变量名,和值。比如这里的
"String", "API_HOST", "\"http://192.168.1.245\"" // 一定注意 右斜杠后面跟着 转义字符分号
就会生成:
public static final String API_HOST = "http://192.168.1.245";
2. 修改 build.gradle , 配置 defaultConfig 下的 buildConfigField字段 ,这是为了 代码编译的方便,使得在各个环境下都有 API_HOST 这个字段。
buildConfigField("String", "API_HOST", "\"http://192.168.1.232\"")
3. 开始 build ,完成后,可以在代码中使用:
String str = BuildConfig.API_HOST;
--------------------------------------加入统计等多渠道-------------------------------------
buildTypes {
debug {
// 显示Log
buildConfigField "boolean", "LOG_DEBUG", "true"
versionNameSuffix "-debug"
minifyEnabled false
zipAlignEnabled false
shrinkResources false
signingConfig signingConfigs.debug
}
release {
// 不显示Log
buildConfigField "boolean", "LOG_DEBUG", "false"
minifyEnabled true
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// 输出apk名称为boohee_v1.0_2015-01-15_wandoujia.apk
def fileName = "boohee_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
}
// 友盟多渠道打包
productFlavors {
wandoujia {}
_360 {}
baidu {}
xiaomi {}
tencent {}
taobao {}
...
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
}
defaultConfig {
applicationId "app.sunniwell.net.metting"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
buildConfigField("String","API_HOST","\"http://192.168.0.96:8080\"")
}
buildTypes {//发布类型
release { //发 布
minifyEnabled true //开启混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//指定混淆文件
buildConfigField("String", "API_HOST", "\"http://192.168.0.97:8080\"")
}
custom {
minifyEnabled true //开启混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField("String", "API_HOST", "\"http://192.168.0.98:8080\"")
}
}
----------------------------------说明---------------------------------------------------
注意上面带下划线字体的部分。
这个方法需要三个参数,分别是 字段变量类型,变量名,和值。比如这里的
"String", "API_HOST", "\"http://192.168.1.245\"" // 一定注意 右斜杠后面跟着 转义字符分号
就会生成:
public static final String API_HOST = "http://192.168.1.245";
2. 修改 build.gradle , 配置 defaultConfig 下的 buildConfigField字段 ,这是为了 代码编译的方便,使得在各个环境下都有 API_HOST 这个字段。
buildConfigField("String", "API_HOST", "\"http://192.168.1.232\"")
3. 开始 build ,完成后,可以在代码中使用:
String str = BuildConfig.API_HOST;
--------------------------------------加入统计等多渠道-------------------------------------
buildTypes {
debug {
// 显示Log
buildConfigField "boolean", "LOG_DEBUG", "true"
versionNameSuffix "-debug"
minifyEnabled false
zipAlignEnabled false
shrinkResources false
signingConfig signingConfigs.debug
}
release {
// 不显示Log
buildConfigField "boolean", "LOG_DEBUG", "false"
minifyEnabled true
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// 输出apk名称为boohee_v1.0_2015-01-15_wandoujia.apk
def fileName = "boohee_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
}
// 友盟多渠道打包
productFlavors {
wandoujia {}
_360 {}
baidu {}
xiaomi {}
tencent {}
taobao {}
...
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
}
0 0
- Android studio 多渠道打包
- Android Studio多渠道打包
- Android studio 多渠道打包
- android studio 多渠道打包
- Android Studio 多渠道打包
- Android Studio 多渠道打包
- Android Studio多渠道打包
- Android Studio多渠道打包
- Android Studio 多渠道打包
- Android Studio 多渠道打包
- Android Studio多渠道打包
- Android studio 多渠道打包
- android studio 多渠道打包
- Android Studio多渠道打包
- Android Studio 多渠道打包
- Android studio 多渠道打包
- Android Studio多渠道打包
- Android studio 多渠道打包
- 51Nod--1006
- HandleMessage更新UI
- 谈谈渲染,玩玩nginx——前后端分离,转发请求到Tomcat的尝试
- 【简便操作】Eclipse全键盘编码攻略
- log4net 按天与按小时记日志的配置
- Android Studio 多渠道打包
- 【深入理解java集合系列】HashSet实现原理
- 数据结构 (线段树入门) HDU 1166 敌兵布阵(单点更新)
- CRC校验详解
- 多层前馈神经网络及BP算法
- poj 1321 棋盘问题
- 川藏路线简介
- AndroidASD完全解析05之AppBarLayout
- 'svn'提交 has encountered a problem