一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种面向安卓应用的崩溃信息线上分析方法与流程

2022-03-05 06:05:57 来源:中国专利 TAG:


1.本发明属于计算机技术中的软件测试技术领域,尤其是软件测试中自动化测试技术领域,用于对已上线安卓应用的崩溃捕获、收集与分析。


背景技术:

2.随着移动互联网产业的持续高速增长,移动终端普及率越来越高。作为用户最多的操作系统,安卓平台上每天都有成千上万的新应用发布,其应用总数也早已到达百万级别。国内的安卓生态环境较为独特,各大手机厂商对安卓系统深度定制,缺少统一的设备软硬件标准,且没有统一的应用发布平台,各大厂商各自为战,使得安卓碎片化问题尤为严重。在这种情况下,兼容不同厂商的安卓系统版本和设备型号对移动应用质量无疑有着严苛的要求。
3.大多数商业应用在发布前都会经过严格的测试流程,测试阶段检测到的缺陷被修复后才会将应用发布上线,然而未检测的缺陷会被直接暴露给用户。其中,崩溃是应用缺陷中严重等级最高的一类,通常会直接导致用户流失。对于开发者来说,用户使用应用过程中发生的崩溃是非常隐蔽且不易复现的。大部分移动应用开发者对于崩溃的跟踪通常源于小部分核心用户的反馈。用户上报缺陷给客服,客服对用户反馈结果进行整合后反馈给测试和开发人员。同时由于用户专业水平不一,无法对缺陷准确描述,且不能记录缺陷发生时的log日志和相关调试信息,导致测试人员复现缺陷和开发人员定位及修复缺陷都需要较大的成本。因此,通过崩溃监控分析工具实时监测上线应用运行过程中的崩溃和闪退等异常,以协助开发者分析崩溃原因和定位崩溃位置已成为移动应用测试中的一种非常重要方式。


技术实现要素:

4.本发明要解决的问题是:自动捕获移动用户使用过程中的崩溃,并展示多维度可视化崩溃报告。
5.本发明的技术方案为:面向安卓应用的崩溃信息线上分析系统,其特征是通过嵌入式sdk自动捕获安卓应用崩溃并收集崩溃相关信息,包括设备硬件信息、设备性能状态信息、用户页面路径跟踪及崩溃截图等内容。系统自动对崩溃异常堆栈进行解析,完成崩溃的分类和去重。系统具备产品管理、崩溃过滤与搜索、崩溃详情查看和实时监控分析功能,崩溃详情从页面分布、系统版本分布、机型设备分布、详细堆栈、上报趋势等多个维度进行展示,以协助开发人员快速查找、定位和修复崩溃。包括以下步骤:
6.1)用户通过填写产品名称、产品类型及产品描述等内容,系统将自动生成应用app_key,用于唯一标识应用;
7.2)用户按照系统集成说明将sdk嵌入应用,实现系统与应用的接入;
8.3)应用启动时,首先利用java反射机制监听activity生命周期,以获取用户页面操作路径和截图,同时判断设备中是否存在遗留未上传文件,若存在应立即上传至服务器;
9.4)应用崩溃时,通过安卓异常处理机制捕获异常,并收集异常堆栈、设备硬件信
息、设备性能状态信息等内容,并读取已获取的用户操作路径及崩溃截图等信息一并上传至服务器;
10.5)对已上传的崩溃数据进行解析,采用支持向量机和朴素贝叶斯分类算法预测崩溃类别,并将类别与解决方案一一对应;通过模式匹配和不一致性分析方法实现崩溃去重;
11.6)在分类和去重的基础上,从页面分布、机型设备分布、上报趋势、应用版本分布、详细堆栈、用户页面跟踪、解决方案等维度生成可视化崩溃报告,以帮助用户快速查找、定位和修复崩溃;
12.7)统计应用的崩溃发生次数、影响用户数、总问题数、已修复问题数、最新问题数等实时监控分析数据,以帮助用户实时掌控应用运行状况。
13.本发明中重写activity生命周期中的主要方法,并利用java反射机制替换原生方法,通过监听activity生命周期以获取用户操作路径和崩溃截图。
14.本发明中通过对结构化堆栈信息的分析,对异常堆栈进行数据预处理,并将其哈希向量化,再采用支持向量机和朴素贝叶斯分类算法训练分类模型以预测崩溃类别,提高了崩溃分类的精准性。
15.本发明中利用模式匹配提取堆栈关键信息,并结合应用包名、app_key、应用版本等三个属性作为不一致标签,根据四个属性是否完全一致的结果进行去重。
16.本发明中从各维度展示可视化崩溃报告,同时为用户提供系统崩溃解决建议和第三方解决建议,即用户可提交自定义解决建议且可以查看第三方解决建议并对其点赞,以完善崩溃解决建议。
17.本发明中通过聚合同一类别或堆栈关键信息相同的崩溃数据,这类相似的崩溃数据即堆栈信息基本一致,但存在报错代码行数不同或activity不同等略微差别,通过展示不同页面上的崩溃分布,能够帮助开发者追溯修复类似的bug。
18.本发明的有益效果是:可以自动捕获应用运行时崩溃,以友好界面提示用户并退出应用,将崩溃相关信息及时上报到系统,从多个不同维度统计和分析崩溃信息并展示详细的崩溃报告,帮助开发者快速定位和修复应用程序错误,全方位提升安卓应用质量。
附图说明
19.图1系统执行流程图
20.图2崩溃分类示例代码
21.图3模式匹配流程图
22.图4产品管理截图
23.图5崩溃列表截图
24.图6崩溃详情截图
25.图7实时监控分析截图
26.具体实施方法
27.本发明中目的是自动捕获应用运行时崩溃,基于支持向量机算法预测崩溃类别,采用模式匹配和不一致性分析去重崩溃,最终生成多维可视化崩溃报告。具体实施方式有以下几个步骤:崩溃信息收集、崩溃分类与去重和崩溃报告可视化,从而得到最终结果。
28.1.崩溃信息收集
29.通过重写安卓生命周期中的主要方法,采用切面编程技术替换系统原生方法,在各生命周期状态函数中,获取当前设备时间、activity名称,activity当前状态以及调用截屏函数截取当前页面。基于安卓异常处理机制捕获应用运行时的崩溃,即通过自定义异常处理器uncaughtexceptionhandler并将其设置为全局的异常处理器实现,在捕获异常的同时获取异常堆栈信息,收集设备硬件信息和设备性能状态信息。
30.2.崩溃去重与分类
31.实现崩溃的去重与分类。分类过程为基于已收集的崩溃数据并采用支持向量机和朴素贝叶斯分类算法训练分类模型,主要包括数据预处理、读取训练集、文本向量化、训练模型及模型评估几个步骤。其中,数据预处理过程为特征提取和类型标注,文本向量化采用哈希算法实现。去重过程包括模式匹配提取关键句和不一致性分析两个步骤,通过模式匹配提取关键句keysentences,并结合应用包名、app_key、应用版本三个属性作为去重的不一致标签,根据四个属性是否完全一致的结果进行去重。其模式匹配提取流程图6所示。
32.3.崩溃可视化
33.将产品管理、崩溃过滤与查询、崩溃详情查看和实时监控分析等过程,以网页的形式可视化。产品管理提供新建产品、修改产品和删除产品等功能,其页面截图如图4所示。崩溃过滤与查询根据崩溃类型、崩溃状态进行过滤,同时可以直接输入关键词进行查询,其页面截图如图5所示。崩溃详情查看提供多维度的崩溃数据分析,包括崩溃发生次数、影响用户数、解决方案、不同页面分布、机型设备分布、应用版本分布、上报趋势、用户页面路径跟踪、详细堆栈信息和设备软硬件信息等内容,其页面截图如图6所示。其中解决方案与崩溃类别一一对应,修改崩溃状态时可以提交自定义解决方案,查看第三方解决方案时可对该建议进行点赞。实时监控分析负责分析应用近况,如崩溃发生次数、影响用户数、影响用户占比、上报趋势、总问题数、以修复数、新发现问题数和崩溃发生次数排名top5的崩溃概要,其页面截图如图7所示。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献