Android studio 多渠道(多环境)打包grade配置详解
来源:互联网 发布:树莓派3linux armv7l 编辑:程序博客网 时间:2024/06/05 14:14
Android studio 多渠道(多环境)打包grade配置详解
场景:开发app,我们需要两套环境或者两套环境以上的apk,每套环境的apk分两个版本debug版和release版。
公司有套平时开发测试的接口地址:http ://alpha.xx
上线发布的时候接口对应地址:http://produce.xx
问题:我们如何通过配置这两个地址,每次自动打出两个环境的apk而不需要修改代码。
实现步骤
一、在AndroidManifest文件中的application节点下添加动态设置变量的meta数据
二、在build.gradle的android节点下增加渠道及打包规则(即定义输出apk文件的名称等)
代码块
//平台 productFlavors { beta {}//测试环境平台 prod {}//生产环境平台 } productFlavors.all { flavor -> flavor.manifestPlaceholders =[APP_PLATFORM_KEY_VALUE: name]//name代表的是"beta","prod",即productFlavors中的每个声明}//输出指定名称apkandroid.applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { File outputDirectory = new File(outputFile.parent); def fileName if (variant.buildType.name == "release") { //apk名称为:前缀_渠道名称_版本号_版本名称_模式.apk fileName = "APP_${variant.productFlavors[0].name}_${versionCode}${versionName}_release.apk" } else { fileName = "APP_${variant.productFlavors[0].name}_${versionCode}${versionName}_debug.apk" } output.outputFile = new File(outputDirectory, fileName) } } }
三、应用代码中获取当前环境值
//注意:key是步骤一中的meta的name属性,即“APP_PLANTFORM_KEY”PackageManager pm = context.getPackageManager(); ApplicationInfo appInfo = pm.getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA); return appInfo.metaData.getString(key);
四、应用代码中(applicaiton中判断,全局使用)判断不同环境请求不同服务地址
伪代码如下:
boolean isProduce;
if(“produce”.equal(“步骤三获取的值”)){//生产环境
isProduce = true;
}else{
isProduce = false;
}
此处将ip地址写在一个UrlConfig类中
if(isProduce){
url = UrlConfig.ip_produce;
}else{
url = UrlConfig.ip_debug
}
四、打包
点击assembleBeta则打beta环境的包
生成的两个环境的包
阅读全文
1 0
- Android studio 多渠道(多环境)打包grade配置详解
- Android Studio多渠道打包配置
- Android studio 多环境打包和多渠道打包
- android多渠道,多环境打包
- Android Studio gradle 配置 多渠道打包
- 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 多渠道打包
- IOS Swift3.0 URLSession和Json解析
- Caffe 学习:Eltwise层
- JavaScript初学者必看“箭头函数”
- 实现浏览器兼容版的window.getComputedStyle
- 数据库面试题
- Android studio 多渠道(多环境)打包grade配置详解
- Android 自定义Toast
- 一道有意思的题目Intersection of Two Linked Lists(双指针)
- SQL Server系统表sysobjects
- iOS 从0到1搭建高可用App框架
- mybatis注解方式返回insert的id
- springmvc重定向写法及注意
- json动态过滤属性 @jsonignore及@JsonIgnoreProperties
- jar的加载