| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android 多渠道打包配置,productFlavors配置 -> 正文阅读 |
|
[移动开发]Android 多渠道打包配置,productFlavors配置 |
????????一般情况下,我们都只有debug和release两种buildType,编译的时候默认debug,正式打包的时候会选择release or/and debug ????????但由于业务需求,需要为debug和release配置不同的包名和版本号,包名可以通过applicationIdSuffix来实现 ??????? 首先先看一下applicationSuffix的用法:
????? ??????? 按照以上代码,打包或者编译的时候,debug包的包名就是com.example.xxx.debug,对应的,release包的包名就是com.example.xxx.release,但这也也说明了applicationIdSuffix的局限性,applicationIdSuffix只能在默认包名后面追加字符串,至于上面所说的,为不同的包设置不同的版本号也不能实现了。 ? ????????还有一种更普遍的情形就是需要为不同的市场设置不同的包,比如国内的各大应用市场,一般会打多个包用来发版。 ??????? 这时候就要用到productFlavors多渠道打包配置了,首先看下基本用法:
??????? 按照上面的代码,打包的时候就会有四种选择,分别是ADebug,ARelease,BDebug,BRelease, A开头的包名就是aaa.example.xxx,版本号是9.9.9,B开头的就是bbb.example.xxx,版本号是1.0.0,编译的时候,可以通过AndroidStudio左下角的BuildVarians来设置,如果没有特殊指定的话,最新的AndroidStudio会按照字母排序,选择最前面那个,比如A和B两个flavor,默认就是ADebug。
??????? 最后说一下dimension这个标识符,Android3.0之后,如果未声明dimension的话会报错:
dimension是维度的意思,这里指的就是flavor的维度,为方便大家理解,我举个简单的例子 有如下应用场景,app打包时要对小米手机和华为手机打不同的包,分别发布到小米应用市场和华为应用市场,那么可以这么设置:
这样打包的时候就有四种选择:即huaweiDebug,huaweiRelease,xiaomiDebug,xiaomiRelease, 那么如果这时候,如果分别要对A类别的机型和B类别的机型再做区分(比如A和B的屏幕尺寸、Android版本不同),那么就可以再为flavor增加一个维度:
同时在flavor中声明所在的dimension,代码如下:
声明了不同的维度后,再次打包的时候,选项就是这样的了: xiaomiPhoneADebug,xiaomiPhoneBDebug,xiaomiPhoneARelease,xiaomiPhoneBRelease, huaweiPhoneADebug,huaweiPhoneBDebug,huaweiPhoneARelease,huaweiPhoneBRelease 一共八个渠道,也就是 xiaomi,huawei,phoneA,phoneB以及debug、release的排列组合, 这就是dmension的作用了,以上只是举例,不代表实际情况,实际项目中这样的需求应该是极少的,一个dimension就够用了。 最后提一下多渠道dimension的覆盖关系,依旧拿上面的代码举例,如果在xiaomi中 ,声明了brand_id这个变量为xiaomi,在phoneA中再次声明brand_id为brandA,代码如下:
那么最终的结果是以最先声明的维度为准,也就是xiaomi。 以上就是android gradle的productFlavors多渠道打包的使用方法总结。 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 10:43:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |