[发明专利]一种安卓程序崩溃定位方法、存储介质、电子设备及系统有效
申请号: | 201810686833.6 | 申请日: | 2018-06-28 |
公开(公告)号: | CN110659195B | 公开(公告)日: | 2022-09-16 |
发明(设计)人: | 周志刚;张文明;陈少杰 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 武汉智权专利代理事务所(特殊普通合伙) 42225 | 代理人: | 张凯 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序 崩溃 定位 方法 存储 介质 电子设备 系统 | ||
本发明公开了一种安卓程序崩溃定位方法、存储介质、电子设备及系统,涉及信息处理领域,其中方法包括:在程序的每一个函数中构建一子函数,所述子函数用于在其相应的函数开始运行时记录第一事件,在运行结束时记录第二事件。程序崩溃后,判断记录中相应函数是否含有第一事件和第二事件。如果相应函数在记录中含有第一事件和第二事件,则该函数在程序中正常运行。如果相应函数在记录中仅有第一事件而无第二事件,则该函数为程序发生崩溃的位置。本发明能够有效的定位或者协助定位发生崩溃的位置。
技术领域
本发明涉及信息处理领域,具体涉及一种安卓程序崩溃定位方法、存储介质、电子设备及系统。
背景技术
目前,随着智能手机的普及,移动端应用程序的数量和种类也越来越多。同时,随着移动端程序升级和发展,其程序需求实现的功能也越来越多,越来越复杂。
因此,移动端的程序的开发以及其架构的设计也变得越来越复杂。随着技术的不断发展,开发人员带着提供程序的性能和安全性的考虑,从一开始的整个Android应用程序均由JAVA层代码进行开发完成,一直到现在Android程序变成由JAVA层代码和C++层代码相互组合而成开发完成。
这种由JAVA层代码和C++层代码相互组合完成开发的Android程序,主要将消耗性能,调用频繁的功能通过C++来实现,并且最终程序为合成一个SO文件。即,现在的一个Android应用程序是由多个SO和JAVA层的基础代码组合而成。其中SO的功能类似于Android的驱动程序,其所属于系统更底层。
但是当移动端中的程序崩溃或者异常时,会出现崩溃的函数或者调用堆栈无法捕获、以及捕获错误的现象出现,甚至对于Android程序中SO文件加载时,由于其功能的更底层,有些时候捕获不到崩溃的堆栈。进而导致无法分析程序崩溃的原因,从而无法解决崩溃的问题。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种安卓程序崩溃定位方法、存储介质、电子设备及系统,能够有效的定位或者协助定位发生崩溃的位置。
为达到以上目的,本发明采取的技术方案是:
本发明一种安卓程序崩溃定位方法,其特征在于,其包括:
在程序的每一个函数中构建一子函数,所述子函数用于在其相应的函数开始运行时记录第一事件,在运行结束时记录第二事件;
程序崩溃后,判断记录中相应函数是否含有第一事件和第二事件;
如果相应函数在记录中含有第一事件和第二事件,则该函数在程序中正常运行;
如果相应函数在记录中有第一事件而无第二事件,则定位该函数为程序崩溃时运行的函数。
在上述技术方案的基础上,加载SO文件的函数开始运行时记录的第一事件包含有SO文件名称,并在加载SO文件的函数结束后记录的第二事件包含有SO文件名称。
在上述技术方案的基础上,所述子函数为一C++类。
在上述技术方案的基础上,所述C++类内设置有构造函数和析构函数;
所述记录第一事件具体为所述构造函数保存母函数信息和开始标识至预设的日志文件中;
所述记录第二时间具体为所述析构函数在所述子函数析构时触发,并保存母函数信息和结束标识至预设的日志文件。
在上述技术方案的基础上,所述母函数信息包括母函数名称、当前程序状态信息。
在上述技术方案的基础上,所述当前程序状态信息包括当前时间戳、内存占用大小、当前使用参数的数值、当前调用设备状态、程序及各函数运营时长。
在上述技术方案的基础上,第一事件和第二事件记录在不同的日志文件中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810686833.6/2.html,转载请声明来源钻瓜专利网。