文档章节

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

老奶瓶
 老奶瓶
发布于 2017/02/09 20:36
字数 557
阅读 143
收藏 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,乐固)请在加固后再使用工具进行多渠道打包,加固软件通常会重新打包应用,会导致你写入的渠道信息无法读取,所以先加固,后分渠道。

© 著作权归作者所有

共有 人打赏支持
上一篇: AS 的 github管理
下一篇: 安卓更新图标
老奶瓶
粉丝 1
博文 3
码字总数 590
作品 0
齐齐哈尔
程序员
私信 提问
Android的多渠道打包|SquirrelNote

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

跳动的松鼠
2017/11/21
0
0
Android配置build.gradle的productFlavors多渠道打包

版权声明:本文为Zhang Phil原创文章,请不要转载! https://blog.csdn.net/zhangphil/article/details/83302184 Android配置build.gradle的productFlavors多渠道打包 Android在分发不同市场...

zhangphil
2018/10/23
0
0
Android Gradle 常用使用场景实现方式的总结

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

亦枫
2018/10/29
0
0
Android项目实战(三十五):多渠道打包

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

听着music睡
2017/09/25
0
0
android-------- 多渠道打包(借助友盟移动统计分析)

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

切切歆语
2018/06/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Oracle学习日志-7(聚合查询)

GROUP BY子句: GROUP BY可以对表进行分割。比如把下面的表按照商品种类进行分割,并列出该商品种类下有多少商品 SQL代码如下 SELECT product_type ,COUNT(*)FROM ProductGROUP BY produc...

白话
14分钟前
0
0
Docker安装mysql8主从结构

准备两台服务器,假设IP地址为 172.31.27.67 主服务器 172.31.27.69 从服务器 因为我用的镜像是docker.io/cytopia/mysql-8.0,所以我们需要先把该镜像给pull下来。 docker pull docker.io/cy...

算法之名
18分钟前
4
0
Springboot集成Ehcache缓存(主要用在登录后做保持会话验证)

EhCache是一个比较成熟的Java缓存框架,最早从hibernate发展而来, 是进程中的缓存系统,它提供了用内存,磁盘文件存储,以及分布式存储方式等多种灵活的cache管理方案,快速简单。 Springbo...

Nonry
19分钟前
0
0
Ajax

1、创建ajax对象 if(window.navigator.userAgent.indexOf('MSIE') > 0){ var xhr = new ActiveXObject('Microsoft.XMLHTTP');}else{ var xhr = new XMLHttpRequest();} 2、get......

lujc
19分钟前
0
0
Flink的基石 : Chandy Lamport Algorithm

Flink处理“流”,对流消息的处理支持三种级别语义分别是“At Most once、At Least once、Exactly once”。 At Most onces:消息最多被处理一次,sender发出消息之后,receiver无论是否处理成...

tantexian
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部