[发明专利]Android系统中Native层崩溃溯源方法、装置、存储介质及终端在审
申请号: | 201810392846.2 | 申请日: | 2018-04-27 |
公开(公告)号: | CN108763060A | 公开(公告)日: | 2018-11-06 |
发明(设计)人: | 卢雄涛 | 申请(专利权)人: | 广州华多网络科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市立方律师事务所 11330 | 代理人: | 刘延喜 |
地址: | 511442 广东省广州市番*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 信号事件 崩溃 调用 应用程序 处理函数 存储介质 调用栈 溯源 终端 应用程序进程 调用栈信息 函数获取 函数接口 软件维护 信息追溯 线程 预置 反射 捕获 追溯 检测 | ||
本发明涉及软件维护领域,具体涉及一种Android系统中Native层崩溃溯源方法、装置、存储介质及终端,所述方法包括:捕获应用程序出现的在Native层崩溃的信号事件,检测所述信号事件是否已被所述应用程序注册;若所述信号事件已被所述应用程序注册,调用应用程序进程预置的该信号事件对应的处理函数,执行所述处理函数:在Native层中调用Java层的函数接口,获取接收到所述信号事件的线程的JNIEnv变量;通过所述JNIEnv变量调用FindClass函数获取各个Java类;反射调用getStackTrace函数,获取所述各个Java类的调用栈信息,得到整个Java层调用栈的全部信息;根据所述整个Java层调用栈的全部信息追溯Native层崩溃产生的原因。本发明解决目前无法很好地追溯Android系统中Native层崩溃的原因的问题。
技术领域
本发明涉及软件维护领域,具体涉及一种Android系统中Native层崩溃溯源方法、装置、存储介质及终端。
背景技术
由于Android设备品牌多、系统版本杂,所以在Android系统中会因为兼容性等问题,造成应用程序的各种崩溃(Crash),而且在这些Crash中,Native层崩溃(Native Crash)一直是Crash里的大头,Native Crash具有上下文不全、出错信息模糊、难以捕捉等特点,比Java Crash更难修复,当应用程序的Crash是发生在Native层的时候,大部分都是很难定位到具体的问题的,因为在很多时候,在这些Crash的信息中,只能看到当前崩溃点的一些有限的信息,很多都是崩溃在系统库中,看不到Java层的相关逻辑或是调用栈等可用信息,所以此类问题的解决,一直都是解决应用程序性能和稳定性中最大的难点。
发明内容
为克服以上技术问题,特别是现有技术无法很好地追溯的Android系统中Native层崩溃的原因问题,特提出以下技术方案:
第一方面,本发明提供了一种Android系统中Native层崩溃溯源方法,包括:
捕获应用程序出现的在Native层崩溃的信号事件,检测所述信号事件是否已被所述应用程序注册;
若所述信号事件已被所述应用程序注册,调用应用程序进程预置的该信号事件对应的处理函数,执行所述处理函数:在Native层中调用Java层的函数接口,获取接收到所述信号事件的线程的JNIEnv变量;通过所述JNIEnv变量调用FindClass函数获取各个Java类;反射调用getStackTrace函数,获取所述各个Java类的调用栈信息,得到整个Java层调用栈的全部信息;
根据所述整个Java层调用栈的全部信息追溯Native层崩溃产生的原因。
进一步的,所述信号事件包括SIGSEGV、SIGABRT、SIGFPE、SIGILL、SIGBUS、SIGSTKFLT,所述应用程序通过调用Sigaction函数对所述信号事件进行注册。
进一步的,所述检测所述信号事件是否已被所述应用程序注册之后,还包括:
若所述信号事件没有被所述应用程序注册,对该信号事件的处理保留系统的默认值或忽略该信号事件。
具体的,所述在Native层中调用Java层的函数接口获取接收到所述信号事件的线程的JNIEnv变量,包括:
在Native层中调用AttachCurrentThread函数获取接收到所述信号事件的当前线程的JNIEnv变量。
进一步的,所述获取整个Java层调用栈的全部信息之后,还包括:
将所述应用程序出现的在Native层崩溃的信号事件及所述整个Java调用栈的全部信息生成dump文件后上报到服务器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州华多网络科技有限公司,未经广州华多网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810392846.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种异常检测方法、装置及设备
- 下一篇:一种计算机软件产品品质管制管理系统