多渠道打包
来源:互联网 发布:linux max map count 编辑:程序博客网 时间:2024/05/22 17:29
一、什么是多渠道
我理解的是:APP发布到不同的应用平台,监测用户是从哪个平台安装的。
二、为什么要多渠道打包
1. 统计用户安装APP来源知道多渠道的意义就不难理解多渠道打包主要是为了我们统计分析用的。所以,这样就很清楚了我最初的想法不是不行,而是不好,对今后的产品分析没有任何帮助。
2.批量修改生成的apk文件名根据运营给的命名规则,如果是一个个的右键-重命名,那15个还好,要真是有1000个,运营同事一定会拿刀找我的...而多渠道打包所有的都自动生成。
3.可更改包名如果有生成不同包名的需求,通过gradle就可以解决。
4.生成不同应用名称或图标有的时候你会在不同平台看到XX-小米版,XX-魅族版等等,或者beta版的图标和正式的不一样,其实代码还是那个代码,无非做点小小的改动,具体实现我们后面会说。
这是我所了解到的,可能还有很多我不知道的用途,欢迎大家在下面留言。
三、如何多渠道打包
多渠道打包网上大概有两种,一个是通过gradle,另一个是美团介绍的只打一个包,然后解压替换文件,两者比较美团的方法要更快,但是今天我们先不做介绍,如果想了解请看《Android多渠道打包飞一般的感觉》。。
1. 在AndroidManifest.xml中添加占位符一般都是像友盟,腾讯统计分析SDK中使用的方案,网上友盟的较多,我实际用的是腾讯分析所以就拿腾讯的来说(其实都一样)。首先,在AndroidManifest.xml的application标签里添加一个meta-data标签定义MTA_CHANNEL占位符,腾讯分析SDK会读取里面的value值传到后台,便于我们日后分析。
我理解的是:APP发布到不同的应用平台,监测用户是从哪个平台安装的。
二、为什么要多渠道打包
1. 统计用户安装APP来源知道多渠道的意义就不难理解多渠道打包主要是为了我们统计分析用的。所以,这样就很清楚了我最初的想法不是不行,而是不好,对今后的产品分析没有任何帮助。
2.批量修改生成的apk文件名根据运营给的命名规则,如果是一个个的右键-重命名,那15个还好,要真是有1000个,运营同事一定会拿刀找我的...而多渠道打包所有的都自动生成。
3.可更改包名如果有生成不同包名的需求,通过gradle就可以解决。
4.生成不同应用名称或图标有的时候你会在不同平台看到XX-小米版,XX-魅族版等等,或者beta版的图标和正式的不一样,其实代码还是那个代码,无非做点小小的改动,具体实现我们后面会说。
这是我所了解到的,可能还有很多我不知道的用途,欢迎大家在下面留言。
三、如何多渠道打包
多渠道打包网上大概有两种,一个是通过gradle,另一个是美团介绍的只打一个包,然后解压替换文件,两者比较美团的方法要更快,但是今天我们先不做介绍,如果想了解请看《Android多渠道打包飞一般的感觉》。。
1. 在AndroidManifest.xml中添加占位符一般都是像友盟,腾讯统计分析SDK中使用的方案,网上友盟的较多,我实际用的是腾讯分析所以就拿腾讯的来说(其实都一样)。首先,在AndroidManifest.xml的application标签里添加一个meta-data标签定义MTA_CHANNEL占位符,腾讯分析SDK会读取里面的value值传到后台,便于我们日后分析。
2. 修改
app
下的build.gradle
文件,在android
闭包中添加productFlavors
属性配置占位符<meta-data android:name="MTA_CHANNEL" android:value="${MTA_CHANNEL_VALUE}" />
apply plugin: 'com.android.application'android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.aimerd.channel" minSdkVersion 11 targetSdkVersion 21 versionCode 1 versionName "1.0.0" multiDexEnabled true } buildTypes { release { // 不显示Log buildConfigField "boolean", "LOG_DEBUG", "false" //启用混淆代码的功能 minifyEnabled true //压缩对齐生成的apk包 zipAlignEnabled true //指定混淆规则,需要压缩优化的混淆要把proguard-android.txt换成proguard-android.txt proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //移除无用的资源文件 shrinkResources true //启用multidex的支持 multiDexEnabled true } } productFlavors baidu { manifestPlaceholders = [MTA_CHANNEL_VALUE: "baidu"] } _91 { manifestPlaceholders = [MTA_CHANNEL_VALUE: "91"] } wandoujia { manifestPlaceholders = [MTA_CHANNEL_VALUE: "wandoujia"] } xiaomi { manifestPlaceholders = [MTA_CHANNEL_VALUE: "xiaomi"] } } applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (variant.buildType.name.equals('release')) { //生成apk名字的格式:Channel1.0.0_2016-06-22_baidu.apk //可自定义自己想要生成的格式 def fileName = "Channel${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk" output.outputFile = new File(outputFile.parent, fileName) } } }def releaseTime() { return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' compile 'com.android.support:multidex:1.0.1'}
0 0
- 多渠道打包
- 多渠道打包
- 多渠道打包
- 多渠道打包
- 多渠道打包
- 多渠道打包
- 多渠道打包
- 多渠道打包
- 多渠道打包
- 多渠道打包
- 多渠道打包
- 多渠道打包
- 多渠道打包
- 多渠道打包
- 多渠道打包
- 多渠道打包
- 多渠道打包
- 多渠道打包
- ORA-00221 ORA-00206 ORA-00206 ORACLE用户对ASM没权限
- C++Builder建立及调用DLL
- 关于Less里的css一些规则,了解入门less
- PHP连接SQLserver中文字符编码报错的解决
- 代理模式
- 多渠道打包
- 字符集与编码格式
- CTF中常见的隐藏手段总结
- 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数
- Android Service 同时使用bindservice和startservice启动的问题
- 第1章 BashShell命令------------(设置环境变量)
- Andoird 自定义ViewGroup实现竖向引导界面
- 手动释放linux缓存——/proc/sys/vm/drop_caches
- 财务报表(支票单)金额制作