2016 移动应用质量大数据报告--转自腾讯Bugly
2016年,在“互联网+”战略的推动下,移动互联网与越来越多传统行业的结合更加紧密,用户使用移动互联网的工作场景、生活场景、消费场景都在悄然发生着改变, 移动互联网产品在智能硬件、医疗、汽车、旅游、教育等市场也都在不断探索新的可能性。
开发者除了需要关注用户需求外,更需要重视产品质量与口碑,这将极大的影响用户对产品的评价及产品后续的传播力度。
下面我们将为您带来2016年度 Android & iOS 移动应用质量大数据报告,让您清晰了解行业动态,精准定位自身产品位置。
• 移动设备总数达10.7亿
2016年移动设备总数持续攀升, Android 设备总数从2015年的6.6亿提升至7.3亿, iOS设备总数从2015年的3.0亿提升至3.4亿。
• iOS应用数突破220W
截至2017年2月,iOS 应用数量突破220万,Android 应用数量约300万+。
• 游戏崩溃率远高于应用崩溃率
无论是Android还是iOS,游戏的崩溃率都远高于应用,在iOS中的差异尤为明显。
接下来让我们从Android开始,从多个维度进行应用质量分析。
• 应用分类中视频、社交等行业崩溃率较高
Android应用行业整体崩溃率在2.0%~3.6%之间。其中视频、社交、音乐类应用的崩溃率较高,出行、新闻、儿童类应用的崩溃率较低。
• 游戏行业崩溃率普遍在4%以上
Android游戏行业崩溃率在4.3%~7.3%之间,八个游戏大类中,角色扮演、经营策略以及网络游戏的崩溃率均在7%以上,休闲益智、体育竞速崩溃率保持在5%以下。
• 中小规模产品崩溃率更高
根据产品规模日活(DAU)区间分析崩溃率,产品规模越大,崩溃率越低。DAU达百万级别的产品崩溃率平均在1.5%以下,对比各DAU区间崩溃率,游戏崩溃率均大于应用。
• Android 应用平均ANR率在1%以下
出现ANR将弹出对话框,严重影响用户体验,所以发现应用ANR率上升情况也不容小觑。 游戏相比应用一般需要用到更多的资源,占用更多的内存和CPU,游戏 ANR发生几率约为应用的1.5倍。
• 华为市场占比第一,OPPO和VIVO跻身前五
华为2016年国内市场存量以17%的市场占有率荣获第一,OPPO,VIVO跻身前五。相比之下,小米和三星在2016年市场份额有所下降。五大厂商的市场存量占整个Android市场的66.20%,共同瓜分了庞大的国内市场。
机型崩溃率方面(统计机型上发生的崩溃),主流厂商基本保持在2%左右。而联想和酷派机型的崩溃率超过3%,根据数据分析其崩溃原因,我们发现,Java类型的崩溃中除空指针异常外,出现最多的是ActivityNotFoundException和ClassNotFoundException异常,兼容性问题较多;从崩溃时间来看,联想和酷派机型上闪退(崩溃发生在启动后0~5s)的占比高达28%(平均比例为22%),说明应用开发者对这两个厂商机型的适配力度相对较弱。
• Android 系统版本5.1超过4.4成为主流
Android 5.1系统已成为主流版本,其中5.1、4.4、6.0、5.0版本的市场占有率分列前四,共占市场总量的83.39%,建议开发者优先关注这四个系统版本的适配情况。
另外5.1,6.0系统版本机型上的崩溃率在2%以下,而2.3系统版本崩溃率高达9.17%,大部分应用已放弃对2.3系统版本的适配,Google去年也宣布将在2017年正式结束对Android 2.3/3.0的系统支持。
• 空指针异常在Java代码中最为常见
不出所料,NullPointerException依然是最常见的Java异常,该异常影响面广但容易修复,开发者想快速降低崩溃率可以优先解决此类异常。相较于2015年,IllegalStateException从5%提升至10%,OutOfMemoryError从3%提升至6%。
• SIGSEGV占Native崩溃类型的78%
从崩溃总数来看,Native崩溃数约为Java的1.4倍,而Natvie崩溃中高达78%为SIGSEGV异常(SIG 是信号名的通用前缀, SEGV 是 segmentation violation 的缩写,常见于内存错误)。
• Android应用闪退现象更加严重
相较于2015年, 闪退(启动后0~5s内崩溃)问题占比提升10个百分点(12%提升到22%),Android系统由于其碎片化特征,厂商、机型、系统版本、分辨率等适配问题,使得应用闪退现象更加严重。
• 造成闪退最常见的几种异常原因
根据数据分析,导致闪退问题除空指针异常外,找不到类和方法、权限问题、so加载异常、状态异常等问题比较明显,71%的闪退是由这5种问题引起,机型适配测试可以有效降低闪退问题的发生。
了解完Android,我们再看看iOS平台上的应用质量有何差异
• iOS应用不同行业间崩溃率差距较大
iOS应用行业整体崩溃率在1.6%~4.6%之间,崩溃较低的行业如导航、商品指南类应用保持在2%以下,体育、社交、图书行业崩溃率在4%以上。
• 游戏行业崩溃率相对较高
iOS游戏崩溃率在4.2%~9.9%之间,其中体育竞技类游戏的崩溃率最高。
• 不同日活(DAU)区间游戏产品的崩溃率差距较大
不同DAU区间游戏产品的崩溃率分化更加严重, DAU低于1千的游戏,平均崩溃率高达9%。DAU达百万级的游戏产品基本属于精品游戏阵营,这个区间内的游戏崩溃率得到了有效控制。
• 游戏卡顿发生概率高
游戏的卡顿发生率高达到19.9%,苹果官方并没有提供iOS卡顿的具体定义,Bugly官方定义的iOS卡顿默认为:3s无响应,卡顿问题会影响用户体验产品的流畅性,同样需要重视。
、
• 主流机型崩溃率基本在2%以下
iPhone 6占比为21.81%,与2015相比差距不大(2015年占比:21.44%),iPhone
6系列机型仍然是市场主流机型,iPhone 7系列暂时只占总量的7.81%。
iOS主流机型的崩溃率基本保持在2%以下,新机型崩溃率相对更低。iPhone系列机型中,iPhone 4与iPhone
5的崩溃率最高,在3%以上。
• NSInvalidArgument异常占OC异常的75%
对比2015年的占比,NSInvalidArgument异常从49%提升至75%,NSRangeException从19%下降至6%。
• 运行中的崩溃问题大幅缩减
相较2015年数据,运行中的崩溃(运行60s以上闪退)问题占比,从78%下降至65%,缩减了13个百分点。
2016 移动应用质量大数据报告--转自腾讯Bugly的更多相关文章
- 【重磅推荐】腾讯Bugly2015年移动应用质量大数据报告
2015年,随着移动智能设备的普及,移动端用户的增速明显放缓:相比之下,由于云服务.众筹平台.推广平台等基础设施和服务的不断改善,极大降低了创业的门槛,越来越多人投身于移动应用的创新创业中. 想让用户 ...
- 腾讯Bugly2015年移动应用质量大数据报告 原 荐
在这份报告中,腾讯Bugly和腾讯优测会对2015年Android和iOS平台上的应用质量进行详细盘点,帮助你了解你的产品质量在行业中处于什么位置. 首先,让我们从整体上,回顾一下2015年度的应用和 ...
- 了解大数据的特点、来源与数据呈现方式以及用Python写Mad Libs游戏
作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2620. 1.浏览2019春节各种大数据分析报告,例如: 这世间,再 ...
- 程序媛数据报告:近三年增长至70%,平均月薪1.54W,女性程序媛并不是特殊物种
- 持续引领大数据行业发展,腾讯云发布全链路数据开发平台WeData
9月11日,在腾讯全球数字生态大会大数据专场上,腾讯云大数据产品副总经理雷小平重磅发布了全链路数据开发平台WeData,同时发布和升级了流计算服务.云数据仓库.ES.企业画像等6款核心产品,进一步优化 ...
- Top100Summit全球案例研究峰会第一天总结——云计算和大数据
很荣幸受邀参加Top100Summit全球软件案例研究峰会,这次的大会主题是<技术推动商业变革>,组委会从全国投稿的460多件案例中甄选出100件具有代表价值的案例,进行为期4天的分享,第 ...
- 大数据计算新贵Spark在腾讯雅虎优酷成功应用解析
http://www.csdn.net/article/2014-06-05/2820089 摘要:MapReduce在实时查询和迭代计算上仍有较大的不足,目前,Spark由于其可伸缩.基于内存计算等 ...
- 大数据技术人年度盛事! BDTC 2016将于12月8-10日在京举行
2016年12月8日-10日,由中国计算机学会(CCF)主办,CCF大数据专家委员会承办,中国科学院计算技术研究所和CSDN共同协办的2016中国大数据技术大会(Big Data Technology ...
- 张小龙在2017微信公开课PRO版讲了什么(附演讲实录和2016微信数据报告)
今天2017微信公开课PRO版在广州亚运城综合体育馆举行,这次2017微信公开课大会以“下一站”为主题,而此次的微信公开课的看点大家可能就集中在腾讯公司高级副总裁.微信之父——张小龙的演讲上了!今天中 ...
随机推荐
- KnockoutJs学习笔记(七)
if binding与visible binding类似.不同之处在于,包含visible binding的元素会在DOM中一直保存,并且该元素相应的data-bind属性会一直保持,visible ...
- appium入门级教程(3)—— 安装 Android SDK
前言 搭建Android平台不是必须的,如果你不想使用 Android 模拟器运行测试的话可以跳过,不过,建议安装:原生 Android 好折腾!关键是它自带的一些工具是做 appium 测试必须要用 ...
- WebApi 接口参数详解
WebApi 接口参数不再困惑:传参详解 阅读目录 一.get请求 1.基础类型参数 2.实体作为参数 3.数组作为参数 4.“怪异”的get请求 二.post请求 1.基础类型参数 2.实体作为 ...
- Action的模型绑定
- 你真的会用Action的模型绑定吗? 在QQ群或者一些程序的交流平台,经常会有人问:我怎么传一个数组在Action中接收.我传的数组为什么Action的model中接收不到.或者我在ajax的 ...
- js 判断移动端是否安装应用
var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > ...
- ElasticSearch 入门总结
ElasticSearch 入门 本篇为 ElasticSearch 入门学习总结笔记,课程视频地址:ElasticSearch 入门 一.ElasticSearch 简介 1.1.什么是Elasti ...
- UML用例图之间的关系
在画用例图的时候,理清用例之间的关系是重点.用例的关系有泛化(generalization).扩展(extend)和包含(include).其中include和extend最易混淆.下面我们结合实例彻 ...
- [Android]对BaseAdapter中ViewHolder编写简化(转)
来自博客:http://www.cnblogs.com/tiantianbyconan/p/3642849.html 在Android项目中,经常都会用到ListView这个控件,而相应的Adapte ...
- Maven入门指南② :Maven 常用命令,手动创建第一个 Maven 项目
1.根据 Maven 的约定,我们在D盘根目录手动创建如下目录及文件结构: 2.打开pom.xml文件,添加如下内容: <project xmlns="http://maven.apa ...
- 应用通信-方案一:RestTemplate
@RestController public class ClientController { @Autowired private LoadBalancerClient loadBalancerCl ...