一种安卓目标应用崩溃统计方法和装置的制造方法

文档序号:9750696阅读:203来源:国知局
一种安卓目标应用崩溃统计方法和装置的制造方法
【技术领域】
[0001 ]本发明涉及计算机技术领域,特别是涉及一种安卓目标应用崩溃统计方法和一种安卓目标应用崩溃统计装置。
【背景技术】
[0002]随着智能手机的发展,出现了多种支持智能手机的系统。比如Android(安卓)系统。Android是一种以Linux为基础的开放源码操作系统,主要使用于手机等移动终端。Android平台由操作系统、中间件、用户界面和应用软件组成。
[0003]随着Android系统的市场占有率的增加,越来越多的开发者基于Android系统开发APP(Applicat1n,应用),使用户使用Android手机更方便。
[0004]对于开发者而言,需要统计各APP的崩溃情况,以获取发生崩溃的原因,进一步地提高相应APP的性能。
[0005]先有的APP崩溃统计方法是在创建APP时,通过Hook(钩子)thread类(线程类)的UncaughtExcept1n函数,抓取APP的崩溃信息。但是这种方法只能检测出部分APP的崩溃信息,对于自身已经实现了UncaughtExcept1nHandler的APP的异常统计,即在该APP内部就已经存在对异常进行统计的逻辑,利用上述Hook thread类的UncaughtExcept1n函数方法,就无法检测并抓取崩溃?目息。由此可见,在先技术中的APP崩溃统计方法可能无法检测并获取Android系统中某些APP的崩溃信息,适用性不强。

【发明内容】

[0006]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种安卓目标应用崩溃统计方法和相应的一种安卓目标应用崩溃统计装置。
[0007]依据本发明的一个方面,提供了一种安卓目标应用崩溃统计方法,包括:
[0008]监控目标应用的Activity的窗口启用函数是否调用异常捕获函数;
[0009]如果Activity的窗口启用函数调用异常捕获函数,则通过钩子函数钩取所述异常捕获函数;
[0010]通过所述异常捕获函数获取异常消息;
[0011 ]将所述异常消息进行统计。
[0012]优选地,所述将所述异常捕获函数获取的异常消息的步骤之后,还包括:
[0013]判断是否有重复的异常消息;
[0014]如果有重复的异常消息,则对重复的异常消息进行归并。
[0015]优选地,所述判断是否有重复的异常消息的步骤,包括:
[0016]判断是否存在时间戳相同的异常消息;如果存在时间戳相同的异常消息,则进入对重复的异常消息进行归并的步骤。
[0017]优选地,在监控目标应用的Activity的窗口启用函数是否调用异常捕获函数的步骤之前,还包括:
[0018]将所述钩子函数注入所述目标应用的应用进程中。
[0019]优选地,所述将所述钩子函数注入所述目标应用的应用进程中的步骤,包括:
[0020]在系统启动时,将系统自带的初始孵化进程替换为预定的第一孵化进程;
[0021 ] 通过所述第一孵化进程将所述钩子函数注入所述目标应用的应用进程中。
[0022]优选地,所述通过所述第一孵化进程将所述钩子函数注入所述目标应用的应用进程中的步骤,包括:
[0023]通过所述第一孵化进程监控所述目标应用的目标应用进程是否开始启动;
[0024]如果所述目标应用的目标应用进程开始启动,则将所述钩子函数注入所述目标应用的应用进程,完成目标应用进程的启动。
[0025]根据本发明的另一方面,提供了一种安卓目标应用崩溃统计装置,包括:
[0026]监控模块,适于监控目标应用的Activity的窗口启用函数是否调用异常捕获函数;如果Activity的窗口启用函数调用异常捕获函数,则进入钩取模块;
[0027]钩取模块,适于通过钩子函数钩取所述异常捕获函数;
[0028]获取模块,适于通过所述异常捕获函数获取异常消息;
[0029]统计模块,适于将所述异常消息进行统计。
[0030]优选地,所述获取模块之后,还包括:
[0031]判断模块,适于判断是否有重复的异常消息;如果有重复的异常消息,则进入归并模块;
[0032]归并模块,适于对重复的异常消息进行归并。
[0033]优选地,所述判断模块,包括:
[0034]判断子模块,适于判断是否存在时间戳相同的异常消息;如果存在时间戳相同的异常消息,则进入归并模块。
[0035]优选地,在监控模块之前,还包括:
[0036]注入模块,适于将所述钩子函数注入所述目标应用的应用进程中。
[0037]优选地,所述注入模块,包括:
[0038]孵化进程替换子模块,适于在系统启动时,将系统自带的初始孵化进程替换为预定的第一孵化进程;
[0039]注入子模块,适于通过所述第一孵化进程将所述钩子函数注入所述目标应用的应用进程中。
[0040]优选地,所述注入子模块,包括:
[0041 ]启动监控子模块,适于通过所述第一孵化进程监控所述目标应用的目标应用进程是否开始启动;
[0042]钩子函数注入子模块,适于如果所述目标应用的目标应用进程开始启动,则将所述钩子函数注入所述目标应用的应用进程,完成目标应用进程的启动。
[0043]根据本发明的另一方面,提供了一种安卓目标应用崩溃统计设备,包括:
[0044]存储器,加载有多条可执行指令;
[0045]处理器,执行所述多条可执行指令;所述多条可执行指令包括执行以下步骤的方法:
[0046]监控目标应用的Activity的窗口启用函数是否调用异常捕获函数;
[0047]如果Activity的窗口启用函数调用异常捕获函数,则通过钩子函数钩取所述异常捕获函数;
[0048]通过所述异常捕获函数获取异常消息;
[0049]将所述异常消息进行统计。
[0050]根据本发明的安卓目标应用崩溃统计方法可以监控目标应用的Activity的窗口启用函数是否调用异常捕获函数,如果Activity的窗口启用函数调用异常捕获函数,则通过钩子函数钩取所述异常捕获函数,通过所述异常捕获函数获取异常消息,并将所述异常消息进行统计,由此解决了先技术中的应用崩溃统计方法可能无法检测并获取Android系统中某些目标应用的崩溃信息,适用性不强等问题,取得了提高检测并获取Android中目标应用崩溃信息的全面性和适用性的有益效果。
[0051]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0052]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0053]图1示出了根据本发明一个实施例的一种安卓目标应用崩溃统计方法实施例的步骤流程图;
[0054]图2示出了根据本发明一个实施例的一种安卓目标应用崩溃统计方法实施例的步骤流程图;
[0055]图3示出了根据本发明一个实施例的一种安卓目标应用崩溃统计装置实施例的结构框图;
[0056]图4示出了根据本发明一个实施例的一种安卓目标应用崩溃统计装置实施例的结构框图;
[0057]图5示出了根据本发明一个实施例的一种安卓目标应用崩溃统计设备实施例的结构框图。
【具体实施方式】
[0058]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0059]实施例一
[0060]参照图1,示出了根据本发明一个实施例的一种安卓目标应用崩溃统计方法实施例的步骤流程图,具体可以包括如下步骤:
[0061]步骤110,监控目标应用的Activity的窗口启用函数是否调用异常捕获函数;如果Activity的窗口启用函数调用异常捕获函数,则进入步骤120。
[0062]上述的目标应用可以包括在Android系统中运行的需要获取崩溃信息的各应用,如360安全卫士、360安全浏览器等。
[0063]Activity是Android组件中最基本也是最为常见用的四大组件之一,Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。在一个Android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。在实际应用中,一个应用中至少包含一个Activity。
[0064]异常捕获函数,即UncaughtExcept1n函数,是用于获取对应目标应用崩溃的异常消息的函数,在实际应用中,异常消息可以包括导致目标应用崩溃原因、具体在应用程序中的位置等。在本发明实施例中,以Activity为单位,监控目标应用的Activity的窗口启用函数是否调用异常捕获函数。如果目标应用的Activity的窗口启用函数调用异常捕获函数,则可以进入步骤120,而如果目标应用的Activity的窗口启用函数未调用异常捕获函数,则不执行任何步骤。
[0065]在实际应用中,对于一个APP,如果要启动该APP的一个Activity,那么需要先调用系统的Activity启动函数,S卩OnCreate函数,然后执行后续操作。OnCreate函数是一个消息响应函数,是响应WM_CREATE消息的一个函数,而WM_CRE ATE消息是由Cr e a t e函数调用的。OnCreate函数主要做这个Activity启动时一些必要的
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1