文档章节

当用户秒删APP时,他在想些什么

腾讯大数据
 腾讯大数据
发布于 2017/07/13 17:12
字数 1730
阅读 6
收藏 0

研究数据表明,高达62%的用户在使用移动App时遭遇过死机、无反应、闪退等程序崩溃(Crash)。如果Crash发生在首次启动,21%的用户会选择立即卸载App;而如果Crash发生在使用过程中,70%的用户会给App差评。

这个数字是不是高的有点可怕?质量学界有名的KANO模型也证实了这个道理,产品性能和用户满意之间并不总是呈线性关系。

在产品功能的优先级上,我们要优先满足基本型需求,第二是期望型需求,最后才是兴奋型需求。因为如果基本型需求的表现差强人意,用户的不满情绪会急剧增加,甚至粉转黑,即使满足此类需求并不能带来客户满意度的增加。

比如一个号称装备双曲面柔性屏、2256万超高像素、充电五分钟通话两小时的完美手机,如果打电话信号非常差、时断时续、通话质量掉渣,想必买了的客户都吵着要退货吧。

而对于一个App来说,用户的基本型需求就是程序稳定、可用、不闪退

 

Crash全方位解决方案

针对这个App开发同学的刚需,腾讯移动分析(MTA)将内部打磨多年的Crash分析能力对外输出,合成进阶版Crash分析。

它实现了多平台的Crash数据完全采集,帮助开发者动态监测App在各移动设备的异常情况,且支持按错误类型和应用版本筛选/分析错误, 如果APP发生重大的质量问题,系统将自动告警给相关人员,让相关人员做出相应的应急处理。更重要的是它简化了流程,助力App开发者用“一行代码”拥有“完整Crash分析系统”,为App运行时的崩溃检测和恢复提供有力保障。

具体来讲,MTA提供的 Crash分析解决了四大痛点:

第一,它实现了多平台的Crash数据完全采集。不同平台和CPU架构环境下的异常数据、堆栈、环境属性、运行参数等数据的完整获取,是后续定位的基础。

第二,数据的实时高效处理。将异常数据实时化处理,第一时间展示给用户,实时了解产品质量。并且支持按错误类型和应用版本筛选错误。

第三,堆栈数据的精准还原。准确的异常追踪过程、精确到行号的堆栈还原,是还原Crash现场的最有力数据。

第四,完善的告警运营体系。Crash分析完备的监控告警机制能及时监控App质量的波动,把握质量情况,甚至能云控助力远程解决问题。

下图是 Crash分析的全方位解决方案可视化图。

 

Crash 分析背后的技术攻关

能实现如此牛逼哄哄的功能,背后自然少不了程序员小哥哥们的技术突破,总的来说有二:终端Crash采集多平台建设和海量实时还原系统建设。

 

1、        终端Crash采集多平台建设

终端数据采集主要分为两个维度,一个是基本平台的建设,即Android和Java与C/C++、iOS的Objective C和Swift;二是专业领域的定制,比如主流的手游引擎Cocos2dx中的C/C++、Lua与JS,以及Unity3d的C#。有了这两个维度平台,基本上能覆盖绝大部分场景。而在众多语言平台上,Android的C/C++异常捕获是最具挑战性的。

一个简单的Crash处理会涉及到至少三个重要环节:一是源代码文件编译时的编译过程,中间会生成符号表和二进制文件;二是用户安装运行时,发生Crash后,整个捕获过程;三是后台对上报的异常堆栈进行堆栈符号还原的过程。

 除了堆栈数据,系统还需要更多维度更灵活的数据来辅助定位,诸如时间、状态、身份标识、归因、位置等详细的信息。

 

2、        海量实时还原系统建设

还原系统主要是用于处理不同平台上报的堆栈,主要有四个部分:预处理,流量控制、数据过滤;堆栈还原,不同平台的符号化堆栈内容;智能合并,特性提取与归类;入库,批量入库,实时检索。

同时MTA自研的iOS符号表还原工具也很强大,它不依赖于Mac OS系统,支持framwork符号还原,支持Swift语言,支持Demangle,还可精准到行号。

通过解析iOS的dSYM文件,我们可以得到符号表和dwarf数据,解析dwarf数据后可以得到解析后地址与文件行号映射关系,最终可对应到Crash地址发生的行号。

堆栈还原后,我们需要做结构化处理以方便提取特征堆栈。分级优化,按App、第三方组件、系统分级,第一次提取最直接相关的,第二次做干扰数据的过滤优化;同时,还要对堆栈的调用链过程做分析。

同时,增量计算模型还有如下功能:单层单节点内计算小段时间(秒级)的增量,定期发送到下一层节点进行汇总;全整数运算:减少字符串处理开销;全内存处理:文件持久化支持,保证端到端的消息可靠传输;智能容灾策略:本地文件备份、双机热备、一致性hash。

除以上两大技术攻关,MTA还有一个亮点功能,那就是一行代码,一个系统。只需要集成简单一行代码,便可拥有Crash分析、自定义事件、分群画像、无埋点等一系列服务,不愧为解放开发者的神器。

 

回到标题,当用户秒删App时,他在想什么呢?

暴躁的小A:垃圾软件,毁我青春,废我前程!

淡定的小B:连程序稳定都做不到,怎么实现“改变世界”的小目标呀~

聪明的小C:赶紧接入腾讯MTA来为你的App保驾护航啊!

 

联系我们:

如果您希望试用或者体验MTA Crash分析,请访问MTA官网接入试用。

如果您对该功能有疑问、或者在使用中遇到了困难,欢迎您联系mta官网在线客服,或者发送您的问题邮件至:dtsupport@tencent.com

商务合作或业务咨询,请联系以下邮箱:mta@tencent.com​​​​

© 著作权归作者所有

共有 人打赏支持
腾讯大数据
粉丝 1
博文 14
码字总数 30424
作品 0
深圳
私信 提问
作为程序员,我的两次最傻眼的时刻

作为程序员,我的两次最傻眼的时刻 2018-07-04 10:53编辑: yyuuzhu分类:程序人生来源:程序师 程序员 招聘信息: iOS开发 iOS开发 iOS开发 app开发上架H5技术 app开发技术 图像处理及模式识...

yyuuzhu
07/04
0
0
作为开发者犯过的两次愚蠢的错误 一定切记切记

上周我和同事们简单地聊了聊我们工作中搞砸的那些事儿。如今早已不再犯那些错了,所以想起过去就觉得很好笑。但是笑归笑,其实当时犯的这些错让我们受益颇深。 分享自己犯错的经历至关重要,...

Java高级架构师
08/10
0
0
短视频APP开发依赖于短视频SDK的设计

优秀的短视频APP开发,首先要选择一个优秀的短视频SDK,短视频SDK集短视频采集、上传、存储、分发、播放于一体,借助短视频SDK、上传加速、不限量存储、稳定快速的 CDN 及播放器 SDK,为用户...

直播开发
09/21
0
0
“ofo上线5秒开锁广告了”,“哦,可是我早就不用小黄车了”。

最近 ofo 上线 5 秒开锁广告,巧了,这个功能上线前两天我把 ofo 押金退了。 先说一个想吐槽的点,退押金的时候只能客户端退,所以下载了小黄车 App,然后就开始找退押金的按钮。 好家伙,这...

我是徐老师呀
08/24
0
0
棋牌游戏服务器该怎么选 需要注意什么

  服务器对于游戏的重要性,就像鱼儿离不开水,游戏服务器相对于其他的平台服务器来说选择的要求是不同的,游戏承载着所有玩家的信息,如果游戏服务器不稳定是会导致玩家信息泄露以及丢失的...

H5棋牌游戏开发
2017/11/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

小白创建一个spring boot项目

进入 https://start.spring.io/

lilugirl
今天
1
0
Alibaba Java诊断利器Arthas实践--使用redefine排查应用奇怪的日志来源

背景 随着应用越来越复杂,依赖越来越多,日志系统越来越混乱,有时会出现一些奇怪的日志,比如: [] [] [] No credential found 那么怎样排查这些奇怪的日志从哪里打印出来的呢?因为搞不清...

hengyunabc
今天
1
0
home hosts

home hosts lwk@qwfys:~$ cat /etc/hosts127.0.0.1 localhost127.0.1.1 qwfys192.168.56.101vm600.qwfys.com39.108.212.91alpha1.ppy.com39.108.117.122alpha2.p......

qwfys
今天
1
0
大数据教程(6.1)hadoop生态圈介绍及就业前景

1. HADOOP背景介绍 1.1、什么是HADOOP 1.HADOOP是apache旗下的一套开源软件平台 2.HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 3.HADOOP的核心组...

em_aaron
今天
5
0
hadoop垃圾回收站

在生产生,hdfs回收站必须是开启的,一般设置为7天。 fs.trash.interval 为垃圾回收站保留时间,如果为0则禁用回收站功能。 fs.trash.checkpoint.interval 回收站检查点时间,一般设置为小于...

hnairdb
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部