== 移动网速优化项目 == 该项目主要是利用客户端SDK记录移动端访问网络数据的时间,发回功能魔方分析生成报表,为下一步网络优化提供数据基础。[[BR]] 监控范围两种模式: 一、面向全体用户监控模式(抽样) 通过向魔方发送相关指令,可以监测到某段时间内,按照地域、网络运营商、联网方式、URL4个维度查看页面加载时间及速度,   两种页面:第一,通过接口获取内容的页面,如APP首页列表页、图片等,可以统计到加载时间(从响应到加载完成)和速度;[[BR]] 第二,html页面,如文章/帖子/车系/车型/优惠等页面,只可统计到加载时间(从响应到加载完成);[[BR]] 应用启动后读抽样指令,如果读不到指令,缺省是不做记录[[BR]] 二、针对某特定机器的debug模式[[BR]] 具体需求为:[[BR]] 1、通过魔方发送相关指令,可以通过MAC地址来对某机器开启debug模式[[BR]] 2、在debug模式下,可以获取:[[BR]] 2.1、用户本次使用过程中发生的网络请求次数[[BR]] 2.1.1、获取每次数据响应的时间长(发送请求到接受到数据的时间差)[[BR]] 2.1.2、获取内容的网速(下载内容大小处于下载总共用时)[[BR]] 2.1.3、访问的接口URL[[BR]] 3、用户使用的网络类型以及提供服务的运营商[[BR]] 数据格式: 1,抽样指令[[BR]] 接口地址: http://mga.imofan.com/service/netspeed.jsp [[BR]] 参数: [[BR]] appId:应用id [[BR]] deviceId:ios是用openudid [[BR]] mac: mac地址(可选)[[BR]] region:地区信息,格式"省,市" [[BR]] carrier: 运营商,如"cmcc" ,读不到可以为空 [[BR]] access: 访问方式, 如"wifi","gprs","hspa", 读不到可以为空 [[BR]] 返回:[[BR]] record:是否监控 [[BR]] max:一个session最大监控记录数 [[BR]] {"record":"true","max":500} [[BR]] 2. 数据记录格式[[BR]] 数据记录在[wiki:SDKSendPackage SDK发送包]里面,增加一项network[[BR]] 经过测试如果每次记录1000条数据,压缩后15k,大小可以接受,客户端改为传明细回来,格式 [[BR]] {{{ network": { "http://...../....":[20140601120130,"广州”,“wifi”,200, 40.1,0.2], "http://...../....":[20140601120130,"广州”,“wifi”,200, 40.1,0.2], 。。。。。 } }}} 旧讨论结果 数据带3级分类,1级:日期,2级:地区,3级:网络情况 {{{ "network": { "20140601":{ "上海": { "cmcc,gprs" : { "http://...../....": [4, 5, 1, 650.37, 34.1], "http://.....": [3, 6, 2, 780.46,31.1] }, "cmcc,hspa": { .... }, "wifi": { "http://...../....": [4, 5, 1, 65.37,10.1], "http://.....": [3, 6, 2, 78.46,11.22] }, "广州": { ... } }, "20140602":{ ... } "error":{ "404":[ "http://...../....","http://...../...."], "500":[ "http://...../....","http://...../...."] } "debug":[ "http://...../....":[20140601120130,"广州”,“wifi”,200, 40.1,0.2], "http://...../....":[20140601120130,"广州”,“wifi”,200, 40.1,0.2], .... ] } }}} 正常数据说明:[[BR]] "http://...../....": [4, 5, 1, 65.37,10.1][[BR]] url(先测试一下带参数的数量,在决定是否带参数), [[BR]] 数组前三个数字表示响应时间分别在1秒以下、1-3秒、3秒以上的次数,第四个数字是下载内容大小,单位k,第五个数字是下载时间,单位秒[[BR]] debug模式数据说明:[[BR]] "http://...../....":[20140601120130,"广州”,“wifi”,200, 40.1,0.2][[BR]] url: [时间,地区,网络,httpcode, 大小(k),时间(s)][[BR]] debug模式是否要把dns时间和连接时间读出来?