| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 【得物技术】得物App Android Crash治理演进 -> 正文阅读 |
|
[移动开发]【得物技术】得物App Android Crash治理演进 |
应用程序闪退称之为Crash,Crash率是衡量APP好坏的一个重要指标,有效的治理可以减少应用程序Crash带来用户体验问题,甚至用户流失。本文讲述得物App Android客户端的Crash率从千分之八做到万分之三过程中所做的工作,按时间阶段分别介绍在以下几个方向上的演进。
第一阶段(石器时代)Crash信息采集,指标建立,简易的Crash分发流程
通过上述方式我们有了crash信息和crash指标参考。 不过印象深刻的是当时每次灰度发版本加班处理crash是常态,而且很多crash由于信息缺少无法排查。每周日还得挨个去查看crash整理表格数据。线上灰度版本质量和crash数据统计的准确性都在经受考验。 第二阶段(青铜时代)灰度熔断机制(crash告警)为了保证灰度版本的质量加入了灰度熔断机制。
日志文件SDK&规范(crash 排查)为了获取crash时更多的信息 加入了本地文件信息记录。
自动解析统计(crash统计)建立了基于bugly的crash处理机制
第三阶段(铁器时代)应用评论crash通知(crash告警)我们发现了一种Crash 场景,发生Crash时 Crash sdk还没初始化,Crash平台上没展示,但是应用市场有了Crash评论。所以去做了实时监控四大应用市场crash评论用于及时发现Crash问题 配置中心(crash 兜底)为了减少线上问题,上线一个新功能时我们需要一个配置用于新功能的逐渐放量或者功能回退。 简易流程 埋点上报SDK(crash排查)本地日志上报有实时性不高,捞取成功率不高,无法支持多维度问题数据统计的的功能。埋点上报模块与其进行了互补,及时发现线上问题和统计问题指标。 异常数据补充上报(crash 排查)BPM SDK 在埋点SDK基础上封装了业务异常打点SDK 增加了业务模块,流量控制的流程。 堆栈缺少主要日志
这些问题能通过使用aspectj,ASM等字节码修改框架很方便的hook到我们想要的内容。 ART OOM 信息补充上报 1. 采集了当前进程内存状态 proc/self/smaps 的解析 2. 线程问题 采集了最大限制线程数,使用Thread.getAllStackTraces()获取当前线程堆栈信息 分别按照线程名和线程堆栈进行聚合 app打包时使用了字节码查桩对线程进行了重命名。 3. FD问题 fd信息聚合输出 4. 图片问题 hook获取当前加载图片的source url 尺寸。dump BitmapPool中的内存信息。dump当前屏幕上图片的url地址以及尺寸大小 5. 灰度内存超过阀值的部分wifi设备hprof文件的上送问题分析。 三方库问题处理(Crash 保护)提供了du_aspect模块把一些第三方库的Crash通过字节码插桩方案try catch 降级为异常上报。 升级64位so(Crash 治理)oom信息补充上报后,我们发现vmsize触顶的场景占比特别大。升级64位后占比大幅下降 第四阶段(蒸汽时代)异常埋点平台(crash 排查)异常埋点平台化,规范异常埋点流程,异常埋点管理。 平台建立埋点->生成代码->代码内手动埋点->发布后命中的设备上报异常埋点。 文件回捞(crash 排查)文件回捞SDK,支持APP内任意文件路径下发回捞,使用场景。
Crash安全中心(crash数据支持,crash降级兜底)Crash降级兜底 分析工具(crash 排查)堆栈反混淆工具
多维度日志分析
关联OSS文件
自建Crash平台(crash告警, crash分发,crash统计,crash 处理流程优化)异常Crash处理流程优化 文/zjy 关注得物技术,携手走向技术的云端? |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:37:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |