[發明專利]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.szxzyx.cn/pat/books/201810392846.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種異常檢測方法、裝置及設備
- 下一篇:一種計算機軟件產品品質管制管理系統





