• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種內存管理方法及終端技術

    技術編號:15391483 閱讀:112 留言:0更新日期:2017-05-19 04:47
    本發明專利技術實施例公開了一種內存管理方法及終端,該方法包括:若檢測到內存申請請求時,獲取所述內存申請請求中的申請內存和終端當前空閑內存;若所述空閑內存小于所述申請內存,獲取正在運行進程并生成進程列表;根據預設內存釋放規則確定所述進程列表中待釋放進程;釋放所述待釋放進程所占用的內存。本發明專利技術的實施例通過獲取內存申請請求中的申請內存,當終端當前空閑內存不能滿足該申請內存時,獲取正在運行進程并生成進程列表,根據預設內存釋放規則確定所述進程列表中待釋放進程,清除所述待釋放進程即可滿足申請內存,從而改變了現有安卓系統的內存回收機制過于耗時而導致應用出現卡頓的現象,進而提高了用戶的體驗度。

    Memory management method and terminal

    The embodiment of the invention discloses a memory management method and a terminal. The method includes: to detect if the memory request, the memory access request in the application memory and terminal current idle memory; if the free memory is less than the application memory, access to the running process and generating process according to the preset list; release the memory rules to determine the list of processes to release process; release the memory occupied by the process to be released. Embodiments of the present invention by acquiring memory application request in application memory, when the current terminal free memory cannot satisfy the application memory, access to the running process and generate a list of processes, according to the preset memory release rules determine the process list to release process, the removal of the release process can meet the application memory, thereby changing the the memory recovery mechanism existing Android system is time-consuming and caused by Caton phenomenon, and improve the user experience.

    【技術實現步驟摘要】
    一種內存管理方法及終端
    本專利技術涉及通信
    ,尤其涉及一種內存管理方法及終端。
    技術介紹
    安卓系統,其內存管理是基于Linux的內存管理,在Linuxkernel層實現LMK(LowMemoryKiller,內存回收機制)機制,在低內存的狀態下,通過kill進程,釋放內存,達到內存回收的目的。這個機制比較的簡單,主要有兩個考量因素,一個是應用在framework層調度時設定的一個adjustment,相當于進程的優先級,這個優先級在一定的范圍內取值,比如0-15,應用得到的值越大,其優先級越低,LMK回收的時候,則會首先考慮優先級較低的進程。不同狀態下的內存水位,對應不同的進程優先級。現有的機制有以下的缺點,根據優先級從低到高(15~0)回收進程時,低級別進程回收的內存往往不能滿足新的內存需求,因為進程級別跟內存的大小沒有關系,級別低不代表占用的內存就多,所以回收10個低優先級進程帶來的內存,可能還沒有一個高級別進程釋放的多,而持續的kill進程與回收,這個過程的耗時就會導致應用的卡頓,降低了用戶對終端的體驗。
    技術實現思路
    本專利技術實施例提供一種內存管理方法及終端,以解決現有的LMK內存回收機制在回收內存時出現耗時和導致應用卡頓等問題。第一方面,本專利技術實施例提供了一種內存管理方法,該方法包括:若檢測到內存申請請求時,獲取所述內存申請請求中的申請內存和終端當前空閑內存;若所述空閑內存小于所述申請內存,獲取正在運行進程并生成進程列表;根據預設內存釋放規則確定所述進程列表中待釋放進程;釋放所述待釋放進程所占用的內存。第二方面,本專利技術實施例還提供了一種終端,該終端包括:獲取單元,用于若檢測到內存申請請求時,獲取所述內存申請請求中的申請內存和終端當前空閑內存;獲取生成單元,用于若所述空閑內存小于所述申請內存,獲取正在運行進程并生成進程列表;確定單元,用于根據預設內存釋放規則確定所述進程列表中待釋放進程;釋放單元,用于釋放所述待釋放進程所占用的內存。本專利技術的實施例通過獲取內存申請請求中的申請內存,當終端當前空閑內存不能滿足該申請內存時,獲取正在運行進程并生成進程列表,根據預設內存釋放規則確定所述進程列表中待釋放進程,清除所述待釋放進程即可滿足申請內存,從而改變了現有安卓系統的內存回收機制過于耗時而導致應用出現卡頓的現象,進而提高了用戶的體驗度。附圖說明為了更清楚地說明本專利技術實施例技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本專利技術的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1是本專利技術實施例提供的一種內存管理方法的示意流程圖;圖2是本專利技術實施例提供的一種內存管理方法的另一示意流程圖;圖3是本專利技術實施例提供的一種終端的示意性框圖;圖4是本專利技術實施例提供的一種終端的另一示意性框圖;圖5是本專利技術實施例提供的一種終端的結構組成示意圖。具體實施方式下面將結合本專利技術實施例中的附圖,對本專利技術實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本專利技術一部分實施例,而不是全部的實施例。基于本專利技術中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本專利技術保護的范圍。應當理解,當在本說明書和所附權利要求書中使用時,術語“包括”和“包含”指示所描述特征、整體、步驟、操作、元素和/或組件的存在,但并不排除一個或多個其它特征、整體、步驟、操作、元素、組件和/或其集合的存在或添加。還應當理解,在此本專利技術說明書中所使用的術語僅僅是出于描述特定實施例的目的而并不意在限制本專利技術。如在本專利技術說明書和所附權利要求書中所使用的那樣,除非上下文清楚地指明其它情況,否則單數形式的“一”、“一個”及“該”意在包括復數形式。請參閱圖1,圖1是本專利技術實施例提供的一種內存管理方法的示意流程圖。該內存管理方法可以運行在智能手機(如Android手機、IOS手機等)、平板電腦、電子閱讀器或智能穿戴設備等終端中。如圖1所示,該內存管理方法的步驟包括S101~S104。S101、若檢測到內存申請請求時,獲取所述內存申請請求中的申請內存和終端當前空閑內存。在本專利技術的實施例中,檢測到內存申請請求,具體為檢測到有應用軟件開啟后發出向終端操作系統申請運行內存的內存申請請求。比如,用戶使用終端的相機應用,打開該相機應用進行拍照,該相機應用就會想終端的操作系統申請內存。若檢測到有內存申請請求時,則獲取該內存申請請求的申請內存,即是該申請內存的大小。同時獲取該終端操作系統的當前空閑內存,并判斷該空閑內存是否大于所述申請內存;或者判斷該空閑內存是否大于所述申請內存的一個確定內存范圍,以確保該應用軟件可以流程運行。S102、若所述空閑內存小于所述申請內存,獲取正在運行進程并生成進程列表。在本專利技術的實施例中,若所述空閑內存小于所述申請內存,或者所述空閑內存小于所述申請內存的確定內存范圍,觸發進一步獲取終端的正在運行進程,優選地通過篩選獲取終端的后臺的正在運行進程。將正在運行進程生成一個進程列表。優選地,獲取正在運行進程并生成進程列表,包括:獲取正在運行本地進程和應用進程并生成進程列表。其中,本地進程為操作系統的native進程,應用進程為應用程序運行對應的進程。現有的內存回收機制,比如Android系統的LMK內存回收機制,只會考慮到對上層應用(即應用軟件)進行回收,一般該上層應用的優先級為0~15,而對優先級在-1000~0之間的native進程則不在回收范圍之內。這樣的內存回收機制有一個很大的弊端,如果native進程出現了內存泄漏(比如Mediaserver對應進程,其優先級為-1000),利用現有的LMK回收機制,即便把所有0~15的優先級對應的應用進程都回收掉,還是會導致內存不足,引起系統重啟。S103、根據預設內存釋放規則確定所述進程列表中待釋放進程。在本專利技術的實施例中,該預設內存釋放規則為根據所述申請內存和進程列表的進程占用內存而設定的釋放規則,比如考慮到所述進程列表的進程占用內存的大小、進程占用內存的大小和優先級相結合等因素。根據該預設內存釋放規則確定所述進程列表中待釋放進程,其中,所述待釋放進程可以是一個進程,也可以是多個進程。所述待釋放進程前提是可以滿足所述申請內存的內存大小的需求,通過回收這些可以滿足所述申請內存的內存大小的需求的進程,提高了內存回收速度。優選地,如果,獲取正在運行進程并生成進程列表包括:獲取正在運行本地進程和應用進程并生成進程列表,在所述根據預設內存釋放規則確定所述進程列表中待釋放進程之前,還包括:判斷所述本地進程是否存在內存泄露。該判斷所述本地進程是否存在內存泄露,采用操作系統現有的判斷native進程是否存在內存泄露的方法,比如,通過檢查工具或跟蹤分析均可,此為操作系統自帶的工具,在此不做詳細介紹,同時也不做限定。若所述本地進程是存在內存泄露,所述根據預設內存釋放規則確定所述進程列表中待釋放進程,具體為:將所述本地進程作為所述進程列表中待釋放進程。由此可以避免當操作系統出現內存泄露的情況,還在使用內存回收機制進行內存回收,此時內存回收根本不能滿足內存需要。S104、釋放所述待釋放進程所占用的內本文檔來自技高網...
    一種內存管理方法及終端

    【技術保護點】
    一種內存管理方法,其特征在于,包括:若檢測到內存申請請求時,獲取所述內存申請請求中的申請內存和終端當前空閑內存;若所述空閑內存小于所述申請內存,獲取正在運行進程并生成進程列表;根據預設內存釋放規則確定所述進程列表中待釋放進程;釋放所述待釋放進程所占用的內存。

    【技術特征摘要】
    1.一種內存管理方法,其特征在于,包括:若檢測到內存申請請求時,獲取所述內存申請請求中的申請內存和終端當前空閑內存;若所述空閑內存小于所述申請內存,獲取正在運行進程并生成進程列表;根據預設內存釋放規則確定所述進程列表中待釋放進程;釋放所述待釋放進程所占用的內存。2.根據權利要求1所述的內存管理方法,其特征在于,所述獲取正在運行的進程并生成進程列表,具體包括:獲取正在運行進程的占用內存,根據所述占用內存的大小對所述正在運行進程進行排序并生成進程列表;所述根據預設內存釋放規則確定所述進程列表中待釋放進程,具體包括:判斷所述申請內存是否大于所述進程列表中最大占用內存的進程內存;若所述申請內存大于所述進程列表中最大占用內存的進程內存,則按照所述進程列表的排序確定所述待釋放進程。3.根據權利要求2所述的內存管理方法,其特征在于,在所述判斷所述申請內存是否大于所述進程列表中最大占用內存的進程內存之后,還包括:若所述申請內存未大于所述進程列表中最大占用內存的進程內存,則獲取所述進程列表中所有進程的優先等級;根據所述申請內存獲取所述進程列表中的多個目標進程,其中所述多個目標進程為占用內存大于所述申請內存的進程;選擇所述多個目標進程中優先等級最低的目標進程為所述待釋放進程。4.根據權利要求1所述的內存管理方法,其特征在于,所述獲取正在運行進程并生成進程列表,具體包括:獲取正在運行本地進程和應用進程并生成進程列表;在所述根據預設內存釋放規則確定所述進程列表中待釋放進程之前,還包括:判斷所述本地進程是否存在內存泄露;若所述本地進程是存在內存泄露,所述根據預設內存釋放規則確定所述進程列表中待釋放進程,具體為:將所述本地進程作為所述進程列表中待釋放進程。5.根據權利要求1所述的內存管理方法,其特征在于,在所述釋放所述待釋放進程所占用的內存之后,還包括:獲取終端的可使用內存,判斷所述可使用內存是否大于預設內存閾值;若所述可使用內存大于所述預設內存閾值,則重新調用LMK內存回收機制。6.一種終端,其特...

    【專利技術屬性】
    技術研發人員:劉然李韌
    申請(專利權)人:深圳市金立通信設備有限公司
    類型:發明
    國別省市:廣東,44

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 一区二区三区无码被窝影院| 免费无码中文字幕A级毛片| 性色av无码免费一区二区三区 | 无码丰满熟妇一区二区| 亚洲Av无码乱码在线znlu| 久久午夜夜伦鲁鲁片无码免费| 无码精品国产dvd在线观看9久| 日韩综合无码一区二区| 成人免费无码精品国产电影| 蜜桃无码一区二区三区| 日韩精品无码免费专区午夜| 国产日产欧洲无码视频| 无码少妇一区二区三区| 亚洲精品无码鲁网中文电影| 国产精品无码一二区免费| 亚洲AV色吊丝无码| 无码专区天天躁天天躁在线| 国产成人麻豆亚洲综合无码精品| 精品国产aⅴ无码一区二区| 国产AⅤ无码专区亚洲AV| 国产日韩精品无码区免费专区国产 | 亚洲av无码不卡久久| 久久国产加勒比精品无码| 人妻中文无码久热丝袜| 久久久久无码专区亚洲av| 亚洲AV无码一区二区三区在线观看 | 无码国模国产在线观看| 人妻丰满熟妇AV无码区免| 亚洲aⅴ无码专区在线观看| 免费看成人AA片无码视频羞羞网| 日韩免费无码一区二区三区| 人妻av无码一区二区三区| 少妇无码一区二区三区| 少妇人妻无码精品视频app| 精品无码国产一区二区三区AV| 亚洲中文字幕无码中文字在线 | 人妻无码久久一区二区三区免费| 亚洲AV永久无码精品成人| 久久精品aⅴ无码中文字字幕重口| 日韩精品专区AV无码| 亚洲精品天堂无码中文字幕|