文档章节

5分钟搞定Android多渠道打包(基于友盟统计)

老奶瓶
 老奶瓶
发布于 2017/02/09 20:36
字数 557
阅读 70
收藏 0
点赞 0
评论 0

1.多渠道打包工具MultiChannelPackageTool

https://github.com/seven456/MultiChannelPackageTool

工具原理

利用的是Zip文件“可以添加comment(摘要)”的数据结构特点,在文件的末尾写入任意数据,而不用重新解压zip文件(apk文件就是zip文件格式);
所以该工具不需要对apk文件解压缩和重新签名即可完成多渠道自动打包,高效速度快,无兼容性问题;

使用步骤:

        

  1. 在项目中导入MCP-tool1.1.jar
  2. 自定义application在onCreate方法中写入String channelId= MCPTool.getChannelId(getApplicationContext(), null, "ceshihuawei");获得渠道id;
  3. public class TalkApplication extends Application {
            public  String channelId;
            @Override
            public void onCreate() {
                super.onCreate();
                channelId= MCPTool.getChannelId(getApplicationContext(), null, "ceshihuawei");
                Log.e("channelId","==========="+channelId);
            }
        
    }

        三个参数分别是 context,写入渠道号时的密码,如果没能读出渠道号时的默认返回值。

     3. 下载工具后在文件的MCPTool目录下打开命令按住shift+右键打开命令窗口

     输入java -jar MCPTool-1.1.jar -path 你的apk所在路径\app-release.apk -outdir ./ -contents noting;360;wandoujia;baidu;xiaomi;yingyongbao;vivo;oppo;huawei;meizu;

    按回车完成多渠道打包


 

2.集成友盟统计

友盟统计安卓端的相关文档

http://dev.umeng.com/analytics/android-doc/integration

  •     申请友盟账号后在http://mobile.umeng.com/analytics?spm=0.0.0.0.VMi3no页面点击立即使用
  • 选择管理界面添加应用获得appkey。
  • 按文档要求下载jar包或者在gradle中加入
  • compile 'com.umeng.analytics:analytics:latest.integration'
  • 在application的onCreate方法中加入
  • MobclickAgent. startWithConfigure(new MobclickAgent.UMAnalyticsConfig(getApplicationContext(),
            "你申请的appkey", channelId,MobclickAgent.EScenarioType.E_UM_NORMAL,true)); 
    //三个参数的含义是 context对象,获得的渠道号,友盟统计模式(普通模式),是否统计崩溃。
  •  MainActivity的onCreate,onResume,onPause方法中写入友盟统计的相关代码:
  • package com.example.admin.dqd;
    
    import android.content.Context;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    
    import com.umeng.analytics.MobclickAgent;
    
    public class MainActivity extends AppCompatActivity {
        private Context mContext;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mContext = this;
            MobclickAgent.setDebugMode(true);
            MobclickAgent.openActivityDurationTrack(false);
            MobclickAgent.setScenarioType(getApplicationContext(), MobclickAgent.EScenarioType.E_UM_NORMAL);
        }
    
        public void onResume() {
            super.onResume();
            MobclickAgent.onResume(mContext);
        }
    
        public void onPause() {
            super.onPause();
            MobclickAgent.onPause(mContext);
        }
    }

ps:需要注意的点

如果需要加固(360,乐固)请在加固后再使用工具进行多渠道打包,加固软件通常会重新打包应用,会导致你写入的渠道信息无法读取,所以先加固,后分渠道。

© 著作权归作者所有

共有 人打赏支持
老奶瓶
粉丝 1
博文 2
码字总数 590
作品 0
齐齐哈尔
程序员
Android项目实战(三十五):多渠道打包

   多渠道打包:   可以理解为:同时发布多个渠道的apk。分别上架不同的应用商店。这些apk带有各自渠道的标签,用于统计分析各个商店的下载次数等数据。   实现步骤   一、添加友盟渠...

听着music睡 ⋅ 2017/09/25 ⋅ 0

android-------- 多渠道打包(借助友盟移动统计分析)

好久没有发博客了,原因是换工作了,今天端午假期,所以来发一篇博客, 多渠道打包,借助友盟移动统计分析,希望对各位有所帮助 多渠道打包的理解: 渠道包就是要在安装包中添加渠道信息,也...

切切歆语 ⋅ 06/16 ⋅ 0

Android使用Gradle多渠道打包

1.首先创建.jks,然后build.gradle进行如下配置 singingConfigs配置 2.build.gradle中的buildTypes类型做如下配置 buildTypes配置 3.清单文件下做如下配置,添加meta-data,name为APPCHANNE...

正阳Android ⋅ 01/21 ⋅ 0

Android的多渠道打包|SquirrelNote

系列文章: Android的反编译和代码混淆 Android的打包签名 [Android的多渠道打包 前言 本篇包括以下内容: 多渠道打包概述 友盟的多渠道打包 美团的多渠道打包 360的多渠道打包 多渠道打包概...

跳动的松鼠 ⋅ 2017/11/21 ⋅ 0

Android多渠道打包相关介绍

一、多渠道打包概述 由于国内存在着有众多的应用市场,在不同的应用市场可能有不同的统计需求,为此Android开发人员需要为每个应用市场发布一个安装包,这里就引出了Android的多渠道打包。在...

Ruheng ⋅ 昨天 ⋅ 0

手把手教你AndroidStudio多渠道打包

最近不断有朋友向我咨询AndroidStudio多渠道的打包方法,今天整理一下之前积累的打包套路,写一篇文章,手把手的教给大家。 (一)在AndroidManifest.xml里设置动态渠道变量 (二)在build.g...

丁佳辉 ⋅ 2016/07/01 ⋅ 0

android studio多渠道打包

以友盟统计为例: 一、清单文件配置(AndroiManifest.xml) <!--友盟统计配置--> <!--每台设备仅记录首次安装激活的渠道,如果该设备再次安装其他渠道包,则数据仍会被记录在初始的安装渠道上...

席道坤 ⋅ 2016/12/02 ⋅ 0

Android Gradle 常用使用场景实现方式的总结

Gradle 作为一款灵活多变的构建插件,与 Android Studio 的结合,能够解决过去使用 Eclipse 开发 App 时所遇到的诸多问题。同时,基于 Groove 这样一款 DSL 语言的脚本特性,记住各种语法显然...

亦枫 ⋅ 2017/09/16 ⋅ 0

Gradle实现Android多渠道定制化打包

最近在项目中遇到需要实现 Apk 多渠道、定制化打包, Google 、百度查找了一些资料,成功实现了上述功能,在此记录以备不时之需,温故而知新,可以为师矣~ 需求可以总结如下: 如何实现多个 ...

玄学酱 ⋅ 2017/08/03 ⋅ 0

Android使用友盟集成QQ、微信、微博等第三方登录

前言 最近项目需要加入第三方分享和登录功能,之前其他项目的第三方分享和登录一直都使用ShareSDK实现的。为了统一使用友盟的全家桶,所以三方分享和登录也就选择了友盟。这里记录一下完整的...

慕前端7069444 ⋅ 05/21 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

解决yum安装报错Protected multilib versions

使用yum安装报错Protected multilib versions原因是因为多个库不能共存,不过更新的话也并不行,但是可以在安装命令后面加上如下一段命令: --setopt=protected_multilib=false 案例: 比如需...

北岩 ⋅ 31分钟前 ⋅ 0

为什么要学习Typescript???

简单来说 目前的typescript就是未来的javascript 为什么?? 这要从ECMA-262标准的第4版说起 对了 我们说的ES5 其实是ECMAScript3.1这个替代性建议被扶正了而已... 那么 第4版标准是什么? 看看...

hang1989 ⋅ 35分钟前 ⋅ 0

linux安装ipfs

一、下载ipfs # cd /usr/local/ipfs/ # wget https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_linux-amd64.tar.gz # tar -zxvf go-ipfs_v0.4.15_linux-amd64.tar.gz 二、安装ipfs # ......

八戒八戒八戒 ⋅ 41分钟前 ⋅ 0

jvm程序执行慢诊断手册

生产环境最多的几种事故之一就是程序执行慢,如果是web服务的话,表现就是响应时间长。本文分享,从业多年形成的排查守则。 诊断步骤 系统资源查看 首先是系统资源查看,而且必须是在第一步。...

xpbob ⋅ 41分钟前 ⋅ 0

YII2 advanced 高级版本项目搭建-添加API应用以及多应用

一、YII安裝 安裝yii可以用composer安裝,也可以在yii中文社区下载归档文件安装 composer安装就不介绍了,因为要安装composer,比较麻烦,当然安装了composer是最好的,以后安装yii的插件要用...

botkenni ⋅ 42分钟前 ⋅ 0

在jdk1.8的环境下模拟永久代内存溢出

相信不少小伙伴在看深入理解Java虚拟机的时候,作者给我们举例一个demo来发生PermGen space 1、通过List不断添加String.intern(); 2、通过设置对应的-XX:PermSize与-XX:MaxPermSize(更快看到...

虾几把写 ⋅ 今天 ⋅ 0

开发OpenDaylight组件的完整流程

在前面介绍学习了OpenDaylight的几个重要模块后,这里再来介绍下完整开发一个模块的过程。 OSGI的bundles提供被其他OSGI组件调用的服务。这个教程中展示的是Data Packet Service去解析数据包...

wangxuwei ⋅ 今天 ⋅ 0

Java序列化和反序列化

1、什么是序列化和反序列化 序列化:把对象转换为字节序列的过程。 反序列化:把字节序列恢复成对象的过程。 2、被序列化的类需要实现serializable接口,只是为了标注该对象是可以被序列化的...

IT-Mamba ⋅ 今天 ⋅ 0

流式构建原理

流式构建需要达到分钟级的数据更新频率,Kylin采用类似于Spark Streaming的做法,每隔数分钟进行一次微构建。这边的构建需要考虑到一个延迟因素,分布式网络存在延迟等因素,该时间段的数据有...

无精疯 ⋅ 今天 ⋅ 0

在maven项目工程编写solr代码,需要的依赖

solrJ <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>6.6.2</version> </dependency> <dependency> <groupId>org.apache.httpcomponents<......

爱运动的小乌龟 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部