內(nèi)存優(yōu)化方法及裝置制造方法
【專利摘要】本發(fā)明關(guān)于一種內(nèi)存優(yōu)化方法及裝置,屬于計算機【技術(shù)領(lǐng)域】。所述方法包括:接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,空閑內(nèi)存是應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存;通過內(nèi)存優(yōu)化代碼檢測應(yīng)用程序是否從前臺切換到后臺運行;若通過內(nèi)存優(yōu)化代碼檢測出應(yīng)用程序從前臺切換到后臺運行,則通過應(yīng)用程序調(diào)用內(nèi)存釋放函數(shù),內(nèi)存釋放函數(shù)用于釋放空閑內(nèi)存。所述裝置包括:代碼接收模塊、狀態(tài)檢測模塊和函數(shù)調(diào)用模塊。本發(fā)明解決了在終端內(nèi)存不足時才會觸發(fā)內(nèi)存資源回收,導致終端一直處于內(nèi)存資源緊張狀態(tài)的問題,達到了提高終端的處理能力的效果。
【專利說明】內(nèi)存優(yōu)化方法及裝置
【技術(shù)領(lǐng)域】
[0001]本公開涉及計算機【技術(shù)領(lǐng)域】,特別涉及一種內(nèi)存優(yōu)化方法及裝置。
【背景技術(shù)】
[0002]JAVA中由虛擬機管理運行的應(yīng)用程序所占用的內(nèi)存資源。應(yīng)用程序啟動時運行在前臺,進行初始化會占用大量內(nèi)存,進入穩(wěn)定運行期后轉(zhuǎn)到后臺運行,此時不需要占用大量內(nèi)存,而空閑的內(nèi)存依然被應(yīng)用程序占用,虛擬機經(jīng)過很長時間處理才會被回收這些內(nèi)存。因此,在內(nèi)存資源不足的情況下,需要將空閑的內(nèi)存資源快速回收。
[0003]在進行內(nèi)存資源快速回收時,終端對所有運行的應(yīng)用程序進行檢測,若檢測出所有運行的應(yīng)用程序占用的內(nèi)存資源值大于第一閾值,則對系統(tǒng)中運行的各個應(yīng)用程序分別進行檢測,若檢測到存在某一個應(yīng)用程序所占用的內(nèi)存資源值大于第二閾值時,終止該應(yīng)用程序的運行,回收該應(yīng)用程序所占用的內(nèi)存。
[0004]公開人在實現(xiàn)本公開的過程中,發(fā)現(xiàn)相關(guān)技術(shù)中至少存在以下缺陷:在終端內(nèi)存不足時才會觸發(fā)內(nèi)存資源回收,導致終端一直處于內(nèi)存資源緊張狀態(tài),降低了終端的處理能力。
【發(fā)明內(nèi)容】
[0005]為解決在終端內(nèi)存不足時才會觸發(fā)內(nèi)存資源回收,導致終端一直處于內(nèi)存資源緊張狀態(tài)的問題,本公開提供了一種內(nèi)存優(yōu)化方法及裝置。
[0006]根據(jù)本公開實施例的第一方面,提供一種內(nèi)存優(yōu)化方法,包括:
[0007]接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,所述程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,所述空閑內(nèi)存是所述應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存;
[0008]通過所述內(nèi)存優(yōu)化代碼檢測所述應(yīng)用程序是否從前臺切換到后臺運行;
[0009]若通過所述內(nèi)存優(yōu)化代碼檢測出所述應(yīng)用程序從前臺切換到后臺運行,則通過所述應(yīng)用程序調(diào)用所述內(nèi)存釋放函數(shù),所述內(nèi)存釋放函數(shù)用于釋放所述空閑內(nèi)存。
[0010]可選的,若所述內(nèi)存釋放函數(shù)是處于禁止編輯狀態(tài)的私有函數(shù),則所述方法還包括:
[0011]獲取所述應(yīng)用程序調(diào)用的公有函數(shù)的絕對地址,其中,所述公有函數(shù)具有調(diào)用所述內(nèi)存釋放函數(shù)的權(quán)限;
[0012]對所述公有函數(shù)的絕對地址進行顯示,所述公有函數(shù)的絕對地址用于指示計算所述內(nèi)存釋放函數(shù)的絕對地址且將所述內(nèi)存釋放函數(shù)的絕對地址添加到所述內(nèi)存優(yōu)化代碼中,所述內(nèi)存釋放函數(shù)的絕對地址等于所述公有函數(shù)的絕對地址加上所述公有函數(shù)和所述內(nèi)存釋放函數(shù)的相對地址,所述公有函數(shù)和所述內(nèi)存釋放函數(shù)的相對地址由預設(shè)的符號表提供。
[0013]可選的,所述獲取所述應(yīng)用程序調(diào)用的公有函數(shù)的絕對地址,包括:
[0014]接收攜帶有所述程序標識和所述公有函數(shù)的函數(shù)標識的地址讀取指令;
[0015]在動態(tài)鏈接庫中,查找所述應(yīng)用程序調(diào)用的所述公有函數(shù)的絕對地址。
[0016]可選的,所述通過所述應(yīng)用程序調(diào)用所述內(nèi)存釋放函數(shù),包括:
[0017]通過所述內(nèi)存優(yōu)化代碼將所述內(nèi)存釋放函數(shù)的絕對地址發(fā)送給所述應(yīng)用程序;
[0018]在所述內(nèi)存釋放函數(shù)的絕對地址的指示下,通過所述應(yīng)用程序調(diào)用所述內(nèi)存釋放函數(shù)。
[0019]可選的,所述內(nèi)存釋放函數(shù)是對處于允許編輯狀態(tài)的私有函數(shù)進行編輯后得到的公有函數(shù)。
[0020]根據(jù)本公開實施例的第二方面,提供一種內(nèi)存優(yōu)化裝置,包括:
[0021]代碼接收模塊,被配置為接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,所述程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,所述空閑內(nèi)存是所述應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存;
[0022]狀態(tài)檢測模塊,被配置為通過所述代碼接收模塊接收的所述內(nèi)存優(yōu)化代碼檢測所述應(yīng)用程序是否從前臺切換到后臺運行;
[0023]函數(shù)調(diào)用模塊,被配置為當所述狀態(tài)檢測模塊通過所述內(nèi)存優(yōu)化代碼檢測出所述應(yīng)用程序從前臺切換到后臺運行時,通過所述應(yīng)用程序調(diào)用所述內(nèi)存釋放函數(shù),所述內(nèi)存釋放函數(shù)用于釋放所述空閑內(nèi)存。
[0024]可選的,當所述內(nèi)存釋放函數(shù)是處于禁止編輯狀態(tài)的私有函數(shù)時,所述裝置還包括:
[0025]地址獲取模塊,被配置為獲取所述應(yīng)用程序調(diào)用的公有函數(shù)的絕對地址,其中,所述公有函數(shù)具有調(diào)用所述內(nèi)存釋放函數(shù)的權(quán)限;
[0026]地址顯示模塊,被配置為對所述地址獲取模塊獲取的所述公有函數(shù)的絕對地址進行顯示,所述公有函數(shù)的絕對地址用于指示計算所述內(nèi)存釋放函數(shù)的絕對地址且將所述內(nèi)存釋放函數(shù)的絕對地址添加到所述內(nèi)存優(yōu)化代碼中,所述內(nèi)存釋放函數(shù)的絕對地址等于所述公有函數(shù)的絕對地址加上所述公有函數(shù)和所述內(nèi)存釋放函數(shù)的相對地址,所述公有函數(shù)和所述內(nèi)存釋放函數(shù)的相對地址由預設(shè)的符號表提供。
[0027]可選的,所述地址獲取模塊,包括:
[0028]指令接收子模塊,被配置為接收攜帶有所述程序標識和所述公有函數(shù)的函數(shù)標識的地址讀取指令;
[0029]地址查找子模塊,被配置為在動態(tài)鏈接庫中,查找所述指令接收子模塊指示的所述應(yīng)用程序調(diào)用的所述公有函數(shù)的絕對地址。
[0030]可選的,所述函數(shù)調(diào)用模塊,包括:
[0031]地址發(fā)送子模塊,被配置為通過所述內(nèi)存優(yōu)化代碼將所述內(nèi)存釋放函數(shù)的絕對地址發(fā)送給所述應(yīng)用程序;
[0032]函數(shù)調(diào)用子模塊,被配置為在所述地址發(fā)送子模塊發(fā)送的所述內(nèi)存釋放函數(shù)的絕對地址的指示下,通過所述應(yīng)用程序調(diào)用所述內(nèi)存釋放函數(shù)。
[0033]可選的,所述內(nèi)存釋放函數(shù)是對處于允許編輯狀態(tài)的私有函數(shù)進行編輯后得到的公有函數(shù)。
[0034]根據(jù)本公開實施例的第三方面,提供一種內(nèi)存優(yōu)化裝置,包括:
[0035]處理器;
[0036]用于存儲處理器可執(zhí)行指令的存儲器;
[0037]其中,所述處理器被配置為:
[0038]接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,所述程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,所述空閑內(nèi)存是所述應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存;
[0039]通過所述內(nèi)存優(yōu)化代碼檢測所述應(yīng)用程序是否從前臺切換到后臺運行;
[0040]若通過所述內(nèi)存優(yōu)化代碼檢測出所述應(yīng)用程序從前臺切換到后臺運行,則通過所述應(yīng)用程序調(diào)用所述內(nèi)存釋放函數(shù),所述內(nèi)存釋放函數(shù)用于釋放所述空閑內(nèi)存。
[0041]本公開的實施例提供的技術(shù)方案可以包括以下有益效果:
[0042]通過接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,該程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,該空閑內(nèi)存是應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存;通過內(nèi)存優(yōu)化代碼檢測應(yīng)用程序是否從前臺切換到后臺運行;若通過內(nèi)存優(yōu)化代碼檢測出應(yīng)用程序從前臺切換到后臺運行,則通過應(yīng)用程序調(diào)用內(nèi)存釋放函數(shù),該內(nèi)存釋放函數(shù)用于釋放空閑內(nèi)存,可以直接調(diào)用包含有內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,對應(yīng)用程序的空閑內(nèi)存進行釋放,解決了在終端內(nèi)存不足時才會觸發(fā)內(nèi)存資源回收,導致終端一直處于內(nèi)存資源緊張狀態(tài)的問題,達到了提高終端的處理能力的效果。
[0043]應(yīng)當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性的,并不能限制本公開。
【專利附圖】
【附圖說明】
[0044]此處的附圖被并入說明書中并構(gòu)成本公開說明書的一部分,示出了符合本公開的實施例,并與說明書一起用于解釋本公開的原理。
[0045]圖1是根據(jù)一示例性實施例示出的一種內(nèi)存優(yōu)化方法的流程圖。
[0046]圖2是根據(jù)另一示例性實施例示出的一種內(nèi)存優(yōu)化方法的流程圖。
[0047]圖3是根據(jù)一示例性實施例示出的一種內(nèi)存優(yōu)化裝置的框圖。
[0048]圖4是根據(jù)一示例性實施例示出的一種內(nèi)存優(yōu)化裝置的框圖。
[0049]圖5是根據(jù)一示例性實施例示出的一種用于內(nèi)存優(yōu)化的裝置的框圖。
【具體實施方式】
[0050]這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
[0051]圖1是根據(jù)一示例性實施例示出的一種內(nèi)存優(yōu)化方法的流程圖,該內(nèi)存優(yōu)化方法應(yīng)用于終端中,如圖1所示,該內(nèi)存優(yōu)化方法包括以下步驟。
[0052]在步驟101中,接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,該程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,該空閑內(nèi)存是應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存。
[0053]內(nèi)存釋放函數(shù)是具有確定應(yīng)用程序占用的空閑內(nèi)存并釋放該空閑內(nèi)存的功能的函數(shù)。
[0054]在步驟102中,通過內(nèi)存優(yōu)化代碼檢測應(yīng)用程序是否從前臺切換到后臺運行。
[0055]應(yīng)用程序啟動時運行在前臺,進行初始化會占用大量內(nèi)存,進入穩(wěn)定運行期后轉(zhuǎn)到后臺運行,此時不需要占用大量內(nèi)存,而空閑內(nèi)存依然被應(yīng)用程序占用,此時,可以通過內(nèi)存優(yōu)化代碼來釋放空閑內(nèi)存。
[0056]在使用內(nèi)存優(yōu)化代碼釋放應(yīng)用程序的空閑內(nèi)存前,終端需要檢測應(yīng)用程序是否從前臺切換到后臺運行,從而確定應(yīng)用程序是否存在空閑內(nèi)存。
[0057]在步驟103中,若通過內(nèi)存優(yōu)化代碼檢測出應(yīng)用程序從前臺切換到后臺運行,則通過應(yīng)用程序調(diào)用內(nèi)存釋放函數(shù),該內(nèi)存釋放函數(shù)用于釋放空閑內(nèi)存。
[0058]綜上所述,本公開提供的內(nèi)存優(yōu)化方法,通過接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,該程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,該空閑內(nèi)存是應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存;通過內(nèi)存優(yōu)化代碼檢測應(yīng)用程序是否從前臺切換到后臺運行;若通過內(nèi)存優(yōu)化代碼檢測出應(yīng)用程序從前臺切換到后臺運行,則通過應(yīng)用程序調(diào)用內(nèi)存釋放函數(shù),該內(nèi)存釋放函數(shù)用于釋放空閑內(nèi)存,可以直接調(diào)用包含有內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,對應(yīng)用程序的空閑內(nèi)存進行釋放,解決了在終端內(nèi)存不足時才會觸發(fā)內(nèi)存資源回收,導致終端一直處于內(nèi)存資源緊張狀態(tài)的問題,達到了提高終端的處理能力的效果。
[0059]圖2是根據(jù)另一示例性實施例示出的一種內(nèi)存優(yōu)化方法的流程圖,該內(nèi)存優(yōu)化方法應(yīng)用于終端中,如圖2所示,該內(nèi)存優(yōu)化方法包括如下步驟。
[0060]在步驟201中,若內(nèi)存釋放函數(shù)是處于禁止編輯狀態(tài)的私有函數(shù),則獲取應(yīng)用程序調(diào)用的公有函數(shù)的絕對地址,其中,該公有函數(shù)具有調(diào)用內(nèi)存釋放函數(shù)的權(quán)限;對公有函數(shù)的絕對地址進行顯示,該公有函數(shù)的絕對地址用于指示計算內(nèi)存釋放函數(shù)的絕對地址且將內(nèi)存釋放函數(shù)的絕對地址添加到內(nèi)存優(yōu)化代碼中,該內(nèi)存釋放函數(shù)的絕對地址等于公有函數(shù)的絕對地址加上公有函數(shù)和內(nèi)存釋放函數(shù)的相對地址,該公有函數(shù)和內(nèi)存釋放函數(shù)的相對地址由預設(shè)的符號表提供。
[0061]內(nèi)存釋放函數(shù)在虛擬機源代碼中為私有函數(shù),是具有確定應(yīng)用程序占用的空閑內(nèi)存并釋放該空閑內(nèi)存的功能的函數(shù),該空閑內(nèi)存是應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存。公有函數(shù)是具有調(diào)用內(nèi)存釋放函數(shù)的權(quán)限的函數(shù),絕對地址是函數(shù)被加載到應(yīng)用程序后系統(tǒng)為該函數(shù)分配的內(nèi)存地址。
[0062]應(yīng)用程序在虛擬機上運行時,由虛擬機調(diào)用內(nèi)存釋放函數(shù)對應(yīng)用程序所占用的空閑內(nèi)存進行釋放,由于虛擬機需要經(jīng)過很長時間的處理才能回收內(nèi)存,因此,終端可以直接調(diào)用虛擬機中的內(nèi)存釋放函數(shù)來釋放空閑內(nèi)存。若內(nèi)存釋放函數(shù)是處于禁止編輯狀態(tài)的私有函數(shù),即,內(nèi)存釋放函數(shù)是不可編輯的源代碼,此時,為了能夠調(diào)用該內(nèi)存釋放函數(shù),終端需要獲取應(yīng)用程序運行時該內(nèi)存釋放函數(shù)的絕對地址。
[0063]由于公有函數(shù)與內(nèi)存釋放函數(shù)的相對地址是固定的,因此,可以通過獲取公有函數(shù)的絕對地址來得到內(nèi)存釋放函數(shù)的絕對地址。因此,終端需要獲取公有函數(shù)的絕對地址和公有函數(shù)與內(nèi)存釋放函數(shù)的相對地址。
[0064]其中,獲取應(yīng)用程序調(diào)用的公有函數(shù)的絕對地址,包括:
[0065]I)接收攜帶有程序標識和公有函數(shù)的函數(shù)標識的地址讀取指令;
[0066]2)在動態(tài)鏈接庫中,查找應(yīng)用程序調(diào)用的公有函數(shù)的絕對地址。
[0067]當公有函數(shù)被應(yīng)用程序調(diào)用時,系統(tǒng)會為該公有函數(shù)分配內(nèi)存地址,終端將該內(nèi)存地址確定為該公有函數(shù)的絕對地址存儲在動態(tài)鏈接庫中。當需要獲取該公有函數(shù)的絕對地址時,終端可以直接從動態(tài)鏈接庫中讀取該絕對地址。
[0068]由于公有函數(shù)被不同的應(yīng)用程序調(diào)用時,系統(tǒng)會為該公有函數(shù)分配不同的內(nèi)存地址,因此,在獲取某一個應(yīng)用程序調(diào)用的公有函數(shù)時,還需要獲取該應(yīng)用程序的程序標識。即,終端接收到的地址讀取指令中需要攜帶有程序標識和公有函數(shù)的函數(shù)標識,終端根據(jù)程序標識和函數(shù)標識在動態(tài)鏈接庫中查找該公有函數(shù)的絕對地址,并對該絕對地址進行顯
/Jn ο
[0069]需要說明的是,在將函數(shù)標識添加到地址獲取指令之前,用戶可以通過查看虛擬機源代碼找到釋放虛擬機占用的空閑內(nèi)存的調(diào)用函數(shù),再通過查看虛擬機的頭文件確定出該調(diào)用函數(shù)中的具有調(diào)用內(nèi)存釋放函數(shù)的權(quán)限的公有函數(shù),將該公有函數(shù)的函數(shù)標識添加到地址獲取指令中。
[0070]在獲取公有函數(shù)與私有函數(shù)的相對地址時,由于公有函數(shù)和內(nèi)存釋放函數(shù)的相對地址由預設(shè)的符號表提供,因此,用戶可以通過查看該符號表,讀取需要該公有函數(shù)與私有函數(shù)的相對地址。其中,該預設(shè)的符號表是由symbol庫經(jīng)過objdump得到的。
[0071]在確定了公有函數(shù)的絕對地址和公有函數(shù)與內(nèi)存釋放函數(shù)的相對地址后,該內(nèi)存釋放函數(shù)的絕對地址可以被確定為公有函數(shù)的絕對地址加上公有函數(shù)和內(nèi)存釋放函數(shù)的相對地址。因此,在用戶獲取到終端顯示的公有函數(shù)的絕對地址,以及,從符號表中讀取到公有函數(shù)與私有函數(shù)的相對地址后,用戶可以將公有函數(shù)的絕對地址加上相對地址,得到私有函數(shù)的絕對地址。
[0072]在步驟202中,接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,該程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,該空閑內(nèi)存是應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存。
[0073]在確定內(nèi)存釋放函數(shù)的絕對地址后,用戶可以根據(jù)內(nèi)存釋放函數(shù)的絕對地址和應(yīng)用程序的程序標識編寫內(nèi)存優(yōu)化代碼,將該內(nèi)存優(yōu)化代碼發(fā)送給終端,終端接收到該內(nèi)存優(yōu)化代碼后,根據(jù)該內(nèi)存優(yōu)化代碼進行內(nèi)存優(yōu)化。
[0074]在步驟203中,通過內(nèi)存優(yōu)化代碼檢測應(yīng)用程序是否從前臺切換到后臺運行。
[0075]應(yīng)用程序啟動時運行在前臺,進行初始化會占用大量內(nèi)存,進入穩(wěn)定運行期后轉(zhuǎn)到后臺運行,此時不需要占用大量內(nèi)存,而空閑的內(nèi)存依然被應(yīng)用程序占用,此時,可以通過內(nèi)存優(yōu)化代碼來釋放空閑內(nèi)存。
[0076]在使用內(nèi)存優(yōu)化代碼釋放應(yīng)用程序的空閑內(nèi)存前,終端需要檢測應(yīng)用程序是否從前臺切換到后臺運行,從而確定應(yīng)用程序是否存在空閑內(nèi)存。在檢測檢測應(yīng)用程序是否從前臺切換到后臺運行時,可以由內(nèi)存優(yōu)化代碼獲取應(yīng)用程序的當前狀態(tài),若應(yīng)用程序的當前狀態(tài)為掛起,則確定應(yīng)用程序在后臺運行,若應(yīng)用程序的當前狀態(tài)為運行,則確定應(yīng)用程序運行在前臺。
[0077]在步驟204中,若通過內(nèi)存優(yōu)化代碼檢測出應(yīng)用程序從前臺切換到后臺運行,則通過應(yīng)用程序調(diào)用內(nèi)存釋放函數(shù),該內(nèi)存釋放函數(shù)用于釋放空閑內(nèi)存。
[0078]若終端通過內(nèi)存優(yōu)化代碼檢測出應(yīng)用程序從前臺切換到后臺運行,則確定該應(yīng)用程序存在空閑內(nèi)存,終端通過應(yīng)用程序調(diào)用內(nèi)存釋放函數(shù)釋放應(yīng)用程序占用的空閑內(nèi)存。
[0079]其中,通過應(yīng)用程序調(diào)用內(nèi)存釋放函數(shù),包括:
[0080]I)通過內(nèi)存優(yōu)化代碼將內(nèi)存釋放函數(shù)的絕對地址發(fā)送給應(yīng)用程序;
[0081]2)在內(nèi)存釋放函數(shù)的絕對地址的指示下,通過應(yīng)用程序調(diào)用內(nèi)存釋放函數(shù)。
[0082]終端運行內(nèi)存優(yōu)化代碼,將攜帶有該內(nèi)存釋放函數(shù)的絕對地址的指令發(fā)送給應(yīng)用程序,使得應(yīng)用程序可以在內(nèi)存釋放函數(shù)的絕對地址指示下調(diào)用內(nèi)存釋放函數(shù),從而釋放應(yīng)用程序所占用的空閑內(nèi)存。
[0083]在另一種實施方式中,終端不執(zhí)行步驟201,即終端執(zhí)行步驟202-204,此時,內(nèi)存釋放函數(shù)是對處于允許編輯狀態(tài)的私有函數(shù)進行編輯后得到的公有函數(shù)。即,內(nèi)存釋放函數(shù)是可編輯的開源代碼,則用戶可以對內(nèi)存釋放函數(shù)進行編輯,使得內(nèi)存釋放函數(shù)變?yōu)榭芍苯佑蓱?yīng)用程序調(diào)用的公有函數(shù),此時,內(nèi)存釋放函數(shù)為公有函數(shù)。
[0084]用戶可以將該編輯后得到的公有函數(shù)和應(yīng)用程序?qū)?yīng)的程序標識添加到內(nèi)存優(yōu)化代碼中,當終端通過內(nèi)存優(yōu)化代碼檢測到應(yīng)用程序進入后臺后,終端運行內(nèi)存優(yōu)化代碼,將內(nèi)存釋放函數(shù)發(fā)送給應(yīng)用程序,使得應(yīng)用程序直接調(diào)用內(nèi)存釋放函數(shù),釋放應(yīng)用程序所占用的空閑內(nèi)存,而不需要通過內(nèi)存釋放函數(shù)的絕對地址調(diào)用內(nèi)存釋放函數(shù),提高了釋放應(yīng)用程序的空閑內(nèi)存的效率。
[0085]綜上所述,本公開提供的內(nèi)存優(yōu)化方法,通過接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,該程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,該空閑內(nèi)存是應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存;通過內(nèi)存優(yōu)化代碼檢測應(yīng)用程序是否從前臺切換到后臺運行;若通過內(nèi)存優(yōu)化代碼檢測出應(yīng)用程序從前臺切換到后臺運行,則通過應(yīng)用程序調(diào)用內(nèi)存釋放函數(shù),該內(nèi)存釋放函數(shù)用于釋放空閑內(nèi)存,可以直接調(diào)用包含有內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,對應(yīng)用程序的空閑內(nèi)存進行釋放,解決了在終端內(nèi)存不足時才會觸發(fā)內(nèi)存資源回收,導致終端一直處于內(nèi)存資源緊張狀態(tài)的問題,達到了提高終端的處理能力的效果。
[0086]另外,內(nèi)存釋放函數(shù)是對處于允許編輯狀態(tài)的私有函數(shù)進行編輯后得到的公有函數(shù),用戶可以直接將編輯后的內(nèi)存釋放函數(shù)添加到內(nèi)存優(yōu)化代碼中,內(nèi)存優(yōu)化代碼可以直接調(diào)用內(nèi)存釋放函數(shù),而不需要通過內(nèi)存釋放函數(shù)的絕對地址調(diào)用內(nèi)存釋放函數(shù),提高了釋放應(yīng)用程序的空閑內(nèi)存的效率。
[0087]圖3是根據(jù)一示例性實施例示出的一種內(nèi)存優(yōu)化裝置的框圖,該內(nèi)存優(yōu)化裝置應(yīng)用于終端中,如圖3所示,該內(nèi)存優(yōu)化裝置包括:代碼接收模塊310、狀態(tài)檢測模塊320和函數(shù)調(diào)用模塊330。
[0088]該代碼接收模塊310,被配置為接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,空閑內(nèi)存是應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存;
[0089]該狀態(tài)檢測模塊320,被配置為通過代碼接收模塊310接收的內(nèi)存優(yōu)化代碼檢測應(yīng)用程序是否從前臺切換到后臺運行;
[0090]該函數(shù)調(diào)用模塊330,被配置為當狀態(tài)檢測模塊320通過內(nèi)存優(yōu)化代碼檢測出應(yīng)用程序從前臺切換到后臺運行時,通過應(yīng)用程序調(diào)用內(nèi)存釋放函數(shù),內(nèi)存釋放函數(shù)用于釋放空閑內(nèi)存。
[0091]綜上所述,本公開提供的內(nèi)存優(yōu)化裝置,通過接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,該程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,該空閑內(nèi)存是應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存;通過內(nèi)存優(yōu)化代碼檢測應(yīng)用程序是否從前臺切換到后臺運行;若通過內(nèi)存優(yōu)化代碼檢測出應(yīng)用程序從前臺切換到后臺運行,則通過應(yīng)用程序調(diào)用內(nèi)存釋放函數(shù),該內(nèi)存釋放函數(shù)用于釋放空閑內(nèi)存,可以直接調(diào)用包含有內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,對應(yīng)用程序的空閑內(nèi)存進行釋放,解決了在終端內(nèi)存不足時才會觸發(fā)內(nèi)存資源回收,導致終端一直處于內(nèi)存資源緊張狀態(tài)的問題,達到了提高終端的處理能力的效果。
[0092]圖4是根據(jù)一示例性實施例示出的一種內(nèi)存優(yōu)化裝置的框圖,該內(nèi)存優(yōu)化裝置應(yīng)用于終端中,如圖4所示,該內(nèi)存優(yōu)化裝置包括:代碼接收模塊310、狀態(tài)檢測模塊320和函數(shù)調(diào)用模塊330。
[0093]該代碼接收模塊310,被配置為接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,空閑內(nèi)存是應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存;
[0094]該狀態(tài)檢測模塊320,被配置為通過代碼接收模塊310接收的內(nèi)存優(yōu)化代碼檢測應(yīng)用程序是否從前臺切換到后臺運行;
[0095]該函數(shù)調(diào)用模塊330,被配置為當狀態(tài)檢測模塊320通過內(nèi)存優(yōu)化代碼檢測出應(yīng)用程序從前臺切換到后臺運行時,通過應(yīng)用程序調(diào)用內(nèi)存釋放函數(shù),內(nèi)存釋放函數(shù)用于釋放空閑內(nèi)存。
[0096]可選的,當內(nèi)存釋放函數(shù)是處于禁止編輯狀態(tài)的私有函數(shù)時,裝置還包括:地址獲取模塊340和地址顯示模塊350。
[0097]該地址獲取模塊340,被配置為獲取應(yīng)用程序調(diào)用的公有函數(shù)的絕對地址,其中,公有函數(shù)具有調(diào)用內(nèi)存釋放函數(shù)的權(quán)限;
[0098]該地址顯示模塊350,被配置為對地址獲取模塊340獲取的公有函數(shù)的絕對地址進行顯示,公有函數(shù)的絕對地址用于指示計算內(nèi)存釋放函數(shù)的絕對地址且將內(nèi)存釋放函數(shù)的絕對地址添加到內(nèi)存優(yōu)化代碼中,內(nèi)存釋放函數(shù)的絕對地址等于公有函數(shù)的絕對地址加上公有函數(shù)和內(nèi)存釋放函數(shù)的相對地址,公有函數(shù)和內(nèi)存釋放函數(shù)的相對地址由預設(shè)的符號表提供。
[0099]可選的,地址獲取模塊340,包括:指令接收子模塊341和地址查找子模塊342。
[0100]該指令接收子模塊341,被配置為接收攜帶有程序標識和公有函數(shù)的函數(shù)標識的地址讀取指令;
[0101]該地址查找子模塊342,被配置為在動態(tài)鏈接庫中,查找指令接收子模塊341指示的應(yīng)用程序調(diào)用的公有函數(shù)的絕對地址。
[0102]可選的,函數(shù)調(diào)用模塊330,包括:地址發(fā)送子模塊331和函數(shù)調(diào)用子模塊332。
[0103]該地址發(fā)送子模塊331,被配置為通過內(nèi)存優(yōu)化代碼將內(nèi)存釋放函數(shù)的絕對地址發(fā)送給應(yīng)用程序;
[0104]該函數(shù)調(diào)用子模塊332,被配置為在地址發(fā)送子模塊331發(fā)送的內(nèi)存釋放函數(shù)的絕對地址的指示下,通過應(yīng)用程序調(diào)用內(nèi)存釋放函數(shù)。
[0105]可選的,內(nèi)存釋放函數(shù)是對處于允許編輯狀態(tài)的私有函數(shù)進行編輯后得到的公有函數(shù)。
[0106]綜上所述,本公開提供的內(nèi)存優(yōu)化裝置,通過接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,該程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,該空閑內(nèi)存是應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存;通過內(nèi)存優(yōu)化代碼檢測應(yīng)用程序是否從前臺切換到后臺運行;若通過內(nèi)存優(yōu)化代碼檢測出應(yīng)用程序從前臺切換到后臺運行,則通過應(yīng)用程序調(diào)用內(nèi)存釋放函數(shù),該內(nèi)存釋放函數(shù)用于釋放空閑內(nèi)存,可以直接調(diào)用包含有內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,對應(yīng)用程序的空閑內(nèi)存進行釋放,解決了在終端內(nèi)存不足時才會觸發(fā)內(nèi)存資源回收,導致終端一直處于內(nèi)存資源緊張狀態(tài)的問題,達到了提高終端的處理能力的效果。
[0107]另外,內(nèi)存釋放函數(shù)是對處于允許編輯狀態(tài)的私有函數(shù)進行編輯后得到的公有函數(shù),用戶可以直接將編輯后的內(nèi)存釋放函數(shù)添加到內(nèi)存優(yōu)化代碼中,內(nèi)存優(yōu)化代碼可以直接調(diào)用內(nèi)存釋放函數(shù),而不需要通過內(nèi)存釋放函數(shù)的絕對地址調(diào)用內(nèi)存釋放函數(shù),提高了釋放應(yīng)用程序的空閑內(nèi)存的效率。
[0108]關(guān)于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
[0109]圖5是根據(jù)一示例性實施例示出的一種用于內(nèi)存優(yōu)化的裝置500的框圖。例如,裝置500可以是移動電話,計算機,數(shù)字廣播終端,消息收發(fā)設(shè)備,游戲控制臺,平板設(shè)備,醫(yī)療設(shè)備,健身設(shè)備,個人數(shù)字助理等。
[0110]參照圖5,裝置500可以包括以下一個或多個組件:處理組件502,存儲器504,電源組件506,多媒體組件508,音頻組件510,輸入/輸出(I/O)的接口 512,傳感器組件514,以及通信組件516。
[0111]處理組件502通??刂蒲b置500的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機操作和記錄操作相關(guān)聯(lián)的操作。處理組件502可以包括一個或多個處理器518來執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件502可以包括一個或多個模塊,便于處理組件502和其他組件之間的交互。例如,處理組件502可以包括多媒體模塊,以方便多媒體組件508和處理組件502之間的交互。
[0112]存儲器504被配置為存儲各種類型的數(shù)據(jù)以支持在裝置500的操作。這些數(shù)據(jù)的示例包括用于在裝置500上操作的任何應(yīng)用程序或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲器504可以由任何類型的易失性或非易失性存儲設(shè)備或者它們的組合實現(xiàn),如靜態(tài)隨機存取存儲器(SRAM),電可擦除可編程只讀存儲器(EEPROM),可擦除可編程只讀存儲器(EPROM),可編程只讀存儲器(PROM),只讀存儲器(ROM),磁存儲器,快閃存儲器,磁盤或光盤。
[0113]電源組件506為裝置500的各種組件提供電力。電源組件506可以包括電源管理系統(tǒng),一個或多個電源,及其他與為裝置500生成、管理和分配電力相關(guān)聯(lián)的組件。
[0114]多媒體組件508包括在所述裝置500和用戶之間的提供一個輸出接口的屏幕。在一些實施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實現(xiàn)為觸摸屏,以接收來自用戶的輸入信號。觸摸面板包括一個或多個觸摸傳感器以感測觸摸、滑動和觸摸面板上的手勢。所述觸摸傳感器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與所述觸摸或滑動操作相關(guān)的持續(xù)時間和壓力。在一些實施例中,多媒體組件508包括一個前置攝像頭和/或后置攝像頭。當裝置500處于操作模式,如拍攝模式或視頻模式時,前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個前置攝像頭和后置攝像頭可以是一個固定的光學透鏡系統(tǒng)或具有焦距和光學變焦能力。
[0115]音頻組件510被配置為輸出和/或輸入音頻信號。例如,音頻組件510包括一個麥克風(MIC),當裝置500處于操作模式,如呼叫模式、記錄模式和語音識別模式時,麥克風被配置為接收外部音頻信號。所接收的音頻信號可以被進一步存儲在存儲器504或經(jīng)由通信組件516發(fā)送。在一些實施例中,音頻組件510還包括一個揚聲器,用于輸出音頻信號。
[0116]I/O接口 512為處理組件502和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限于:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。
[0117]傳感器組件514包括一個或多個傳感器,用于為裝置500提供各個方面的狀態(tài)評估。例如,傳感器組件514可以檢測到裝置500的打開/關(guān)閉狀態(tài),組件的相對定位,例如所述組件為裝置500的顯示器和小鍵盤,傳感器組件514還可以檢測裝置500或裝置500一個組件的位置改變,用戶與裝置500接觸的存在或不存在,裝置500方位或加速/減速和裝置500的溫度變化。傳感器組件514可以包括接近傳感器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。傳感器組件514還可以包括光傳感器,如CMOS或CXD圖像傳感器,用于在成像應(yīng)用中使用。在一些實施例中,該傳感器組件514還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
[0118]通信組件516被配置為便于裝置500和其他設(shè)備之間有線或無線方式的通信。裝置500可以接入基于通信標準的無線網(wǎng)絡(luò),如WiFi,2G或3G,或它們的組合。在一個示例性實施例中,通信組件516經(jīng)由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號或廣播相關(guān)信息。在一個示例性實施例中,所述通信組件516還包括近場通信(NFC)模塊,以促進短程通信。例如,在NFC模塊可基于射頻識別(RFID)技術(shù),紅外數(shù)據(jù)協(xié)會(IrDA)技術(shù),超寬帶(UffB)技術(shù),藍牙(BT)技術(shù)和其他技術(shù)來實現(xiàn)。
[0119]在示例性實施例中,裝置500可以被一個或多個應(yīng)用專用集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處理設(shè)備(DSro)、可編程邏輯器件(PLD)、現(xiàn)場可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實現(xiàn),用于執(zhí)行上述方法。
[0120]在示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質(zhì),例如包括指令的存儲器504,上述指令可由裝置500的處理器518執(zhí)行以完成上述方法。例如,所述非臨時性計算機可讀存儲介質(zhì)可以是ROM、隨機存取存儲器(RAM)、CD-ROM、磁帶、軟盤和光數(shù)據(jù)存儲設(shè)備等。
[0121]本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里的公開的后,將容易想到本公開的其它實施方案。本申請旨在涵蓋本公開的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開的一般性原理并包括本公開未公開的本【技術(shù)領(lǐng)域】中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本公開的真正范圍和精神由下面的權(quán)利要求指出。
[0122]應(yīng)當理解的是,本公開并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進行各種修改和改變。本公開的范圍僅由所附的權(quán)利要求來限制。
【權(quán)利要求】
1.一種內(nèi)存優(yōu)化方法,其特征在于,包括: 接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,所述程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,所述空閑內(nèi)存是所述應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存; 通過所述內(nèi)存優(yōu)化代碼檢測所述應(yīng)用程序是否從前臺切換到后臺運行; 若通過所述內(nèi)存優(yōu)化代碼檢測出所述應(yīng)用程序從前臺切換到后臺運行,則通過所述應(yīng)用程序調(diào)用所述內(nèi)存釋放函數(shù),所述內(nèi)存釋放函數(shù)用于釋放所述空閑內(nèi)存。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,若所述內(nèi)存釋放函數(shù)是處于禁止編輯狀態(tài)的私有函數(shù),則所述方法還包括: 獲取所述應(yīng)用程序調(diào)用的公有函數(shù)的絕對地址,其中,所述公有函數(shù)具有調(diào)用所述內(nèi)存釋放函數(shù)的權(quán)限; 對所述公有函數(shù)的絕對地址進行顯示,所述公有函數(shù)的絕對地址用于指示計算所述內(nèi)存釋放函數(shù)的絕對地址且將所述內(nèi)存釋放函數(shù)的絕對地址添加到所述內(nèi)存優(yōu)化代碼中,所述內(nèi)存釋放函數(shù)的絕對地址等于所述公有函數(shù)的絕對地址加上所述公有函數(shù)和所述內(nèi)存釋放函數(shù)的相對地址,所述公有函數(shù)和所述內(nèi)存釋放函數(shù)的相對地址由預設(shè)的符號表提供。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述獲取所述應(yīng)用程序調(diào)用的公有函數(shù)的絕對地址,包括: 接收攜帶有所述程序標識和所述公有函數(shù)的函數(shù)標識的地址讀取指令; 在動態(tài)鏈接庫中,查找所述應(yīng)用程序調(diào)用的所述公有函數(shù)的絕對地址。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述通過所述應(yīng)用程序調(diào)用所述內(nèi)存釋放函數(shù),包括: 通過所述內(nèi)存優(yōu)化代碼將所述內(nèi)存釋放函數(shù)的絕對地址發(fā)送給所述應(yīng)用程序; 在所述內(nèi)存釋放函數(shù)的絕對地址的指示下,通過所述應(yīng)用程序調(diào)用所述內(nèi)存釋放函數(shù)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述內(nèi)存釋放函數(shù)是對處于允許編輯狀態(tài)的私有函數(shù)進行編輯后得到的公有函數(shù)。
6.一種內(nèi)存優(yōu)化裝置,其特征在于,包括: 代碼接收模塊,被配置為接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,所述程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,所述空閑內(nèi)存是所述應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存; 狀態(tài)檢測模塊,被配置為通過所述代碼接收模塊接收的所述內(nèi)存優(yōu)化代碼檢測所述應(yīng)用程序是否從前臺切換到后臺運行; 函數(shù)調(diào)用模塊,被配置為當所述狀態(tài)檢測模塊通過所述內(nèi)存優(yōu)化代碼檢測出所述應(yīng)用程序從前臺切換到后臺運行時,通過所述應(yīng)用程序調(diào)用所述內(nèi)存釋放函數(shù),所述內(nèi)存釋放函數(shù)用于釋放所述空閑內(nèi)存。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,當所述內(nèi)存釋放函數(shù)是處于禁止編輯狀態(tài)的私有函數(shù)時,所述裝置還包括: 地址獲取模塊,被配置為獲取所述應(yīng)用程序調(diào)用的公有函數(shù)的絕對地址,其中,所述公有函數(shù)具有調(diào)用所述內(nèi)存釋放函數(shù)的權(quán)限; 地址顯示模塊,被配置為對所述地址獲取模塊獲取的所述公有函數(shù)的絕對地址進行顯示,所述公有函數(shù)的絕對地址用于指示計算所述內(nèi)存釋放函數(shù)的絕對地址且將所述內(nèi)存釋放函數(shù)的絕對地址添加到所述內(nèi)存優(yōu)化代碼中,所述內(nèi)存釋放函數(shù)的絕對地址等于所述公有函數(shù)的絕對地址加上所述公有函數(shù)和所述內(nèi)存釋放函數(shù)的相對地址,所述公有函數(shù)和所述內(nèi)存釋放函數(shù)的相對地址由預設(shè)的符號表提供。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述地址獲取模塊,包括: 指令接收子模塊,被配置為接收攜帶有所述程序標識和所述公有函數(shù)的函數(shù)標識的地址讀取指令; 地址查找子模塊,被配置為在動態(tài)鏈接庫中,查找所述指令接收子模塊指示的所述應(yīng)用程序調(diào)用的所述公有函數(shù)的絕對地址。
9.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,所述函數(shù)調(diào)用模塊,包括: 地址發(fā)送子模塊,被配置為通過所述內(nèi)存優(yōu)化代碼將所述內(nèi)存釋放函數(shù)的絕對地址發(fā)送給所述應(yīng)用程序; 函數(shù)調(diào)用子模塊,被配置為在所述地址發(fā)送子模塊發(fā)送的所述內(nèi)存釋放函數(shù)的絕對地址的指示下,通過所述應(yīng)用程序調(diào)用所述內(nèi)存釋放函數(shù)。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述內(nèi)存釋放函數(shù)是對處于允許編輯狀態(tài)的私有函數(shù)進行編輯后得到的公有函數(shù)。
11.一種內(nèi)存優(yōu)化裝置,其特征在于,包括: 處理器; 用于存儲處理器可執(zhí)行指令的存儲器; 其中,所述處理器被配置為: 接收攜帶有程序標識和內(nèi)存釋放函數(shù)的內(nèi)存優(yōu)化代碼,所述程序標識用于標識需要釋放空閑內(nèi)存的應(yīng)用程序,所述空閑內(nèi)存是所述應(yīng)用程序在前臺運行時占用且在后臺運行時不需占用的內(nèi)存; 通過所述內(nèi)存優(yōu)化代碼檢測所述應(yīng)用程序是否從前臺切換到后臺運行; 若通過所述內(nèi)存優(yōu)化代碼檢測出所述應(yīng)用程序從前臺切換到后臺運行,則通過所述應(yīng)用程序調(diào)用所述內(nèi)存釋放函數(shù),所述內(nèi)存釋放函數(shù)用于釋放所述空閑內(nèi)存。
【文檔編號】G06F9/44GK104375828SQ201410584383
【公開日】2015年2月25日 申請日期:2014年10月27日 優(yōu)先權(quán)日:2014年10月27日
【發(fā)明者】閆昊, 邱峰, 張建春 申請人:小米科技有限責任公司