集成友盟SDK之前,您首先需要到友盟官网注册并且添加新应用,获得Appkey
请使用libs里的SDK
导入SDK有以下两种方法,选择其中一种即可 。
新版SDK支持Android 6.0,编译时请指定编译版本为6.0及以上。
将下载包中的libs文件夹合并到本地工程libs子目录下;在Eclipse中右键工程根目录,选择Properties-> Java Build Path -> Libraries,然后点击Add External JARs... 选择指向jar的路径,点击OK,即导入成功。(ADT17及以上不需要手动导入)
Android Studio是谷歌推出了新的Android开发环境,友盟支持AndroidStudio的Gradle配置,如果您使用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的应用中,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);
}
备注:友盟统计简单集成已完成,详细见友盟官方文档