android-------- 多渠道打包(借助友盟移动统计分析)
好久没有发博客了,原因是换工作了,今天端午假期,所以来发一篇博客,
多渠道打包,借助友盟移动统计分析,希望对各位有所帮助
多渠道打包的理解:
渠道包就是要在安装包中添加渠道信息,也就是channel,对应不同的渠道,例如:小米市场、豌豆荚、应用宝市场等
为什么要提供多渠道包?
我们要在安装包中添加不同的标识,应用在请求网络的时候携带渠道信息,方便后台做运营统计(这就是添加渠道信息的用处)。
实现多渠道打包的原理
一般来讲,这个渠道的标识会放在AndroidManifest.xml的Application的一个Metadata中。然后就可以在java中通过API获取对应的数据了。
进入主题
注册友盟,并且添加新应用,获得AppKey
引入依赖
- compile 'com.umeng.sdk:common:latest.integration'
AndroidManifest.xml 添加appkey 和渠道占位符
- <!--友盟统计相关 meta-data-->
- <meta-data
- android:value="5b2497a6f29d985d850001b3"
- android:name="UMENG_APPKEY"/><!--友盟 appkey-->
- <meta-data
- android:value="${UMENG_CHANNEL_VALUE}"
- android:name="UMENG_CHANNEL"/><!--渠道号-->
在build.gradle中去动态的替换掉我们的占位符的value即可
- defaultConfig {
- applicationId "com.zhangqie.channel"
- minSdkVersion 15
- targetSdkVersion 22
- versionCode 1
- versionName "1.0"
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
- multiDexEnabled true //突破应用方法数65535的一个限制
- manifestPlaceholders = [UMENG_CHANNEL_VALUE:"name"]
- }
签名文件生成 可以看我的博客Android Studio apk打包,keystore.jks文件生成,根据keystore密钥获取SHA1安全码
签名配置
- signingConfigs {
- debug {}
- //release包添加签名文件配置
- release{
- storeFile file("../channle.jks")
- storePassword "123456"
- keyAlias "channle"
- keyPassword "123456"
- }
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- signingConfig signingConfigs.release
- }
- }
渠道指定两种方式
- productFlavors{
- xiaomi{
- //manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
- }
- wandoujia{
- //manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
- }
- }
- //
- productFlavors.all{
- flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
- }
把前面的注释取消, 第2处下面代码删除就是第二种方式
之后再控制台 Terminal
输入 gradlew assembleRelease
执行打包(注意: Mac的要这样添加 ./gradlew assembleRelease
)
当然 gradlew assembleDebug 这是debug的
也可以指定打包 gradlew assembleWandoujiaRelease
豌豆荚的
执行打包
我弄时遇到一个坑
原因是我的 位置顺序放错误了
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- signingConfig signingConfigs.release
- }
- }
- signingConfigs {
- debug {}
- //release包添加签名文件配置
- release{
- storeFile file("../channle.jks")
- storePassword "123456"
- keyAlias "channle"
- keyPassword "123456"
- }
- }
所以要注意,
打包完成
生成apk包了
我们可以改变apk输出的名称
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- signingConfig signingConfigs.release
- //指定我们release包的输出文件名 就是我们的渠道名字
- applicationVariants.all{ variant ->
- variant.outputs.each { output->
- def outFile = output.outputFile
- if (outFile != null && outFile.name.endsWith(".apk")){
- def fileName = "${variant.productFlavors[0].name}"+".apk"
- output.outputFile = new File(outFile.parent,fileName);
- }
- }
- }
- }
- }
输入 gradlew assembleRelease
执行打包
名称已改变,根据自己的需要设置,
这样我们多渠道打包就完成了
友盟统计文档,按照操作步骤
https://developer.umeng.com/docs/66632/detail/66889
找几个手机测试一下
可在后台看数据
android-------- 多渠道打包(借助友盟移动统计分析)的更多相关文章
- gradle多渠道打包及友盟统计-eclipse版本
在进行渠道打包的之前,先看看准备篇,知道打包为了什么. 参见1.0android批量打包认知. eclipse中使用gradle多渠道打包全部流程 一.生成gradle文件,配置本地的gradle环境 ...
- 更便捷的Android多渠道打包方式
本文先回顾了以往流行的多渠道打包方式,随后引入的mcxiaoke的packer-ng-plugin项目,介绍该项目在实际应用(配合友盟统计)中如何解决更方便的Android多渠道打包问题 多渠道打包方 ...
- android 多渠道打包
android 多渠道打包 原理 在manifest文件中,application标签内部设置不同的metadata标签即可,可以通过java api获取这个matedata内的值 友盟提供的多渠道打 ...
- Android Cocos2d-x游戏集成友盟社会化组件分享功能
最近在帮助开发者集成友盟社会化组件的过程中,发现游戏的集成过程遇到一些困难,而Cocos2d-x具有较好的代表性,因此整理了一篇关于Android Cocos2d-x游戏集成友盟社会化组件指南,由于本 ...
- android第三方分享之友盟社会化组件
前言 现在几乎所有的app都带有分享功能,第一为了更好地推广自己的产品,第二作为使用者也能及时的把自己觉得好的文章,话题,app分享到社交平台供大家一起学习和使用.开发中虽然android系统自带分享 ...
- 【Android】Android多渠道打包--Gradle打包
Android多渠道打包--Gradle打包 前言 由于App一般都会在多个应用市场上架,为了分析App在每个不同渠道的具体的数据,一般都会对不同渠道打包不同的App.多渠道打包有多种方式,这里只介绍 ...
- 使用Android Studio Gradle实现友盟多渠道打包
最新项目中要求在友盟后台看到不同渠道的统计,Android大大小小的应用市场要几百个,要一个一个手工打包那一天也干不完,还好是有大牛的,弄出了好多解决方法,就Gradle做一下记录和分享,首先看一些理 ...
- 55、android app借助友盟实现微信授权登录
一.去微信开放平台的管理中心申请移动设备的审核(需进行开发者资质认证,每年300元) 1.获取应用的签名 2.在微信开放平台申请移动应用 两个注意点:①签名要填对 ②应用的包名要写对(tips: co ...
- Android 多渠道打包原理和使用
每次中午吃饭总会和技术同学聊天.当做 iOS 开发的做安卓开发的人员在一起的时候,他们中间又多了一个话题:iOS 开发难还是安卓开发难. 这个时候做安卓开发的同学最激动说安卓开发要自己画界面.机型复杂 ...
随机推荐
- Python3基础 list list()生成空列表
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- Spring-Cache 注解 @Cacheable,@CachePut , @CacheEvict
1.自动生成key @Bean public KeyGenerator keyGenerator() { return new KeyGenerator() { @Override public Ob ...
- 最小二乘法拟合非线性函数及其Matlab/Excel 实现
1.最小二乘原理 Matlab直接实现最小二乘法的示例: close x = 1:1:100; a = -1.5; b = -10; y = a*log(x)+b; yrand = y + 0.5*r ...
- kafka丢失和重复消费数据
Kafka作为当下流行的高并发消息中间件,大量用于数据采集,实时处理等场景,我们在享受他的高并发,高可靠时,还是不得不面对可能存在的问题,最常见的就是丢包,重发问题. 1.丢包问题:消息推送服务,每天 ...
- JQuery的ajax方法获取返回值得到了值还包含了不要的html源码 (Ajax相关知识)
因为后台使用了response.Write():这个方法,当输出完了以后,没有结束掉会继续输出,所以需要用到response.End():这样问题就解决了 jquery的ajax 除了通过url传值, ...
- 【bzoj1706】[usaco2007 Nov]relays 奶牛接力跑
题意 给出一张无向图,求出恰巧经过n条边的最短路. 题解 考虑先离散化,那么点的个数只会有202个最多.于是复杂度里面就可以有一个\(n^3\).考虑构造矩阵\(d^1\)表示经过一条边的最短路,那么 ...
- CF983B XOR-pyramid
设\(xorx[l][r]\)表示题目中\(f(l,r)\)的值,则可以得出 \[ xorx[i][j]=xorx[i][j-1] \oplus xorx[i+1][j] \] 设\(maxx[l][ ...
- 论文笔记:Learning Dynamic Memory Networks for Object Tracking
Learning Dynamic Memory Networks for Object Tracking ECCV 2018Updated on 2018-08-05 16:36:30 Paper: ...
- [jsp & thymeleaf] - jsp和thymeleaf的共存解析
做项目时因为有些老jsp还需要测试用到,所以之前的thymeleaf也需要保持,配置如下: https://github.com/deadzq/jsp-thymeleaf 等空余时间在做详解吧!
- 2. mysql 语句
基础语句 创建表 DROP TABLE IF EXISTS student;CREATE TABLE student ( id ) NOT NULL AUTO_INCREMENT, sname ) N ...