文档章节

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

腾讯大数据
 腾讯大数据
发布于 2017/07/13 17:12
字数 1730
阅读 8
收藏 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
棋牌游戏服务器该怎么选 需要注意什么

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

H5棋牌游戏开发
2017/11/29
0
0
DCloud发布gostream.js,一行代码把wap流量转App流量

Wap流量转化太低,流量主伤不起   随着移动App的兴起,越来越多的网站开始把自身的wap站流量导向自己的App,但是传统的导流方法还是比较老套,比如在网站的首页挂个“下载客户端”的按钮,...

糊涂熊
2016/03/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

VMware前路难测,多个厂家群雄逐鹿

在人们高谈Salesforce、亚马逊等新兴云计算厂商取得的成就时,以VMware、HPE和Cisco为代表的老牌厂商也在进行着自己的转型和变化,而且还取得一定的进展。以VMware为例,虚拟机巨头公布了第二...

linux-tao
16分钟前
1
0
Palindrome Linked List(leetcode234)

Given a singly linked list, determine if it is a palindrome. Example 1: Input: 1->2Output: false Example 2: Input: 1->2->2->1Output: true Follow up: Could you do it in O(n) ......

woshixin
18分钟前
1
0
【宇润日常疯测-003】PHP 序列化和 JSON 哪个更好?

有了 Swoole 以后,用我们熟悉的 PHP 就可以很方便地开发网络通信应用。有时候我们系统内部需要交换数据,那么,这时候问题来了,网络通讯的数据格式是选择 JSON 还是 serialize 呢? 一通分...

宇润
19分钟前
2
0
mybatis批量操作sql配置

在写批量sql操作时,遇到执行报错: <foreach collection="list" item="item" index="index" separator=";"> update t_xxx set column1=#{item.column1} where id= #{item.id} </foreach> 分......

lar555
31分钟前
2
0
L2TP VPN客户端配置

打开网络设置-->选择VPN-->添加VPN链接 配置完毕,打开更改适配器选项 右键-->属性 选中安全---允许使用安全协议,确定保存后连接vpn即可

阿伦哥-
35分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部