Android grade语法,多渠道打包
Android grade语法,多渠道打包
文章目录
- Android grade语法,多渠道打包
- 一、groovy语法
- 二、自动打包切换测试正式环境
- 三、gradle多渠道打包
- 总结
一、groovy语法
以下代码需要 在build.grade文件中操作,具体打印日志在build中查看
//字符串拼接
task StringText{def str1 = "woshishuangyinhao"def str2 = "woshidanyinhao"println str1+str2
}//集合
task list{def list = [1,2,3,4,5]println list[0]list.each {println it}for (int i in 1..5){println list[i]}
}task map{def map = ["name":"jeck","age":19]println(map["name"])map.each {println("key:${it.key},value:${it.value}")}
}//定义一个方法 计算两数之和
task method{println(methodA(2,3))println(methodBean())
}def methodA(int a,int b){a+b
}def methodBean(){//groovy默认只返回最后一行的结果Student student = new Student()student.name = "hahahh"student.age = 1215415
}
//定义一个对象 ,在groovy没有私有一说,都能被调用
class Student{String nameint ageString getName() {return name}void setName(String name) {this.name = name}int getAge() {return age}void setAge(int age) {this.age = age}
}
//测试闭包
task closure{mEach{println(it)}
}
//闭包--》回调或者 钩子 在groovy只对{}里面的有效,Closure
def mEach(closure){for (int i in 1..5){closure(i)}
}
打印如下
二、自动打包切换测试正式环境
1.配置baseurl
在对应文件中分别配置url:
baseUrl = “https://www.debug.com”
baseUrl = “https://www.release.com”
2.在gradle中编写读取文件方法:
//用groovy读取配置文件
def getServerUrl(String str){def url;Properties properties = new Properties();def proFile = file("src/main/filters/"+str+"/config.properties")if (proFile!= null && proFile.canRead()){properties.load(new FileInputStream(proFile))if (properties!= null){url = properties['baseUrl'];}}url
}
打印测试:
buildTypes {debug{println getServerUrl("debug")}release {println getServerUrl("release")}}
3.配置读取配置方法
buildTypes {debug {//三个参数 1 数据类型 2 变量名 3 变量值buildConfigField 'String','url',getServerUrl('debug')}release {buildConfigField 'String','url',getServerUrl('release')}
}
然后clean +rebuild project项目,然后会自动生成一个如下的类:
public final class BuildConfig {public static final boolean DEBUG = Boolean.parseBoolean("true");public static final String APPLICATION_ID = "com.rb.renbin.agradledemo";public static final String BUILD_TYPE = "debug";public static final String FLAVOR = "huawei";public static final int VERSION_CODE = 1;public static final String VERSION_NAME = "1.0";// Field from product flavor: huaweipublic static final String PLATE_FROM = "huawei";// Field from build type: debugpublic static final String url = "https://www.debug.com";
}
4.然后获取里面的url配置到请求base就行了,这样打包和编译运行就会自动切换正式环境和测试环境了
String baseurl = BuildConfig.url;
三、gradle多渠道打包
1.先创建自己的签名文件
2.配置签名
//签名配置
signingConfigs{release{keyAlias 'arouter'keyPassword '123456'storeFile file('app/arouter.jks')storePassword '123456'}
}//自动打包切换域名 用groovy读取配置文件
buildTypes {debug {//三个参数 1 数据类型 2 变量名 3 变量值buildConfigField 'String','url',getServerUrl('debug')}release {buildConfigField 'String','url',getServerUrl('release')//混淆minifyEnabled true// 配置签名signingConfig signingConfigs.release//包的输出}
}
3.在defaultConfig配置渠道code
defaultConfig {applicationId "com.rb.renbin.agradledemo"minSdkVersion 23targetSdkVersion 30versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"//多渠道包codeflavorDimensions "versionCode"
}
4.配置渠道号
productFlavors{xiaomi{buildConfigField 'String','PLATE_FROM','xiaomi'}yingyongbao{buildConfigField 'String','PLATE_FROM','yingyongbao'}huawei{buildConfigField 'String','PLATE_FROM','huawei'}
}
或者
productFlavors{xiaomi{}yingyongbao{}huawei{}
}productFlavors.all{flavor ->buildConfigField 'String','PLATE_FROM',"\"${name}\""
}
5.输出包,配置打包输出方法
release {buildConfigField 'String','url',getServerUrl('release')//混淆minifyEnabled true// 配置签名signingConfig signingConfigs.release//包的输出 渠道+时间+版本号android.applicationVariants.all { variant ->variant.outputs.all { output -> // each 改为 alldef fileName = "${getCurrentTime()}_V${defaultConfig.versionName}_release.apk"def outFile = output.outputFileif (outFile != null && outFile.name.endsWith('.apk')) {outputFileName = fileName // output.outputFile 改为 outputFileName}}}
}def getCurrentTime(){return new Date().format("yyyy-MM-dd",TimeZone.getTimeZone("UTC"))
}
6.gradle多渠道打包
在terminal下执行 gradlew assemble 打包指令
或者在这里选择自己需要的渠道打包也可以
打包如下:
总结
Android grade语法,多渠道打包相关推荐
- android多渠道打包插件,Android几种多渠道打包的步骤详解
1.什么是多渠道打包 在不同的应用市场可能有不同的统计需求,需要为每个应用市场发布一个安装包,这里就引出了Android的多渠道打包.在安装包中添加不同的标识,以此区分各个渠道,方便统计app在市场的 ...
- android中的多渠道打包,Android 多渠道打包简析
前言 为了更好的统计每个来源的下载量,当我们项目打包的时候,需要打出不同渠道的包.如何打多渠道包?新一代构建工具gradle,其中的一大优势就是支持多渠道,多Apk打包. Gradle的基础概念 fl ...
- android 友盟统计动态设置渠道,Android 友盟多渠道打包
一.简介 为了统计不同渠道上的下载数量及用户活动情况,方便后台做运营统计.我们需要在安装包中添加不同的标识(渠道信息 Channel).多渠道的实现方式多种多样,此篇只实现友盟多渠道打包的方法.友盟多 ...
- android百度多渠道打包,Android Stuido 实现多渠道打包
之前在这篇文章http://blog.csdn.net/zouchengxufei/article/details/46486629里涉及到根据不同的平台打包多个的问题,又在这篇文章http://bl ...
- android 友盟多渠道打包工具,Android渠道打包最佳实践(以友盟为例)
渠道包是每一个Android产品面临的问题,国内几乎每个手机厂商都有自己的安卓市场,导致需要的渠道包非常多,很多app的渠道都达到了丧心病狂的几百个,每次打渠道包都是一个痛苦的过程. 多渠道打包方案 ...
- android开发 Gradle多渠道打包以及集成360加固
先上图 先说实现的目的 主要是 用脚本做渠道打包 然后在APP里面添加数据 在启动时读取数据上传服务器做统计 然后为啥要这么做:第一个是因为APP里面在做渠道包的时候 需要加特定的东西,区别这些APP ...
- Android使用walle多渠道打包
转载:https://github.com/Meituan-Dianping/walle Walle 瓦力,Android Signature V2 Scheme签名下的新一代渠道包打包神器 瓦力通过 ...
- android studio gradle 多渠道打包配置
2019独角兽企业重金招聘Python工程师标准>>> 在Gradle中配置输出不同的渠道包 项目中遇到做个笔记,废话没有直接上代码: buildTypes {release {// ...
- 使用build.grade文件配置相关参数与多渠道打包
使用build.grade文件配置相关参数与多渠道打包 晨鸣的博客–使用build.grade文件配置相关参数与多渠道打包 使用build文件配置相关参数 在Android开发过程中,有时我们需要在A ...
最新文章
- 目标10亿部?苹果AR眼镜有望明年登场!传搭载Mac级处理器、4K显示屏
- 发那科冲压直线搬运机器人_行业应用 | 直线七轴软件配置
- RC电路输出波形的时域与频域分析
- wdnas群晖nas_西数WD NAS红盘 WD140EFFX 14TB HDD和 SA500 1TB SSD开箱拆解评测
- 越努力越幸运--动态数组vector
- 按键精灵saystring无法使用的几种解决方案
- SetTimer OnTimer WM_TIMER
- VS Code创建C项目
- putty提示Network error:Software caused connection abort
- u盘怎么重装系统win11教程
- 关于移动平台的viewport
- RTL8305NB傻瓜式交换机无法工作
- minimax算法_使用Minimax算法玩策略游戏
- 27_ArrayList类
- 图片从前端回传到后端实现思路总结
- 导出Excel—外部表不是预期的格式
- 技术分享 | ClickHouse StarRocks 使用经验分享
- Golang 浮点数运算 避免精度损失 Decimal包
- 三年java经验面试总结,整理了一些java面试题供参考
- caffe创建网络_Caffe2-创建自己的网络