友盟统计U-APP集成和多渠道打包

0. 序言

  • 友盟之所以被阿里收购,说到底是统计做得好.
  • 国内APP统计就选U-APP.

1. U-APP 功能

  • 应用趋势
    清晰展示新增用户、活跃用户、启动次数、版本分布、行业指标等数据,整体把控运营情况及增长动态.
  • 渠道分析
    清晰展示各渠道的新增用户、活跃用户、次日留存率等用户指标,衡量渠道推广效果.
  • 留存分析
    掌握每日(周/月)的新增用户在初次使用后一段时间内的留存率,反映了产品和用户质量的好坏.
  • 行为分析
    了解用户的产品使用细节及行为特征,帮助寻找产品改进的突破点,评估产品优化的效果.
  • 用户属性
    用户的基本属性和行为特征,帮助全面了解用户.
  • 错误分析
    收集并归类崩溃日志,提供错误管理及分析工具,帮助提高应用的稳定性,改善应用质量.

2. U-APP 集成

  • 获取AppKey
    到 【友盟+】官网注册并且添加新应用,获得AppKey.
    注:
    ① 不同平台的应用禁止使用相同的AppKey,需要分开注册.
    ② 后台的应用名与实际应用名和包名无关,建议命名为应用名+平台(iOS/Android).
  • 添加依赖
dependencies {
    compile 'com.umeng.sdk:common:1.5.0'
    compile 'com.umeng.sdk:analytics:7.5.0'
}
allprojects {
    repositories {
            mavenCentral()     
    }
}
  • 配置权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
  • 添加混淆
-keep class com.umeng.** {*;}
-keepclassmembers class * {
   public <init> (org.json.JSONObject);
}
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}
-keep public class [您的应用包名].R$*{
public static final int *;
}
  • Application中初始化
UMConfigure.init(Context context, String appkey, String channel, int deviceType, String pushSecret);
参数: context(上下文);appkey(应用唯一标识);channel(自定义名称);UMConfigure.DEVICE_TYPE_PHONE(手机);pushSecret(推送功能的密钥,无集成填null)
MobclickAgent.setScenarioType(mContext, EScenarioType.E_UM_NORMAL);
设置场景类型:EScenarioType.E_UM_NORMAL 普通统计场景;EScenarioType.E_UM_GAME 游戏场景
  • Session启动、App使用时长统计:
@Override
public void onResume() {
    super.onResume();
    MobclickAgent.onResume(this);
}
@Override
public void onPause() {
    super.onPause();
    MobclickAgent.onPause(this);
}
位置:BaseActivity或各个Activity
@Override
 public void onResume() {
     super.onResume();
     MobclickAgent.onPageStart(this.getClass().getSimpleName()); // 统计页面
 }

 @Override
 public void onPause() {
     super.onPause();
     MobclickAgent.onPageEnd(this.getClass().getSimpleName()); // 统计页面
 }
位置:BaseFragment或各个Fragment

3. 多渠道打包:

  • 初始化(修改上面的初始化):
UMConfigure.init(Context context, int deviceType, String pushSecret);

说明:
① 友盟appkey和channel放在配置文件中初始化;
② pushSecret: 如果为不用友盟推送,这个参数就写null

  • AndroidManifest:
<meta-data
            android:name="UMENG_APPKEY"
            android:value="你的APPKEY" />      
 <meta-data
            android:name="UMENG_CHANNEL"
            android:value="${UMENG_CHANNEL_VALUE}" />
  • App build.gradle的根目录android中:
  // 友盟多渠道打包
    productFlavors {
        wandoujia {}
        _360 {}
        baidu {}
        xiaomi {}
        tencent {}
        taobao {}
        ........
    }

    productFlavors.all { flavor ->
        flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }
  • AndroidStudio 右侧 - Gradle - app - build - assembleRelease



作者:剑走偏锋雨
链接:https://www.jianshu.com/p/5027678b02c9
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

友盟渠道打包工具主要是提供基本的通过工程源码打包的功能。 常见错误见这里目前不支持的Apk特性见这里(可能会导致发布的SDK产生严重bug)。 Google 现在已经发布了最新的构建系统(New Building System) , 在 Android Studio 中已经支持了最新的 构建系统,如果开发者已经迁移,可以使用新的系统方面的生成渠道包,这是取代渠道打包工具的最佳方式。 1. 工程结构 工程结构图 : - CommonTools 共用的工具类,包括对 `Apktool` , `Jarsigner` , `zipalign` 的封装 - UIControls_35   共用的UI类,对大部分控件的样式都是在这里设置的 - UmengMarket  Marekt 组件,现在还没有实现 - UmengPackage 打包组件 - UmengTools 工程主要UI,管理 UmengMarket, UmengPackage, UmengTools 三个组件 - UmengWidget 小工具组件,目前仅有解包分析的功能 打包工具组件: - Source - Builder - ApkBuilder.cs     通过 APK 打包的 Builder 实现                    - Builder.cs            抽象 Builder 类,提供打包的主要逻辑                    - SourceBuilder.cs通过源码打包的 Builder 实现 (目前代码还没有实现)          - Worker.cs 打包过程对外接口 3. 打包流程 V2.0 版本仅实现了通过 .apk 打包的方式,本质上对  apk 文件进行反编译,修改 AndroidManifest.xml 文件后,再重新打包,我们使用的工具是开源的拆包工具 Apktool 将  apktool  添加到当前 process 的环境变量 执行 apktool d --no-src -f xxxx.apk temp 拆解apk 替换或者添加 AndroidManifest.xml 中的 友盟channel 执行apktool b temp  unsigned.apk 重新打包apk 执行 SignApk.jar 生成签名后的 apk 文件 执行 zipAlign 生成对齐优化后的 apk 文件 回到 3 替换新的渠道 完成打包 使用  JarSigner.jar 给 Apk 签名, SignApk.jar  文件是我们修改过的 apk 签名工具,实现了和 ADT 中一样的签名方式,使用如下: Usage: signapk file.{keystore} keystore_password key_entry key_password input.apk output.apk
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值