[發明專利]一種Android中內存回收方法及裝置在審
| 申請號: | 201711188102.0 | 申請日: | 2017-11-24 |
| 公開(公告)號: | CN108052388A | 公開(公告)日: | 2018-05-18 |
| 發明(設計)人: | 張磊;陳少杰;張文明 | 申請(專利權)人: | 武漢斗魚網絡科技有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F12/02 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 王瑩;吳歡燕 |
| 地址: | 430000 湖北省武漢市東湖開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 android 內存 回收 方法 裝置 | ||
本發明提供一種Android中內存回收方法及裝置,所述方法包括:S1,獲取目標對象的大小和優先級,將所述目標對象的大小和優先級分別與相應的預設閾值進行比較;S2,根據比較結果對應的控制策略,使用系統垃圾回收器回收所述目標對象所占用的內存。本發明通過將所述目標對象的大小和優先級分別與相應的預設閾值進行比較,根據比較結果對應的控制策略,使用系統垃圾回收器回收所述目標對象所占用的內存,從而實現對不同大小和優先級的目標對象采用不同的控制策略回收內存,有效避免內存泄漏問題,提升了用戶體驗。
技術領域
本發明屬于內存優化領域,更具體地,涉及一種Android中內存回收方法及裝置。
背景技術
在Android開發過程中會使用到對象,因為Android是基于Java語言進行開發的,而Java是一門面向對象的語言。雖然Java虛擬機自帶垃圾回收機制,但是依然無法避免內存泄漏問題。
內存泄漏是指系統將堆內存分配給程序使用,由于某些原因導致程序在使用完內存后未及時釋放或無法釋放內存,導致已經分配的內存無法回收再利用,造成系統內存的浪費。隨著程序的運行,系統可分配的內存越來越少,使得程序的運行速度減慢,最終可能導致系統由于沒有足夠內存而崩潰,造成嚴重影響。由于導致內存泄漏的原因有很多,對內存泄漏的監測及定位難度較大,從而很難解決內存泄漏的問題。
發明內容
為克服上述內存泄漏的問題或者至少部分地解決上述問題,本發明提供了一種Android中內存回收方法及裝置。
根據本發明的第一方面,提供一種Android中內存回收方法,包括:
S1,獲取目標對象的大小和優先級,將所述目標對象的大小和優先級分別與相應的預設閾值進行比較;
S2,根據比較結果對應的控制策略,使用系統垃圾回收器回收所述目標對象所占用的內存。
具體地,所述步驟S1中獲取目標對象的大小的步驟具體包括:
獲取系統中的當前剩余內存容量;
調用所述目標對象的構造方法對所述目標對象進行實例化,獲取實例化的目標對象;
獲取所述目標對象實例化后的剩余內存容量;
使用所述當前剩余內存容量減去所述目標對象實例化后的剩余內存容量,獲取所述目標對象的大小。
具體地,獲取系統中的當前剩余內存容量和獲取所述目標對象實例化后的剩余內存容量的步驟具體包括:
使用運行時類Runtime中的靜態方法getRuntime,獲取運行時對象;
調用所述運行時對象中的freeMemory方法,獲取系統中的當前剩余內存容量和所述目標對象實例化后的剩余內存容量。
具體地,獲取所述目標對象實例化后的剩余內存容量的步驟之后還包括:
將所述實例化的目標對象設置為空;
使用系統垃圾回收器對所述實例化的目標對象所占用的內存進行回收處理。
具體地,所述步驟S1中獲取目標對象的優先級的步驟具體包括:
定義一個基類,在所述基類中定義一個整型的優先級變量,給所述優先級變量賦值為預設常量;
在所述基類中分別定義獲取優先級函數和更改優先級函數,所述目標對象繼承所述基類;
調用所述更改優先級函數更改目標對象的優先級;
調用所述獲取優先級函數獲取所述目標對象的優先級。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢斗魚網絡科技有限公司,未經武漢斗魚網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711188102.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:探索式手機BUG測試工藝
- 下一篇:一種用于飼料混合機的輔料快速添加裝置





