[發(fā)明專利]用于檢測應(yīng)用程序的方法和裝置有效
| 申請?zhí)枺?/td> | 201910248655.3 | 申請日: | 2019-03-29 |
| 公開(公告)號: | CN109960659B | 公開(公告)日: | 2022-11-01 |
| 發(fā)明(設(shè)計(jì))人: | 尹健剛;李明德;宋曄 | 申請(專利權(quán))人: | 阿波羅智聯(lián)(北京)科技有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F11/30;G06F9/54 |
| 代理公司: | 北京英賽嘉華知識產(chǎn)權(quán)代理有限責(zé)任公司 11204 | 代理人: | 王達(dá)佐;馬曉亞 |
| 地址: | 100176 北京市大興區(qū)北京經(jīng)*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用于 檢測 應(yīng)用程序 方法 裝置 | ||
本申請實(shí)施例公開了用于檢測應(yīng)用程序的方法和裝置。該方法的一具體實(shí)施方式包括:執(zhí)行阻塞檢測步驟:記錄預(yù)設(shè)標(biāo)識的名稱和值,向主線程發(fā)送具有預(yù)設(shè)標(biāo)識的名稱的消息,其中,預(yù)設(shè)標(biāo)識的值能被主線程修改;間隔預(yù)設(shè)時長后確定預(yù)設(shè)標(biāo)識的值是否改變;若未改變,確定主線程阻塞。該實(shí)施方式能夠檢測ANR,有助于定位、分析ANR問題。
技術(shù)領(lǐng)域
本申請實(shí)施例涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及用于檢測應(yīng)用程序的方法和裝置。
背景技術(shù)
ANR,即Application Not Responding,也稱為應(yīng)用程序無響應(yīng)。
例如,在安卓(Android)系統(tǒng)中,一些事件需要在一定的時長內(nèi)完成,如果超過預(yù)定時長未能得到有效響應(yīng)或者響應(yīng)時間過長,都會造成ANR。如果因?yàn)橐恍┖臅r操作造成主線程阻塞超過預(yù)設(shè)的時長,那么系統(tǒng)就會顯示ANR對話框,以提示用戶對應(yīng)的應(yīng)用處于無響應(yīng)狀態(tài)。
當(dāng)出現(xiàn)ANR時,系統(tǒng)會將應(yīng)用程序的進(jìn)程堆棧信息存儲到本地的文件中(例如,“/data/anr/”目錄下的traces.txt文件)。通常情況下,開發(fā)人員無法實(shí)時獲取到出現(xiàn)ANR的進(jìn)程堆棧信息,從而使得有些ANR無法還原和修復(fù)。
發(fā)明內(nèi)容
本申請實(shí)施例提出了用于檢測應(yīng)用程序的方法和裝置。
第一方面,本申請實(shí)施例提供了一種用于檢測應(yīng)用程序的方法,該方法包括:執(zhí)行阻塞檢測步驟:記錄預(yù)設(shè)標(biāo)識的名稱和值,向主線程發(fā)送具有預(yù)設(shè)標(biāo)識的名稱的消息,其中,預(yù)設(shè)標(biāo)識的值能被主線程修改;間隔預(yù)設(shè)時長后確定預(yù)設(shè)標(biāo)識的值是否改變;若未改變,確定主線程阻塞。
在一些實(shí)施例中,該方法還包括:若預(yù)設(shè)標(biāo)識的值未改變,獲取主線程的堆棧信息,以及將堆棧信息上傳到服務(wù)器。
在一些實(shí)施例中,該方法還包括:若預(yù)設(shè)標(biāo)識的值已改變,再次執(zhí)行阻塞檢測步驟。
在一些實(shí)施例中,向主線程發(fā)送具有預(yù)設(shè)標(biāo)識的名稱的消息,包括:調(diào)用在主線程中創(chuàng)建的消息傳遞對象發(fā)送具有預(yù)設(shè)標(biāo)識的名稱的消息,其中,消息傳遞對象用于將發(fā)送的消息壓入主線程的消息隊(duì)列中。
在一些實(shí)施例中,主線程被配置成:響應(yīng)于具有預(yù)設(shè)標(biāo)識的名稱的消息從主線程的消息隊(duì)列中被取出,改變預(yù)設(shè)標(biāo)識的值。
在一些實(shí)施例中,間隔預(yù)設(shè)時長后確定預(yù)設(shè)標(biāo)識的值是否改變,包括:休眠預(yù)設(shè)時長;確定預(yù)設(shè)標(biāo)識的值是否改變。
第二方面,本申請實(shí)施例提供了一種用于檢測應(yīng)用程序的裝置,該裝置包括阻塞檢測單元。其中,阻塞檢測單元被配置成執(zhí)行阻塞檢測步驟:記錄預(yù)設(shè)標(biāo)識的名稱和值,向主線程發(fā)送具有預(yù)設(shè)標(biāo)識的名稱的消息,其中,預(yù)設(shè)標(biāo)識的值能被主線程修改;間隔預(yù)設(shè)時長后確定預(yù)設(shè)標(biāo)識的值是否改變;若未改變,確定主線程阻塞。
在一些實(shí)施例中,該裝置還包括:上報(bào)單元,被配置成若預(yù)設(shè)標(biāo)識的值未改變,獲取主線程的堆棧信息,以及將堆棧信息上傳到服務(wù)器。
在一些實(shí)施例中,該裝置還包括:再次執(zhí)行單元,被配置成若預(yù)設(shè)標(biāo)識的值已改變,再次執(zhí)行阻塞檢測步驟。
在一些實(shí)施例中,向主線程發(fā)送具有預(yù)設(shè)標(biāo)識的名稱的消息,包括:調(diào)用在主線程中創(chuàng)建的消息傳遞對象發(fā)送具有預(yù)設(shè)標(biāo)識的名稱的消息,其中,消息傳遞對象用于將發(fā)送的消息壓入主線程的消息隊(duì)列中。
在一些實(shí)施例中,主線程被配置成:響應(yīng)于具有預(yù)設(shè)標(biāo)識的名稱的消息從主線程的消息隊(duì)列中被取出,改變預(yù)設(shè)標(biāo)識的值。
在一些實(shí)施例中,間隔預(yù)設(shè)時長后確定預(yù)設(shè)標(biāo)識的值是否改變,包括:休眠預(yù)設(shè)時長;確定預(yù)設(shè)標(biāo)識的值是否改變。
第三方面,本申請實(shí)施例提供了一種電子設(shè)備,包括:一個或多個處理器;存儲裝置,其上存儲有一個或多個程序;當(dāng)一個或多個程序被一個或多個處理器執(zhí)行,使得一個或多個處理器實(shí)現(xiàn)如第一方面中任一實(shí)現(xiàn)方式描述的方法。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于阿波羅智聯(lián)(北京)科技有限公司,未經(jīng)阿波羅智聯(lián)(北京)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910248655.3/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
- 對虛擬化應(yīng)用程序的基于策略的訪問
- 應(yīng)用程序執(zhí)行、應(yīng)用程序提供裝置和應(yīng)用程序分發(fā)方法
- 一種軟件保護(hù)方法、裝置及系統(tǒng)
- 應(yīng)用程序的開發(fā)方法和系統(tǒng)
- 應(yīng)用程序的擴(kuò)展方法及裝置
- 一種應(yīng)用程序商店的應(yīng)用程序發(fā)布方法及裝置
- 一種應(yīng)用程序的監(jiān)控方法、裝置及系統(tǒng)
- 用于對虛擬化應(yīng)用程序的基于策略的訪問的方法和系統(tǒng)
- 應(yīng)用程序控制方法、裝置、終端及存儲介質(zhì)
- 一種應(yīng)用程序安裝、卸載方法及通信終端





