[發明專利]一種應用程序的管理方法及電子設備有效
| 申請號: | 202111157747.4 | 申請日: | 2021-09-30 |
| 公開(公告)號: | CN114020652B | 公開(公告)日: | 2022-12-30 |
| 發明(設計)人: | 肖名鵬;雒云;李鵬 | 申請(專利權)人: | 榮耀終端有限公司 |
| 主分類號: | G06F12/06 | 分類號: | G06F12/06;G06F9/50 |
| 代理公司: | 深圳中一聯合知識產權代理有限公司 44414 | 代理人: | 吳冬羽 |
| 地址: | 518040 廣東省深圳市福田區香蜜湖街道*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 應用程序 管理 方法 電子設備 | ||
本申請實施例提供一種應用程序的管理方法,包括:在應用程序運行過程中,監測圖形緩沖區的申請結果;若圖像緩沖區的申請結果為申請失敗,則根據申請結果分析失敗類型;若失敗類型為內存映射失敗,則獲取應用程序的虛擬內存占用情況;若應用程序占用的虛擬內存超過預設閾值,則啟動所述應用程序的自殺恢復功能,以釋放被該應用程序占用的內存,避免由于內存泄露導致系統崩潰、卡死等嚴重后果,減輕對用戶使用的影響。
技術領域
本申請涉及電子領域,尤其涉及一種應用程序的管理方法及電子設備。
背景技術
內存泄露(memory leak),是指應用程序中已動態分配的堆內存由于某種原因未釋放或無法及時釋放,造成系統內存的浪費的現象。
然而,由于內存泄露不是過錯類錯誤,目前存在難檢測、難定位的問題,最終就會導致內存溢出、應用程序運行異常甚至系統卡死等嚴重后果。
發明內容
本申請提供了一種應用程序的管理方法,可以避免目前由于內存泄漏導致的系統卡死的情況。
第一方面,提供了一種應用程序的管理方法,包括:在應用程序運行過程中,監測圖形緩沖區的申請結果;若圖像緩沖區的申請結果為申請失敗,則根據申請結果分析失敗類型;若失敗類型為內存映射失敗,則獲取應用程序的虛擬內存占用情況;若應用程序占用的虛擬內存超過預設閾值,則啟動所述應用程序的自殺恢復功能。
在應用程序運行過程中,為了繪制界面和保存繪制的數據,運行的進程會向系統內存申請圖形緩沖區(graphicbuffer)。
示例性的,可以通過graphicbuffermapper申請進程間共享的圖形緩沖區,也可以通過graphicbufferallocator進程接口申請應用程序使用的圖形緩沖區。
由于向內存管理器申請圖形緩沖區時有可能存在內存泄漏的情況,因此可以在應用程序的進程發起圖形緩沖區申請時,啟動內存申請監測功能來監測圖形緩沖區的申請結果。
需要說明的是,也可以在應用程序開始運行時就啟動內存申請監測功能,還可以實時獲取應用程序的虛擬內存占用情況,在應用程序的虛擬內存占用超過某一數值時(這個數值可以根根據實際應用場景來設定,本申請對此不加以限制),開啟內存申請監測功能,還可以是在應用程序的虛擬內存占用超過某一數值且該應用程序的進程發起圖形緩沖區申請時才啟動內存申請監測功能,當然還可以在其他情況下啟動內存申請監測功能。
示例性的,上述開啟內存申請監測可以包括:用戶主動開啟內存申請監測功能的方式、電子設備自動開啟內存申請監測功能的方式以及默認開啟內存申請監測功能的方式。
上述圖形緩沖區申請的申請結果包括申請成功和申請失敗。
在系統可用內存滿足該申請,且申請到的內存能夠映射到該進程的虛擬內存的地址時,內存管理器會返回申請成功的結果。
在系統可用內存過少(申請的圖形緩沖區占用的內存大于系統可用內存)、申請到的內存無法映射到進程的虛擬內存的地址中以及其他異常情況時,內存管理器會返回申請失敗的結果。
其中,可以通過/proc/self/status函數來調出應用程序的虛擬內存占用情況。
其中,預設閾值可以根據應用程序來設置,例如對于32位的應用程序,上述預設閾值可以設置為3.7G。當然對于32位的應用程序,上述預設閾值可以設置為比3.7G低的某些數值,例如3.5G、3.2G等。
以上可以看出,通過監測應用程序的進程向系統內存申請圖形緩沖區的情況,在內存申請失敗且是由于虛擬內存占用過多的情況下,啟動自殺恢復功能,以釋放被該應用程序占用的內存,避免由于內存泄露導致系統崩潰、卡死等嚴重后果,減輕對用戶使用的影響。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于榮耀終端有限公司,未經榮耀終端有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111157747.4/2.html,轉載請聲明來源鉆瓜專利網。





