文档章节

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

老奶瓶
 老奶瓶
发布于 2017/02/09 20:36
字数 557
阅读 118
收藏 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 Gradle 常用使用场景实现方式的总结

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

亦枫
10/29
0
0
Android配置build.gradle的productFlavors多渠道打包

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

zhangphil
10/23
0
0
Android项目实战(三十五):多渠道打包

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

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

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

切切歆语
06/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

2135亿背后,你所不知道的那些阿里瞬间

摘要: 01 10日下午五点。 上海梅赛德斯奔驰文化中心,天猫双11前夜的“猫晚”就在离我100米的地方。 台上正彩排,鲜衣怒马,烈焰繁花。但走进导播车,白天和黑夜好像没有区别,但你知道吗,...

阿里云官方博客
23分钟前
1
0
叶曼音频

道德经 道德经01a 道德经01b

亚林瓜子
31分钟前
0
0
Go 使用channel控制并发

前言 channel一般用于协程之间的通信,channel也可以用于并发控制。比如主协程启动N个子协程,主协程等待所有子协程退出后再继续后续流程,这种场景下channel也可轻易实现。 场景示例 总结 ...

恋恋美食
今天
3
0
斐波那契堆的理解,节点mark属性和势函数

斐波那契堆 看了好多博客,都是照搬算法导论的内容,没有自己的理解,比如为什么有mark属性,势函数的作用,以及为什么叫斐波那契堆,下面说说鄙人的理解。 势函数 势函数是根节点个数加上2...

杨喆
今天
7
0
NIO源码详解

阻塞io和无阻塞io: 阻塞io是指jdk1.4之前版本面向流的io,服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒 ...

沉稳2018
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部