apply plugin: 'com.android.application'

android {

//DOMAIN

def API_RELEASE_DOMAIN = "\"正式环境\""

//正式环境

def API_RELEASE = "\"https://正式环境\""

//DOMAIN

def API_TEST_DOMAIN = "\"测试环境\""

//测试环境

def API_TEST = "\"http://测试环境\""

//DOMAIN

//预发环境

def API_PRE_RELEASE = "\"https://预发环境\""

def API_PRE_RELEASE_DOMAIN = "\"预发环境\""

//开发环境DOMAIN

def API_DEV_DOMAIN = "\"开发环境\""

//开发环境

def API_DEV_HOST = "\"http://开发环境\""

compileSdkVersion 25

buildToolsVersion '26.0.2'

//23 编译版本需要添加这句话,低于23 不需要

useLibrary 'org.apache.http.legacy'

aaptOptions.cruncherEnabled = false

aaptOptions.useNewCruncher = false

defaultConfig {

multiDexEnabled true

applicationId "com.a1chemic.promotion.android"

minSdkVersion 12

targetSdkVersion 23

versionCode 201

versionName "2.0.1"

buildConfigField("String", "API_HOST", "${API_DEV_HOST}")

buildConfigField("String", "API_DOMAN", "${API_DEV_DOMAIN}")

ndk {

abiFilters "armeabi", "x86", "mips"

}

}

dexOptions {

javaMaxHeapSize "4g"

}

aaptOptions {

cruncherEnabled = false

useNewCruncher = false

}

lintOptions {

checkReleaseBuilds false

abortOnError false

}

signingConfigs {

release {

v1SigningEnabled true

v2SigningEnabled true

}

}

loadSigningConfigs()

buildTypes {

//开发 自己用的

debug {

buildConfigField "String", "API_HOST", "${API_DEV_HOST}"//API Host

buildConfigField "String", "API_DOMAN", "${API_DEV_DOMAIN}"//测试地址

buildConfigField "boolean", "SING_DEBUG", "true"

buildConfigField "boolean", "DEBUGINFO", "true"

resValue "string", "AppName", "应用开发板"

}

//测试 显示调试

debugTest {

signingConfig signingConfigs.release

buildConfigField "String", "API_HOST", "${API_TEST}"//API Host

buildConfigField "String", "API_DOMAN", "${API_TEST_DOMAIN}"//测试地址

buildConfigField "boolean", "SING_DEBUG", "true"

buildConfigField "boolean", "DEBUGINFO", "true"

matchingFallbacks = ['debug']

resValue "string", "AppName", "应用测试版"

}

//预上线 显示调试

preRelease {

signingConfig signingConfigs.release

buildConfigField "String", "API_HOST", "${API_PRE_RELEASE}"//预上线 API Host

buildConfigField "String", "API_DOMAN", "${API_PRE_RELEASE_DOMAIN}"//预上线

buildConfigField "boolean", "SING_DEBUG", "false"

buildConfigField "boolean", "DEBUGINFO", "true"

matchingFallbacks = ['debug']

resValue "string", "AppName", "应用预览版"

}

//正式 有调试信息

releasePE {

minifyEnabled false

signingConfig signingConfigs.release

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

buildConfigField "String", "API_HOST", "${API_RELEASE}"//API Host

buildConfigField "String", "API_DOMAN", "${API_RELEASE_DOMAIN}"//正式地址

buildConfigField "boolean", "SING_DEBUG", "false"

buildConfigField "boolean", "DEBUGINFO", "true"

matchingFallbacks = ['release']

resValue "string", "AppName", "应用名称"

}

//预上线Demo 无调试信息

preReleaseDemo {

signingConfig signingConfigs.release

buildConfigField "String", "API_HOST", "${API_PRE_RELEASE}"//预上线 API Host

buildConfigField "String", "API_DOMAN", "${API_PRE_RELEASE_DOMAIN}"//预上线

buildConfigField "boolean", "SING_DEBUG", "false"

buildConfigField "boolean", "DEBUGINFO", "false"

matchingFallbacks = ['release']

resValue "string", "AppName", "应用预览版"

}

//正式 无调试信息

release {

debuggable false

minifyEnabled false //启用Proguard --正常应该是true

shrinkResources false //是否清理无用资源,依赖于minifyEnabled

zipAlignEnabled true //是否启用zipAlign压缩

minifyEnabled false

signingConfig signingConfigs.release

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

buildConfigField "String", "API_HOST", "${API_RELEASE}"//

buildConfigField "String", "API_DOMAN", "${API_RELEASE_DOMAIN}"//

buildConfigField "boolean", "SING_DEBUG", "false"

buildConfigField "boolean", "DEBUGINFO", "false"

resValue "string", "AppName", "正式名称"

}

}

sourceSets {

main {

jniLibs.srcDir 'libs'

//说明so的路径为该libs路径,关联所有地图SDK的so文件

manifest.srcFile 'src/main/AndroidManifest.xml'

java.srcDirs = ['src/main/java']

resources.srcDirs = ['src/main/resources']

res.srcDirs = ['src/main/res']

assets.srcDirs = ['src/main/assets']

}

vivo.res.srcDirs = ['src/main/res-vivo']

}

flavorDimensions "default"

productFlavors {

main { dimension "default" }

// vivo { dimension "default" } //vivo

// baidu { dimension "default" } //百度

// tencent { dimension "default" } //应用宝

// xiaomi { dimension "default" } //小米

// qh360 { dimension "default" } //360

// huawei { dimension "default" } //华为

// wandoujia { dimension "default" } //豌豆荚

// vivo { dimension "default" } //vivo

// oppo { dimension "default" } //oppo

// meizu { dimension "default" } //魅族

}

productFlavors.all {

flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]

}

applicationVariants.all { variant ->

if (variant.buildType.name != "debug") {//防止AS无法安装debug包(apk)

variant.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + "/app/build/outputs/apk/main")

}

variant.outputs.all { output ->

def outputFile = output.outputFile

if (outputFile != null && outputFile.name.endsWith('.apk')) {

// 输出apk名称为com_biniusports_app_bnsports_v1.0.0_20171205_baidu.apk

def fileName = "应用_${variant.buildType.name}_V${defaultConfig.versionName}_${getNowTime()}_${variant.productFlavors[0].name}.apk"

outputFileName = fileName

}

}

}

}

//获取时间戳

def getNowTime() {

def date = new Date()

def now = date.format('yyyyMMdd')

return now

}

/** * 加载签名配置文件 */

def loadSigningConfigs() {

Properties props = new Properties()

def propFile = file('../signing.properties')

if (propFile.canRead()) {

props.load(new FileInputStream(propFile))

//发布版本的签名配置

android.signingConfigs.release.storeFile = file(props['KEYSTORE_FILE'])

android.signingConfigs.release.storePassword = props['KEYSTORE_PWD']

android.signingConfigs.release.keyAlias = props['KEY_ALIAS']

android.signingConfigs.release.keyPassword = props['KEY_PWD']

/* //调试版本的签名配置 android.signingConfigs.debug.storeFile = file(props['DEBUG_KEYSTORE']) android.signingConfigs.debug.storePassword = props['DEBUG_KEYSTORE_PWD'] android.signingConfigs.debug.keyAlias = props['DEBUG_ALIAS'] android.signingConfigs.debug.keyPassword = props['DEBUG_KEY_PWD']*/

}

}

dependencies {

compile 'com.android.support:multidex:1.0.1'

compile files('libs/android-support-v7-recyclerview.jar')

}

android切换域名,android通过gradle切换域名,替换app的String资源(修改app名称,图标)相关推荐

  1. 【Android开发】Android入门安装与使用教程——以Android Studio3.6.1为例

    [Android开发]Android入门教程--以Android Studio3.6.1为例 1.为什么要学习Android 2.学习资源 3.安装Android Studio 3.1 下载安装包 3 ...

  2. android夜间切换失败,Android夜间模式切换记录

    使用AndroidSDK自带的support lib来实现APP日间/夜间模式的切换 添加依赖包appcompat-v7 在app module的gradle中依赖appcompat库,版本最低是23 ...

  3. Android中的底部导航栏切换TabContainerView

    前言:在GitHub上看到一个框架,实现底部导航栏切换,感觉不错,就在这里总结一下. 参考:https://www.jianshu.com/p/9aaff43bbf9f https://github. ...

  4. android高级组件,Android高级组件ImageSwitcher图像切换器使用方法详解

    图像切换器(ImageSwitcher),用于实现类似于Windows操作系统的"Windows照片查看器"中的上一张.下一张切换图片的功能.在使用ImageSwitcher时,必 ...

  5. android切换字体颜色,Android开发实现按钮点击切换背景并修改文字颜色的方法

    本文实例讲述了Android开发实现按钮点击切换背景并修改文字颜色的方法.分享给大家供大家参考,具体如下: 其实原理很简单,用到的是selector,用来设置android:background和an ...

  6. Android的Activity屏幕切换动画(一)-左右滑动切换

    为什么80%的码农都做不了架构师?>>>    这段时间一直在忙Android的项目,总算抽出点时间休息一下,准备把一些项目用到的Android经验分享一下. 在Android开发过 ...

  7. android仿微信的activity平滑水平切换动画,Android实现简单底部导航栏 Android仿微信滑动切换效果...

    Android实现简单底部导航栏 Android仿微信滑动切换效果 发布时间:2020-10-09 19:48:00 来源:脚本之家 阅读:96 作者:丶白泽 Android仿微信滑动切换最终实现效果 ...

  8. Android学习笔记26:图片切换控件ImageSwitcher的使用

    在Windows操作系统中,要查看多张图片,可以通过使用"Windows照片查看器"在"上一张"和"下一张"之间切换,进行多张图片的浏览. ...

  9. Android activity之间的滑入切换

    Android activity之间的滑入切换 主activity(SlidChangeActivity): public classSlidChangeActiviry  extends Activ ...

最新文章

  1. yolo_model to output理解
  2. SAP UI5 确保控件 id 全局唯一的实现方法
  3. HDOJ5547 SudoKu
  4. Launcher结构之home screen
  5. 北航院系和数字的对应关系
  6. css如何让动作有先后,css3动作
  7. 如何判断一个数为无符号数还是有符号数
  8. Java——常用类(String)
  9. EfficientDet 论文记录
  10. SSM框架整合以及使用思路梳理
  11. 测试要找苹果机型,哪里有?
  12. 计算机动画题目,3DMax2014计算机动画作业练习题
  13. 工程地质计算机应用百度云,工程地质计算机应用
  14. 6 AI系统的伦理道德风险之道德判断的验证
  15. python画简单的图形(结构,循环)
  16. node.js代码总结
  17. 指针、函数、指针函数和函数指针
  18. FM ALV和OO ALV的区别
  19. 200所高校男女比例排行榜,脱单还有望吗?
  20. 数学思想——1.SEIR模型

热门文章

  1. (附源码)springboot电影选座订票app 毕业设计 011439
  2. unity3d培训_001
  3. 单样本和双样本的检验
  4. 蓝牙智能窗帘(天猫精灵生态)方案
  5. java 保存file_java保存文件
  6. Java 反射?反射有什么缺点?你是怎么理解反射的(为什么框架需要反射)?
  7. X86 Latency
  8. 第七届iWeb峰会(HTML5峰会)议程曝光
  9. 临界区(临界段)的含义
  10. CMake中option和cmake_dependent_option的使用