本發(fā)明涉及終端技術(shù)領(lǐng)域,具體而言,涉及一種應(yīng)用程序的管理方法、一種應(yīng)用程序的管理裝置和一種終端。
背景技術(shù):
目前,在終端的后臺(tái)總是開(kāi)啟大量的應(yīng)用程序,應(yīng)用程序在后臺(tái)運(yùn)行的同時(shí)會(huì)產(chǎn)生很多進(jìn)程或者服務(wù),往往這些進(jìn)程或者服務(wù)占據(jù)了許多的CPU(Central Processing Unit,中央處理單元)資源或者內(nèi)存,從而導(dǎo)致前臺(tái)運(yùn)行的應(yīng)用程序出現(xiàn)卡頓等現(xiàn)象,嚴(yán)重影響了用戶的體驗(yàn)。
因此,如何提高在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行效率,避免在前臺(tái)運(yùn)行的應(yīng)用程序出現(xiàn)卡頓的現(xiàn)象成為亟待解決的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明正是基于上述問(wèn)題,提出了一種新的技術(shù)方案,可以提高在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行效率,進(jìn)而有效地防止在前臺(tái)運(yùn)行的應(yīng)用程序出現(xiàn)卡頓的現(xiàn)象。
有鑒于此,本發(fā)明的第一方面提出了一種應(yīng)用程序的管理方法,包括:當(dāng)任一應(yīng)用程序在前臺(tái)運(yùn)行時(shí),在運(yùn)行鏈表中獲取與所述任一應(yīng)用程序不相關(guān)的目標(biāo)運(yùn)行實(shí)體;對(duì)所述目標(biāo)運(yùn)行實(shí)體進(jìn)行控制,以降低所述目標(biāo)運(yùn)行實(shí)體與CPU之間的交互頻率。
在該技術(shù)方案中,當(dāng)任一應(yīng)用程序在前臺(tái)運(yùn)行時(shí),確定與該任一應(yīng)用程序不相關(guān)的目標(biāo)運(yùn)行實(shí)體,其中,目標(biāo)運(yùn)行實(shí)體包括有進(jìn)程和服務(wù),然后對(duì)目標(biāo)運(yùn)行實(shí)體進(jìn)行限制以降低目標(biāo)運(yùn)行實(shí)體與CPU之間的交互頻率,這樣,在保證前臺(tái)運(yùn)行的應(yīng)用程序正常使用的同時(shí),可以節(jié)省出更多的內(nèi)存或者CPU資源,從而保證在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行效率,進(jìn)而有效地防止在前臺(tái)運(yùn)行的應(yīng)用程序出現(xiàn)卡頓的現(xiàn)象。
在上述技術(shù)方案中,優(yōu)選地,對(duì)所述目標(biāo)運(yùn)行實(shí)體進(jìn)行控制的步驟,具體包括:將所述目標(biāo)運(yùn)行實(shí)體掛起;或者在預(yù)定時(shí)間內(nèi)禁止所述目標(biāo)運(yùn)行實(shí)體與所述CPU之間進(jìn)行交互。
在該技術(shù)方案中,通過(guò)將目標(biāo)運(yùn)行實(shí)體掛起,即不執(zhí)行目標(biāo)運(yùn)行實(shí)體,或者在預(yù)定時(shí)間內(nèi)禁止目標(biāo)運(yùn)行實(shí)體與CPU之間進(jìn)行交互,從而實(shí)現(xiàn)了對(duì)目標(biāo)運(yùn)行實(shí)體的限制,進(jìn)而可以釋放出更多的內(nèi)存或者CPU資源。
在上述任一技術(shù)方案中,優(yōu)選地,所述運(yùn)行鏈表中存儲(chǔ)有所有啟動(dòng)的應(yīng)用程序的運(yùn)行實(shí)體,所述在運(yùn)行鏈表中獲取與所述任一應(yīng)用程序不相關(guān)的目標(biāo)運(yùn)行實(shí)體的步驟,具體包括:在所述運(yùn)行鏈表中查找所述目標(biāo)運(yùn)行實(shí)體。
在該技術(shù)方案中,通過(guò)將所有啟動(dòng)的應(yīng)用程序的運(yùn)行實(shí)體都存儲(chǔ)在運(yùn)行鏈表中,例如,當(dāng)每啟動(dòng)一個(gè)應(yīng)用程序時(shí),就將該應(yīng)用程序的運(yùn)行實(shí)體和該應(yīng)用程序的名稱對(duì)應(yīng)存儲(chǔ)到運(yùn)行鏈表中,以在運(yùn)行鏈表中比較全面地查找出與在前臺(tái)運(yùn)行的應(yīng)用程序不相關(guān)的運(yùn)行實(shí)體。
在上述任一技術(shù)方案中,優(yōu)選地,所述在所述運(yùn)行鏈表中查找所述目標(biāo)運(yùn)行實(shí)體的步驟之前,還包括:判斷是否有應(yīng)用程序在后臺(tái)運(yùn)行;若有應(yīng)用程序在后臺(tái)運(yùn)行,則在所述運(yùn)行鏈表中查找所述目標(biāo)運(yùn)行實(shí)體;若沒(méi)有應(yīng)用程序在后臺(tái)運(yùn)行,則確定在所述運(yùn)行鏈表中不存在所述目標(biāo)運(yùn)行實(shí)體。
在該技術(shù)方案中,若有應(yīng)用程序在后臺(tái)運(yùn)行,說(shuō)明后臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體會(huì)占用內(nèi)存或CPU資源,則對(duì)后臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體進(jìn)行限制,若沒(méi)有應(yīng)用程序在后臺(tái)運(yùn)行,說(shuō)明沒(méi)有后臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體占用內(nèi)存或CPU資源,在運(yùn)行鏈表中僅有在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體,不存在與任一應(yīng)用程序不相關(guān)的運(yùn)行實(shí)體,不需要查找運(yùn)行鏈表來(lái)獲取目標(biāo)運(yùn)行實(shí)體,從而保證了在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行可靠性。
在上述任一技術(shù)方案中,優(yōu)選地,還包括:當(dāng)已啟動(dòng)的應(yīng)用程序退出運(yùn)行時(shí),將所述運(yùn)行鏈表中的所述已啟動(dòng)的應(yīng)用程序的運(yùn)行實(shí)體刪除。
在該技術(shù)方案中,在已啟動(dòng)的應(yīng)用程序退出時(shí),說(shuō)明該應(yīng)用程序的運(yùn)行實(shí)體不會(huì)占用內(nèi)存或者CPU資源,不需要再對(duì)該應(yīng)用程序的運(yùn)行實(shí)體進(jìn)行限制,則將該應(yīng)用程序的運(yùn)行實(shí)體刪除,避免運(yùn)行鏈表中存儲(chǔ)有過(guò)多的冗余信息而導(dǎo)致在運(yùn)行鏈表中獲取目標(biāo)運(yùn)行實(shí)體時(shí)的效率比較低。
本發(fā)明的第二方面提出了一種應(yīng)用程序的管理裝置,包括:獲取單元,用于當(dāng)任一應(yīng)用程序在前臺(tái)運(yùn)行時(shí),在運(yùn)行鏈表中獲取與所述任一應(yīng)用程序不相關(guān)的目標(biāo)運(yùn)行實(shí)體;控制單元,用于對(duì)所述目標(biāo)運(yùn)行實(shí)體進(jìn)行控制,以降低所述目標(biāo)運(yùn)行實(shí)體與CPU之間的交互頻率。
在該技術(shù)方案中,當(dāng)任一應(yīng)用程序在前臺(tái)運(yùn)行時(shí),確定與該任一應(yīng)用程序不相關(guān)的目標(biāo)運(yùn)行實(shí)體,其中,目標(biāo)運(yùn)行實(shí)體包括有進(jìn)程和服務(wù),然后對(duì)目標(biāo)運(yùn)行實(shí)體進(jìn)行限制以降低目標(biāo)運(yùn)行實(shí)體與CPU之間的交互頻率,這樣,在保證前臺(tái)運(yùn)行的應(yīng)用程序正常使用的同時(shí),可以節(jié)省出更多的內(nèi)存或者CPU資源,從而保證在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行效率,進(jìn)而有效地防止在前臺(tái)運(yùn)行的應(yīng)用程序出現(xiàn)卡頓的現(xiàn)象。
在上述技術(shù)方案中,優(yōu)選地,所述控制單元具體用于,將所述目標(biāo)運(yùn)行實(shí)體掛起,或者在預(yù)定時(shí)間內(nèi)禁止所述目標(biāo)運(yùn)行實(shí)體與所述CPU之間進(jìn)行交互。
在該技術(shù)方案中,通過(guò)將目標(biāo)運(yùn)行實(shí)體掛起,即不執(zhí)行目標(biāo)運(yùn)行實(shí)體,或者在預(yù)定時(shí)間內(nèi)禁止目標(biāo)運(yùn)行實(shí)體與CPU之間進(jìn)行交互,從而實(shí)現(xiàn)了對(duì)目標(biāo)運(yùn)行實(shí)體的限制,進(jìn)而可以釋放出更多的內(nèi)存或者CPU資源。
在上述任一技術(shù)方案中,優(yōu)選地,所述運(yùn)行鏈表中存儲(chǔ)有所有啟動(dòng)的應(yīng)用程序的運(yùn)行實(shí)體,所述獲取單元包括:查找子單元,用于在所述運(yùn)行鏈表中查找所述目標(biāo)運(yùn)行實(shí)體。
在該技術(shù)方案中,通過(guò)將所有啟動(dòng)的應(yīng)用程序的運(yùn)行實(shí)體都存儲(chǔ)在運(yùn)行鏈表中,例如,當(dāng)每啟動(dòng)一個(gè)應(yīng)用程序時(shí),就將該應(yīng)用程序的運(yùn)行實(shí)體和該應(yīng)用程序的名稱對(duì)應(yīng)存儲(chǔ)到運(yùn)行鏈表中,以在運(yùn)行鏈表中比較全面地查找出與在前臺(tái)運(yùn)行的應(yīng)用程序不相關(guān)的運(yùn)行實(shí)體。
在上述任一技術(shù)方案中,優(yōu)選地,還包括:判斷單元,用于判斷是否有應(yīng)用程序在后臺(tái)運(yùn)行;若所述判斷單元判定有應(yīng)用程序在后臺(tái)運(yùn)行,則所述查找子單元在所述運(yùn)行鏈表中查找所述目標(biāo)運(yùn)行實(shí)體;若所述判斷單元判定沒(méi)有應(yīng)用程序在后臺(tái)運(yùn)行,則所述查找子單元確定在所述運(yùn)行鏈表中不存在所述目標(biāo)運(yùn)行實(shí)體。
在該技術(shù)方案中,若有應(yīng)用程序在后臺(tái)運(yùn)行,說(shuō)明后臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體會(huì)占用內(nèi)存或CPU資源,則對(duì)后臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體進(jìn)行限制,若沒(méi)有應(yīng)用程序在后臺(tái)運(yùn)行,說(shuō)明沒(méi)有后臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體占用內(nèi)存或CPU資源,在運(yùn)行鏈表中僅有在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體,不存在與任一應(yīng)用程序不相關(guān)的運(yùn)行實(shí)體,不需要查找運(yùn)行鏈表來(lái)獲取目標(biāo)運(yùn)行實(shí)體,從而保證了在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行可靠性。
在上述任一技術(shù)方案中,優(yōu)選地,還包括:刪除單元,用于當(dāng)已啟動(dòng)的應(yīng)用程序退出運(yùn)行時(shí),將所述運(yùn)行鏈表中的所述已啟動(dòng)的應(yīng)用程序的運(yùn)行實(shí)體刪除。
在該技術(shù)方案中,在已啟動(dòng)的應(yīng)用程序退出時(shí),說(shuō)明該應(yīng)用程序的運(yùn)行實(shí)體不會(huì)占用內(nèi)存或者CPU資源,不需要再對(duì)該應(yīng)用程序的運(yùn)行實(shí)體進(jìn)行限制,則將該應(yīng)用程序的運(yùn)行實(shí)體刪除,避免運(yùn)行鏈表中存儲(chǔ)有過(guò)多的冗余信息而導(dǎo)致在運(yùn)行鏈表中獲取目標(biāo)運(yùn)行實(shí)體時(shí)的效率比較低。
本發(fā)明的第三方面提出了一種終端,包括上述技術(shù)方案中任一項(xiàng)所述的應(yīng)用程序的管理裝置,因此,該終端具有和上述技術(shù)方案中任一項(xiàng)所述的應(yīng)用程序的管理裝置相同的技術(shù)效果,在此不再贅述。
通過(guò)本發(fā)明的技術(shù)方案,可以提高在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行效率,進(jìn)而有效地防止在前臺(tái)運(yùn)行的應(yīng)用程序出現(xiàn)卡頓的現(xiàn)象。
附圖說(shuō)明
圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的應(yīng)用程序的管理方法的流程示意圖;
圖2示出了根據(jù)本發(fā)明的另一個(gè)實(shí)施例的應(yīng)用程序的管理方法的流程示意圖;
圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的應(yīng)用程序的管理裝置的結(jié)構(gòu)示意圖;
圖4示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的終端的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了可以更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)的實(shí)施例及實(shí)施例中的特征可以相互組合。
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來(lái)實(shí)施,因此,本發(fā)明的保護(hù)范圍并不受下面公開(kāi)的具體實(shí)施例的限制。
圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的應(yīng)用程序的管理方法的流程示意圖。
如圖1所示,根據(jù)本發(fā)明的一個(gè)實(shí)施例的應(yīng)用程序的管理方法,包括:
步驟102,當(dāng)任一應(yīng)用程序在前臺(tái)運(yùn)行時(shí),在運(yùn)行鏈表中獲取與所述任一應(yīng)用程序不相關(guān)的目標(biāo)運(yùn)行實(shí)體。
優(yōu)選地,所述運(yùn)行鏈表中存儲(chǔ)有所有啟動(dòng)的應(yīng)用程序的運(yùn)行實(shí)體。
將所有啟動(dòng)的應(yīng)用程序的運(yùn)行實(shí)體均存儲(chǔ)在運(yùn)行鏈表中,例如,當(dāng)每啟動(dòng)一個(gè)應(yīng)用程序時(shí),就將該應(yīng)用程序的運(yùn)行實(shí)體和該應(yīng)用程序的名稱對(duì)應(yīng)存儲(chǔ)到運(yùn)行鏈表中。
當(dāng)然,運(yùn)行鏈表也可以預(yù)先存儲(chǔ)有所有應(yīng)用程序的運(yùn)行實(shí)體,不會(huì)隨著應(yīng)用程序的啟動(dòng)和退出而發(fā)生更改。
優(yōu)選地,所述在運(yùn)行鏈表中獲取與所述任一應(yīng)用程序不相關(guān)的目標(biāo)運(yùn)行實(shí)體的步驟,具體包括:在所述運(yùn)行鏈表中查找所述目標(biāo)運(yùn)行實(shí)體。
優(yōu)選地,所述在所述運(yùn)行鏈表中查找所述目標(biāo)運(yùn)行實(shí)體的步驟之前,還包括:判斷是否有應(yīng)用程序在后臺(tái)運(yùn)行;若有應(yīng)用程序在后臺(tái)運(yùn)行,則在所述運(yùn)行鏈表中查找所述目標(biāo)運(yùn)行實(shí)體;若沒(méi)有應(yīng)用程序在后臺(tái)運(yùn)行,則確定在所述運(yùn)行鏈表中不存在所述目標(biāo)運(yùn)行實(shí)體。
若有應(yīng)用程序在后臺(tái)運(yùn)行,說(shuō)明后臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體會(huì)占用內(nèi)存或CPU資源,則對(duì)后臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體進(jìn)行限制,若沒(méi)有應(yīng)用程序在后臺(tái)運(yùn)行,說(shuō)明沒(méi)有后臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體占用內(nèi)存或CPU資源,在運(yùn)行鏈表中僅有在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體,不存在與任一應(yīng)用程序不相關(guān)的運(yùn)行實(shí)體,不需要查找運(yùn)行鏈表來(lái)獲取目標(biāo)運(yùn)行實(shí)體,從而保證了在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行可靠性。
步驟104,對(duì)所述目標(biāo)運(yùn)行實(shí)體進(jìn)行控制,以降低所述目標(biāo)運(yùn)行實(shí)體與CPU之間的交互頻率。
優(yōu)選地,對(duì)所述目標(biāo)運(yùn)行實(shí)體進(jìn)行控制的步驟,具體包括:將所述目標(biāo)運(yùn)行實(shí)體掛起;或者在預(yù)定時(shí)間內(nèi)禁止所述目標(biāo)運(yùn)行實(shí)體與所述CPU之間進(jìn)行交互。
通過(guò)將目標(biāo)運(yùn)行實(shí)體掛起,即不執(zhí)行目標(biāo)運(yùn)行實(shí)體,或者在預(yù)定時(shí)間內(nèi)禁止目標(biāo)運(yùn)行實(shí)體與CPU之間進(jìn)行交互,從而實(shí)現(xiàn)了對(duì)目標(biāo)運(yùn)行實(shí)體的限制,進(jìn)而可以釋放出更多的內(nèi)存或者CPU資源。
優(yōu)選地,當(dāng)已啟動(dòng)的應(yīng)用程序退出運(yùn)行時(shí),將所述運(yùn)行鏈表中的所述已啟動(dòng)的應(yīng)用程序的運(yùn)行實(shí)體刪除。
在已啟動(dòng)的應(yīng)用程序退出時(shí),說(shuō)明該應(yīng)用程序的運(yùn)行實(shí)體不會(huì)占用內(nèi)存或者CPU資源,不需要再對(duì)該應(yīng)用程序的運(yùn)行實(shí)體進(jìn)行限制,則將該應(yīng)用程序的運(yùn)行實(shí)體刪除,避免運(yùn)行鏈表中存儲(chǔ)有過(guò)多的冗余信息而導(dǎo)致在運(yùn)行鏈表中獲取目標(biāo)運(yùn)行實(shí)體時(shí)的效率比較低。
在上述技術(shù)方案中,當(dāng)任一應(yīng)用程序在前臺(tái)運(yùn)行時(shí),確定與該任一應(yīng)用程序不相關(guān)的目標(biāo)運(yùn)行實(shí)體,其中,目標(biāo)運(yùn)行實(shí)體包括有進(jìn)程和服務(wù),然后對(duì)目標(biāo)運(yùn)行實(shí)體進(jìn)行限制以降低目標(biāo)運(yùn)行實(shí)體與CPU之間的交互頻率,這樣,在保證前臺(tái)運(yùn)行的應(yīng)用程序正常使用的同時(shí),可以節(jié)省出更多的內(nèi)存或者CPU資源,從而保證在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行效率,進(jìn)而有效地防止在前臺(tái)運(yùn)行的應(yīng)用程序出現(xiàn)卡頓的現(xiàn)象。
下面通過(guò)兩個(gè)實(shí)施例來(lái)詳細(xì)說(shuō)明上述技術(shù)方案:
實(shí)施例一:當(dāng)微信切換到前臺(tái)運(yùn)行時(shí),將微信運(yùn)行時(shí)產(chǎn)生的進(jìn)程和服務(wù)與運(yùn)行鏈表中存儲(chǔ)的進(jìn)程和服務(wù)進(jìn)行比較,以獲取到與微信不相關(guān)的進(jìn)程和服務(wù),例如,在運(yùn)行鏈表中獲取到進(jìn)程A、進(jìn)程B、服務(wù)C,然后掛起進(jìn)程A、進(jìn)程B、服務(wù)C,以避免進(jìn)程A、進(jìn)程B、服務(wù)C分別與CPU之間交互。另外,當(dāng)微信切換到后臺(tái)運(yùn)行,微博切換到前臺(tái)運(yùn)行時(shí),將重新遍歷運(yùn)行鏈表,以找出需要限制的和前臺(tái)運(yùn)行的微博不相關(guān)的服務(wù)和進(jìn)程。
實(shí)施例二:當(dāng)首次啟動(dòng)一個(gè)應(yīng)用程序時(shí),將新建一個(gè)鏈表,獲取該應(yīng)用程序在運(yùn)行時(shí)產(chǎn)生的進(jìn)程和服務(wù),將該應(yīng)用程序的進(jìn)程、服務(wù)、應(yīng)用名稱對(duì)應(yīng)存儲(chǔ)到新建的鏈表中。后期若啟動(dòng)其他的應(yīng)用程序,直接將其他的應(yīng)用程序的進(jìn)程、服務(wù)、應(yīng)用名稱對(duì)應(yīng)存儲(chǔ)到上述中的鏈表中。當(dāng)有任一應(yīng)用程序(例如淘寶)在前臺(tái)運(yùn)行時(shí),在鏈表中獲取到與任一應(yīng)用程序的進(jìn)程和服務(wù)不相關(guān)的目標(biāo)進(jìn)程和目標(biāo)服務(wù),禁止目標(biāo)進(jìn)程與CPU之間交互,以及禁止目標(biāo)服務(wù)與CPU之間交互。當(dāng)任一應(yīng)用程序退出運(yùn)行時(shí),將鏈表中的任一應(yīng)用程序的進(jìn)程和服務(wù)刪除。
圖2示出了根據(jù)本發(fā)明的另一個(gè)實(shí)施例的應(yīng)用程序的管理方法的流程示意圖。
如圖2所示,根據(jù)本發(fā)明的另一個(gè)實(shí)施例的應(yīng)用程序的管理方法,包括:
步驟202,打開(kāi)應(yīng)用程序A。
步驟204,將應(yīng)用程序A的服務(wù)、進(jìn)程、和應(yīng)用程序名稱對(duì)應(yīng)添加到鏈表APP_MESG_LIST中。
步驟206,判斷應(yīng)用程序A是否在前臺(tái)運(yùn)行,若應(yīng)用程序A在前臺(tái)運(yùn)行,則進(jìn)入步驟214,否則,進(jìn)入步驟208。
步驟208,判斷應(yīng)用程序A是否退出,若應(yīng)用程序A退出,則進(jìn)入步驟210,否則,進(jìn)入步驟212。
步驟210,將鏈表中的應(yīng)用程序A的進(jìn)程和服務(wù)刪除。
步驟212,不做處理。
步驟214,判斷后臺(tái)是否有應(yīng)用程序在運(yùn)行,若后臺(tái)有應(yīng)用程序在運(yùn)行,則進(jìn)入步驟216,否則,進(jìn)入步驟212。
步驟216,將應(yīng)用程序A的服務(wù)、進(jìn)程與鏈表中的服務(wù)、進(jìn)程進(jìn)行比較。
步驟218,判斷在鏈表中是否有與應(yīng)用程序A不相關(guān)的服務(wù)、進(jìn)程,若在鏈表中有與應(yīng)用程序A不相關(guān)的服務(wù)、進(jìn)程,則進(jìn)入步驟220,若在鏈表中沒(méi)有與應(yīng)用程序A不相關(guān)的服務(wù)、進(jìn)程,則進(jìn)入步驟212。
步驟220,在鏈表中獲取與應(yīng)用程序A不相關(guān)的服務(wù)、進(jìn)程。
步驟222,對(duì)獲取到的服務(wù)、進(jìn)程進(jìn)行限制。比如,禁止該服務(wù)、進(jìn)程與CPU之間進(jìn)行交互,或者將服務(wù)、進(jìn)程掛起,以避免服務(wù)、進(jìn)程與CPU之間進(jìn)行交互。
圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的應(yīng)用程序的管理裝置的結(jié)構(gòu)示意圖。
如圖3所示,根據(jù)本發(fā)明的一個(gè)實(shí)施例的應(yīng)用程序的管理裝置300,包括:獲取單元302和控制單元304。
獲取單元302,用于當(dāng)任一應(yīng)用程序在前臺(tái)運(yùn)行時(shí),在運(yùn)行鏈表中獲取與所述任一應(yīng)用程序不相關(guān)的目標(biāo)運(yùn)行實(shí)體。
優(yōu)選地,所述運(yùn)行鏈表中存儲(chǔ)有所有啟動(dòng)的應(yīng)用程序的運(yùn)行實(shí)體。
將所有啟動(dòng)的應(yīng)用程序的運(yùn)行實(shí)體均存儲(chǔ)在運(yùn)行鏈表中,例如,當(dāng)每啟動(dòng)一個(gè)應(yīng)用程序時(shí),就將該應(yīng)用程序的運(yùn)行實(shí)體和該應(yīng)用程序的名稱對(duì)應(yīng)存儲(chǔ)到運(yùn)行鏈表中。
當(dāng)然,運(yùn)行鏈表也可以預(yù)先存儲(chǔ)有所有應(yīng)用程序的運(yùn)行實(shí)體,不會(huì)隨著應(yīng)用程序的啟動(dòng)和退出而發(fā)生更改。
優(yōu)選地,獲取單元302包括:查找子單元3022,用于在所述運(yùn)行鏈表中查找所述目標(biāo)運(yùn)行實(shí)體。
優(yōu)選地,應(yīng)用程序的管理裝置300還包括:判斷單元308,用于判斷是否有應(yīng)用程序在后臺(tái)運(yùn)行;若所述判斷單元308判定有應(yīng)用程序在后臺(tái)運(yùn)行,則所述查找子單元3022在所述運(yùn)行鏈表中查找所述目標(biāo)運(yùn)行實(shí)體;若所述判斷單元308判定沒(méi)有應(yīng)用程序在后臺(tái)運(yùn)行,則所述查找子單元3022確定在所述運(yùn)行鏈表中不存在所述目標(biāo)運(yùn)行實(shí)體。
若有應(yīng)用程序在后臺(tái)運(yùn)行,說(shuō)明后臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體會(huì)占用內(nèi)存或CPU資源,則對(duì)后臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體進(jìn)行限制,若沒(méi)有應(yīng)用程序在后臺(tái)運(yùn)行,說(shuō)明沒(méi)有后臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體占用內(nèi)存或CPU資源,在運(yùn)行鏈表中僅有在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行實(shí)體,不存在與任一應(yīng)用程序不相關(guān)的運(yùn)行實(shí)體,不需要查找運(yùn)行鏈表來(lái)獲取目標(biāo)運(yùn)行實(shí)體,從而保證了在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行可靠性。
控制單元304,用于對(duì)所述目標(biāo)運(yùn)行實(shí)體進(jìn)行控制,以降低所述目標(biāo)運(yùn)行實(shí)體與CPU之間的交互頻率。
優(yōu)選地,控制單元304具體用于,將所述目標(biāo)運(yùn)行實(shí)體掛起,或者在預(yù)定時(shí)間內(nèi)禁止所述目標(biāo)運(yùn)行實(shí)體與所述CPU之間進(jìn)行交互。
通過(guò)將目標(biāo)運(yùn)行實(shí)體掛起,即不執(zhí)行目標(biāo)運(yùn)行實(shí)體,或者在預(yù)定時(shí)間內(nèi)禁止目標(biāo)運(yùn)行實(shí)體之間進(jìn)行交互,從而實(shí)現(xiàn)了對(duì)目標(biāo)運(yùn)行實(shí)體的限制,進(jìn)而可以釋放出更多的內(nèi)存或者CPU資源。
優(yōu)選地,應(yīng)用程序的管理裝置300還包括:刪除單元310,用于當(dāng)已啟動(dòng)的應(yīng)用程序退出運(yùn)行時(shí),將所述運(yùn)行鏈表中的所述已啟動(dòng)的應(yīng)用程序的運(yùn)行實(shí)體刪除。
在已啟動(dòng)的應(yīng)用程序退出時(shí),說(shuō)明該應(yīng)用程序的運(yùn)行實(shí)體不會(huì)占用內(nèi)存或者CPU資源,不需要再對(duì)該應(yīng)用程序的運(yùn)行實(shí)體進(jìn)行限制,則將該應(yīng)用程序的運(yùn)行實(shí)體刪除,避免運(yùn)行鏈表中存儲(chǔ)有過(guò)多的冗余信息而導(dǎo)致在運(yùn)行鏈表中獲取目標(biāo)運(yùn)行實(shí)體時(shí)的效率比較低。
在上述技術(shù)方案中,當(dāng)任一應(yīng)用程序在前臺(tái)運(yùn)行時(shí),確定與該任一應(yīng)用程序不相關(guān)的目標(biāo)運(yùn)行實(shí)體,其中,目標(biāo)運(yùn)行實(shí)體包括有進(jìn)程和服務(wù),然后對(duì)目標(biāo)運(yùn)行實(shí)體進(jìn)行限制以降低目標(biāo)運(yùn)行實(shí)體與CPU之間的交互頻率,這樣,在保證前臺(tái)運(yùn)行的應(yīng)用程序正常使用的同時(shí),可以節(jié)省出更多的內(nèi)存或者CPU資源,從而保證在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行效率,進(jìn)而有效地防止在前臺(tái)運(yùn)行的應(yīng)用程序出現(xiàn)卡頓的現(xiàn)象。
下面通過(guò)兩個(gè)實(shí)施例來(lái)詳細(xì)說(shuō)明上述技術(shù)方案:
實(shí)施例一:當(dāng)微信切換到前臺(tái)運(yùn)行時(shí),將微信運(yùn)行時(shí)產(chǎn)生的進(jìn)程和服務(wù)與運(yùn)行鏈表中存儲(chǔ)的進(jìn)程和服務(wù)進(jìn)行比較,以獲取到與微信不相關(guān)的進(jìn)程和服務(wù),例如,在運(yùn)行鏈表中獲取到進(jìn)程A、進(jìn)程B、服務(wù)C,然后掛起進(jìn)程A、進(jìn)程B、服務(wù)C,以避免進(jìn)程A、進(jìn)程B、服務(wù)C分別與CPU之間交互。另外,當(dāng)微信切換到后臺(tái)運(yùn)行,微博切換到前臺(tái)運(yùn)行時(shí),將重新遍歷運(yùn)行鏈表,以找出需要限制的和前臺(tái)運(yùn)行的微博不相關(guān)的服務(wù)和進(jìn)程。
實(shí)施例二:當(dāng)首次啟動(dòng)一個(gè)應(yīng)用程序時(shí),將新建一個(gè)鏈表,獲取該應(yīng)用程序在運(yùn)行時(shí)產(chǎn)生的進(jìn)程和服務(wù),將該應(yīng)用程序的進(jìn)程、服務(wù)、應(yīng)用名稱對(duì)應(yīng)存儲(chǔ)到新建的鏈表中。后期若啟動(dòng)其他的應(yīng)用程序,直接將其他的應(yīng)用程序的進(jìn)程、服務(wù)、應(yīng)用名稱對(duì)應(yīng)存儲(chǔ)到上述中的鏈表中。當(dāng)有任一應(yīng)用程序(例如淘寶)在前臺(tái)運(yùn)行時(shí),在鏈表中獲取到與任一應(yīng)用程序的進(jìn)程和服務(wù)不相關(guān)的目標(biāo)進(jìn)程和目標(biāo)服務(wù),禁止目標(biāo)進(jìn)程與CPU之間交互,以及禁止目標(biāo)服務(wù)與CPU之間交互。當(dāng)任一應(yīng)用程序退出運(yùn)行時(shí),將鏈表中的任一應(yīng)用程序的進(jìn)程和服務(wù)刪除。
圖4示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的終端的結(jié)構(gòu)示意圖。
如圖4所示,根據(jù)本發(fā)明的一個(gè)實(shí)施例的終端400,包括上述技術(shù)方案中任一項(xiàng)所述的應(yīng)用程序的管理裝置300,因此,該終端400具有和上述技術(shù)方案中任一項(xiàng)所述的應(yīng)用程序的管理裝置300相同的技術(shù)效果,在此不再贅述。
以上結(jié)合附圖詳細(xì)說(shuō)明了本發(fā)明的技術(shù)方案,通過(guò)上述技術(shù)方案,可以提高在前臺(tái)運(yùn)行的應(yīng)用程序的運(yùn)行效率,進(jìn)而有效地防止在前臺(tái)運(yùn)行的應(yīng)用程序出現(xiàn)卡頓的現(xiàn)象。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。