Android---友盟统计集成步骤

1、获得Appkey

集成友盟SDK之前,您首先需要到友盟官网注册并且添加新应用,获得Appkey

Android---友盟统计集成步骤_第1张图片


2、下载SDK

请使用libs里的SDK


3、导入SDK

导入SDK有以下两种方法,选择其中一种即可 

新版SDK支持Android 6.0,编译时请指定编译版本为6.0及以上。

3.1下载SDK并集成

将下载包中的libs文件夹合并到本地工程libs子目录下;在Eclipse中右键工程根目录,选择Properties-> Java Build Path -> Libraries,然后点击Add External JARs... 选择指向jar的路径,点击OK,即导入成功。(ADT17及以上不需要手动导入)

3.2使用Android Studio导入SDK

Android Studio是谷歌推出了新的Android开发环境,友盟支持AndroidStudioGradle配置,如果您使用AndroidStudio开发,请按照如下的方法操作:

Gradle依赖中添加:

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

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

allprojects {
    repositories {
            mavenCentral()     
    }
}

4、在manifest中添加权限:

……

权限说明

权限

用途

ACCESS_NETWORK_STATE(必须)

检测联网方式,区分用户设备使用的是2G、3G或是WiFi

READ_PHONE_STATE(必须)

获取用户设备的IMEI,通过IMEI和mac来唯一的标识用户。

ACCESS_WIFI_STATE(必须)

获取用户设备的mac地址,在平板设备上,无法通过imei标示设备,我们会将mac地址作为用户的唯一标识

INTERNET(必须)

允许应用程序联网,以便向我们的服务器端发送数据。


5、Session统计

在每个Activity的onResume方法中调用 MobclickAgent.onResume(Context), onPause方法中调用 MobclickAgent.onPause(Context)

publicvoidonResume() {

super.onResume();

MobclickAgent.onResume(this);

}

publicvoidonPause() {

super.onPause();

MobclickAgent.onPause(this);

}

  • 确保在所有的Activity中都调用 MobclickAgent.onResume() 和MobclickAgent.onPause()方法,这两个调用将不会阻塞应用程序的主线程,也不会影响应用程序的性能。
  • 注意 如果您的Activity之间有继承或者控制关系请不要同时在父和子Activity中重复添加onPause和onResume方法,否则会造成重复统计,导致启动次数异常增高。(eg.使用TabHost、TabActivity、ActivityGroup时)。
  • 当应用在后台运行超过30秒(默认)再回到前端,将被认为是两个独立的session(启动),例如用户回到home,或进入其他程序,经过一段时间后再返回之前的应用。可通过接口:MobclickAgent.setSessionContinueMillis(long interval) 来自定义这个间隔(参数单位为毫秒)。


6、页面统计

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

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

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

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

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

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

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

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

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

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

publicvoidonResume(){
super.onResume();
    MobclickAgent.onPageStart("MainScreen"); //统计页面,"MainScreen"为页面名称,可自定义
}
publicvoidonPause(){
super.onPause();
    MobclickAgent.onPageEnd("MainScreen"); 
}

7、在App入口中添加:

private void initYoumeng() {
   MobclickAgent.setScenarioType(this, MobclickAgent.EScenarioType.E_UM_NORMAL); //设置场景模式为普通
   MobclickAgent.openActivityDurationTrack(false); //禁止默认的页面统计方式
   MobclickAgent.setDebugMode(true); //开启调试模式(如果不开启debug运行不会上传umeng统计)
   MobclickAgent.setCatchUncaughtExceptions(true); //捕获程序崩溃日志
}

@Override
public void onCreate() {
   super.onCreate();
   initYoumeng();
}

8、代码混淆

如果应用使用了混淆,需要在混淆文件添加

-keepclassmembers class * {
   public  (org.json.JSONObject);
}

-keep public class [实际的应用包名].R$*{
public static final int *;
}

-keepclassmembers enum * {
   public static **[] values();
   public static ** valueOf(java.lang.String);
}

备注:友盟统计简单集成已完成,详细见友盟官方文档

你可能感兴趣的:(友盟统计)