当前位置:网站首页>多渠道打包
多渠道打包
2022-08-04 00:53:00 【橙子19911016】
众所周知,国内Android应用市场碎片化严重,每当应用发布一个新的版本的时候,就需要分发到每一个应用市场中去,比如,360手机助手,小米应用市场,华为应用市场等。为了能够统计每个应用市场的下载量、活跃量,就必须用一个标记来区分这些不同市场分发下去的应用,渠道号也就应运而生。这些渠道包需要携带不同的渠道参数信息,以便在APP和后台交互或者数据上报时,各自带上用于区分不同渠道的参数信息。 这样,我们就能统计到每一个分发市场的安装量、注册量等重要数据。随着渠道的不断增加,需要生成的渠道包也就越来越多。 在打包的过程中,我们一般都是使用gradle来进行的。gradle为我们的打包提高了很多的便利,多渠道打包也可以轻松实现。
首先在AndroidManifest.xml文件中定义一个meta-data:
<meta-data android:name="CHANNEL" android:value="${CHANNEL_VALUE}" />
然后在gradle文件中设置一下productFlavors:
android {
productFlavors {
xiaomi {
manifestPlaceholders = [CHANNEL_VALUE: "xiaomi"]
}
_360 {
manifestPlaceholders = [CHANNEL_VALUE: "_360"]
}
baidu {
manifestPlaceholders = [CHANNEL_VALUE: "baidu"]
}
wandoujia {
manifestPlaceholders = [CHANNEL_VALUE: "wandoujia"]
}
}
}
productFlavors是为了在同一个项目中创建应用的不同版本。具体的配置信息可以看官方说明。最后,执行gradle aS就可以将所有的渠道包输出了。
虽然gradle配置多渠道打包很简单,也很方便,但是这种方式存在一个致命的缺陷,那就是费时间。因为AndroidManifest.xml文件被修改过了,所以所有的包都必须重新编译签名。一般来说100个渠道包就要至少一个小时的时间。更要命的是万一哪里需要微调一下代码或者文案,那么不好意思,一切又得重头来。这就很麻烦了,所以有没有什么方法可以快速完成打包呢?
关于渠道打包工具,目前在市面上有很多,其中最简单快捷的一家是openinstall,只需要上传一个标准的安装包,即可根据需求一键导出多个不同参数的渠道包进行分包统计。同时每次产品更新都无需开发技术人员参与,任何人员都可以简单快速的完成渠道包的生成与导出APK。
同时openinstall还有一种免打包的服务,通过渠道链接代替渠道包的方式来统计数据。只需要openinstall的后台上传一个标准的安装包,即可无限生成不同的渠道链接或者二维码(兼容Android/iOS),然后根据需求把渠道链接或者二维码分发到各个渠道,统计数据。
参考
边栏推荐
- Google Earth Engine - Calculates the effective width of rivers using publicly available river data
- Nanoprobes丨Nanogold-抗体和链霉亲和素偶联物
- Web3 安全风险令人生畏?应该如何应对?
- ENS域名注册量创历史新高 逆市增长之势?光环之下存在炒作风险
- 虚拟机CentOS7中无图形界面安装Oracle
- Spinnaker调用Jenkins API 返回403错误
- 研究生新生培训第四周:MobileNetV1, V2, V3
- jmeter distributed stress test
- 【虚拟户生态平台】虚拟化平台安装时遇到的坑
- typescript53-泛型约束
猜你喜欢

【性能优化】MySQL常用慢查询分析工具

【超详细】手把手教你搭建MongoDB集群搭建

全面讲解 Handler机制原理解析 (小白必看)

微服务的简单介绍

After building the pytorch environment, the pip and conda commands cannot be used

jmeter跨平台运行csv等文件

ping数据包中的进程号

Nanoprobes 棕榈酰纳米金相关说明书

【超详细教程】LVS+KeepAlived高可用部署实战应用

LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之三:两次优化
随机推荐
ping数据包中的进程号
jmeter跨平台运行csv等文件
Mvc、Mvp和Mvvm
WMS仓储管理系统能解决电子行业哪些仓库管理问题
typescript53 - generic constraints
The 600MHz band is here, will it be the new golden band?
2022-08-03: What does the following go code output?A: 2; B: 3; C: 1; D: 0.package main import "fmt" func main() { slice := []i
LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之三:两次优化
建木DevOps流程的快速运用
【性能优化】MySQL常用慢查询分析工具
取模运算(MOD)
Salesforce's China business may see new changes, rumors may be closing
iframe通信
面试必问的HashCode技术内幕
迭代扩展卡尔曼滤波IEKF
优秀的测试/开发程序员,是怎样修炼的?步步为营地去执行......
Jmeter cross-platform operation CSV files
电子组装行业对MES管理系统的需求分析
[Miscellaneous] How to install the specified font into the computer and then use the font in the Office software?
GeoAO:一种快速的环境光遮蔽方案