说到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. IE条件注释详解

    IE条件注释是微软从IE5开始就提供的一种非标准逻辑语句,作用是可以灵活的为不同IE版本浏览器导入不同html元素,如:样式表,html标签等.很显然这种方法的最大好处就在于属于微软官方给出的兼容解决 ...

  2. 基于HTML5的Web SCADA工控移动应用

    在电力.油田燃气.供水管网等工业自动化领域Web SCADA的概念已经提出了多年,早先年的Web SCADA前端技术大部分还是基于Flex.Silverlight甚至Applet这样的重客户端方案,在 ...

  3. qml基础学习 Canvas画笔

    一.画布元素 自qt4.7发布qml以来,qml也在一直不断的完善中,在qt4时代使用qml时如果需要异形图,那我们只能让设计师来切图,这样的感觉是很不爽的,总感觉开发没有那么犀利.但是到了qt5这一 ...

  4. [译]针对科学数据处理的统计学习教程(scikit-learn教程2)

    翻译:Tacey Wong 统计学习: 随着科学实验数据的迅速增长,机器学习成了一种越来越重要的技术.问题从构建一个预测函数将不同的观察数据联系起来,到将观测数据分类,或者从未标记数据中学习到一些结构 ...

  5. Spring MVC 对于@ModelAttribute 、@SessionAttributes 的详细处理流程

    初学 Spring MVC , 感觉对于 @ModelAttribute 和 @SessionAttributes 是如何被Spring MVC处理的,这一流程不是很清楚, 经过Google资料,有了 ...

  6. Web API配置自定义路由

    默认访问Web API时,是无需指定method名.它会按照默认的路由来访问.如果你的Web API中出现有方法重载时,也许得配置自定义路由: 标记1为自定义路由,标记2为默认路由,需要把自定义路由排 ...

  7. mysql中,ENCODE警告---Warning Code : 1287

    mysql中,ENCODE警告 共 1 行受到影响, 1 个警告 执行耗时 : 0.072 sec传送时间 : 0.001 sec总耗时 : 0.073 sec Warning Code : 1287 ...

  8. mysql: see all open connections to a given database?

    SHOW PROCESSLIST or  show status where `variable_name` = 'Threads_connected';

  9. webservice入门(2)开发ws程序

    因为webservice分为服务端和客户端,所以如果要学习的话,那么肯定是包括这两部分的了. 1.开发服务端的webservice: 使用jdk开发ws其实很简单,只是需要一些注解:最重要的是 @We ...

  10. 几个最常用的Mysql命令

    shell>mysql -u用户名 -p密码 mysql>show databases; mysql>use 数据库名称; mysql>show tables; mysql&g ...