一种崩溃信息的收集方法、装置、介质和电子设备制造方法及图纸

技术编号:27201107 阅读:31 留言:0更新日期:2021-01-31 12:10
本公开提供了一种崩溃信息的收集方法、装置、介质和电子设备。本公开第一进程在崩溃后复刻生成派生子进程,由第一进程收集和存储崩溃信息,由派生子进程上报第一进程生成的崩溃文件。减少了生成崩溃文件和上报崩溃文件的时间差,保证了上报的及时性。由第一进程的派生子进程上报崩溃文件,避免了其他崩溃进程覆盖崩溃文件,保证了崩溃信息的完整性。保证了崩溃信息的完整性。保证了崩溃信息的完整性。

【技术实现步骤摘要】
一种崩溃信息的收集方法、装置、介质和电子设备


[0001]本公开涉及计算机
,具体而言,涉及一种崩溃信息的收集方法、装置、介质和电子设备。

技术介绍

[0002]当安卓应用发生崩溃后,由于应用的运行环境已经不稳定,因此很多崩溃收集程序都会收集崩溃信息后存储下来,等应用下次启动后再在稳定的环境中把之前收集到的崩溃信息上报到服务器。
[0003]缺点是崩溃上报延迟,开发者不能及时地接收到崩溃信息。并且由于崩溃上报延迟,服务器统计崩溃时间分布时容易遗漏延迟的崩溃信息,从而产生统计偏差。此外,如果应用的崩溃发生在启动阶段,尚未上报上次崩溃信息时,则该启动崩溃的崩溃信息将覆盖上次崩溃信息,导致上次崩溃信息永远不会被再上报。

技术实现思路

[0004]提供该
技术实现思路
部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该
技术实现思路
部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
[0005]本公开的目的在于提供一种崩溃信息的收集方法、装置、介质和电子设备,能够解决上述提到的至少一个技术问题。具体方案如下:
[0006]根据本公开的具体实施方式,第一方面,本公开提供一种崩溃信息的收集方法,包括:
[0007]当通过第一进程监控到应用发生崩溃时,针对所述第一进程复制生成派生子进程,所述第一进程作为所述派生子进程的父进程;
[0008]通过所述第一进程收集应用发生崩溃时产生的崩溃信息,并将所述崩溃信息存储在与派生子进程共享的目标文件中;
[0009]通过所述派生子进程周期性确定所述第一进程是否完成崩溃信息的收集和存储;
[0010]当通过所述派生子进程确定所述第一进程完成崩溃信息的收集和存储时,通过所述派生子进程从所述目标文件中获取崩溃信息并进行上报。
[0011]根据本公开的具体实施方式,第二方面,本公开提供一种崩溃信息的收集装置,包括:
[0012]生成派生子进程单元,用于当通过第一进程监控到应用发生崩溃时,针对所述第一进程复制生成派生子进程,所述第一进程作为所述派生子进程的父进程;
[0013]存储崩溃信息单元,用于通过所述第一进程收集应用发生崩溃时产生的崩溃信息,并将所述崩溃信息存储在与派生子进程共享的目标文件中;
[0014]确定第一进程单元,用于通过所述派生子进程周期性确定所述第一进程是否完成崩溃信息的收集和存储;
[0015]上报崩溃信息单元,用于当通过所述派生子进程确定所述第一进程完成崩溃信息的收集和存储时,通过所述派生子进程从所述目标文件中获取崩溃信息并进行上报。
[0016]根据本公开的具体实施方式,第三方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面任一项所述崩溃信息的收集方法。
[0017]根据本公开的具体实施方式,第四方面,本公开提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如第一方面任一项所述崩溃信息的收集方法。
[0018]本公开实施例的上述方案与现有技术相比,至少具有以下有益效果:
[0019]本公开提供了一种崩溃信息的收集方法、装置、介质和电子设备。本公开第一进程在崩溃后复刻生成派生子进程,由第一进程收集和存储崩溃信息,由派生子进程上报第一进程生成的崩溃文件。减少了生成崩溃文件和上报崩溃文件的时间差,保证了上报的及时性。由第一进程的派生子进程上报崩溃文件,避免了其他崩溃进程覆盖崩溃文件,保证了崩溃信息的完整性。
附图说明
[0020]结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。在附图中:
[0021]图1示出了根据本公开实施例的一种崩溃信息的收集方法的流程图;
[0022]图2示出了根据本公开实施例的一种崩溃信息的收集装置的单元框图;
[0023]图3示出了根据本公开的实施例的电子设备连接结构示意图。
具体实施方式
[0024]下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
[0025]应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
[0026]本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
[0027]需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
[0028]需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域
技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
[0029]本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
[0030]下面结合附图详细说明本公开的可选实施例。
[0031]对本公开提供的第一实施例,即一种崩溃信息的收集方法的实施例,本公开实施例应用于父进程。
[0032]下面结合图1对本公开实施例进行详细说明。
[0033]步骤S101,当通过第一进程监控到应用发生崩溃时,针对所述第一进程复制生成派生子进程,所述第一进程作为所述派生子进程的父进程。
[0034]可选的,第一进程和所述派生子进程均运行在Java环境中。
[0035]例如,在JAVA环境(比如尤尼克斯系统(简称UNIX系统)或利尼克斯系统(简称LINUX系统))中,在初始化阶段设置崩溃处理类;该崩溃处理类通常是自定义的类,该崩溃处理类可以用来收集崩溃信息;当JAVA应用发生崩溃时,JAVA应用自动跳转到该崩溃处理类中。
[0036]派生子进程是第一进程通过复制第一进程的方式生成的进程。例如,在JAVA环境中,存在一个复制函数(即fork函数),第一进程调用fork函数可以生成一个与第一进程完全相同的派生子进程,且两个进程共享内存区域的信息。...

【技术保护点】

【技术特征摘要】
1.一种崩溃信息的收集方法,其特征在于,包括:当通过第一进程监控到应用发生崩溃时,针对所述第一进程复制生成派生子进程,所述第一进程作为所述派生子进程的父进程;通过所述第一进程收集应用发生崩溃时产生的崩溃信息,并将所述崩溃信息存储在与派生子进程共享的目标文件中;通过所述派生子进程周期性确定所述第一进程是否完成崩溃信息的收集和存储;当通过所述派生子进程确定所述第一进程完成崩溃信息的收集和存储时,通过所述派生子进程从所述目标文件中获取崩溃信息并进行上报。2.根据权利要求1所述的收集方法,其特征在于,通过所述第一进程收集应用发生崩溃时产生的崩溃信息,并将所述崩溃信息存储在共享的目标文件中,包括:通过第一进程在监控到应用发生崩溃时,确定崩溃时间并以所述崩溃时间为文件名创建文件,作为在与派生子进程共享的目标文件;通过所述第一进程收集应用发生崩溃时产生的崩溃信息,并将所述崩溃信息存储于所述目标文件中。3.根据权利要求1所述的收集方法,其特征在于,通过所述派生子进程周期性确定所述第一进程是否完成崩溃信息的收集和存储,包括:通过所述派生子进程获取所述第一进程的进程身份信息;通过所述派生子进程周期性查看所述第一进程的进程身份信息是否存在于系统进程列表中;当所述第一进程的进程身份信息不存在于所述系统进程列表中,则确定所述第一进程完成崩溃信息的收集和存储。4.根据权利要求1所述的收集方法,其特征在于,通过所述派生子进程从所述目标文件中获取崩溃信息并进行上报,包括:通过所述派生子进程调用预设函数获取所述目标文件的存储路径;根据所述存储路径定位所述目标文件并获取所述目标文件中的崩溃信息进行上报。5.根据权利要求1所述的收集方法,其特征在于,所述派生子进程运行在Java环境中。6.一种崩溃信息的收集装置,其特征在于,包括:生成派生子进程单元,用于当通过...

【专利技术属性】
技术研发人员:刘洪凯朴英敏
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1