最前:所有的配置官方推荐使用 清单文件 中的配置,不建议使用代码注册.因为内存不足等情况使用代码注册有可能导致不可预知的crash.
但是对于渠道的设置则例外 官方推荐只用代码注册
1:百度统计主要内容分为下面几种
参考Demo进行实验即可进行初步了解
错误分析里面有云测试 还没用 用过再补充 大体就是上交APP 然后百度通过服务器的一些处理来进行基本测试 如果有BUG会生成日志返回显示
代码集成:
// 设置渠道
/*
* 设置渠道的推荐方法。该方法同setAppChannel(String),
* 如果第三个参数设置为true(防止渠道代码设置会丢失的情况),将会保存该渠道,每次设置都会更新保存的渠道,
* 如果之前的版本使用了该函数设置渠道
* ,而后来的版本需要AndroidManifest.xml设置渠道,那么需要将第二个参数设置为空字符串,并且第三个参数设置为false即可
* ,如StatService.setAppChannel(this, "", false);。
* appChannel是应用的发布渠道,不需要在mtj网站上注册,直接填写就可以
*/
StatService.setAppChannel(this, "我的阿尔萨斯!", true);
这里必须说一下渠道...被这个倒腾死了.
渠道只需要在代码中设置如上的那一句就行了,然后百度会自己读取信息后显示到mtj网页上.比如上面是 我的阿尔萨斯! 那么mtj网页的渠道显示里就有一项是 我的阿尔萨斯!
而且,
StatService.setAppChannel(...)只能有一句,如果有多句,那么生效的只有最后一句,如果清单文件和代码同时声明了,那么以代码的为准.
版本统计:
关于版本统计,百度是直接从你的清单文件的声明里获取到你的版本信息然后显示到mtj网页统计上.并不需要你额外做任何代码或者其他形式的提示添加,完全是自动的.
这些内容最好代码设置,然后再配合下面的清单文件配置
这些代码需要加在Application中.
// 设置AppKey
// StatService.setAppKey("213fbea0d0");//
// 设置每次启动session的间隔失效时间,可以不设置默认30S
// 设置应用进入后台再次回到前台为同一个 session 的时间间隔方法
// 测试时,可以使用1秒钟session过期,这样不断的间隔1S启动退出会产生大量日志。
StatService.setSessionTimeOut(1);
// appkey必须在mtj网站上注册生成,该设置建议在AndroidManifest.xml中填写,代码中填写容易丢失
// 设置渠道
/*
* 设置渠道的推荐方法。该方法同setAppChannel(String),
* 如果第三个参数设置为true(防止渠道代码设置会丢失的情况),将会保存该渠道,每次设置都会更新保存的渠道,
* 如果之前的版本使用了该函数设置渠道
* ,而后来的版本需要AndroidManifest.xml设置渠道,那么需要将第二个参数设置为空字符串,并且第三个参数设置为false即可
* ,如StatService.setAppChannel(this, "", false);。
* appChannel是应用的发布渠道,不需要在mtj网站上注册,直接填写就可以
*/
StatService.setAppChannel(this, "渠道.....!", true);
// 打开崩溃收集
// setOn也可以在AndroidManifest.xml文件中填写,BaiduMobAd_EXCEPTION_LOG,打开崩溃错误收集,默认是关闭的
// StatService.setOn(this, StatService.EXCEPTION_LOG);
// 调试百度统计SDK的Log开关,可以在Eclipse中看到sdk打印的日志,发布时去除调用,或者设置为false
StatService.setDebugOn(true);
// /*
// * 用于设置日志发送策略<br /> 嵌入位置:Activity的onCreate()函数中
// * 调用方式:
// *
// StatService.setSendLogStrategy(this,SendStrategyEnum.SET_TIME_INTERVAL,
// 1, false);
// * 第二个参数可选: SendStrategyEnum.APP_START
// * SendStrategyEnum.ONCE_A_DAY SendStrategyEnum.SET_TIME_INTERVAL
// * 第三个参数:
// * 这个参数在第二个参数选择SendStrategyEnum.SET_TIME_INTERVAL时生效、
// * 取值。为1-24之间的整数,即1<=rtime_interval<=24,以小时为单位
// * 第四个参数:
// * 表示是否仅支持wifi下日志发送,若为true,表示仅在wifi环境下发送日志;若为false,表示可以在任何联网环境下发送日志
// */
StatService.setSendLogStrategy(this, SendStrategyEnum.APP_START, 1,
false);
/*
* 设置启动时日志发送延时的秒数<br/> 单位为秒,大小为0s到30s之间<br/>
* 注:请在StatService.setSendLogStrategy之前调用,否则设置不起作用
*
* 如果设置的是发送策略是启动时发送,那么这个参数就会在发送前检查您设置的这个参数,表示延迟多少秒发送。<br/>
* 这个参数的设置暂时只支持代码加入, 在您的首个启动的Activity中的onCreate函数中使用就可以。<br/>
*/
StatService.setLogSenderDelayed(5);
//每设置一个渠道就要对这个渠道进行单独的APK打包
StatService.setAppChannel(this, "Arthas Menethil", true);
清单文件配置
<!-- $百度统计 -->
<!-- 您从百度网站获取的APP KEY 百度统记 -->
<meta-data android:name="BaiduMobAd_STAT_ID" android:value="213fbea0d0" /> <!-- abcd1234 -->
<!-- 渠道商编号 -->
<meta-data android:name="BaiduMobAd_CHANNEL" android:value="Arthas Menethil" />
<!-- 是否开启错误日志统计,默认为false -->
<meta-data android:name="BaiduMobAd_EXCEPTION_LOG" android:value="true" />
<!-- 日志发送策略,可选值:APP_START、ONCE_A_DAY、SET_TIME_INTERVAL,默认为APP_START -->
<meta-data android:name="BaiduMobAd_SEND_STRATEGY" android:value="APP_START" />
<!-- 日志发送策略 为SET_TIME_INTERVAL时,需设定时间间隔(取消下行注释)。取值为1-24的整数,默认为1 -->
<!-- <meta-data android:name="BaiduMobAd_TIME_INTERVAL" android:value="2" /> -->
<!-- 日志仅在wifi网络下发送,默认为false -->
<meta-data android:name="BaiduMobAd_ONLY_WIFI" android:value="false" />
<!-- 是否获取基站位置信息 ,默认为true-->
<meta-data android:name="BaiduMobAd_CELL_LOCATION" android:value="false" />
<!-- 是否获取GPS位置信息,默认为true -->
<meta-data android:name="BaiduMobAd_GPS_LOCATION" android:value="true" />
<!-- 是否获取WIFI位置信息,默认为true -->
<meta-data android:name="BaiduMobAd_WIFI_LOCATION" android:value="true" />
<!-- $百度统计 -->
接着就是各个页面的统计
官方文档说明很清楚 分为对Activity的统计和Fragment统计
①Activity统计
在每个Activity的onResume和onPause中调用
public void onResume() {
Log.w(Conf.TAG, "Activity1.OnResume()");
super.onResume();
/**
* 页面起始(每个Activity中都需要添加,如果有继承的父Activity中已经添加了该调用,那么子Activity中务必不能添加)
* 不能与StatService.onPageStart一级onPageEnd函数交叉使用
*/
StatService.onResume(this);
}
public void onPause() {
Log.w(Conf.TAG, "Activity1.onPause()");
super.onPause();
/**
* 页面结束(每个Activity中都需要添加,如果有继承的父Activity中已经添加了该调用,那么子Activity中务必不能添加)
* 不能与StatService.onPageStart一级onPageEnd函数交叉使用
*/
StatService.onPause(this);
}
②Fragment
可以跟Activity一样 , 但是有可能会出错 ,所以官方推荐使用 自定义事件统计 (其实对于Fragment我感觉跟Activity一样处理就好了 基本没什么误差 自定义事件的使用个人感觉是对特定Btn或者自定义View的设置使用)
注意Fragment的上下文必须是本fragment的 而不能是当前Activity的或者Application
对于各个页面的统计分两种:
①对于各个页面的统计
StatService.onResume(Context context )这一类 这一类上传到百度统计的结果是各个类名.如果是产品看肯定看不懂,还会让你加备注.
②直接将各个页面的title上传到百度统计 这样就省去了产品看不懂的麻烦 最主要的是省的麻烦我们自己又去给他们加备注
对于各个页面的统计
StatService.onPageStart(Context
context,
Sring
pageName);
StatService.onPageEnd(Context
context,
Sring
pageName);
这个是对于自定义页面的统计.用于基类和子类也很简单,在基类设置一个protected 的title 然后每个子类给这个title赋值 调用方法和规则和 ①是一样的 .但是 ②貌似可以交叉调用 ①是不能交叉调用的