当前位置:首页 > 阿里统计sdk使用说明
Mobile Analytics对网络性能的统计以一次网络请求为基本单位,您需要在这次网络请求的流程中埋入一些记录点,让Mobile Analytics统计这次请求的相关数据,上报到数据分析中心。具体方法如下: 对某个网络请求的统计通过MANNetworkPerformanceHitBuilder完成,在发起网络请求前,您需要调用如下代码,记录此次网络请求的Host信息和请求Method,并标记网络请求开始: 1. MANNetworkPerformanceHitBuilder networkPerfBuilder =newMANNetworkPerformanceHitBuilder(\,\); 2. /* 打点记录网络请求开始 */ 3. networkPerfBuilder.hitRequestStart(); 此外,Mobile Analytics Android SDK还提供了可以附加额外信息的接口:
1. /* 附带额外需要上报信息 */
2. networkPerfBuilder.withExtraInfo(\,\);
【注意】Host必须符合标准Hostname格式,否则会被忽略。Method必须是“GET”或者“POST”,否则默认为“GET”,目前只支持这两个值。我们在前台展示时会用这些信息中的’Host’, ‘Method’作为维度。 5.1.2 网络请求正常结束,统计请求响应时间
请求结束后,您还需要做一次埋点,来标记该次网络请求的结束。接口如下:
1. networkPerfBuilder.hitRequestEndWithLoadBytes(loadBytes);
类型为int的loadBytes参数是为了让您传入该次网络请求的总下载数据量,以便Mobile Analytics Android SDK打点记录。
在您调用这个函数以后,整个网络性能埋点流程就结束了,该次网络请求的相关数据会上报到数据分析平台,分析汇总后,您就可以到阿里云控制台Mobile Analytics页面观察您的APP的相应性能指标情况,如下图所示。
5.1.3 网络请求异常结束,上报网络异常
网络请求无法避免异常情况,在埋点时,如果抛出异常打断了整个网络请求的流程,那么您是需要对此做额外处理的,否则将导致打点数据紊乱。上报的办法也很简便,您只需要在抓获异常以后选择默认网络异常类型或者自定义网络异常类型的任意一种方式来标记这次请求发生了异常: 默认网络异常类型
异常类型或HttpResponseCode 400<=HttpResponseCode<500 500<=HttpResponseCode MalformedURLException InterruptedIOException SocketTimeoutException IOException 使用说明:
对应接口 buildHttpCodeClientError4XbuildHttpCodeServerError5XbuildMalformedURLExceptionbuildInterruptedIOExceptiobuildSocketTimeoutExceptiobuildIOException() 1. // 如果您需要上报其它异常,请按照上表替换buildIOException为相应接口 2. MANNetworkErrorInfoerrorInfo
=MANNetworkErrorCodeBuilder.buildIOException() 3. .withExtraInfo(\, url.toString()) 4. .withExtraInfo(\,\);
5. networkPerfBuilder.hitRequestEndWithError(errorInfo);
自定义网络异常类型
如果默认网络异常类型无法满足您的需求,您可以自定义网络异常类型,但是网络异常类型编码要在 1001 <= YourErrorCode <= 1010范围内,如果不进行前端配置将以错误编码
(10xx)的形式进行展示,如果在前端配置错误编码对应的信息,就会展示您所配置的信息。 使用说明:
1. MANNetworkErrorInfoerrorInfo
=MANNetworkErrorCodeBuilder.buildCustomErrorCode(1001) 2. .withExtraInfo(\, url.toString());
3. networkPerfBuilder.hitRequestEndWithError(errorInfo);
5.1.5节中示例代码的最后部分已经展示了具体如何操作。这个接口的errorInfo参数是为了让您上报这次异常的一些您认为有价值的信息。 【注意】 一旦您调用了MANNetworkPerformanceHitBuilder的networkPerfBuilder.hitRequestStart();接口以后,您需要确认代码在正常情况下执行到networkPerfBuilder.hitRequestEndWithLoadBytes(loadBytes);,或者在异常请求下执行到networkPerfBuilder.hitRequestEndWithError(errorInfo);,否则,此次网络请求的相关信息将上报失败。 5.1.4 调用Tracker的send方法上报打点数据 使用builder进行各个阶段的打点以后,需要获取到MANTracker将它的数据上报,如下: 1. manService.getMANAnalytics().getDefaultTracker().send(networkEvent);//调
用Track的send方法把此次打点的数据上报 5.1.5 代码示例
以下是一个较为完善的示例代码:
1. MANService manService =MANServiceProvider.getService(); 2. String urlString =\;
3. MANNetworkPerformanceHitBuilder networkPerformanceHitBuilder
=newMANNetworkPerformanceHitBuilder(\,\);
4. 5. try{
共分享92篇相关文档