CN110532178A - 一种安卓系统库文件崩溃位置定位方法及装置 - Google Patents
一种安卓系统库文件崩溃位置定位方法及装置 Download PDFInfo
- Publication number
- CN110532178A CN110532178A CN201910734858.3A CN201910734858A CN110532178A CN 110532178 A CN110532178 A CN 110532178A CN 201910734858 A CN201910734858 A CN 201910734858A CN 110532178 A CN110532178 A CN 110532178A
- Authority
- CN
- China
- Prior art keywords
- library file
- library
- file
- android system
- operating abnormally
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012544 monitoring process Methods 0.000 claims abstract description 40
- 230000008439 repair process Effects 0.000 claims description 7
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 claims 1
- 230000015654 memory Effects 0.000 description 8
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Abstract
本发明提供了一种安卓系统库文件崩溃位置定位方法及装置,该方法包括:监测安卓系统中运行的第一库文件是否出现运行异常;如果第一库文件出现运行异常,则判断第一库文件出现运行异常的次数是否达到预设的库切换阈值;如果第一库文件出现运行异常的次数达到库切换阈值,则从目标存储位置读取第二库文件,其中,第二库文件为在第一库文件中添加调试信息后所获得的库文件;利用第二库文件替换第一库文件在安卓系统中运行;监测安卓系统中运行的第二库文件是否出现运行异常;当第二库文件出现运行异常时,获取库文件崩溃信息;将库文件崩溃信息发送给开发人员客户端。本方案能够在不降低安卓系统运行速度的前提下定位库文件的源码崩溃位置。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种安卓系统库文件崩溃位置定位方法及装置。
背景技术
安卓系统采用了很多库文件,比如so文件、bin执行文件等,如果库文件出现运行异常,开发人员需要定位库文件中具体源码的崩溃位置,进而根据定位出的源码崩溃位置对可文件进行修复。
目前,为了能够定位库文件中源码崩溃位置,需要在库文件中加入调试信息,所加入的调试信息可以在库文件出现运行异常时定位源码崩溃位置,并将所定位出的源码崩溃位置记录在异常日志中,进而开发人员根据异常日志便可以确定导致库文件运行异常的具体源码崩溃位置。
针对目前对库文件崩溃位置进行定位的方法,虽然在库文件中加入调试信息可以定位库文件的源码崩溃位置,但是加入调试信息会导致安卓系统的运行速度降低,进而影响用户的正常使用。
发明内容
本发明实施例提供了一种安卓系统库文件崩溃位置定位方法及装置,能够在不降低安卓系统运行速度的前提下定位库文件的源码崩溃位置。
第一方面,本发明实施例提供了一种安卓系统库文件崩溃位置定位方法,包括:
监测安卓系统中运行的第一库文件是否出现运行异常;
如果所述第一库文件出现运行异常,则判断所述第一库文件出现运行异常的次数是否达到预设的库切换阈值;
如果所述第一库文件出现运行异常的次数达到所述库切换阈值,则从目标存储位置读取第二库文件,其中,所述第二库文件为在所述第一库文件中添加调试信息后所获得的库文件;
利用所述第二库文件替换所述第一库文件在所述安卓系统中运行;
监测所述安卓系统中运行的所述第二库文件是否出现运行异常;
当所述第二库文件出现运行异常时,获取库文件崩溃信息,其中,所述库文件崩溃信息包括有利用所述第二库文件中的调试信息定位出的源码崩溃位置;
将所述库文件崩溃信息发送给开发人员客户端。
在第一种可能的实现方式中,结合上述第一方面,在所述将所述库文件崩溃信息发送给开发人员客户端之后,进一步包括:
接收来自所述开发人员客户端的第三库文件,其中,所述第三库文件为开发人员根据所述源码崩溃位置对所述第一库文件进行修复后的库文件;
利用所述第三库文件替换所述第二库文件在所述安卓系统中运行。
在第二种可能的实现方式中,结合上述第一种可能的实现方式,进一步包括:
接收来自所述开发人员客户端的第四库文件,其中,所述第四库文件为在所述第三库文件中添加调试信息后所获得的库文件;
将所述第四库文件存储到所述目标存储位置,并将所述第二库文件从所述目标存储位置删除。
在第三中可能的实现方式中,结合上述第一方面,在所述判断所述第一库文件出现运行异常的次数是否达到预设的库切换阈值之后,进一步包括:
如果所述第一库文件出现运行异常的次数未达到所述库切换阈值,则在对所述安卓系统重启后执行所述监测安卓系统中运行的第一库文件是否出现运行异常。
在第四种可能的实现方式中,结合上述第一方面、第一种可能的实现方式、第二种可能的实现方式和第三种可能的实现方式中的任意一个,所述目标存储位置包括目标设备的本地存储空间或者目标服务器,其中,所述目标设备为运行所述安卓系统的设备,所述目标服务器为可以与所述目标设备进行通信的服务器设备。
第二方面,本发明实施例还提供了一种安卓系统库文件崩溃位置定位装置,包括:
一个运行监测模块,用于监测安卓系统中运行的第一库文件是否出现运行异常;
一个条件判断模块,用于在所述运行监测模块确定所述第一库文件出现运行异常后,判断所述第一库文件出现运行异常的次数是否超过预设的库切换阈值;
一个文件读取模块,用于在所述条件判断模块确定所述第一库文件出现运行异常的次数达到所述库切换阈值后,从目标存储位置读取第二库文件,其中,所述第二库文件为在所述第一库文件中添加调试信息后所获得的库文件;
一个库切换模块,用于利用所述文件读取模块读取到的所述第二库文件替换所述第一库文件在所述安卓系统中运行;
所述运行监测模块,进一步用于监测所述安卓系统中运行的所述第二库文件是否出现运行异常;
一个崩溃定位模块,用于在所述运行监测模块确定所述第二库文件出现运行异常后,获取库文件崩溃信息,其中,所述库文件崩溃信息包括有利用所述第二库文件中的调试信息定位出的源码崩溃位置;
一个信息发送模块,用于将所述崩溃定位模块获取到的所述库文件崩溃信息发送给开发人员客户端。
在第一种可能的实现方式中,结合上述第二方面,该安卓系统库文件崩溃位置定位装置进一步包括:一个文件接收模块;
所述文件接收模块,用于接收来所述开发人员客户端的第三库文件,其中,所述第三库文件为开发人员根据所述源码崩溃位置对所述第一库文件进行修复后的库文件;
所述库切换模块,进一步用于利用所述文件接收模块接收到的所述第三库文件替换所述第二库文件在所述安卓系统中运行。
在第二种可能的实现方式中,结合上述第一种可能的实现方式,该安卓系统库文件崩溃位置定位装置进一步包括:一个库更新模块;
所述文件接收模块,进一步用于接收来自所述开发人员客户端的所述第四库文件,其中,所述第四库文件为在所述第三库文件中添加调试信息后所获得的库文件;
所述库更新模块,用于将所述文件接收模块接收到的所述第四库文件存储到所述目标存储地址,并将所述第二库文件从所述目标存储位置删除。
在第三中可能的实现方式中,结合上述第二方面,所述运行监测模块,进一步用于在所述条件判断模块确定所述第一库文件出现运行异常的次数未达到所述库切换阈值后,在对所述安卓系统重启后执行所述监测安卓系统中运行的第一库文件是否出现运行异常。
在第四种可能的实现方式中,结合上述第二方面、第一种可能的实现方式、第二种可能的实现方式和第三种可能的实现方式中的任意一个,所述文件读取模块,用于从目标设备的本地或者目标服务器读取所述第二库文件,其中,所述目标设备为运行所述安卓系统的设备,所述目标服务器为可以与所述目标设备进行通信的服务器设备。
由上述技术方案可知,当监测到第一库文件出现运行异常后,判断第一库文件出现运行异常的次数是否达到预设的库切换阈值,如果第一库文件出现运行异常的次数达到库切换阈值说明是由于第一库文件中的源码崩溃导致第一库文件出现运行异常,此时从目标存储位置读取第二库文件,而第二库文件是在第一库文件中添加调试信息后所获得的库文件,之后利用第二库文件替换第一库文件在安卓系统中运行,当第二库文件出现运行异常时,可以获取利用第二库文件中调试信息定位出的源码崩溃位置,进而将包括有源码崩溃位置的崩溃信息发送给开发人员客户端。由此可见,正常安卓系统中所运行的库文件不包括调试信息,当库文件出现运行异常达到一定次数后,利用包括调试信息的库文件替换出现运行异常的库文件中安卓系统中运行,进而包括调试信息的库文件出现运行异常后可以定位源码崩溃位置,实现库文件崩溃位置的定位,由于正常情况下安卓系统中所运行的库文件不包括调试信息,所以不会降低安卓系统的运行速度,因此可以在不降低安卓系统运行速度的前提下定位库文件的源码崩溃位置。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种安卓系统库文件崩溃位置定位方法的流程图;
图2是本发明一个实施例提供的一种安卓系统中库文件替换方法的流程图;
图3是本发明一个实施例提供的一种目标存储位置库文件更新方法的流程图;
图4是本发明一个实施例提供的另一种安卓系统库文件崩溃位置定位方法的流程图;
图5是本发明一个实施例提供的一种安卓系统库文件崩溃位置定位装置所在设备的示意图;
图6是本发明一个实施例提供的一种安卓系统库文件崩溃位置定位装置的示意图;
图7是本发明一个实施例提供的另一种安卓系统库文件崩溃位置定位装置的示意图;
图8是本发明一个实施例提供的又一种安卓系统库文件崩溃位置定位装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种安卓系统库文件崩溃位置定位方法,该方法可以包括以下步骤:
步骤101:监测安卓系统中运行的第一库文件是否出现运行异常;
步骤102:如果第一库文件出现运行异常,则判断第一库文件出现运行异常的次数是否达到预设的库切换阈值;
步骤103:如果第一库文件出现运行异常的次数达到库切换阈值,则从目标存储位置读取第二库文件,其中,第二库文件为在第一库文件中添加调试信息后所获得的库文件;
步骤104:利用第二库文件替换第一库文件在安卓系统中运行;
步骤105:监测安卓系统中运行的第二库文件是否出现运行异常;
步骤106:当第二库文件出现运行异常时,获取库文件崩溃信息,其中,库文件崩溃信息包括有利用第二库文件中的调试信息定位出的源码崩溃位置;
步骤107:将库文件崩溃信息发送给开发人员客户端。
本发明实施例提供的安卓系统库文件崩溃位置定位方法,当监测到第一库文件出现运行异常后,判断第一库文件出现运行异常的次数是否达到预设的库切换阈值,如果第一库文件出现运行异常的次数达到库切换阈值说明是由于第一库文件中的源码崩溃导致第一库文件出现运行异常,此时从目标存储位置读取第二库文件,而第二库文件是在第一库文件中添加调试信息后所获得的库文件,之后利用第二库文件替换第一库文件在安卓系统中运行,当第二库文件出现运行异常时,可以获取利用第二库文件中调试信息定位出的源码崩溃位置,进而将包括有源码崩溃位置的崩溃信息发送给开发人员客户端。由此可见,正常安卓系统中所运行的库文件不包括调试信息,当库文件出现运行异常达到一定次数后,利用包括调试信息的库文件替换出现运行异常的库文件中安卓系统中运行,进而包括调试信息的库文件出现运行异常后可以定位源码崩溃位置,实现库文件崩溃位置的定位,由于正常情况下安卓系统中所运行的库文件不包括调试信息,所以不会降低安卓系统的运行速度,因此可以在不降低安卓系统运行速度的前提下定位库文件的源码崩溃位置。
可选地,在图1所示安卓系统库文件崩溃位置定位方法的基础上,步骤 107将库文件崩溃信息发送给开发人员客户端之后,开发人员可以根据库文件崩溃信息所包括的源码崩溃位置对第一库文件进行修复,进而利用修复之后的库文件替换第二库文件在安卓系统中运行。如图2所示,替换运行于安卓系统中的第二库文件具体可以通过如下方式实现:
步骤201:接收来自开发人员客户端的第三库文件,其中,第三库文件为开发人员根据源码崩溃位置对第一库文件进行修复后的库文件;
步骤202:利用第三库文件替换第二库文件在安卓系统中运行。
在本发明实施例中,在将库文件崩溃信息发送给开发人员客户端后,开发人员可以查看库文件崩溃信息所包括的源码崩溃位置,并可以确定发生崩溃的库文件,之后开发人员可以根据源码崩溃位置对第一库文件中导致崩溃的源码进行修复,在修复第一库文件的源码问题后获得第三库文件,之后开发人员可以通过开发人员客户端发送第三库文件。
在本发明实施例中,由于第三库文件是开发人员通过对第一库文件进行修复而获得的,因此第三库文件不包括此前导致第一库文件运行异常的问题源码,且第三库文件也不包括调试信息,因此及时利用第三库文件替换第二库文件在安卓系统中运行,一方面可以避免第三库文件由于相同的问题源码而出现运行异常,保证安卓系统的正常运行,另一方面可以停止包括有调试信息的第二库文件中安卓系统中运行,保证安卓系统的运行速度。
在本发明实施例中,库文件崩溃信息可以直接发送到开发人员客户端,也可以先将崩溃信息发送至服务器,由服务器将库文件崩溃信息转发给开发人员客户端。相对应地,可以直接从开发人员客户端接收第三库文件,也可以由开发人员客户端将第三库文件发送给服务器,进而接收服务器转发的第三库文件。
可选地,在图2所示第二库文件替换方法的基础上,开发人员在根据源码崩溃位置对第一库文件进行修复而获得第三库文件之后,开发人员可以进一步在第三库文件中添加调试信息而获得第四库文件,进而可以利用第四库文件更新目标存储位置中的第二库文件。如图3所示,更新目标存储位置中第二库文件具体可以通过如下方式实现:
步骤301:接收来自开发人员客户端的第四库文件,其中,第四库文件为在第三库文件中添加调试信息后所获得的库文件;
步骤302:将第四库文件存储到目标存储位置,并将第二库文件从目标存储位置删除。
在本发明实施例中,利用第三库文件替换第二库文件在安卓系统中运行后,将第四库文件存储到目标存储位置,并将目标存储位置此前存储的第二库文件删除,之后如果第三库文件出现运行异常,则可以从目标存储位置读取第四库文件替换第三库文件在安卓系统中运行,由于第四库文件中包括有调试信息,从而可以定位导致第三库文件出现运行异常的源码崩溃位置,以便于开发人员对第三库文件进行修复。
在本发明实施例中,针对运行在安卓系统中的每一个不包括调试信息的库文件,在目标存储位置存储有与一个该库文件相对应的包括调试信息的库文件,进而当运行于安卓系统中的库文件发生运行异常后,可以利用目标存储位置中相对应的库文件来定位源码崩溃位置,从而可以持续定位导致库文件运行异常的源码崩溃位置,实现库文件的不断优化。
可选地,在图1所示安卓系统库文件崩溃位置定位方法的基础上,步骤 102判断第一库文件出现运行异常的次数是否达到预设的库切换阈值后,如果第一库文件出现运行异常的次数没有达到库切换阈值,则对安卓系统进行重启,并对第一库文件出现运行异常的次数加1,之后继续监测第一库文件是否出现运行异常。
在本发明实施例中,预先定义有库切换阈值,当第一库文件出现运行异常的次数达到库切换阈值后,利用第二库文件替换第一库文件在安卓系统中运行,以定位第一库文件中源码的崩溃位置。除了库文件的源码错误会导致库文件运行异常外,其他一些偶然因素也可能导致库文件运行异常,但如果库文件频繁出现运行异常则可以确定库文件的源码存在问题,因此,在第一库文件出现运行异常的次数达到库切换阈值后,在利用第二库文件替换第一库文件中安卓系统中运行,这样可以避免非必要条件下利用第二库文件替换第一库文件影响安卓系统的运行速度。
在本发明实施例中,如果第一库文件由于偶然因素而出现运行异常,通过重启安卓系统便可以解决第一库文件运行异常的情况,而入股第一库文件是由于源码问题而出现运行异常,则重启安卓系统后第一库文件会再次出现运行异常,此时便会累加第一库文件出现运行异常的次数,最终会触发利用第二库文件替换第一库文件在安卓系统中运行的操作,在保证能够实现定位库文件的源码崩溃位置的同时还能够尽可能保证安卓系统的运行速度。
可选地,在上述各个实施例所提供的安卓系统库文件崩溃位置定位方法的基础上,目标存储位置可以是目标设备的本地存储空间,也可以是目标服务器,其中,目标设备是运行安卓系统的设备,目标服务器是可以与目标设备进行通信的服务器设备。
在本发明实施例中,目标存储位置可以设置在用于运行安卓系统的目标设备的本地存储空间,也可以设置在可以与目标设备进行通信的目标服务器,从而可以满足不同用户的个性化需求,提升该库文件崩溃位置定位方法的适用性。
在本发明实施例中,当目标存储位置设置在目标设备的本地存储空间时,目标设备可以直接从目标存储位置读取包括有调试信息的库文件,也可以直接将接收到的包括有调试信息的库文件存储到目标存储位置。当目标存储位置设置在目标服务器上,目标设备可以向目标服务器发送文件获取请求,以请求目标服务器下发存储到目标存储位置的库文件,同时目标设备也可以将接收到的包括有调试信息的库文件发送给目标服务器,以将包括有目标调试信息的库文件存储到目标存储位置。
在本发明实施例中,目标设备可以为运行有安卓系统的各种设备,比如,运行安卓系统的手机、运行安卓系统的智能冰箱、运行安卓系统的智能空调、运行安卓系统的手表、运行安卓系统的车机等。
需要说明的是,在安卓系统启动后,可以分别对运行在安卓系统中的每一个库文件进行监测,进而针对每一个库文件执行本发明实施例所提供的文件崩溃位置定位方法,且针对各个库文件执行该方法时不同库文件之间互不影响。
下面结合上述各个实施例所提供的安卓系统库文件崩溃位置定位方法,对本发明实施例所提供的安卓系统库文件崩溃位置定位方法作进一步详细说明,如图4所示,该方法可以包括如下步骤:
步骤401:监测安卓系统中运行的目标库文件是否出现运行异常,如果是,执行步骤402,否则执行步骤401。
在本发明实施例中,安卓系统启动后,针对运行在安卓系统中的每一个目标库文件,实时监测该目标库文件是否出现运行异常,如果监测到该目标库文件出现运行异常,则执行步骤402,如果未监测到该目标库文件出现运行异常,则执行步骤401继续对该目标库文件的运行状态进行监测。
步骤402:判断目标库文件是否包括有调试信息,如果是,执行步骤403,否则执行步骤408。
在本发明实施例中,在确定目标库文件出现运行异常后,进一步判断目标库文件是否包括有调试信息,即判断目标库文件是否为第二库文件。如果目标库文件包括有调试信息,则可以获取利用调试信息定位出的源码崩溃位置,相应地执行步骤403。如果目标库文件不包括调试信息,则需要进一步判断是否需要对目标库文件进行源码崩溃位置定位,相应地执行步骤408。
步骤403:获取包括有源码崩溃位置的库文件崩溃信息。
在本发明实施例中,当目标库文件中包括有调试信息时,及目标库文件为第二库文件时,目标库文件出现运行异常时调试信息会定位源码崩溃位置,进而可以获取到调试信息定位出的源码崩溃位置,并生成包括有源码崩溃位置的库文件崩溃信息。
步骤404:将库文件崩溃信息发送给开发人员客户端。
在本发明实施例中,在获取到包括有源码崩溃位置的库文件崩溃信息后,将库文件崩溃信息发送给开发人员客户端。开发人员根据开发人员客户端所展示的库文件崩溃信息,可以确定具体出现运行异常的第一库文件,并可以根据源码崩溃位置对第一库文件进行修复而获得第三库文件,同时还可以在第三库文件中添加调试信息获得第四库文件。
步骤405:接收来自开发人员客户端的第三库文件和第四库文件。
在本发明实施例中,在将库文件崩溃信息发送给开发人员客户端之后,可以等待接收来自开发人员客户端的第三库文件和第四库文件。其中,第四库文件为在第三库文件中添加调试信息后而获得的库文件。
步骤406:利用第三库文件替换目标库文件在安卓系统中运行。
在本发明实施例中,在获取到经开发人员修复而获得的第三库文件后,利用梯三库文件替换目标库文件(第二库文件)在安卓系统中运行。
步骤407:将第四库文件存储到目标存储位置,并将第二库文件从目标存储位置删除,执行步骤401。
在本发明实施例中,将接收到的包括有调试信息的第四库文件存储到目标存储位置,并将此前存储在目标存储位置中的目标库文件(第二库文件) 删除,之后返回执行步骤401,开始监测第三库文件是否出现运行异常。
步骤408:判断目标库文件出现运行异常的次数是否达到库切换阈值,如果是,执行步骤409,否则执行步骤410。
在本发明实施例中,在目标库文件中包括调试信息时,目标库文件为第一库文件。目标库文件每出现一次运行异常,会对其所对应的运行异常次数加1,每次对运行异常次数加1后判断运行异常次数是否达到预先设定的库切换阈值。如果运行异常次数达到库切换阈值,说明可能是由于源码错误导致目标库文件频繁出现运行异常,相应地执行步骤409。如果运行异常次数未达到库切换阈值,则可能是由于偶然因素导致目标库文件出现运行异常,相应地执行步骤410。
在本发明实施例中,库切换阈值可以根据相应库文件源码的行数来确定,库文件源码的行数越多则库切换阈值越大,比如库切换阈值可以为3。
步骤409:利用第二库文件替换目标库文件在安卓系统中运行,并执行步骤401。
在本发明实施例中,在确定目标库文件(第一库文件)出现运行异常的次数到达库切换阈值后,从目标存储位置读取与目标库文件(第一库文件) 相对应的第二库文件,第二库文件为在第一库文件中添加调试信息而获得的库文件,之后返回执行步骤401,开始监测第二库文件是否出现运行异常,以在第二库文件出现运行异常时对源码崩溃位置进行定位。
步骤410:对安卓系统进行重启,并执行步骤401。
在本发明实施例中,当确定目标库文件(第一库文件)出现运行异常的次数未到达库切换阈值后,对安卓系统进行重新启动,并返回执行步骤401,继续监测目标库文件(第一库文件)是否出现运行异常。
如图5、图6所示,本发明实施例提供了一种安卓系统库文件崩溃位置定位装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图5所示,为本发明实施例提供的安卓系统库文件崩溃位置定位装置所在设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图6所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU 将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的安卓系统库文件崩溃位置定位装置,包括:
一个运行监测模块601,用于监测安卓系统中运行的第一库文件是否出现运行异常;
一个条件判断模块602,用于在运行监测模块601确定第一库文件出现运行异常后,判断第一库文件出现运行异常的次数是否超过预设的库切换阈值;
一个文件读取模块603,用于在条件判断模块602确定第一库文件出现运行异常的次数达到库切换阈值后,从目标存储位置读取第二库文件,其中,第二库文件为在第一库文件中添加调试信息后所获得的库文件;
一个库切换模块604,用于利用文件读取模块603读取到的第二库文件替换第一库文件在安卓系统中运行;
运行监测模块601,进一步用于监测安卓系统中运行的第二库文件是否出现运行异常;
一个崩溃定位模块605,用于在运行监测模块601确定第二库文件出现运行异常后,获取库文件崩溃信息,其中,库文件崩溃信息包括有利用第二库文件中的调试信息定位出的源码崩溃位置;
一个信息发送模块606,用于将崩溃定位模块605获取到的库文件崩溃信息发送给开发人员客户端。
在本发明实施例中,运行监测模块601可用于执行上述方法实施例中的步骤101和步骤105,条件判断模块602可用于执行上述方法实施例中的步骤102,文件读取模块603可用于执行上述方法实施例中的步骤103,库切换模块604可用于执行上述方法实施例中的步骤104,崩溃定位模块605可用于执行上述方法实施例中的步骤106,信息发送模块606可用于执行上述方法实施例中的步骤107。
可选地,在图6所示安卓系统库文件崩溃位置定位装置的基础上,如图 7所示,该安卓系统库文件崩溃位置定位装置进一步包括:一个文件接收模块607;
文件接收模块607,用于接收来开发人员客户端的第三库文件,其中,第三库文件为开发人员根据源码崩溃位置对第一库文件进行修复后的库文件;
库切换模块604,进一步用于利用文件接收模块607接收到的第三库文件替换第二库文件在安卓系统中运行。
在本发明实施例中,文件接收模块607可用于执行上述方法实施例中的步骤201,库切换模块604可用于执行上述方法实施例中的步骤202。
可选地,在图7所示安卓系统库文件崩溃位置定位装置的基础上,如图 8所示,该安卓系统库文件崩溃位置定位装置进一步包括:一个库更新模块 608;
文件接收模块607,进一步用于接收来自开发人员客户端的第四库文件,其中,第四库文件为在第三库文件中添加调试信息后所获得的库文件;
库更新模块608,用于将文件接收模块607接收到的第四库文件存储到目标存储地址,并将第二库文件从目标存储位置删除。
在本发明实施例中,文件接收模块607可用于执行上述方法实施例中的步骤301,库更新模块608可用于执行上述方法实施例中的步骤302。
可选地,在图6所示安卓系统库文件崩溃位置定位装置的基础上,
运行监测模块601,进一步用于在条件判断模块602确定第一库文件出现运行异常的次数未达到库切换阈值后,在对安卓系统重启后执行监测安卓系统中运行的第一库文件是否出现运行异常。
可选地,在图6至图8中任一附图所示安卓系统库文件崩溃位置定位装置的基础上,
文件读取模块603,用于从目标设备的本地或者目标服务器读取第二库文件,其中,目标设备为运行安卓系统的设备,目标服务器为可以与目标设备进行通信的服务器设备。
需要说明的是,上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例还提供了一种可读介质,所述可读介质上存储有执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行上述各个实施例提供的安卓系统库文件崩溃位置定位方法。
本发明实施例还提供了一种存储控制器,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述各个实施例提供的安卓系统库文件崩溃位置定位方法。
综上所述,本发明各个实施例提供的安卓系统库文件崩溃位置定位方法及装置,至少具有如下有益效果:
1、在本发明实施例中,当监测到第一库文件出现运行异常后,判断第一库文件出现运行异常的次数是否达到预设的库切换阈值,如果第一库文件出现运行异常的次数达到库切换阈值说明是由于第一库文件中的源码崩溃导致第一库文件出现运行异常,此时从目标存储位置读取第二库文件,而第二库文件是在第一库文件中添加调试信息后所获得的库文件,之后利用第二库文件替换第一库文件在安卓系统中运行,当第二库文件出现运行异常时,可以获取利用第二库文件中调试信息定位出的源码崩溃位置,进而将包括有源码崩溃位置的崩溃信息发送给开发人员客户端。由此可见,正常安卓系统中所运行的库文件不包括调试信息,当库文件出现运行异常达到一定次数后,利用包括调试信息的库文件替换出现运行异常的库文件中安卓系统中运行,进而包括调试信息的库文件出现运行异常后可以定位源码崩溃位置,实现库文件崩溃位置的定位,由于正常情况下安卓系统中所运行的库文件不包括调试信息,所以不会降低安卓系统的运行速度,因此可以在不降低安卓系统运行速度的前提下定位库文件的源码崩溃位置。
2、在本发明实施例中,由于第三库文件是开发人员通过对第一库文件进行修复而获得的,因此第三库文件不包括此前导致第一库文件运行异常的问题源码,且第三库文件也不包括调试信息,因此及时利用第三库文件替换第二库文件在安卓系统中运行,一方面可以避免第三库文件由于相同的问题源码而出现运行异常,保证安卓系统的正常运行,另一方面可以停止包括有调试信息的第二库文件中安卓系统中运行,保证安卓系统的运行速度。
3、在本发明实施例中,针对运行在安卓系统中的每一个不包括调试信息的库文件,在目标存储位置存储有与一个该库文件相对应的包括调试信息的库文件,进而当运行于安卓系统中的库文件发生运行异常后,可以利用目标存储位置中相对应的库文件来定位源码崩溃位置,从而可以持续定位导致库文件运行异常的源码崩溃位置,实现库文件的不断优化。
4、在本发明实施例中,预先定义有库切换阈值,当第一库文件出现运行异常的次数达到库切换阈值后,利用第二库文件替换第一库文件在安卓系统中运行,以定位第一库文件中源码的崩溃位置。除了库文件的源码错误会导致库文件运行异常外,其他一些偶然因素也可能导致库文件运行异常,但如果库文件频繁出现运行异常则可以确定库文件的源码存在问题,因此,在第一库文件出现运行异常的次数达到库切换阈值后,在利用第二库文件替换第一库文件中安卓系统中运行,这样可以避免非必要条件下利用第二库文件替换第一库文件影响安卓系统的运行速度。
5、在本发明实施例中,如果第一库文件由于偶然因素而出现运行异常,通过重启安卓系统便可以解决第一库文件运行异常的情况,而入股第一库文件是由于源码问题而出现运行异常,则重启安卓系统后第一库文件会再次出现运行异常,此时便会累加第一库文件出现运行异常的次数,最终会触发利用第二库文件替换第一库文件在安卓系统中运行的操作,在保证能够实现定位库文件的源码崩溃位置的同时还能够尽可能保证安卓系统的运行速度。
6、在本发明实施例中,目标存储位置可以设置在用于运行安卓系统的目标设备的本地存储空间,也可以设置在可以与目标设备进行通信的目标服务器,从而可以满足不同用户的个性化需求,提升该库文件崩溃位置定位方法的适用性。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种安卓系统库文件崩溃位置定位方法,其特征在于,包括:
监测安卓系统中运行的第一库文件是否出现运行异常;
如果所述第一库文件出现运行异常,则判断所述第一库文件出现运行异常的次数是否达到预设的库切换阈值;
如果所述第一库文件出现运行异常的次数达到所述库切换阈值,则从目标存储位置读取第二库文件,其中,所述第二库文件为在所述第一库文件中添加调试信息后所获得的库文件;
利用所述第二库文件替换所述第一库文件在所述安卓系统中运行;
监测所述安卓系统中运行的所述第二库文件是否出现运行异常;
当所述第二库文件出现运行异常时,获取库文件崩溃信息,其中,所述库文件崩溃信息包括有利用所述第二库文件中的调试信息定位出的源码崩溃位置;
将所述库文件崩溃信息发送给开发人员客户端。
2.根据权利要求1所述的方法,其特征在于,在所述将所述库文件崩溃信息发送给开发人员客户端之后,进一步包括:
接收来自所述开发人员客户端的第三库文件,其中,所述第三库文件为开发人员根据所述源码崩溃位置对所述第一库文件进行修复后的库文件;
利用所述第三库文件替换所述第二库文件在所述安卓系统中运行。
3.根据权利要求2所述的方法,其特征在于,进一步包括:
接收来自所述开发人员客户端的第四库文件,其中,所述第四库文件为在所述第三库文件中添加调试信息后所获得的库文件;
将所述第四库文件存储到所述目标存储位置,并将所述第二库文件从所述目标存储位置删除。
4.根据权利要求1所述的方法,其特征在于,在所述判断所述第一库文件出现运行异常的次数是否达到预设的库切换阈值之后,进一步包括:
如果所述第一库文件出现运行异常的次数未达到所述库切换阈值,则在对所述安卓系统重启后执行所述监测安卓系统中运行的第一库文件是否出现运行异常。
5.根据权利要求1至4中任一所述的方法,其特征在于,
所述目标存储位置包括:目标设备的本地存储空间或者目标服务器,其中,所述目标设备为运行所述安卓系统的设备,所述目标服务器为可以与所述目标设备进行通信的服务器设备。
6.一种安卓系统库文件崩溃位置定位装置,其特征在于,包括:
一个运行监测模块,用于监测安卓系统中运行的第一库文件是否出现运行异常;
一个条件判断模块,用于在所述运行监测模块确定所述第一库文件出现运行异常后,判断所述第一库文件出现运行异常的次数是否超过预设的库切换阈值;
一个文件读取模块,用于在所述条件判断模块确定所述第一库文件出现运行异常的次数达到所述库切换阈值后,从目标存储位置读取第二库文件,其中,所述第二库文件为在所述第一库文件中添加调试信息后所获得的库文件;
一个库切换模块,用于利用所述文件读取模块读取到的所述第二库文件替换所述第一库文件在所述安卓系统中运行;
所述运行监测模块,进一步用于监测所述安卓系统中运行的所述第二库文件是否出现运行异常;
一个崩溃定位模块,用于在所述运行监测模块确定所述第二库文件出现运行异常后,获取库文件崩溃信息,其中,所述库文件崩溃信息包括有利用所述第二库文件中的调试信息定位出的源码崩溃位置;
一个信息发送模块,用于将所述崩溃定位模块获取到的所述库文件崩溃信息发送给开发人员客户端。
7.根据权利要求6所述的装置,其特征在于,进一步包括:一个文件接收模块;
所述文件接收模块,用于接收来所述开发人员客户端的第三库文件,其中,所述第三库文件为开发人员根据所述源码崩溃位置对所述第一库文件进行修复后的库文件;
所述库切换模块,进一步用于利用所述文件接收模块接收到的所述第三库文件替换所述第二库文件在所述安卓系统中运行。
8.根据权利要求7所述的装置,其特征在于,进一步包括:一个库更新模块;
所述文件接收模块,进一步用于接收来自所述开发人员客户端的所述第四库文件,其中,所述第四库文件为在所述第三库文件中添加调试信息后所获得的库文件;
所述库更新模块,用于将所述文件接收模块接收到的所述第四库文件存储到所述目标存储地址,并将所述第二库文件从所述目标存储位置删除。
9.根据权利要求6所述的装置,其特征在于,
所述运行监测模块,进一步用于在所述条件判断模块确定所述第一库文件出现运行异常的次数未达到所述库切换阈值后,在对所述安卓系统重启后执行所述监测安卓系统中运行的第一库文件是否出现运行异常。
10.根据权利要求6至9中任一所述的装置,其特征在于,
所述文件读取模块,用于从目标设备的本地或者目标服务器读取所述第二库文件,其中,所述目标设备为运行所述安卓系统的设备,所述目标服务器为可以与所述目标设备进行通信的服务器设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910734858.3A CN110532178A (zh) | 2019-08-09 | 2019-08-09 | 一种安卓系统库文件崩溃位置定位方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910734858.3A CN110532178A (zh) | 2019-08-09 | 2019-08-09 | 一种安卓系统库文件崩溃位置定位方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110532178A true CN110532178A (zh) | 2019-12-03 |
Family
ID=68662266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910734858.3A Pending CN110532178A (zh) | 2019-08-09 | 2019-08-09 | 一种安卓系统库文件崩溃位置定位方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110532178A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360347A (zh) * | 2021-06-30 | 2021-09-07 | 南昌华勤电子科技有限公司 | 一种服务器及其控制方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1704908A (zh) * | 2004-05-26 | 2005-12-07 | 华为技术有限公司 | 定位程序异常的方法 |
US9104797B1 (en) * | 2013-03-21 | 2015-08-11 | Intuit Inc. | Efficient cloud-based annotation of crash reports |
CN105138453A (zh) * | 2015-08-12 | 2015-12-09 | 杭州数梦工场科技有限公司 | 一种程序调试方法和装置 |
US9529662B1 (en) * | 2015-07-31 | 2016-12-27 | Netapp, Inc. | Dynamic rule-based automatic crash dump analyzer |
CN107436777A (zh) * | 2016-05-27 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 移动终端、应用程序崩溃处理方法及装置 |
CN109213667A (zh) * | 2018-09-17 | 2019-01-15 | 广东小天才科技有限公司 | 一种Android系统的异常处理方法及电子设备 |
CN109284217A (zh) * | 2018-09-28 | 2019-01-29 | 平安科技(深圳)有限公司 | 应用程序异常处理方法、装置、电子设备及存储介质 |
CN109582486A (zh) * | 2018-11-20 | 2019-04-05 | 厦门科灿信息技术有限公司 | 一种看门狗监测方法、系统及设备和存储介质 |
CN109669798A (zh) * | 2018-12-25 | 2019-04-23 | 北京金山安全软件有限公司 | 崩溃分析方法、装置、电子设备,及存储介质 |
CN109739824A (zh) * | 2018-12-28 | 2019-05-10 | 斑马网络技术有限公司 | 日志获取方法及设备 |
-
2019
- 2019-08-09 CN CN201910734858.3A patent/CN110532178A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1704908A (zh) * | 2004-05-26 | 2005-12-07 | 华为技术有限公司 | 定位程序异常的方法 |
US9104797B1 (en) * | 2013-03-21 | 2015-08-11 | Intuit Inc. | Efficient cloud-based annotation of crash reports |
US9529662B1 (en) * | 2015-07-31 | 2016-12-27 | Netapp, Inc. | Dynamic rule-based automatic crash dump analyzer |
CN105138453A (zh) * | 2015-08-12 | 2015-12-09 | 杭州数梦工场科技有限公司 | 一种程序调试方法和装置 |
CN107436777A (zh) * | 2016-05-27 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 移动终端、应用程序崩溃处理方法及装置 |
CN109213667A (zh) * | 2018-09-17 | 2019-01-15 | 广东小天才科技有限公司 | 一种Android系统的异常处理方法及电子设备 |
CN109284217A (zh) * | 2018-09-28 | 2019-01-29 | 平安科技(深圳)有限公司 | 应用程序异常处理方法、装置、电子设备及存储介质 |
CN109582486A (zh) * | 2018-11-20 | 2019-04-05 | 厦门科灿信息技术有限公司 | 一种看门狗监测方法、系统及设备和存储介质 |
CN109669798A (zh) * | 2018-12-25 | 2019-04-23 | 北京金山安全软件有限公司 | 崩溃分析方法、装置、电子设备,及存储介质 |
CN109739824A (zh) * | 2018-12-28 | 2019-05-10 | 斑马网络技术有限公司 | 日志获取方法及设备 |
Non-Patent Citations (2)
Title |
---|
吴金秀: "Java语言中异常的研究", 《软件导刊》 * |
彭闻宇等: "Linux应用程序调试技术的研究", 《微计算机信息》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360347A (zh) * | 2021-06-30 | 2021-09-07 | 南昌华勤电子科技有限公司 | 一种服务器及其控制方法 |
CN113360347B (zh) * | 2021-06-30 | 2023-08-25 | 南昌华勤电子科技有限公司 | 一种服务器及其控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105912356B (zh) | 一种支持版本回退的光模块固件程序在线升级方法 | |
US8893107B2 (en) | Information processing apparatus, information processing method, and information processing program for updating a data set | |
CN106254100A (zh) | 一种数据容灾方法、装置和系统 | |
CN110347414A (zh) | 固件更新方法、装置、设备及计算机可读存储介质 | |
CN105930236A (zh) | 一种基于BMS Bootloader升级的应用程序版本回退方法 | |
CN103842968B (zh) | 一种内存数据的迁移方法、计算机和装置 | |
CN102214113B (zh) | 一种操作系统升级方法、装置及终端 | |
CN111045901A (zh) | 容器的监控方法、装置、存储介质和电子设备 | |
CN103827834B (zh) | 一种内存数据的迁移方法、计算机和装置 | |
CN103902399B (zh) | 软件系统修复处理方法及装置 | |
CN102023908A (zh) | 一种引导程序备份方法及装置 | |
CN100583782C (zh) | 软件升级方法和装置 | |
CN106777126B (zh) | 一种支持异构时序数据库的数据在线迁移方法 | |
CN110469956A (zh) | 空调器的故障查询方法、装置和可读存储介质 | |
CN106033322A (zh) | 一种数据存储方法及装置 | |
CN112199240B (zh) | 一种节点故障时进行节点切换的方法及相关设备 | |
CN110532178A (zh) | 一种安卓系统库文件崩溃位置定位方法及装置 | |
CN113612814B (zh) | 一种会话信息的筛选方法、装置、终端及存储介质 | |
CN110502408A (zh) | 一种存储系统指示灯的显示方法、装置、设备及介质 | |
CN113626280A (zh) | 集群状态控制方法、装置、电子设备及可读存储介质 | |
CN105335166A (zh) | 嵌入式设备的系统及嵌入式设备远程升级的方法 | |
KR20030013265A (ko) | 계산기 자원 관리 장치, 방법 및 프로그램 | |
CN107193603A (zh) | 一种智能家电的升级方法及装置 | |
CN101299200A (zh) | 一种处理器系统、设备及故障处理方法 | |
CN102402447A (zh) | 设备启动方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191203 |
|
RJ01 | Rejection of invention patent application after publication |