以开被,有时候需要取得流量统计信息。研究发现:通过函数getifaddrs来收获系统网络接口的消息,网络接口的信息,包含在if_data字段被,
有过多音讯, 但我现只有关注ifi_ibytes, ifi_obytes,
应该就是吸收到之字节数和殡葬的字节数,
加起来就是流量了。还发现,接口的名字, 有en, pdp_ip,
lo等几种样式,en应该是wifi, pdp_ip大概是3g或者gprs, lo是围绕回接口,
通过名字分别好分级统计。

       
然而快的上进并无表示以质量与用户体验的升级。据统计,74%以上之用户以采用性能问题面前会选沉默、忍受、或去,而于移动使用出现性能问题导致延时响应10秒后,有接近5%底实事求是用户会放弃行使该利用。另外,比由用户流失来说,移动采用性问题还见面吃用户带来重新多之损失,比如当以出现崩溃、错误时引起的严重性业务暂停、收入降低等情况;又如果出于采取请求响应时间过长导致的极用户体验缓慢、用户留存率下降;以及采取交互性能慢引发的页面元素加载缓慢,造成卡顿恐不整造成的布局散乱。

3、获取Wifi流量

//获取Wifi流量
+ (NSString *)getGprsWifiFlowIOBytes
{
    struct ifaddrs *ifa_list = 0, *ifa;
    if (getifaddrs(&ifa_list) == -1) {
        return 0;
    }
    uint32_t iBytes = 0;
    uint32_t oBytes = 0;
    for (ifa = ifa_list; ifa; ifa = ifa->ifa_next) {
        if (AF_LINK != ifa->ifa_addr->sa_family)
            continue;
        if (!(ifa->ifa_flags & IFF_UP) && !(ifa->ifa_flags & IFF_RUNNING))
            continue;
        if (ifa->ifa_data == 0)
            continue;

        //Wifi
        if (strncmp(ifa->ifa_name, "lo", 2)) {
            struct if_data *if_data = (struct if_data *)ifa->ifa_data;
            iBytes += if_data->ifi_ibytes;
            oBytes += if_data->ifi_obytes;
            NSLog(@"%s :iBytes is %d, oBytes is %d", ifa->ifa_name, iBytes, oBytes);
        }
    }

    freeifaddrs(ifa_list);

    uint32_t bytes = 0;

    bytes = iBytes+oBytes;

    NSLog(@"%d",bytes);

    //将bytes单位转换
    if(bytes < 1024)        // B
    {
        return [NSString stringWithFormat:@"%dB", bytes];
    }
    else if(bytes >= 1024 && bytes < 1024 * 1024)    // KB
    {
        return [NSString stringWithFormat:@"%.1fKB", (double)bytes / 1024];
    }
    else if(bytes >= 1024 * 1024 && bytes < 1024 * 1024 * 1024)    // MB
    {
        return [NSString stringWithFormat:@"%.2fMB", (double)bytes / (1024 * 1024)];
    }
    else    // GB
    {
        return [NSString stringWithFormat:@"%.3fGB", (double)bytes / (1024 * 1024 * 1024)];
    }
}

 

留意:1、通过读取系统网络接口信息,获取当前iphone设备的流量相关信息,统计的是上次开机至今日的流量信息. 

   2、上面两智统计的结果是字符串格式

       
                                                                       
                                               

1、导入必要头文件

#include <ifaddrs.h>
#include <sys/socket.h>
#include <net/if.h>

 

点击链接,下载报告初稿:http://bbs.tingyun.com/forum.php?mod=viewthread&tid=136

2、获取3G或者GPRS的流量

//获取3G或者GPRS的流量
+ (NSString *)getGprs3GFlowIOBytes
{

    struct ifaddrs *ifa_list = 0, *ifa;
    if (getifaddrs(&ifa_list) == -1)
    {
        return 0;
    }

    uint32_t iBytes = 0;
    uint32_t oBytes = 0;

    for (ifa = ifa_list; ifa; ifa = ifa->ifa_next)
    {
        if (AF_LINK != ifa->ifa_addr->sa_family)
            continue;

        if (!(ifa->ifa_flags & IFF_UP) && !(ifa->ifa_flags & IFF_RUNNING))
            continue;

        if (ifa->ifa_data == 0)
            continue;

        //3G或者GPRS
        if (!strcmp(ifa->ifa_name, "pdp_ip0"))
        {
            struct if_data *if_data = (struct if_data *)ifa->ifa_data;

            iBytes += if_data->ifi_ibytes;
            oBytes += if_data->ifi_obytes;
            NSLog(@"%s :iBytes is %d, oBytes is %d",
                  ifa->ifa_name, iBytes, oBytes);
        }
    }


    freeifaddrs(ifa_list);

    uint32_t bytes = 0;

    bytes = iBytes + oBytes;

    //将bytes单位转换

    if(bytes < 1024)        // B
    {
        return [NSString stringWithFormat:@"%dB", bytes];
    }
    else if(bytes >= 1024 && bytes < 1024 * 1024)    // KB
    {
        return [NSString stringWithFormat:@"%.1fKB", (double)bytes / 1024];
    }
    else if(bytes >= 1024 * 1024 && bytes < 1024 * 1024 * 1024)    // MB
    {
        return [NSString stringWithFormat:@"%.2fMB", (double)bytes / (1024 * 1024)];
    }
    else    // GB
    {
        return [NSString stringWithFormat:@"%.3fGB", (double)bytes / (1024 * 1024 * 1024)];
    }

}

 

相互性能


 

对此APP来说,除去崩溃以外,交互性能为深要,其一直反映了用户以及活动采用的界面元素和情节互相的体会耗时,由首包时间、HTTP响应时间少于不胜指标表现。

 

HTTP响应时间

图片 1

设图所显现,81.17%上述的HTTP请求保管大小在50KB以下,10.17%的HTTP请求保管在[50,100]KB区间,针对这些区间对数据分别开展响应时间统计。可以看看,随着数据包增大,响应时间肯定变长。根据各个数据包区间的应时间,可以吃相应的APP开发者参考相对应的响应时间全都值情况。

挪动网运营商性能比

图片 2

经过对倒运营商数据比分析,移动使用性能方面明显表现出4G优厚3G,3G大好于2G底状况。从首包时间指标方面看,2G、4G网下三异常运营商水平相近,但3G方面中国联通、中国电信远远优于中国移动。

首要WiFi网络运营商性能比

图片 3

  • 在WiFi方面,方正宽带、歌华有线、广电宽带表现极其精良。
  • 以斯指标被三百般走运营商性能于接近,但中国联通、中国电信表现仍优于中国移动。
  • 中华通信首包时间最丰富,已经低于移动网络运营商4G平均首包时间太差值701ms。

 

各个地段首包时间表现

图片 4

  • 从区域观察,
    新疆、西藏与甘肃地区首包时间最好丰富。
  • 全国范围外呈现出外来高东小之界别。
  • 东部整体以500ms以下,
    西部整体以500ms之上。

 

  

崩溃

 


 

第一,让我们于完整达标,回顾一下2015年的移动应用崩溃情况。

 图片 5

起整体来拘禁,iOS应用崩溃率远远高于Android,基本是Android应用平均崩溃率的7倍增,从数额看于2015年3-6月、8-9月倒现象更为突出,或跟新本子发布关于。

按分析,Android
系统完整崩溃率较逊色的原因在于:

  • Android4.X
    版本稳定性较之前版本有醒目提升;
  • 在更新策略上,iOS
    更新推送周期比较丰富,Android 则会进行即经常推送更新;
  • 出于语言/系统架构的特殊性,OC
    需直接对底层 API,出错几率可能性比较高,而让 OS
    版本影响,硬件差异影响较Java 更不行;
  • iOS
    系统受限更多,如内存、后台、API 限制等。

iOS&Android两杀平台:操作版本崩溃率TOP10

图片 6

从今数额及看,Android
2.3.x本在所有Android版本中显现最好差,平均崩溃率达1.39%。而iOS7.x.x则是iOS所有版本被崩溃率中高的本,平均崩溃率达1.895,这就是间接导致了iOS整体崩溃率远高于Android崩溃的缘故。

 

香机型崩溃状况

图片 7

小米1s、iPhone5S、魅族X5、iPhone6S、小米4占有百度热门机型崩溃率前5各。而OPPO
R7、华为P8、OPPO R7
Plus、红米Note2、魅族魅蓝Note2在倒方面表现优异。

 

       
2015
年,可以说凡是运动使用生态系统发展史上的同样所里程碑。从技术上看,不断追加的屏幕分辨率,64号电脑,到支持有平台开发之HTML5艺日趋成熟,硬件性能的升级换代,新技巧之面世还是震慑移动应用发展的严重性因素,每个上面都推辞小觑。从项目上看,在线视频、在线音乐和交友类应用之订阅盈利模式大获成功;游戏、拼车和活动商务应用之下载量和使用量也还不断提高。

       
                                                                       
                                                                   
 《2015中国移动应用性能管理白皮书》深度解读

 

错误


 

APP响应失败由多种缘故致,其中要是由于网错误、HTTP错误构成。

纱错误率

图片 8

 

纱错误原因分布

图片 9

由此对Android和iOS网络错误的比,可以清楚的看到,两栽系统的左类型有显著差距,证明网络错误与系统吧具有自然的
相关性。在连续超时、客户端协议错误、非法响应内容跟SSL证书错误引起的问题者,Android明显超过iOS,
而在不为人知主机错 误上,iOS则强烈高于Android系统。

 

纱错误运营商比

图片 10

自打网通方式展开对照,
三万分动网运营商都是4G明显优化 2G、3G之主旋律;
但是中国移动3G网络明显问题较多,高于2G网错误。

老三那个网络运营商同一制式比发现:

  • 2G者,中国电信优于中国联通、中国移动。
  • 3G上面,中国联通优于中国电信、中国移动。
  • 4G地方,中国电信优于中国联通、中国移动。

 

网错误率地区分布

图片 11

  • 自区域分布看,
    网络错误率整体以1.20%横。
  • 西北地区,新疆网络错误率最高,达到1.64%,
    西藏1.42%。
  • 中东部区域,安徽表现无与伦比差,达到
    1.27%。

 

HTTP错误原因分布——Android

图片 12

于Android系统来说,HTTP错误原因根本分布于404(服务器找不顶要的页面)、503(未供者服务)、414(请求的URI过长,服务器无法展开处理)、401(未授权)、403(请求于服务器拒绝),以上原因占比较58.34%。

 

HTTP错误原因分布——iOS

图片 13

若是于iOS系统来说,HTTP错误原因则要分布在502(错误网关)、404(服务器找不交要的网页)、403(服务器拒绝请求)、500(服务器遇到错误,无法成功请求)、401(未授权请求要求进行身份验证),以上原因占比较67.69%。

 

鲜好平台、三老性能指标、十四个行业数据显现

图片 14

  • 崩溃率方面,除社交、地产、酒店住宿、生活服务、视频类应用iOS和Android差异较充分他,两桩整体展现接近。
  • Android系统表现优秀前五叫作行:应用下载平台、订餐、酒店住宿、生活服务、音乐
  • iOS系统表现完美前五曰行:应用下载平台、阅读类、游戏、订餐、新闻媒体

 图片 15

  • 纱错误率方面,除订餐、酒店过夜、应用下载平台、移动办公数据比较接近他,其他行当Android系统总体高于iOS系统。
  • Android系统表现美好前五叫做行:订餐、航空、酒店住宿、地产、生活服务
  • iOS系统表现可以前五称行:阅读类、航空、地产、生活服务、视频

 

 

     
 作为开发者,想被用户在一系列的运中易上您的制品,除了使满足用户的要求客,还须使于便捷迭代的过程中确保活动应用之极端性能及宏观的用户体验。在《2015中国移动应用性能管理白皮书》中,听云iDaaS数据核心对2015年iOS、Android两非常平台达成动使用之属性概况、各运营商性能网络质量和各个行业特性指标均值进行盘点,帮助开发者重新好地问询活动行业真实情况,助力有效持续升级用户体验,终止用户流失,进而提升但是持续性研发迭代,降低IT运维成本。