以下只介绍 android studio中的集成方法
首先去友盟官网注册账号,并且提交应用 获取appkey
在studio项目中,app目录下的build.gradel中,添加
//添加友盟统计 compile 'com.umeng.analytics:analytics:latest.integration'配置权限及appkey
manifest的配置主要包括添加权限,以下权限缺一不可,填写Appkey和填写渠道id三部分,代码示例如下:
<manifest……>
<uses-sdk android:minSdkVersion="8">uses-sdk>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<application ……>
……
<activity ……/>
<meta-data android:value="YOUR_APP_KEY" android:name="UMENG_APPKEY"/>
<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>
application>
manifest>
权限 | 用途 |
ACCESS_NETWORK_STATE(必须) | 检测联网方式,区分用户设备使用的是2G、3G或是WiFi |
READ_PHONE_STATE(必须) | 获取用户设备的IMEI,通过IMEI和mac来唯一的标识用户。 |
ACCESS_WIFI_STATE(必须) | 获取用户设备的mac地址,在平板设备上,无法通过imei标示设备,我们会将mac地址作为用户的唯一标识 |
INTERNET(必须) | 允许应用程序联网,以便向我们的服务器端发送数据。 |
将
中的YOUR_APP_KEY
替换为您在友盟后台申请的应用Appkey(Appkey可在统计后台的 统计分析->设置->应用信息页面查看),其他部分均不需改动。
将
中的Channel ID替换为您应用的推广渠道名称,channel id自定义。
例如在豌豆荚渠道推广此包,代码示例:
渠道命名规范
1.可以由英文字母、阿拉伯数字、下划线、中划线、空格、括号组成,可以含汉字以及其他明文字符,但是不建议使用中文命名,会出现乱码。
2.首尾字符不可以为空格
3.不要使用纯数字作为渠道ID
4.最多256个字符
5."unknown" 及其各种大小写形式,作为友盟保留的字段,不可以作为渠道名
然后,去程序的入口处,一般是application中,添加注册友盟信息
//初始化友盟 private void initUmengInfo() { MobclickAgent.setDebugMode(true); // SDK在统计Fragment时,需要关闭Activity自带的页面统计, // 然后在每个页面中重新集成页面统计的代码(包括调用了 onResume 和 onPause 的Activity)。 MobclickAgent.openActivityDurationTrack(false); MobclickAgent.setScenarioType(instance, MobclickAgent.EScenarioType.E_UM_NORMAL); }
代码中的instance 代表的是这个application的名字 具体是这样
private static TeenApplication instance;
@Override public void onCreate() { super.onCreate(); instance = this;
然后去各个activity,分别在onResume()和onPause()方法中添加方法 如下
@Override protected void onResume() { super.onResume(); MobclickAgent.onResume(this); } @Override protected void onPause() { super.onPause(); MobclickAgent.onPause(this); }
注意,若有继承关系,只在父activity中添加即可
若有fragment,需要取fragment的onResume()和onPause()方法中注册
@Override public void onResume() { super.onResume(); MobclickAgent.onPageStart(mPackageName); } @Override public void onPause() { super.onPause(); MobclickAgent.onPageEnd(mPackageName); }代码中的mPackageName指的是当前包目录+当前fragment的名称,比如我当前类是BaseFragment,包名是com.cs.fragment
那么mPackageName就是 “ com.cs.fragment.BaseFragment”
然后可以添加测试设备 用以测试是否集成成功
具体请参考官网文档,有详细说明
http://dev.umeng.com/analytics/android-doc/integration
添加测试设备信息时候需要按照格式填写设备信息,官网有函数获得设备信息,只需要将那段代码拷贝至项目中并调用并且将设备信息打印出来粘贴在官网对象处即可。