Android 集成第三方SDK 友盟+统计 浓缩版

前言:

也是有段时间没有更新博客了,也是自己比较懒,一有事情做一些事就会放一边,没有去动。一个多月没更新了,发现博客访问量有两千多了。想想还是得更新多几篇也是对自己做笔记的加固(其实就是自己记性差)

 

正文:

当让需要集成这个SDK,是需要账号注册的。没注册的朋友就注册一下。

 注:如果是公司的项目最好还是让公司的负责人去申请注册,避免日后个人离职带来不必要的麻烦。如果是自己练习的话,自己顺便注册一个就好了。

 

接下来就直接来开发步骤吧!!!

 

第一步:注册账号

 

额~ 这一步我就省略了...  不难。不是什么国外网站,都是中文都是可以看得懂的

 

第二步:在友盟中账号创建程序

 

Android 集成第三方SDK 友盟+统计 浓缩版_第1张图片

 

Android 集成第三方SDK 友盟+统计 浓缩版_第2张图片   Android 集成第三方SDK 友盟+统计 浓缩版_第3张图片

Android 集成第三方SDK 友盟+统计 浓缩版_第4张图片

 

到这一步项目已经在友盟上创建好了。那接下来就是开始嵌入到APP中了

 

第三步:将友盟嵌入到自己的APP中

 

详细文档可以看官方文档:http://dev.umeng.com/analytics/android-doc/integration

我这里写呢,就是集成基本的统计而已。给官方的文档做了浓缩版(简约笔记)

 

我们将官方的SDK 下载下来并且解压后:进去找到libs 文件

 

Android 集成第三方SDK 友盟+统计 浓缩版_第5张图片

 

 

 

下列jar包中utdid4all-1.0.4.jar 可以根据自己的情况拷贝到项目中去,没报错可以不加,如添加后,出现错误,就麻烦自己百度一下啦。一般就将这个包直接删除就好了,不影响友盟功能的。

 

 

Android 集成第三方SDK 友盟+统计 浓缩版_第6张图片

 

 

Android Studio 嵌入

 

在Gradle依赖中添加:

如果是用Android Studio工具开发的话就不用管上面的jar包啦。使用更简单的方法,Android Studio 添加下列的依赖,就可以了

dependencies {
   compile 'com.umeng.analytics:analytics:latest.integration'
}

如果无法正常集成请添加如下代码 :

allprojects {
    repositories {
            mavenCentral()     
    }
}

 

 

在 AndroidManifest.xml 中配置权限,以及友盟配置信息

 








……





    

 

 

填写appkey

 

中的YOUR_APP_KEY替换为您在友盟后台申请的应用Appkey(Appkey可在统计后台的 统计分析->设置->应用信息页面查看),其他部分均不需改动。

channel填写

 

中的Channel ID替换为您应用的推广渠道名称,channel id自定义。

例如在豌豆荚渠道推广此包,代码示例: 

 

渠道命名规范

1.可以由英文字母、阿拉伯数字、下划线、中划线、空格、括号组成,可以含汉字以及其他明文字符,但是不建议使用中文命名,会出现乱码。

2.首尾字符不可以为空格

3.不要使用纯数字作为渠道ID

4.最多256个字符

5."unknown" 及其各种大小写形式,作为友盟保留的字段,不可以作为渠道名

在您查看数据时,渠道会作为一个数据细分的维度。

非常重要:每台设备仅记录首次安装激活的渠道,如果该设备再次安装其他渠道包,则数据仍会被记录在初始的安装渠道上。

所以在测试不同的渠道时,请使用不同的设备来分别测试。也可使用集成测试功能进行测试,了解更多集成测试请点击这里

权限说明

 

权限 用途
ACCESS_NETWORK_STATE(必须) 检测联网方式,区分用户设备使用的是2G、3G或是WiFi
READ_PHONE_STATE(必须) 获取用户设备的IMEI,通过IMEI和mac来唯一的标识用户。
ACCESS_WIFI_STATE(必须) 获取用户设备的mac地址,在平板设备上,无法通过imei标示设备,我们会将mac地址作为用户的唯一标识
INTERNET(必须) 允许应用程序联网,以便向我们的服务器端发送数据。

 

 在代码中配置Appkey和Channel

 

如果希望在代码中配置Appkey、Channel、Token(Dplus)等信息,请在程序入口处调用如下方法:

MobclickAgent. startWithConfigure(UMAnalyticsConfig config)

UMAnalyticsConfig初始化参数类,提供多参数构造方式:


UMAnalyticsConfig(Context context, String appkey, String channelId)

UMAnalyticsConfig(Context context, String appkey, String channelId, EScenarioType eType)

UMAnalyticsConfig(Context context, String appkey, String channelId, EScenarioType eType,Boolean isCrashEnable)

构造意义:
String appkey:官方申请的Appkey
String channel: 渠道号
EScenarioType eType: 场景模式,包含统计、游戏、统计盒子、游戏盒子
Boolean isCrashEnable: 可选初始化. 是否开启crash模式

 

在程序入口调用一下方法:

 

 

//使用集成测试服务
MobclickAgent.setDebugMode( true );
//捕获程序崩溃日志,并在程序喜下次启动时发送到服务器 如果不需要可以通过此方法关闭
//详细查看官方文档  http://dev.umeng.com/analytics/android-doc/integration#4
MobclickAgent.setCatchUncaughtExceptions(false);
// SDK在统计Fragment时,需要关闭Activity自带的页面统计,
// 然后在每个页面中重新集成页面统计的代码(包括调用了 onResume 和 onPause 的Activity)。
MobclickAgent.openActivityDurationTrack(false);
//场景类型设置接口。
     /**
      *  EScenarioType. E_UM_NORMAL  普通统计场景类型
      *  EScenarioType. E_UM_GAME       游戏场景类型
      *  EScenarioType. E_UM_ANALYTICS_OEM  统计盒子场景类型
      *  EScenarioType. E_UM_GAME_OEM        游戏盒子场景类型
      */
MobclickAgent.setScenarioType(Context context, EScenarioType etype)

 

 包含Activity、Fragment或View的应用

(这些的话如果你都有封装了BaseActivity 或者 BaseActivity的话。其实就直接写到 Base里面就可以了)

 

统计应用中包含Fragment的情况比较复杂,首先要明确一些概念。

 

1. MobclickAgent.onResume() 和MobclickAgent.onPause() 方法是用来统计应用时长的(也就是Session时长,当然还包括一些其他功能)

2.MobclickAgent.onPageStart()MobclickAgent.onPageEnd()方法是用来统计页面跳转的

在仅有Activity的应用中,SDK 自动帮助开发者调用了 2 中的方法,并把Activity 类名作为页面名称统计。但是在包含fragment的程序中我们希望统计更详细的页面,所以需要自己调用方法做更详细的统计。

首先,需要在程序入口处,调用 MobclickAgent.openActivityDurationTrack(false) 禁止默认的页面统计方式,这样将不会再自动统计Activity。

然后需要手动添加以下代码:

1. 使用 MobclickAgent.onResume 和 MobclickAgent.onPause方法统计时长, 这和基本统计中的情况一样(针对Activity)

2. 使用 MobclickAgent.onPageStart 和 MobclickAgent.onPageEnd 方法统计页面(针对页面,页面可能是Activity 也可能是Fragment或View)

如果页面是直接由Activity实现的,统计代码大约是这样:

public void onResume() {
    super.onResume();    //MobclickAgent.onPageStart(getClass().getSimpleName);
    MobclickAgent.onPageStart("SplashScreen"); //统计页面(仅有Activity的应用中SDK自动调用,不需要单独写。"SplashScreen"为页面名称,可自定义)
    MobclickAgent.onResume(this);          //统计时长
}
public void onPause() {
    super.onPause();    //MobclickAgent.onPageEnd(getClass().getSimpleName());
    MobclickAgent.onPageEnd("SplashScreen"); // (仅有Activity的应用中SDK自动调用,不需要单独写)保证 onPageEnd 在onPause 之前调用,因为 onPause 中会保存信息。"SplashScreen"为页面名称,可自定义
    MobclickAgent.onPause(this);
}

如果页面是使用FragmentActivity + Fragment实现的,需要在 FragmentActivity 中统计时长:

public void onResume() {
    super.onResume();
    MobclickAgent.onResume(this);       //统计时长
}
public void onPause() {
    super.onPause();
    MobclickAgent.onPause(this);
}

 

 

并在其包含的 Fragment 中统计页面:

public void onResume() {
    super.onResume();    //MobclickAgent.onPageStart(getClass().getSimpleName);    //MobclickAgent.onResume(this)
    MobclickAgent.onPageStart("MainScreen"); //统计页面,"MainScreen"为页面名称,可自定义
}
public void onPause() {
    super.onPause();    //MobclickAgent.onPageEnd(getClass().getSimpleName());    //MobclickAgent.onPause(this);
    MobclickAgent.onPageEnd("MainScreen"); 
}

 

注意:这些方法的调用,需要保证线性不交叉,每个 onResume 都对应一个 onPause ,每个 Start 都有一个 End 配对。这样才能保证每个页面统计的正确,关于页面统计API的最佳实践说明见这里 。

自此已经是嵌入完成了,下面有更详细的一些其他的统计。

 

第四步:完成

 

更多Android 植入友盟统计:  

Android+WebView  加入统计:点击打开链接

计数统计事件:点击打开链接

自定义事件统计(计数事件):点击打开链接

代码混淆:点击打开链接

账号统计:点击打开链接

实现友盟多渠道打包:点击打开链接

你可能感兴趣的:(Android)