在Android工程中集成友盟统计

在Android工程中集成友盟统计
首先需要在友盟官网注册账号并添加新应用,获取Appkey。具体步骤这里不进行叙述。

1.集成准备

首先需要集成友盟统计SDK

有两种方式:
1.下载SDK,并复制到工程 lib/目录下;
2.通过添加gradle依赖,在app/builde.gradle
中添加

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

因为gradle文件有变化,所以需要更新下工程,就可以使用友盟统计包中的方法了。

接下来在工程中配置Appkey

在AndroidManifest.xml中添加权限,填写Appkey和渠道id,代码如下:

<manifest……>

<uses-sdk ……></uses-sdk>
<!--这4个权限都是必须添加的,最好检查下是否同工程已经添加的权限重复,权限具体用途请自行搜索-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<application ……>
……
<activity ……/>
<!--替换为在友盟后台申请的应用Appkey-->
<meta-data android:value="YOUR_APP_KEY" android:name="UMENG_APPKEY"></meta-data>
<!--应用的推广渠道名称,Channel ID自定义-->
<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>
</application>   

</manifest>

如果希望在代码中配置Appkey,Channel等信息,就在程序入口处调用下面的方法:

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:官方申请的AppkeyString channel: 渠道号EScenarioType eType: 场景模式,包含统计、游戏、统计盒子、游戏盒子Boolean isCrashEnable: 可选初始化. 是否开启crash模式

  • 建议在AndroidManifest文件中进行配置

2.session统计

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

  • 对于继承了BaseActivity的类,不要同时在父和子Activity中重复添加onResume和onPause方法,会造成重复统计。

  • 确保在所有的Activity中都调用 MobclickAgent.onResume() 和MobclickAgent.onPause()方法,这两个调用将不会阻塞应用程序的主线程,也不会影响应用程序的性能。

  • 当应用在后台运行超过30秒(默认)再回到前端,将被认为是两个独立的session(启动),例如用户回到home,或进入其他程序,经过一段时间后再返回之前的应用。可通过接口:MobclickAgent.setSessionContinueMillis(long interval) 来自定义这个间隔(参数单位为毫秒)。

  • 如果调用Process.kill或者System.exit之类的方法杀死进程,请务必在此之前调用MobclickAgent.onKillProcess(Context context)方法,用来保存统计数据。

3.页面统计

只包含Activity的应用,使用上面2.session统计 进行设置就已经默认统计了每个Activity的挑战路径了。页面统计不需要再添加其他代码。
对包含Activity、Fragment和FragmentActivity的应用,需要进行以下设置。
建议定义统一的BaseActivity、BaseFragment及BaseFragmentActivity,然后工程中的类分别对应继承这些Base类,那么就只需要对Base类进行配置了,当然在Base类里也可以定义其他一些方法。
说下base类如何配置

BaseActivity.class

public class BaseActivity extends Activity {

   @Override
   protected void onResume() {
       super.onResume();
       MobclickAgent.onResume(this);
   }
​
   @Override
   protected void onPause() {
       super.onPause();
       MobclickAgent.onPause(this);
   }
}

BaseFragment.class

public abstract class BaseFragment extends Fragment {

   @Override
   public void onResume() {
       super.onResume();
       MobclickAgent.onPageStart(getClass().getName());
   }
​
   @Override
   public void onPause() {
       super.onPause();
     MobclickAgent.onPageEnd(getActivity().getLocalClassName());
   }
}

BaseFragmentActivity

public class BaseFragmentActivity extends FragmentActivity {

   @Override
   protected void onResume() {
       super.onResume();
       MobclickAgent.onResume(this);
   }
​
   @Override
   protected void onPause() {
       super.onPause();
       MobclickAgent.onPause(this);
   }
}
  • 新创建的Activity需要继承BaseActivity

4.发送策略

发送策略有两种方式:1.启动时发送;2.按间隔发送。默认使用启动时发送的策略
在友盟后台进行设置,位置:**统计分析->设置->发送策略 **

5.日志加密、代码混淆

在程序入口设置加密模式

/** 设置是否对日志信息进行加密, 默认false(不加密). */

AnalyticsConfig.enableEncrypt(boolean enable);//6.0.0版本以前

MobclickAgent.enableEncrypt(boolean enable);//6.0.0版本及以后

代码混淆

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

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

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

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

6.自定义事件统计

自定义事件也就是常说的埋点事件,当如果点击了某个按钮时将用户的这一动作记录下来,并传回给服务器,方便统计。
这里只说下计数事件
在希望跟踪的位置,调用如下方法:

MobclickAgent.onEvent(Context context, String eventId); // eventId 事件ID,自己定义

代码添加之后,在友盟后台需要添加事件,位置 统计分析->设置->事件,将定义的事件ID添加就可以了。

附:友盟官方文档地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容