文档章节

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

老奶瓶
 老奶瓶
发布于 2017/02/09 20:36
字数 557
阅读 2K
收藏 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管理
下一篇: AS 的 github管理
老奶瓶
粉丝 1
博文 3
码字总数 590
作品 0
齐齐哈尔
程序员
私信 提问
加载中
请先登录后再评论。
用vertx实现高吞吐量的站点计数器

工具:vertx,redis,mongodb,log4j 源代码地址:https://github.com/jianglibo/visitrank 先看架构图: 如果你不熟悉vertx,请先google一下。我这里将vertx当作一个容器,上面所有的圆圈要...

jianglibo
2014/04/03
4.2K
3
Flappy Bird(安卓版)逆向分析(一)

更改每过一关的增长分数 反编译的步骤就不介绍了,我们直接来看反编译得到的文件夹 方法1:在smali目录下,我们看到org/andengine/,可以知晓游戏是由andengine引擎开发的。打开/res/raw/at...

enimey
2014/03/04
6.1K
18
浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: <TextView 运行效果如下: 修改其文本内容...

樂天
2014/03/22
691
1
程序猿媛一:Android滑动翻页+区域点击事件

滑动翻页+区域点击事件 ViewPager+GrideView 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。文尾附注源码获取途径。 转载请保留原文出处“http://my.oschina.net/gluoyer...

花佟林雨月
2013/11/09
4.3K
1
5分钟 maven3 快速入门指南

前提条件 你首先需要了解如何在电脑上安装软件。如果你不知道如何做到这一点,请询问你办公室,学校里的人,或花钱找人来解释这个给你。 不建议给Maven的服务邮箱来发邮件寻求支持。 安装Mav...

fanl1982
2014/01/23
1.2W
7

没有更多内容

加载失败,请刷新页面

加载更多

Hacker News 简讯 2020-08-12

最后更新时间: 2020-08-12 00:01 Single Page Applications using Rust - (sheshbabu.com) 使用Rust的单页应用程序 得分:126 | 评论:68 The case for why Google should be regulated as a ......

FalconChen
31分钟前
66
0
在关系数据库中存储分层数据有哪些选择? [关闭]

问题: Good Overviews 良好的概述 Generally speaking, you're making a decision between fast read times (for example, nested set) or fast write times (adjacency list). 一般来说,您......

fyin1314
昨天
7
0
创建myBatis项目

1、简介 1.1、核心组件 SqlSessionFactoryBuilder(构造器):根据配置信息或者代码生成SqlSessionFactory SqlSessionFactory(工厂接口):依靠工厂来生成SqlSession(会话) SqlSession(会话): ...

执键走天涯
昨天
5
0
Tomcat集群带来的问题和解决思路

Tomcat集群 存在问题 解决方案 基于Redis+Cookie+Jackson+Filter的原生解决集群Session共享问题 使用Spring Session零侵入解决Session共享 单点登录实现 Redis构建Session服务器 使用Redis+C...

code-ortaerc
昨天
17
0
小福利

点击有福利 本文分享自微信公众号 - V5codings(gh_c1ec2d16ec93)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。...

V5codings
2019/11/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部