说到crash上传工具,大家肯定会第一时间想到umeng,不错,umeng 是最早推出 crash 上报的工具之一,在刚推出来的时候,特别受到ios开发人员的喜爱。

因为个时候,内存是手动管理的,很容易发生重复是释放内存导致crash,所以umeng的这个工具能够上传已经发布的产品的crash 日志,非常受开发者喜欢。 虽然现在苹果推出了ARC了,解放了iOS开发人员的内存管理工作,但crash还是不可避免的。

umeng推出 crash上报工具有3年多了,主题核心功能基本没做大的改进,最近因为需要实时查看crash 日志,对,是实时,希望app crash 后,能够马上看到错误,方便解决crash问题,发现了bugly工具(这个工具还是腾讯提供的,大公司提供的,不会像小的创业团队,随时会关闭),
 
 以下是对umeng crash 和 bugly 做的一些对比分析

1. crash 日志上报的及时性方面

umeng的太慢了,需要1-2小时才能显示当日的bug,而且有**,每天只能**1000个 crash 日志,bugly 宣称的是实时,经过我的测试,比较及时,基本在1分钟之内就能看到bug 的错误

从错误的及时性来收,bugly 完胜。

2. 错误筛选功能

看下2个页面的bug 赛选对比

umeng: 版本,类型,以及uuid,操作系统等
 
我们来看看 bugly的

版本,类型,机型也可以选择,我最喜欢的功能是用户功能,红色标记的地方,因为你可以设置一个id,比如用户id,uuid等,而不像umeng只有uuid。
 
查找bug 方面,bugly要稍微方便些。

3. 错误的定位

基本上2者都能提供的比较详细,但是仍然有些错误的提示信息不够,相应的堆栈信息显示不全。
 umeng 提供了错误定位工具:详细请查看网址,
http://dev.umeng.com/analytics/reports/errors#2
基本步骤是:
(1)将错误导出csv文件
(2)下载umeng crash分析工具:umcrashtool
(3) 在terminal中运行umcrashtool,提示如下: Usage: umcrashtool [export-file-path],定位后的代码及行数会写入错误分析-symbol.csv文件,与原文件在同一目录下。用工具打开新生成的xxx-symbol.csv文件,便可查看错误发生的源码文件及行数。

 
步骤有点麻烦,来看看bugly是怎么解决的

 在 产品->设置->版本管理 可以上传符号表。
 

我没有上传过符号表,但是看到这个功能,是不是感觉很贴心, 不用自己下载工具,分析。
 
bugly还提供自动上传符号表功能,可以在编译后,自动进行。

具体的功能在bugly高级设置里 http://bugly.qq.com/iosmore
 
 
高级设置里居然还能有错误回调,

在异常发生后进行调用,应用可以设置回调函数,并在回调中保存异常现场信息等信息,异常现场等信息可以通过 getCrashXXX 接口获取

使用示例:

static int exceptioncallbackhandler() { NSLog(@"Crash occur in the app"); [... setAttachLog:@""]; return 1; }

exp_call_back_func=&exception_callback_handler;

看到这个回调,我想到了知乎还是哪,有篇文章是:“如何让app 实现优雅的奔溃” 在app 奔溃的时候,提示下用户:由于不可预知的问题,导致程序奔溃,我们深表歉意。这样用户体验是不是很好!
 
 错误定位来看,还是bugly来的方便。
 
 从总体对比来说,bugly还是不错的,做的相当深入 ,umeng 更定位在统计分析,而crash 上报这块没投入太多的精力。
 
但是bugly也有问题:

(1)产品稳定,靠谱不?

刚推出好像不到2个月吧,看看宣传

手机QQ,qq浏览器 ,各种游戏什么的都接入了,你相信吗?我是不相信的 。
 
  没有被认可的第三方出名的应用采用这个工具,其稳定性,不晓得。
 
   上百万,千万的用户的应用,使用之前最好还是慎重。

最新消息,据说,滴滴打车,唯品会也使用了这个

(2)会导致app增加多大?

应用接入会导致app 有多大的增加,因为基本上所有的应用都使用了umeng ,统计是刚需,里面已经有个crash 上报了,再接入这个bugly 会导致ipa 增加多少,起码要有个数据。
       整个静态库有5.1M,应该增加的app的大小比较小吧,这块没对比过,应该不超过100K吧。
 
 文章来源:http://appask.cn/article/7

相关链接:
umeng http://www.umeng.com/ 接入umeng统计,自动开启crash 
bugly  http://bugly.qq.com/

ios开发交流群:486468672 

腾讯bugly 的crash 上报和umeng的比较的更多相关文章

  1. 【腾讯Bugly干货分享】聊聊苹果的Bug - iOS 10 nano_free Crash

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/hnwj24xqrtOhcjEt_TaQ9w 作者:张 ...

  2. 【腾讯Bugly干货分享】经典随机Crash之二:Android消息机制

    本文作者:鲁可--腾讯SNG专项测试组 测试工程师 背景 承上经典随机Crash之一:线程安全 问题的模型 好几次灰度top1.top2 Crash发生场景:在很平常.频繁的使用页面,打开一个界面,马 ...

  3. 【腾讯Bugly干货分享】经典随机Crash之一:线程安全

    本文作者:鲁可--腾讯SNG专项测试组 测试工程师 背景 Android QQ 在2016下半年连着好几个版本二灰 Crash 率都很高,如果说有新需求,一灰的 Crash 率高,还能找点理由,可是开 ...

  4. 异常上报工具:腾讯Bugly

    1.腾讯出了一个和umeng差不多的异常上报工具Bugly.(传送门:https://bugly.qq.com/docs/) (1)两者比较明显的区别是,Bugly能比较实时上报异常信息,经过测试基本 ...

  5. Andoird Crash的跟踪方法,使用腾讯Bugly来捕捉一些疑难杂症,让我们APP稳定上线

    Andoird Crash的跟踪方法,使用腾讯Bugly来捕捉一些疑难杂症,让我们APP稳定上线 我们在开发中常常会注意到一些Crash,这正是很头疼的,而且Crash会带来很多意想不到的状态,很恶心 ...

  6. Ionic2中腾讯Bugly异常捕获以及上报

    Ionic2混合开发,入坑系列:Ionic2中腾讯Bugly异常捕获以及上报 1.Ionic2中处理全局异常,直接继承IonicErrorHandler即可,代码如下 import { IonicEr ...

  7. 【腾讯bugly干货分享】HTML 5 视频直播一站式扫盲

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=1277 视频直 ...

  8. 【腾讯Bugly干货分享】Android Linker 与 SO 加壳技术

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57e3a3bc42eb88da6d4be143 作者:王赛 1. 前言 Andr ...

  9. 【腾讯Bugly经验分享】程序员的成长离不开哪些软技能?

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57ce8068d4d44a246f72baf2 Dev Club 是一个交流移动 ...

随机推荐

  1. Javascript内存泄露

    在过去一些的时候,Web开发人员并没有太多的去关注内存泄露问题.那时的页面间联系大都比较简单,并主要使用不同的连接地址在同一个站点中导航,这样的设计方式是非常有利于浏览器释放资源的.即使Web页面运行 ...

  2. 为什么是梯度下降?SGD

    在机器学习算法中,为了优化损失函数loss function ,我们往往采用梯度下降算法来进行优化.举个例子: 线性SVM的得分函数和损失函数分别为:                         ...

  3. Javascript动画效果(一)

    Javascript动画效果(一) 前面我们介绍了Javascript的回到顶部效果,今天呢,我们对Javascript动画做进一步的研究.在这篇博文中我们只介绍简单的匀速运动.简单的缓冲运动和简单的 ...

  4. 浏览器退出之后php还会继续执行么?

    浏览器退出之后php还会继续执行么? 前提:这里说的是典型的lnmp结构,nginx+php-fpm的模式 如果我有个php程序执行地非常慢,甚至于在代码中sleep(),然后浏览器连接上服务的时候, ...

  5. HTML语义化:HTML5新标签——template

    一.前言 当我们使用String-base的模板引擎(如Handlebars.js等)时,要么就通过外部文件存放模板文本,需要时再通过XHR或script标签加载进来:要么通过<script t ...

  6. ES6笔记(7)-- Promise异步编程

    系列文章 -- ES6笔记系列 很久很久以前,在做Node.js聊天室,使用MongoDB数据服务的时候就遇到了多重回调嵌套导致代码混乱的问题. JS异步编程有利有弊,Promise的出现,改善了这一 ...

  7. SQL 语句的TOP,Distinct语句

    --Top获取前几条数据,一般都与Order By连用 SELECT TOP 3 * FROM dbo.MyStudent --查询Student表中前3条所有的数据 SELECT TOP 3 S_N ...

  8. EditText html 出现提示 This text field does not specify an inputType or a hint

      1 <EditText 2 android:layout_width="fill_parent" 3 android:layout_height="wrap_c ...

  9. 介绍开源的.net通信框架NetworkComms框架 源码分析(十)DOSProtection

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是 ...

  10. 【C#】VS2015开发环境的安装和配置(二)2016-08-03更新

    分类:C#.VS2015.WPF.ASP.NET MVC.Android.iOS.Unity3D: 更新日期:2016-08-03 按下面介绍的步骤安装即可. 一.安装JDK和Android SDK ...