Android 开发 Gradle 配置多环境和多渠道
来源:互联网 发布:快速排序算法 java 编辑:程序博客网 时间:2024/06/11 09:47
1.配置多环境
1.1 配置build.gradle
在新建立项目后,app
目录下的build.gradle
中,会默认有buildTypes
属性,就像这样。
buildTypes
:编译类型,默认的就是debug
,release
虽然上图中只有一个release
属性,但是debug
其实也是默认存在的,关于这点,你可以打开Android studio
的Build Variants
(默认位置在Android studio的左下角靠左边栏处)自行查看,如下图。
Build Variants :构建变种版本
我们要做的就是其实就是对这个buildTypes
进行扩充和重写
以博主公司为例,分test
、stage
、pro
三个环境,每个对应不同的baseURL
、appName
。
buildTypes { //pro环境 release { buildConfigField("String", "BASE_URL", "\"http://pro.cn\"") } //stage环境 stage { buildConfigField("String", "BASE_URL", "\"http://stage.cn\"") } //test环境 debug { buildConfigField("String", "BASE_URL", "\"http://test.cn\"") } }
buildConfigField : 配置宏,可以在gradle里配置一个值让java 代码中访问到
buildTypes
默认就有debug
和release
两种类型
把debug
和release
分别重写为test
和pro
环境,再另外多加一个stage
,这样就可以构成三个环境。
1.2 项目内调用
在项目build完后,会生成一个BuildConfig
文件。
你就可以直接在自己项目里调用BuildConfig
类
如果你要切换环境,就又回到了上面提到的Build Variants
,此时你再打开,它就变成了下面这样。
可以任意切换自己想要的环境。
2.配置多渠道
2.1 配置build.gradle
多渠道配置需要手动添加另一个属性productFlavors
productFlavors { "other"{} //别的渠道及本地调试 "baidu" {} //百度 "weixin" {} //微信 "toutiao" {} //今日头条 "sougou" {} //搜狗 } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] }
productFlavors
:从项目中构建了一个应用的自定义版本
manifestPlaceholders
:用于替换AndroidManifest
清单文件的指定位置数据
2.2 配置 AndroidManifest.xml
<meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />
这样在build的时候,就可以把manifestPlaceholders
指定的[UMENG_CHANNEL_VALUE: name]
键值对映射到AndroidManifest.xml
的${UMENG_CHANNEL_VALUE}
这个时候再查看Build Variants
就已经变成了这个样子
至此,大功告成,在打包apk的时候就可以选择自己想要的环境和渠道。
build.gradle
android { compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig { applicationId "com.gradlesimple.jyn" minSdkVersion 15 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { buildConfigField("String", "BASE_URL", "\"http://pro.cn\"") manifestPlaceholders = [ app_name: "proAPP" ] } //stage环境 stage { buildConfigField("String", "BASE_URL", "\"http://stage.cn\"") manifestPlaceholders = [ app_name: "stageAPP" ] } //test环境 debug { buildConfigField("String", "BASE_URL", "\"http://test.cn\"") manifestPlaceholders = [ app_name: "testAPP" ] } } productFlavors { "other"{} //别的渠道及本地调试 "baidu" {} //百度 "weixin" {} //微信 "toutiao" {} //今日头条 "sougou" {} //搜狗 } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] }}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.gradlesimple.jyn"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="${app_name}"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" /> </application></manifest>
- Android 开发 Gradle 配置多环境和多渠道
- [Android]配置Gradle的productFlavors构建项目用于多渠道打包或多环境运行
- Gradle 多环境、多渠道打包
- Gradle多环境多渠道打包
- Android Studio gradle 配置 多渠道打包
- Android多渠道打包:gradle的配置
- Gradle多渠道多环境打包自动重命名
- 多渠道打包(Gradle配置)
- Gradle配置多渠道打包
- Android studio 多渠道(多环境)打包grade配置详解
- android Gradle多渠道打包
- Gradle Android 多渠道打包
- android gradle 多渠道打包
- Android Gradle多渠道打包
- ANDROID --GRADLE多渠道打包
- Android---Gradle 多渠道打包
- android 多渠道打包,build.gradle文件配置、manifest文件配置
- android多渠道,多环境打包
- 十分钟了解pandas(总结)
- stdcall,cdecl,fastcall区别与联系
- Android JNI 加载 so 文件流程 (Android 6.0)
- ThinkPHP将数据导出Excel表中 4种姿势调用Event事件
- [转载]SourceTree安装教程和GitLab配置详解
- Android 开发 Gradle 配置多环境和多渠道
- Unity3d鼠标拖拽控制物体720°旋转
- C#.NET MVC 导出记事本(txt)
- 使用Scrapy框架中如何避免被Ban
- 命令行,在ros中使用qt
- 我眼中的SAML (Security Assertion Markup Language)
- 【知识发现】隐语义模型LFM算法python实现(二)
- C语言学习笔记(五)----高精度的加减法
- aix从光盘装系统直接进入diagnostic原因