说到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. Java之HashMap在多线程情况下导致死循环的问题

    PS:不得不说Java编程思想这本书是真心强大.. 学习内容: 1.HashMap<K,V>在多线程的情况下出现的死循环现象   当初学Java的时候只是知道HashMap<K,V& ...

  2. HT for Web基于HTML5的图像操作(三)

    上篇采用了HTML5的Canvas的globalCompositeOperation属性达到了染色效果,其实CSS也提供了一些常规图像变化的设置参数,关于CSS的过滤器Filter设置可参考 http ...

  3. CSS魔法堂:再次认识font

    一.前言 文字承载着站点内涵,而良好的字体.排版则为用户提供舒适的阅读体验.本文打算对字体稍微深入一下子网页字体的内容,若有纰漏请大家指正,谢谢! 目录一坨: 二, 字体分类 1. 衬线体(Serif ...

  4. Python语言特性之3:@staticmethod和@classmethod

    问题:Python中@staticmethod和@classmethod两种装饰器装饰的函数有什么不同? 原地址:http://stackoverflow.com/questions/136097/w ...

  5. NET RichTextBox控件如何可以插入图像

    本文介绍.NET RichTextBox控件如何可以插入图像,控制和ActiveX对象通过使用OLE方式,如在解释,.不幸的是,它涵盖了只用一个C源代码样本,所以我需要在托管代码(C#)实施类似的解决 ...

  6. .NET Framework介绍

    .NET Framework 是一个集成在 Windows 中的组件,它支持生成和运行下一代应用程序与 XML Web Services. .NET Framework 旨在实现下列目标: 提供一个一 ...

  7. 关于ajax的同步和异步

    今天在开发中遇到个ajax访问Action 返回json 拼接Html,有时候能显示,有时候显示不出来. 考虑后一定是页面元素加载的问题. 所以把jq ajax设置为同步. 同步意为当访问后台代码时, ...

  8. C#编程总结(一)序列化

    C#编程总结(一)序列化 序列化是将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储和传输数据. 几种序列化技术:      1) ...

  9. 15天玩转redis —— 第二篇 基础的字符串类型

    我们都知道redis是采用C语言开发,那么在C语言中表示string都是采用char[]数组的,然后你可能会想,那还不简单,当我执行如下命令,肯定是直 接塞给char[]数组的. 如果你真的这么想的话 ...

  10. Java---Java的面试题(一)

    1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节 ...