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

一种应用程序崩溃堆栈指派方法、装置及存储介质与流程

2021-11-03 21:47:00 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种应用程序崩溃堆栈指派方法、装置及存储介质。


背景技术:

2.应用程序崩溃堆栈治理是移动互联网时代app迭代的重要工作,应用程序崩溃率是衡量一款app质量好坏的重要指标之一,不仅会影响用户体验,也可能影响用户存量。一旦出现问题,可能会给企业带来严重损失。
3.传统应用程序崩溃堆栈治理生命周期包括app产生的应用程序崩溃堆栈的收集、应用程序崩溃堆栈聚合以及应用程序崩溃堆栈展示等,这一流程在以bugly为例的产品中均有体现。应用程序崩溃堆栈治理采集到的堆栈最终需要指派给归属的研发来进行修改,而bugly需要开发人员手动指派问题,并不能自动指派,也无法关联业务线,并不能满足大型研发团队在问题分配以及状态管理。并且,大型app往往由多个业务线来开发,每条业务线由多个开发人员组成,各业务线对需求迭代以及应用程序崩溃堆栈治理负责,因此指派问题到具体的业务线更加契合大型app研发团队的组织架构。


技术实现要素:

4.本发明的主要目的在于提供一种应用程序崩溃堆栈指派方法、装置及存储介质,旨在解决现有技术中应用程序的问题出现时,只能手动指派问题,并不能自动指派,也无法关联到具体的业务线,问题指派效率低,造成大量人力资源浪费的问题。
5.为实现上述目的,本发明提供了一种应用程序崩溃堆栈指派方法,所述方法包括以下步骤:
6.为实现上述目的,本发明提供了一种应用程序崩溃堆栈指派方法,所述方法包括以下步骤:
7.获取应用程序崩溃堆栈信息;
8.对所述应用程序崩溃堆栈信息进行特征提取,获得指派特征;
9.将所述指派特征与代码归属规则进行匹配,获取所述指派特征的归属人员;
10.将所述应用程序崩溃堆栈信息指派给所述归属人员。
11.可选地,所述对所述应用程序崩溃堆栈信息进行特征提取,包括以下步骤:
12.判断所述应用程序崩溃堆栈信息是否有堆栈;
13.若所述应用程序崩溃堆栈信息有堆栈,则进行堆栈解析,得到java堆栈和/或back trace堆栈;
14.若所述应用程序崩溃堆栈信息没有堆栈,则获取应用程序崩溃发生的页面路径;
15.对所述java堆栈和/或back trace堆栈和/或所述页面路径进行解析,得到所述指派特征。
16.可选地,所述对所述java堆栈和/或back trace堆栈和/或所述页面路径进行解
析,得到所述指派特征,包括以下步骤:
17.对所述java堆栈进行解析,获得第一自定义消息和/或第一方法和/或第一类名;和/或
18.对所述back trace堆栈进行解析获得第一文件名;和/或
19.对所述页面路径进行解析,获得所述第一类名。
20.可选地,所述代码归属规则,通过以下步骤获得:
21.通过版本控制系统获取文件最后修改信息;
22.根据所述文件最后修改信息,获得文件名与所述归属人员的对应关系;
23.获取组件信息,然后获取所述组件信息包含的所述第二文件名;
24.从所述第二文件名对应的文件中获取第二自定义消息和/或第二方法和/或第二类名;
25.创建所述第二自定义消息和/或所述第二方法和/或所述第二类名与所述第二文件名与所述组件与所述归属人员的对应关系。
26.可选地,所述方法还包括以下步骤:
27.对所述第二自定义消息和/或所述第二方法和/或所述第二类名和/或所述第二文件名配置权重。
28.可选地,所述将所述指派特征与代码归属规则进行匹配获取所述指派特征的归属人员,通过以下步骤实现:
29.判断所述第一自定义消息与所述第二自定义消息是否相同,如果相同,获取所述第二自定义消息对应的所述权重和所述归属人员;和/或
30.判断所述第一方法与所述第二方法是否相同,如果相同,获取所述第二方法对应的所述权重和所述归属人员;和/或
31.判断所述第一类名与所述第二类名是否相同,如果相同,获取所述第二类名对应的所述权重和所述归属人员;和/或
32.判断所述第一类文件名与所述第二类文件名是否相同,如果相同,获取所述第二类文件名对应的所述权重和所述归属人员;
33.累加同一所述归属人员的所述权重,得到所述归属人员的权重累加值;
34.所述权重累加值最大的所述归属人员为所述指派特征的归属人员。
35.可选地,当所述权重累加值最大的所述归属人员离职时,所述方法还包括以下步骤:
36.判断所述第一自定义消息与所述第二自定义消息是否相同,如果相同,获取所述第二自定义消息对应的所述权重和所述组件;和/或
37.判断所述第一方法与所述第二方法是否相同,如果相同,获取所述第二方法对应的所述权重和所述组件;和/或
38.判断所述第一类名与所述第二类名是否相同,如果相同,获取所述第二类名对应的所述权重和所述组件;和/或
39.判断所述第一类文件名与所述第二类文件名是否相同,如果相同,获取所述第二类文件名对应的所述权重和所述组件;
40.累加同一所述组件的所述权重,得到所述组件的权重累加值;
41.所述权重累加值最大的所述组件的负责人为所述指派特征的归属人员。
42.此外,为实现上述目的,本发明还提出一种应用程序崩溃堆栈指派装置,所述装置包括:
43.获取单元,用于获取应用程序崩溃堆栈信息;
44.提取单元,用于对所述应用程序崩溃堆栈信息进行特征提取,获得指派特征;
45.匹配单元,用于将所述指派特征与代码归属规则进行匹配,获取所述指派特征的归属人员;
46.指派单元,用于将所述应用程序崩溃堆栈信息指派给所述归属人员。
47.此外,为实现上述目的,本发明还提出一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上文所述的应用程序崩溃堆栈指派方法的步骤。
48.此外,为实现上述目的,本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的应用程序崩溃堆栈指派方法的步骤。
49.本发明对应用程序崩溃堆栈信息进行特征提取,获得指派特征,保存代码归属规则,能够为指派算法提供数据源;将指派特征与代码归属规则进行匹配,能够找到问题的归属人员。这样,能够对崩溃堆栈治理平台中的问题进行自动指派并分配业务线,为大型app的崩溃堆栈治理工作带来效率提升。
附图说明
50.图1为本发明提供的应用程序崩溃堆栈指派方法的一个流程示意图。
51.图2为本发明提供的崩溃堆栈特征值提取的一个流程示意图。
52.图3为本发明提供的代码归属规则获取的一个流程示意图。
53.图4为本发明提供的应用程序崩溃堆栈指派方法的另一个流程示意图。
54.图5为本发明应用程序崩溃堆栈指派装置实施例的结构框图。
55.图6为本发明实施例提供的一种电子设备的结构示意图。
56.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
57.为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅以解释本发明,并不用于限定本发明。
58.在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
59.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
60.在一个实施例中,如图1所示,一并结合图2,本发明提供一种应用程序崩溃堆栈指派方法,所述方法包括:
61.步骤101、获取应用程序崩溃堆栈信息。
62.在本技术实施例中,应用程序,如android app程序在运行过程中出现问题时,不同设备均会产生崩溃堆栈信息。单条崩溃堆栈信息上报到服务端,服务端把崩溃堆栈信息保存到数据库中,如阿里云日志服务(sls)中。崩溃堆栈治理平台可以从阿里云日志服务中获取应用程序崩溃堆栈信息。
63.步骤102、对所述应用程序崩溃堆栈信息进行特征提取,获得指派特征。
64.在本技术实施例中,由于应用程序崩溃堆栈信息可能包括java stack、native stack以及anr(application not responding)和自定义异常这些其他异常,而在这三类崩溃堆栈信息中,java crash是有java堆栈的,native crash可能没有java堆栈,也可能是c 的back trace堆栈,anr则是一段时间的运行结果,即页面路径。
65.为了后续能够对崩溃堆栈治理平台中的问题进行自动指派,需要将应用程序崩溃堆栈信息进行特征提取,以获得指派特征。具体的,可以通过判断所述应用程序崩溃堆栈信息是否有堆栈:
66.若所述应用程序崩溃堆栈信息有堆栈,即表明是java stack和/或native stack,则进行堆栈解析,得到java堆栈和/或back trace堆栈;
67.若所述应用程序崩溃堆栈信息没有堆栈,即表明是native stack和/或anr,则获取应用程序崩溃发生的页面路径。
68.在本技术实施例中,在获得java堆栈和/或back trace堆栈和/或所述页面路径后,可以对所述java堆栈和/或back trace堆栈和/或所述页面路径进行进一步的解析,得到所述指派特征。具体的,由于java堆栈的本质是代码片段,代码片段可能包括自定义消息、方法、行数以及类名,其中,类名包含内部类以及kotlin转换类;back trace堆栈本质是一系列的so文件名;页面路径本质则是一系列的类名。
69.因此,对所述java堆栈进行解析,可以获得第一自定义消息和/或第一方法和/或第一类名;对所述back trace堆栈进行解析,可以获得第一文件名;对所述页面路径进行解析,可以获得所述第一类名。
70.经过上述过程,可以得到所述应用程序崩溃堆栈信息指派特征,这些指派特征即包括所述第一自定义消息和/或所述第一方法和/或所述第一类名和/或所述第一文件名。
71.步骤103、将所述指派特征与代码归属规则进行匹配,获取所述指派特征的归属人员。
72.为了能够找到崩溃堆栈治理平台中的问题的归属人员,需要在获取所述应用程序崩溃堆栈信息的指派特征后,还需要获取代码归属规则。
73.在申请本实施中,获取代码归属规则,可以通过以下步骤实现,如图3所示:
74.步骤1031、通过版本控制系统获取文件最后修改信息。
75.具体的,可以通过版本控制系统进行代码分析,如git仓库,可以通过git rev

parse head指令获取当前组件commit id,即提交人员。然后遍历组件目录,如src/main/java及src/main/kotlin/,可以通过git ls

tree

r
‑‑
name

only head指令获取到文件最后修改信息。
76.步骤1032、根据所述文件最后修改信息,获得文件名与所述归属人员的对应关系。
77.具体的,在获取所述文件最后修改信息后,由于所述文件最后修改信息包含文件
提交人员的信息,因此,可以获得文件名与所述归属人员的对应关系。
78.步骤1033、获取组件信息,然后获取所述组件信息包含的所述第二文件名。
79.具体的,通过代码工程中组件信息获取该组件的文件信息;若提交人员使用了第三方依赖库,则可以采集第三方依赖库的组件信息,确认具体组件信息。也可以获取应用程序运行时需要依赖的第三方依赖库,然后获取所述组件信息包含的文件信息。
80.当然,还可以将步骤1033获得的所述组件信息与步骤1031获得的所述归属人员进行关联,获知由哪个提交人员使用何种组件进行修改。
81.步骤1034、从所述第二文件名对应的文件中获取第二自定义消息和/或第二方法和/或第二类名。
82.具体的,通过文件名获取对应源代码文件,分析源代码文件获取该源代码文件中包含的自定义消息和/或方法和/或类名,本实施例在此不再赘述。
83.步骤1035、创建所述第二自定义消息和/或所述第二方法和/或所述第二类名与所述第二文件名与所述组件与所述归属人员的对应关系。
84.具体的,基于上述步骤,在获得第二自定义消息和/或所述第二方法和/或所述第二类名后,由于第二自定义消息和/或所述第二方法和/或所述第二类名从所述第二文件名获得,所述组件信息包含的所述第二文件名,所述第二文件名与所述归属人员具有对应关系,因此,可以基于上述过程创建所述第二自定义消息和/或所述第二方法和/或所述第二类名与所述第二文件名与所述组件与所述归属人员的对应关系。
85.在申请本实施中,在获取所述第二自定义消息和/或所述第二方法和/或所述第二类名和/或所述第二文件名后,还需要进一步的对所述第二自定义消息和/或所述第二方法和/或所述第二类名和/或所述第二文件名配置权重。
86.每一种所述第二自定义消息和/或所述第二方法和/或所述第二类名和/或所述第二文件名都有一个对应的权重,这些权重可以通过手动方式进行配置。如下权重配置方式:
[0087][0088][0089]
在申请本实施中,在获得代码归属规则和指派特征后,需要进行指派计算,将代码归属规则和指派特征进行匹配,以获取所述指派特征的归属人员。
[0090]
具体的,判断所述第一自定义消息与所述第二自定义消息是否相同,如果相同,获取所述第二自定义消息对应的所述权重和所述归属人员;
[0091]
以此类推,判断所述第一方法与所述第二方法是否相同,如果相同,获取所述第二方法对应的所述权重和所述归属人员;判断所述第一类名与所述第二类名是否相同,如果相同,获取所述第二类名对应的所述权重和所述归属人员;判断所述第一类文件名与所述
第二类文件名是否相同,如果相同,获取所述第二类文件名对应的所述权重和所述归属人员。
[0092]
具体的,可以是如下流程:
[0093]
a、判断所述第一自定义消息与所述第二自定义消息是否相同,如果相同,则获取所述第二自定义消息对应的所述权重和所述归属人员;无论是否相同,都继续后续判断。
[0094]
举例说明:
[0095]
指派特征代码内容权重归属人员第一自定义消息第二自定义消息4研发人员a
[0096]
b、判断所述第一方法与所述第二方法是否相同,如果相同,则获取所述第二方法对应的所述权重和所述归属人员;无论是否相同,都继续后续判断。
[0097]
举例说明:
[0098]
指派特征代码内容权重归属人员第一方法第二方法3研发人员b
[0099]
c、判断所述第一类名与所述第二类名是否相同,如果相同,则获取所述第二类名对应的所述权重和所述归属人员;无论是否相同,都继续后续判断。
[0100]
举例说明:
[0101]
指派特征代码内容权重归属人员第一类名第二类名2研发人员a
[0102]
d、判断所述第一文件名与所述第二文件名是否相同,如果相同,则获取所述第二文件名对应的所述权重和所述归属人员;如果不相同,则结束判断。
[0103]
举例说明:
[0104]
指派特征代码内容权重归属人员第一文件名第二文件名1研发人员c
[0105]
在上述流程结束之后,可以得到累加同一所述归属人员的所述权重,得到所述归属人员的权重累加值;所述权重累加值最大的所述归属人员为所述指派特征的归属人员。举例说明,对于一应用程序崩溃堆栈信息,研发人员a的权重累加值为6,研发人员b的权重累加值为2,研发人员c的权重累加值为1,则确认权重累加值最大为6的这个研发人员a为所述指派特征的归属人员。
[0106]
当然,在一些可选的实施例中,如果存在研发人员a的权重累加值与研发人员b的权重累加值都为6,即权重累加值相同,则可以进一步的结合所述应用程序崩溃堆栈信息的代码行数,其中,所述代码行数可以是所述java堆栈进行解析得到的指派特征,累加同一所述归属人员的所述代码行数,并进行排序,将代码行数最大的所述归属人员作为所述指派特征的归属人员。举例说明,研发人员a的代码行数为180行,研发人员b的代码行数为60行,则确认代码行数为180的这个研发人员a为所述指派特征的归属人员。
[0107]
步骤104、将所述应用程序崩溃堆栈信息指派给所述归属人员。
[0108]
在本技术实施例中,在已经找到所述指派特征的归属人员的情况下,可以立即给所述归属人员的飞书发送消息或发送邮件信息或提交问题单处理电子流,将所述应用程序崩溃堆栈信息指派给所述归属人员,从而实现了对崩溃堆栈治理平台中的问题进行自动指
派。
[0109]
本实施例通过上述方案,通过对应用程序崩溃堆栈信息进行特征提取,获得指派特征,保存代码归属规则,能够为指派算法提供数据源;将指派特征与代码归属规则进行匹配,能够找到问题的归属人员。通过以上技术方案,能够对崩溃堆栈治理平台中的问题进行自动指派并分配业务线,为大型app的崩溃堆栈治理工作带来效率提升。
[0110]
请参阅图4,本发明还提供了一种应用程序崩溃堆栈指派方法,所述方法包括以下步骤:
[0111]
步骤201、获取应用程序崩溃堆栈信息。
[0112]
步骤202、对所述应用程序崩溃堆栈信息进行特征提取,获得指派特征。
[0113]
步骤203、将所述指派特征与代码归属规则进行匹配,获取所述指派特征的归属人员。
[0114]
步骤204、判断所述权重累加值最大的所述归属人员是否在职。
[0115]
在本步骤中,若所述权重累加值最大的所述归属人员在职,则直接进入步骤206;若所述权重累加值最大的所述归属人员离职,则直接进入步骤205。
[0116]
步骤205、根据所述第二自定义消息和/或所述第二方法和/或所述第二类名与所述第二文件名与所述组件的对应关系,得到所述组件的权重累加值;将所述权重累加值最大的所述组件的负责人为所述指派特征的归属人员。
[0117]
本技术实施例中,当所述权重累加值最大的所述归属人员离职时,若还将所述应用程序崩溃堆栈信息指派给所述归属人员,则问题无法得到解决。因此,基于前述获得的所述第二自定义消息和/或所述第二方法和/或所述第二类名与所述第二文件名与所述组件与所述归属人员的对应关系,由于所述组件一般都具有负责人,进一步判断所述第一自定义消息与所述第二自定义消息是否相同,如果相同,获取所述第二自定义消息对应的所述权重和所述组件;和/或判断所述第一方法与所述第二方法是否相同,如果相同,获取所述第二方法对应的所述权重和所述组件;和/或判断所述第一类名与所述第二类名是否相同,如果相同,获取所述第二类名对应的所述权重和所述组件;和/或判断所述第一类文件名与所述第二类文件名是否相同,如果相同,获取所述第二类文件名对应的所述权重和所述组件。然后,累加同一所述组件的所述权重,得到所述组件的权重累加值;最终,将所述权重累加值最大的所述组件的负责人为所述指派特征的归属人员。
[0118]
步骤206、将所述应用程序崩溃堆栈信息指派给所述归属人员。
[0119]
其中,所述步骤201至步骤203和步骤206与步骤101至步骤104内容相同,本实施例在此不在赘述。
[0120]
本实施例通过上述方案,通过对应用程序崩溃堆栈信息进行特征提取,获得指派特征,保存代码归属规则,能够为指派算法提供数据源;将指派特征与代码归属规则进行匹配,能够找到问题的归属人员,且在归属人员离职后能够找到问题的负责人,确保了问题的及时解决。通过以上技术方案,能够对崩溃堆栈治理平台中的问题进行自动指派并分配业务线,为大型app的崩溃堆栈治理工作带来效率提升。
[0121]
此外,本发明实施例还提出一种应用程序崩溃堆栈指派装置,参照图5,所述应用程序崩溃堆栈指派装置包括:
[0122]
获取单元10,用于获取应用程序崩溃堆栈信息;
[0123]
提取单元20,用于对所述应用程序崩溃堆栈信息进行特征提取,获得指派特征;
[0124]
匹配单元30,用于将所述指派特征与代码归属规则进行匹配,获取所述指派特征的归属人员;
[0125]
指派单元40,用于将所述应用程序崩溃堆栈信息指派给所述归属人员。
[0126]
本实施例通过上述方案,通过对应用程序崩溃堆栈信息进行特征提取,获得指派特征,保存代码归属规则,能够为指派算法提供数据源;将指派特征与代码归属规则进行匹配,能够找到问题的归属人员。通过以上技术方案,能够对崩溃堆栈治理平台中的问题进行自动指派并分配业务线,为大型app的崩溃堆栈治理工作带来效率提升。
[0127]
需要说明的是,上述装置中的各单元可用于实现上述方法中的各个步骤,同时达到相应的技术效果,本实施例在此不再赘述。
[0128]
参照图6,图6为本发明实施例提供的一种电子设备的结构示意图。
[0129]
如图6所示,该电子设备可以包括:处理器1001,例如cpu,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi

fi、4g、5g接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non

volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0130]
本领域技术人员可以理解,图6中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0131]
如图6所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及应用程序崩溃堆栈指派程序。
[0132]
在图6所示的电子设备中,网络接口1004主要用于与外部网络进行数据通信;用户接口1003主要用于接收用户的输入指令;电子设备通过处理器1001调用存储器1005中存储的交通工具设备控制程序,并执行以下操作:
[0133]
获取应用程序崩溃堆栈信息;
[0134]
对所述应用程序崩溃堆栈信息进行特征提取,获得指派特征;
[0135]
将所述指派特征与代码归属规则进行匹配,获取所述指派特征的归属人员;
[0136]
将所述应用程序崩溃堆栈信息指派给所述归属人员。
[0137]
可选地,所述对所述应用程序崩溃堆栈信息进行特征提取,包括以下步骤:
[0138]
判断所述应用程序崩溃堆栈信息是否有堆栈;
[0139]
若所述应用程序崩溃堆栈信息有堆栈,则进行堆栈解析,得到java堆栈和/或back trace堆栈;
[0140]
若所述应用程序崩溃堆栈信息没有堆栈,则获取应用程序崩溃发生的页面路径;
[0141]
对所述java堆栈和/或back trace堆栈和/或所述页面路径进行解析,得到所述指派特征。
[0142]
可选地,所述对所述java堆栈和/或back trace堆栈和/或所述页面路径进行解析,得到所述指派特征,包括以下步骤:
[0143]
对所述java堆栈进行解析,获得第一自定义消息和/或第一方法和/或第一类名;
和/或
[0144]
对所述back trace堆栈进行解析获得第一文件名;和/或
[0145]
对所述页面路径进行解析,获得所述第一类名。
[0146]
可选地,所述代码归属规则,通过以下步骤获得:
[0147]
通过版本控制系统获取文件最后修改信息;
[0148]
根据所述文件最后修改信息,获得文件名与所述归属人员的对应关系;
[0149]
获取组件信息,然后获取所述组件信息包含的所述第二文件名;
[0150]
从所述第二文件名对应的文件中获取第二自定义消息和/或第二方法和/或第二类名;
[0151]
创建所述第二自定义消息和/或所述第二方法和/或所述第二类名与所述第二文件名与所述组件与所述归属人员的对应关系。
[0152]
可选地,所述方法还包括以下步骤:
[0153]
对所述第二自定义消息和/或所述第二方法和/或所述第二类名和/或所述第二文件名配置权重。
[0154]
可选地,所述将所述指派特征与代码归属规则进行匹配获取所述指派特征的归属人员,通过以下步骤实现:
[0155]
判断所述第一自定义消息与所述第二自定义消息是否相同,如果相同,获取所述第二自定义消息对应的所述权重和所述归属人员;和/或
[0156]
判断所述第一方法与所述第二方法是否相同,如果相同,获取所述第二方法对应的所述权重和所述归属人员;和/或
[0157]
判断所述第一类名与所述第二类名是否相同,如果相同,获取所述第二类名对应的所述权重和所述归属人员;和/或
[0158]
判断所述第一类文件名与所述第二类文件名是否相同,如果相同,获取所述第二类文件名对应的所述权重和所述归属人员;
[0159]
累加同一所述归属人员的所述权重,得到所述归属人员的权重累加值;
[0160]
所述权重累加值最大的所述归属人员为所述指派特征的归属人员。
[0161]
可选地,当所述权重累加值最大的所述归属人员离职时,所述方法还包括以下步骤:
[0162]
判断所述第一自定义消息与所述第二自定义消息是否相同,如果相同,获取所述第二自定义消息对应的所述权重和所述组件;和/或
[0163]
判断所述第一方法与所述第二方法是否相同,如果相同,获取所述第二方法对应的所述权重和所述组件;和/或
[0164]
判断所述第一类名与所述第二类名是否相同,如果相同,获取所述第二类名对应的所述权重和所述组件;和/或
[0165]
判断所述第一类文件名与所述第二类文件名是否相同,如果相同,获取所述第二类文件名对应的所述权重和所述组件;
[0166]
累加同一所述组件的所述权重,得到所述组件的权重累加值;
[0167]
所述权重累加值最大的所述组件的负责人为所述指派特征的归属人员。
[0168]
本实施例通过上述方案,通过对应用程序崩溃堆栈信息进行进行特征提取,获得
指派特征,保存代码归属规则,能够为指派算法提供数据源;将指派特征与代码归属规则进行匹配,能够找到问题的归属人员。通过以上技术方案,能够对崩溃堆栈治理平台中的问题进行自动指派并分配业务线,为大型app的崩溃堆栈治理工作带来效率提升。
[0169]
此外,本发明实施例还提出一种计算机可读存储介质,计算机可读存储介质上存储有交通工具设备控制程序,交通工具设备控制程序被处理器执行时实现如下操作:
[0170]
获取应用程序崩溃堆栈信息;
[0171]
对所述应用程序崩溃堆栈信息进行特征提取,获得指派特征;
[0172]
将所述指派特征与代码归属规则进行匹配,获取所述指派特征的归属人员;
[0173]
将所述应用程序崩溃堆栈信息指派给所述归属人员。
[0174]
可选地,所述对所述应用程序崩溃堆栈信息进行特征提取,包括以下步骤:
[0175]
判断所述应用程序崩溃堆栈信息是否有堆栈;
[0176]
若所述应用程序崩溃堆栈信息有堆栈,则进行堆栈解析,得到java堆栈和/或back trace堆栈;
[0177]
若所述应用程序崩溃堆栈信息没有堆栈,则获取应用程序崩溃发生的页面路径;
[0178]
对所述java堆栈和/或back trace堆栈和/或所述页面路径进行解析,得到所述指派特征。
[0179]
可选地,所述对所述java堆栈和/或back trace堆栈和/或所述页面路径进行解析,得到所述指派特征,包括以下步骤:
[0180]
对所述java堆栈进行解析,获得第一自定义消息和/或第一方法和/或第一类名;和/或
[0181]
对所述back trace堆栈进行解析获得第一文件名;和/或
[0182]
对所述页面路径进行解析,获得所述第一类名。
[0183]
可选地,所述代码归属规则,通过以下步骤获得:
[0184]
通过版本控制系统获取文件最后修改信息;
[0185]
根据所述文件最后修改信息,获得文件名与所述归属人员的对应关系;
[0186]
获取组件信息,然后获取所述组件信息包含的所述第二文件名;
[0187]
从所述第二文件名对应的文件中获取第二自定义消息和/或第二方法和/或第二类名;
[0188]
创建所述第二自定义消息和/或所述第二方法和/或所述第二类名与所述第二文件名与所述组件与所述归属人员的对应关系。
[0189]
可选地,所述方法还包括以下步骤:
[0190]
对所述第二自定义消息和/或所述第二方法和/或所述第二类名和/或所述第二文件名配置权重。
[0191]
可选地,所述将所述指派特征与代码归属规则进行匹配获取所述指派特征的归属人员,通过以下步骤实现:
[0192]
判断所述第一自定义消息与所述第二自定义消息是否相同,如果相同,获取所述第二自定义消息对应的所述权重和所述归属人员;和/或
[0193]
判断所述第一方法与所述第二方法是否相同,如果相同,获取所述第二方法对应的所述权重和所述归属人员;和/或
[0194]
判断所述第一类名与所述第二类名是否相同,如果相同,获取所述第二类名对应的所述权重和所述归属人员;和/或
[0195]
判断所述第一类文件名与所述第二类文件名是否相同,如果相同,获取所述第二类文件名对应的所述权重和所述归属人员;
[0196]
累加同一所述归属人员的所述权重,得到所述归属人员的权重累加值;
[0197]
所述权重累加值最大的所述归属人员为所述指派特征的归属人员。
[0198]
可选地,当所述权重累加值最大的所述归属人员离职时,所述方法还包括以下步骤:
[0199]
判断所述第一自定义消息与所述第二自定义消息是否相同,如果相同,获取所述第二自定义消息对应的所述权重和所述组件;和/或
[0200]
判断所述第一方法与所述第二方法是否相同,如果相同,获取所述第二方法对应的所述权重和所述组件;和/或
[0201]
判断所述第一类名与所述第二类名是否相同,如果相同,获取所述第二类名对应的所述权重和所述组件;和/或
[0202]
判断所述第一类文件名与所述第二类文件名是否相同,如果相同,获取所述第二类文件名对应的所述权重和所述组件;
[0203]
累加同一所述组件的所述权重,得到所述组件的权重累加值;
[0204]
所述权重累加值最大的所述组件的负责人为所述指派特征的归属人员。
[0205]
本实施例通过上述方案,通过对应用程序崩溃堆栈信息进行特征提取,获得指派特征,保存代码归属规则,能够为指派算法提供数据源;将指派特征与代码归属规则进行匹配,能够找到问题的归属人员。通过以上技术方案,能够对崩溃堆栈治理平台中的问题进行自动指派并分配业务线,为大型app的崩溃堆栈治理工作带来效率提升。
[0206]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0207]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0208]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,控制器,或者网络设备等)执行本发明各个实施例所述的方法。
[0209]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

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

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

相关文献