本發(fā)明涉及終端技術領域,尤其涉及一種基于終端的喚醒鎖控制裝置、裝置及終端。
背景技術:
安卓系統(tǒng)(Android)是目前終端上廣泛使用的操作系統(tǒng),通常用戶會在終端上設置多個應用程序(Application,APP)。為了確保終端上設置的應用程序正常運行,安卓系統(tǒng)提供了喚醒鎖(WakeLock)機制。終端上設置的應用程序可以向安卓系統(tǒng)申請喚醒鎖,安卓系統(tǒng)為應用程序及其調(diào)用的服務分配喚醒鎖,只要被持有喚醒鎖的數(shù)量大于0,安卓系統(tǒng)就無法進入休眠狀態(tài),也就是說,只有當終端上設置的任一應用程序及其調(diào)用的服務都未持有喚醒鎖時,安卓系統(tǒng)才能進入休眠狀態(tài)。
為了阻止安卓系統(tǒng)進入休眠狀態(tài),有很多應用程序及其調(diào)用的服務存在不合理持有喚醒鎖的情況,例如,游戲類應用程序在長時間后臺運行時仍然持有喚醒鎖、電子書類應用程序調(diào)用的更新服務長時間持有喚醒鎖等等。由于應用程序及其調(diào)用的服務長時間不合理持有喚醒鎖,使得滅屏待機電流從十幾毫安提高到了幾十毫安甚至100多毫安,這就會增加終端能耗,還會過多占用系統(tǒng)資源。
技術實現(xiàn)要素:
本發(fā)明實施例中提供了一種基于終端的喚醒鎖控制方法、裝置及終端,用于解決現(xiàn)有技術中存在的應用程序及其調(diào)用的服務長時間不合理持有喚醒鎖導致的增加終端能耗,過多占用系統(tǒng)資源的問題。
第一方面,本發(fā)明實施例提供一種基于終端的喚醒鎖控制方法,包括:
獲取后臺運行的第一應用程序;
判斷所述第一應用程序是否符合預設篩選條件;
選取不符合所述預設篩選條件的第一應用程序,得到第二應用程序;
強制釋放所述第二應用程序及其調(diào)用的服務持有的喚醒鎖。
結合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述預設篩選條件包括預設時長、預設應用場景名單和黑名單,判斷所述第一應用程序是否符合預設篩選條件,具體包括:
統(tǒng)計所述第一應用程序的后臺運行時長,判斷所述第一應用程序的后臺運行時長是否超過所述預設時長;
根據(jù)所述第一應用程序調(diào)用的接口確定所述第一應用程序的應用場景,將所述第一應用程序的應用場景與所述預設應用場景名單進行比對;以及,
將所述第一應用程序與所述黑名單比對;
確定后臺運行時長超過預設時長、應用場景未保存在所述預設應用場景名單中且未保存在所述黑名單中的第一應用程序不符合所述預設篩選條件。
結合第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,還包括:
確定后臺運行時長小于預設時長、應用場景保存在所述預設應用場景名單中或者保存在所述黑名單中的第一應用程序符合所述預設篩選條件。
結合第一方面、第一方面的第一種可能的實現(xiàn)方式或者第一方面的第二種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,強制釋放所述第二應用程序及其調(diào)用的服務持有的喚醒鎖之前,還包括:
保存所述第二應用程序及其調(diào)用的服務持有的喚醒鎖的特征信息,所述特征信息包括對應第二應用程序的標識;
強制釋放所述第二應用程序及其調(diào)用的服務持有的喚醒鎖之后,還包括:
將所述第二應用程序設置為代理鎖狀態(tài)。
結合第一方面的第三種可能的實現(xiàn)方式,在第一方面的第四種可能的實現(xiàn)方式中,還包括:
若接收到攜帶所述第二應用程序的標識的喚醒鎖申請請求,則在包括所述第二應用程序的標識的特征信息中記錄所述喚醒鎖申請請求,不執(zhí)行所述喚醒鎖申請請求;
若接收到攜帶所述第二應用程序的標識的喚醒鎖變更請求,則在包括所述第二應用程序的標識的特征信息中記錄所述喚醒鎖變更請求,不執(zhí)行所述喚醒鎖變更請求;
若接收到攜帶所述第二應用程序的標識的喚醒鎖刪除請求,則刪除包括所述第二應用程序的標識的特征信息,不執(zhí)行所述喚醒鎖刪除請求。
結合第一方面的第三種可能的實現(xiàn)方式,在第一方面的第五種可能的實現(xiàn)方式中,還包括:
判斷所述第二應用程序是否符合強制恢復條件;
若確定所述第二應用程序符合強制恢復條件,則根據(jù)包括所述第二應用程序的標識的特征信息,強制恢復所述第二應用程序及其調(diào)用的服務持有的喚醒鎖;
取消所述第二應用程序的代理鎖狀態(tài)。
結合第一方面的第五種可能的實現(xiàn)方式,在第一方面的第六種可能的實現(xiàn)方式中,所述強制恢復條件包括前臺運行或者被調(diào)用,判斷所述第二應用程序是否符合強制恢復條件,具體包括:
監(jiān)控所述第二應用程序是否轉換為前臺運行或者所述第二應用程序是否被調(diào)用;
若監(jiān)控到所述第二應用程序轉換為前臺運行或者所述第二應用程序被調(diào)用,則確定所述第二應用程序符合所述強制恢復條件。
結合第一方面的第六種可能的實現(xiàn)方式,在第一方面的第七種可能的實現(xiàn)方式中,還包括:
若監(jiān)控到所述第二應用程序未轉換為前臺運行且所述第二應用程序未被調(diào)用,則確定所述第二應用程序不符合所述強制恢復條件。
第二方面,本發(fā)明實施例提供一種基于終端的喚醒鎖控制裝置,包括:
獲取模塊,用于獲取后臺運行的第一應用程序;
第一判斷模塊,用于判斷所述第一應用程序是否符合預設篩選條件;
選取模塊,用于選取不符合所述預設篩選條件的第一應用程序,得到第二應用程序;
釋放模塊,用于強制釋放所述第二應用程序及其調(diào)用的服務持有的喚醒鎖。
結合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,所述預設篩選條件包括預設時長、預設應用場景名單和黑名單,所述第一判斷模塊,用于判斷所述第一應用程序是否符合預設篩選條件,具體用于:
統(tǒng)計所述第一應用程序的后臺運行時長,判斷所述第一應用程序的后臺運行時長是否超過所述預設時長;
根據(jù)所述第一應用程序調(diào)用的接口確定所述第一應用程序的應用場景,將所述第一應用程序的應用場景與所述預設應用場景名單進行比對;以及,
將所述第一應用程序與所述黑名單比對;
確定后臺運行時長超過預設時長、應用場景未保存在所述預設應用場景名單中且未保存在所述黑名單中的第一應用程序不符合所述預設篩選條件。
結合第二方面的第一種可能的實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中,還包括:
確定模塊,用于確定后臺運行時長小于預設時長、應用場景保存在所述預設應用場景名單中或者保存在所述黑名單中的第一應用程序符合所述預設篩選條件。
結合第二方面、第二方面的第一種可能的實現(xiàn)方式或者第二方面的第二種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,還包括:
保存模塊,用于在所述釋放模塊強制釋放所述第二應用程序及其調(diào)用的服務持有的喚醒鎖之前,保存所述第二應用程序及其調(diào)用的服務持有的喚醒鎖的特征信息,所述特征信息包括對應第二應用程序的標識;以及,
設置模塊,用于在所述釋放模塊強制釋放所述第二應用程序及其調(diào)用的服務持有的喚醒鎖之后,將所述第二應用程序設置為代理鎖狀態(tài)。
結合第二方面的第三種可能的實現(xiàn)方式,在第二方面的第四種可能的實現(xiàn)方式中,還包括處理模塊,用于:
若接收到攜帶所述第二應用程序的標識的喚醒鎖申請請求,則在包括所述第二應用程序的標識的特征信息中記錄所述喚醒鎖申請請求,不執(zhí)行所述喚醒鎖申請請求;
若接收到攜帶所述第二應用程序的標識的喚醒鎖變更請求,則在包括所述第二應用程序的標識的特征信息中記錄所述喚醒鎖變更請求,不執(zhí)行所述喚醒鎖變更請求;
若接收到攜帶所述第二應用程序的標識的喚醒鎖刪除請求,則刪除包括所述第二應用程序的標識的特征信息,不執(zhí)行所述喚醒鎖刪除請求。
結合第二方面的第三種可能的實現(xiàn)方式,在第二方面的第五種可能的實現(xiàn)方式中,還包括:
第二判斷模塊,用于判斷所述第二應用程序是否符合強制恢復條件;
恢復模塊,用于若確定所述第二應用程序符合強制恢復條件,則根據(jù)包括所述第二應用程序的標識的特征信息,強制恢復所述第二應用程序及其調(diào)用的服務持有的喚醒鎖;
取消模塊,用于取消所述第二應用程序的代理鎖狀態(tài)。
結合第二方面的第五種可能的實現(xiàn)方式,在第二方面的第六種可能的實現(xiàn)方式中,所述強制恢復條件包括前臺運行或者被調(diào)用,所述第二判斷模塊,用于判斷所述第二應用程序是否符合強制恢復條件,具體用于:
監(jiān)控所述第二應用程序是否轉換為前臺運行或者所述第二應用程序是否被調(diào)用;
若監(jiān)控到所述第二應用程序轉換為前臺運行或者所述第二應用程序被調(diào)用,則確定所述第二應用程序符合所述強制恢復條件。
結合第二方面的第六種可能的實現(xiàn)方式,在第二方面的第七種可能的實現(xiàn)方式中,所述第二判斷模塊,還用于:
若監(jiān)控到所述第二應用程序未轉換為前臺運行且所述第二應用程序未被調(diào)用,則確定所述第二應用程序不符合所述強制恢復條件。
第三方面,本發(fā)明實施例提供一種終端,包括:
第一處理器,用于獲取后臺運行的第一應用程序;
第二處理器,用于判斷所述第一應用程序是否符合預設篩選條件;選取不符合所述預設篩選條件的第一應用程序,得到第二應用程序;強制釋放所述第二應用程序及其調(diào)用的服務持有的喚醒鎖。
結合第三方面,在第三方面的第一種可能的實現(xiàn)方式中,所述預設篩選條件包括預設時長、預設應用場景名單和黑名單,所述第二處理器,用于判斷所述第一應用程序是否符合預設篩選條件,具體用于:
統(tǒng)計所述第一應用程序的后臺運行時長,判斷所述第一應用程序的后臺運行時長是否超過所述預設時長;
根據(jù)所述第一應用程序調(diào)用的接口確定所述第一應用程序的應用場景,將所述第一應用程序的應用場景與所述預設應用場景名單進行比對;以及,
將所述第一應用程序與所述黑名單比對;
確定后臺運行時長超過預設時長、應用場景未保存在所述預設應用場景名單中且未保存在所述黑名單中的第一應用程序不符合所述預設篩選條件。
結合第三方面的第一種可能的實現(xiàn)方式,在第三方面的第二種可能的實現(xiàn)方式中,所述第二處理器,還用于:
確定后臺運行時長小于預設時長、應用場景保存在所述預設應用場景名單中或者保存在所述黑名單中的第一應用程序符合所述預設篩選條件。
結合第三方面、第三方面的第一種可能的實現(xiàn)方式或者第三方面的第二種可能的實現(xiàn)方式,在第三方面的第三種可能的實現(xiàn)方式中,所述第二處理器,還用于:
在強制釋放所述第二應用程序及其調(diào)用的服務持有的喚醒鎖之前,保存所述第二應用程序及其調(diào)用的服務持有的喚醒鎖的特征信息,所述特征信息包括對應第二應用程序的標識;以及,
在強制釋放所述第二應用程序及其調(diào)用的服務持有的喚醒鎖之后,將所述第二應用程序設置為代理鎖狀態(tài)。
結合第三方面的第三種可能的實現(xiàn)方式,在第三方面的第四種可能的實現(xiàn)方式中,所述第二處理器,還用于:
若接收到攜帶所述第二應用程序的標識的喚醒鎖申請請求,則在包括所述第二應用程序的標識的特征信息中記錄所述喚醒鎖申請請求,不執(zhí)行所述喚醒鎖申請請求;
若接收到攜帶所述第二應用程序的標識的喚醒鎖變更請求,則在包括所述第二應用程序的標識的特征信息中記錄所述喚醒鎖變更請求,不執(zhí)行所述喚醒鎖變更請求;
若接收到攜帶所述第二應用程序的標識的喚醒鎖刪除請求,則刪除包括所述第二應用程序的標識的特征信息,不執(zhí)行所述喚醒鎖刪除請求。
結合第三方面的第三種可能的實現(xiàn)方式,在第三方面的第五種可能的實現(xiàn)方式中,所述第二處理器,還用于:
判斷所述第二應用程序是否符合強制恢復條件;
若確定所述第二應用程序符合強制恢復條件,則根據(jù)包括所述第二應用程序的標識的特征信息,強制恢復所述第二應用程序及其調(diào)用的服務持有的喚醒鎖;
取消所述第二應用程序的代理鎖狀態(tài)。
結合第三方面的第五種可能的實現(xiàn)方式,在第三方面的第六種可能的實現(xiàn)方式中,所述強制恢復條件包括前臺運行或者被調(diào)用,所述第二處理器,用于判斷所述第二應用程序是否符合強制恢復條件,具體用于:
監(jiān)控所述第二應用程序是否轉換為前臺運行或者所述第二應用程序是否被調(diào)用;
若監(jiān)控到所述第二應用程序轉換為前臺運行或者所述第二應用程序被調(diào)用,則確定所述第二應用程序符合所述強制恢復條件。
結合第三方面的第六種可能的實現(xiàn)方式,在第三方面的第七種可能的實現(xiàn)方式中,所述第二處理器,還用于:
若監(jiān)控到所述第二應用程序未轉換為前臺運行且所述第二應用程序未被調(diào)用,則確定所述第二應用程序不符合所述強制恢復條件。
由以上技術方案可見,本發(fā)明實施例提供一種基于終端的喚醒鎖控制方法、裝置及終端,獲取后臺運行的第一應用程序;判斷所述第一應用程序是否符合預設篩選條件;選取不符合所述預設篩選條件的第一應用程序,得到第二應用程序;強制釋放所述第二應用程序及其調(diào)用的服務持有的喚醒鎖。該方案中,首先判斷后臺運行的第一應用程序是否符合預設篩選條件,然后選取不符合預設篩選條件的第一應用程序,得到第二應用程序,最后強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖,從而可以有效控制后臺運行的第一應用程序及其調(diào)用的服務持有的喚醒鎖,避免后臺運行且不符合預設篩選條件的第一應用程序及其調(diào)用的服務長時間不合理持有喚醒鎖,進而減少終端能耗,節(jié)省系統(tǒng)資源。
附圖說明
構成本申請的一部分的說明書附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
圖1是本發(fā)明實施例中一種基于終端的喚醒鎖控制方法的流程圖;
圖2是本發(fā)明實施例中S12的流程圖;
圖3是本發(fā)明實施例中另一種基于終端的喚醒鎖控制方法的流程圖;
圖4是本發(fā)明實施例中再一種基于終端的喚醒鎖控制方法的流程圖;
圖5是本發(fā)明實施例中一種基于終端的喚醒鎖控制裝置的流程圖;
圖6是本發(fā)明實施例中一種終端的結構示意圖。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領域普通技術人員而言,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
具體實施方式
為了解決現(xiàn)有技術中存在的應用程序及其調(diào)用的服務長時間不合理持有喚醒鎖導致的增加終端能耗,過多占用系統(tǒng)資源的問題,本發(fā)明實施例提供一種基于終端的喚醒鎖控制方法,該方法可以應用在終端中,流程如圖1所示,具體包括以下步驟:
S11:獲取后臺運行的第一應用程序。
終端上通常會設置很多應用程序,這些應用程序可能是在前臺運行,也可能是在后臺運行,由于前臺運行的應用程序是當前用戶正在使用的應用程序,前臺運行的應用程序及其調(diào)用的服務持有的喚醒鎖是屬于合理持有喚醒鎖的情況,這些喚醒鎖是不能被強制釋放的,因此,本實施例針對的是后臺運行的應用程序,后臺運行的應用程序定義為第一應用程序,第一應用程序可以是一個或多個。
S12:判斷第一應用程序是否符合預設篩選條件。
預設篩選條件是根據(jù)實際需要預先設定的,在獲取終端上后臺運行的第一應用程序后,可以判斷第一應用程序是否符合預設篩選條件。
S13:選取不符合預設篩選條件的第一應用程序,得到第二應用程序。
第一應用程序中可能會有符合預設篩選條件的,也可能會有不符合預設篩選條件的,選取不符合預設篩選條件的第一應用程序作為第二應用程序。
S14:強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖。
終端上設置的應用程序在運行的過程中,會調(diào)用很多服務,此時應用程序及其調(diào)用的服務均可能持有喚醒鎖。
由于第二應用程序是在后臺運行的,并且不符合預設篩選條件,也就是說第二應用程序及其調(diào)用的服務器持有的喚醒鎖是屬于不合理持有喚醒鎖的情況,因此,可以強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖。
該方案中,首先判斷后臺運行的第一應用程序是否符合預設篩選條件,然后選取不符合預設篩選條件的第一應用程序,得到第二應用程序,最后強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖,從而可以有效控制后臺運行的第一應用程序及其調(diào)用的服務持有的喚醒鎖,避免后臺運行且不符合預設篩選條件的第一應用程序及其調(diào)用的服務長時間不合理持有喚醒鎖,進而減少終端能耗,節(jié)省系統(tǒng)資源。
具體的,預設篩選條件的設置方式有很多種,下面以包括預設時長、預設應用場景名單和黑名單為例進行說明,上述S12中的判斷第一應用程序是否符合預設篩選條件的實現(xiàn)過程,如圖2所示,具體包括以下步驟:
S121:統(tǒng)計第一應用程序的后臺運行時長,判斷第一應用程序的后臺運行時長是否超過預設時長。
第一應用程序的后臺運行時長是第一應用程序從前臺運行轉為后臺運行的時長,若第一應用程序長時間在后臺運行,那么可以考慮強制釋放該第一應用程序及其調(diào)用的服務持有的喚醒鎖。因此,對于后臺運行的第一應用程序,可以統(tǒng)計其后臺運行時長,然后判斷第一應用程序的后臺運行時長是否超過預設時長。
預設時長可以根據(jù)實際需要進行設定,例如,可以設定為3分鐘、5分鐘、10分鐘等等。
S122:根據(jù)第一應用程序調(diào)用的接口確定第一應用程序的應用場景,將第一應用程序的應用場景與預設應用場景名單進行比對。
第一應用程序在前臺運行或者后臺運行期間可能調(diào)用安卓系統(tǒng)的接口,可以根據(jù)第一應用程序調(diào)用的接口確定第一應用程序的應用場景,例如音頻播放、下載等等,有些應用場景是非常重要的,中斷后會影響用戶體驗,因此,可以獲取重要的應用場景,得到預設應用場景名單。
在確定第一應用程序的應用場景后,將第一應用程序的應用場景與預設應用場景名單進行比對,確定第一應用程序的應用場景是否保存在預設應用場景名單中。
S123:將第一應用程序與黑名單比對。
終端上設置的應用程序中有些是非常重要的,強制釋放其持有的喚醒鎖,會嚴重用戶體驗,因此,可以預先獲取這些重要的應用程序,得到黑名單,黑名單中的應用程序是不允許強制釋放持有的喚醒鎖的。將第一應用程序與黑名單進行比對,確定第一應用程序是否保存在該黑名單中。
需要說明的是,S121、S122和S123之間并沒有嚴格的先后順序,例如,可以先執(zhí)行S121再執(zhí)行S122在執(zhí)行S123,也可以先執(zhí)行S121再執(zhí)行S123再執(zhí)行S122,也可以通知執(zhí)行S121、S122和S123。
S124:確定后臺運行時長超過預設時長、應用場景未保存在預設應用場景名單中且未保存在黑名單中的第一應用程序不符合預設篩選條件。
同時,還可以確定后臺運行時長小于預設時長、應用場景保存在預設應用場景名單中或者保存在黑名單中的第一應用程序符合預設篩選條件。
可以強制釋放不符合預設篩選條件的第一應用程序(也就是第二應用程序)及其調(diào)用的服務持有的喚醒鎖,保留預設篩選條件的第一應用程序及其調(diào)用的服務持有的喚醒鎖。
本發(fā)明實施例還提供另一種基于終端的喚醒鎖控制方法,該方法的流程如圖3所示,在如圖1所示的方法的基礎上,還包括:
S15:保存第二應用程序及其調(diào)用的服務持有的喚醒鎖的特征信息,特征信息包括對應第二應用程序的標識。
在強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖之前,還可以保存第二應用程序及其調(diào)用的服務持有的喚醒鎖的特征信息,這些特征信息中包括第二應用程序的標識,以表示該特征信息與第二應用程序有關,這些喚醒鎖的特征信息可以包括綁定信息、標簽信息、標記信息等等。
S16:將第二應用程序設置為代理鎖狀態(tài)。
在強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖之后,還可以將第二應用程序設置為代理鎖狀態(tài)。由于第二應用程序為代理鎖狀態(tài),若接收到針對第二應用程序及其調(diào)用的服務申請、變更、刪除喚醒鎖的請求,只是改變相應的特征信息,并不具體執(zhí)行對應的請求,例如:
若接收到攜帶第二應用程序的標識的喚醒鎖申請請求,則在包括第二應用程序的標識的特征信息中記錄喚醒鎖申請請求,不執(zhí)行喚醒鎖申請請求;
若接收到攜帶第二應用程序的標識的喚醒鎖變更請求,則在包括第二應用程序的標識的特征信息中記錄喚醒鎖變更請求,不執(zhí)行喚醒鎖變更請求;
若接收到攜帶第二應用程序的標識的喚醒鎖刪除請求,則刪除包括第二應用程序的標識的特征信息,不執(zhí)行喚醒鎖刪除請求。
本發(fā)明實施例還提供再一種基于終端的喚醒鎖控制方法,該方法的流程如圖4所示,在圖3的基礎上,還包括:
S17:判斷第二應用程序是否符合強制恢復條件。
當?shù)诙贸绦蛟诤笈_運行且不符合預設篩選條件時,強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖,相應地,當?shù)诙贸绦虻倪\行狀態(tài)改變時,就需要強制恢復第二應用程序及其調(diào)用的服務持有的喚醒鎖。
這時需要判斷第二應用程序是否符合強制恢復條件。強制恢復條件可以根據(jù)實際需要進行設定。
S18:若確定第二應用程序符合強制恢復條件,則根據(jù)包括第二應用程序的標識的特征信息,強制恢復第二應用程序及其調(diào)用的服務持有的喚醒鎖。
S19:取消第二應用程序的代理鎖狀態(tài)。
由于在強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖時,保存了這些喚醒鎖的特征信息,那么在確定第二應用程序符合強制恢復條件時,可以根據(jù)包括第二應用程序的標識的特征信息強制恢復第二應用程序及其調(diào)用的服務持有的喚醒鎖,并取消第二應用程序的代理鎖狀態(tài)。
其中,強制恢復條件的設置可以有多種方式,下面以包括前臺運行或者被調(diào)用為例進行說明上述S17中的判斷第二應用程序是否符合強制恢復條件的實現(xiàn)過程,具體為:監(jiān)控第二應用程序是否轉換為前臺運行或者第二應用程序是否被調(diào)用;若監(jiān)控到第二應用程序轉換為前臺運行或者第二應用程序被調(diào)用,則確定第二應用程序符合強制恢復條件;若監(jiān)控到第二應用程序未轉換為前臺運行且第二應用程序未被調(diào)用,則確定第二應用程序不符合強制恢復條件。
通過上述過程就可以確定第二應用程序是否符合強制恢復條件,進而確定是否強制恢復第二應用程序及其調(diào)用的服務持有的喚醒鎖。
基于同一發(fā)明構思,本申請實施例還提供一種基于終端的喚醒鎖控制裝置,該裝置與如圖1所示的基于終端的喚醒鎖控制方法對應,該裝置的結構如圖5所示,包括:
獲取模塊51,用于獲取后臺運行的第一應用程序;
第一判斷模塊52,用于判斷第一應用程序是否符合預設篩選條件;
選取模塊53,用于選取不符合預設篩選條件的第一應用程序,得到第二應用程序;
釋放模塊54,用于強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖。
該方案中,首先判斷后臺運行的第一應用程序是否符合預設篩選條件,然后選取不符合預設篩選條件的第一應用程序,得到第二應用程序,最后強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖,從而可以有效控制后臺運行的第一應用程序及其調(diào)用的服務持有的喚醒鎖,避免后臺運行且不符合預設篩選條件的第一應用程序及其調(diào)用的服務長時間不合理持有喚醒鎖,進而減少終端能耗,節(jié)省系統(tǒng)資源。
具體的,預設篩選條件包括預設時長、預設應用場景名單和黑名單,第一判斷模塊52,用于判斷第一應用程序是否符合預設篩選條件,具體用于:
統(tǒng)計第一應用程序的后臺運行時長,判斷第一應用程序的后臺運行時長是否超過預設時長;
根據(jù)第一應用程序調(diào)用的接口確定第一應用程序的應用場景,將第一應用程序的應用場景與預設應用場景名單進行比對;以及,
將第一應用程序與黑名單比對;
確定后臺運行時長超過預設時長、應用場景未保存在預設應用場景名單中且未保存在黑名單中的第一應用程序不符合預設篩選條件。
可選的,上述裝置還包括:
確定模塊,用于確定后臺運行時長小于預設時長、應用場景保存在預設應用場景名單中或者保存在黑名單中的第一應用程序符合預設篩選條件。
可選的,上述裝置還包括:
保存模塊,用于在釋放模塊強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖之前,保存第二應用程序及其調(diào)用的服務持有的喚醒鎖的特征信息,特征信息包括對應第二應用程序的標識;以及,
設置模塊,用于在釋放模塊強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖之后,將第二應用程序設置為代理鎖狀態(tài)。
可選的,上述裝置還包括處理模塊,用于:
若接收到攜帶第二應用程序的標識的喚醒鎖申請請求,則在包括第二應用程序的標識的特征信息中記錄喚醒鎖申請請求,不執(zhí)行喚醒鎖申請請求;
若接收到攜帶第二應用程序的標識的喚醒鎖變更請求,則在包括第二應用程序的標識的特征信息中記錄喚醒鎖變更請求,不執(zhí)行喚醒鎖變更請求;
若接收到攜帶第二應用程序的標識的喚醒鎖刪除請求,則刪除包括第二應用程序的標識的特征信息,不執(zhí)行喚醒鎖刪除請求。
可選的,上述裝置還包括:
第二判斷模塊,用于判斷第二應用程序是否符合強制恢復條件;
恢復模塊,用于若確定第二應用程序符合強制恢復條件,則根據(jù)包括第二應用程序的標識的特征信息,強制恢復第二應用程序及其調(diào)用的服務持有的喚醒鎖;
取消模塊,用于取消第二應用程序的代理鎖狀態(tài)。
具體的,強制恢復條件包括前臺運行或者被調(diào)用,第二判斷模塊,用于判斷第二應用程序是否符合強制恢復條件,具體用于:
監(jiān)控第二應用程序是否轉換為前臺運行或者第二應用程序是否被調(diào)用;
若監(jiān)控到第二應用程序轉換為前臺運行或者第二應用程序被調(diào)用,則確定第二應用程序符合強制恢復條件。
可選的,第二判斷模塊,還用于:
若監(jiān)控到第二應用程序未轉換為前臺運行且第二應用程序未被調(diào)用,則確定第二應用程序不符合強制恢復條件。
基于同一發(fā)明構思,本申請實施例還提供一種終端,該裝置與如圖1的基于終端的喚醒鎖控制方法對應,該裝置的結構如圖6所示,包括:
第一處理器61,用于獲取后臺運行的第一應用程序;
第二處理器62,用于判斷第一應用程序是否符合預設篩選條件;選取不符合預設篩選條件的第一應用程序,得到第二應用程序;強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖。
該方案中,首先判斷后臺運行的第一應用程序是否符合預設篩選條件,然后選取不符合預設篩選條件的第一應用程序,得到第二應用程序,最后強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖,從而可以有效控制后臺運行的第一應用程序及其調(diào)用的服務持有的喚醒鎖,避免后臺運行且不符合預設篩選條件的第一應用程序及其調(diào)用的服務長時間不合理持有喚醒鎖,進而減少終端能耗,節(jié)省系統(tǒng)資源。
具體的,預設篩選條件包括預設時長、預設應用場景名單和黑名單,第二處理器62,用于判斷第一應用程序是否符合預設篩選條件,具體用于:
統(tǒng)計第一應用程序的后臺運行時長,判斷第一應用程序的后臺運行時長是否超過預設時長;
根據(jù)第一應用程序調(diào)用的接口確定第一應用程序的應用場景,將第一應用程序的應用場景與預設應用場景名單進行比對;以及,
將第一應用程序與黑名單比對;
確定后臺運行時長超過預設時長、應用場景未保存在預設應用場景名單中且未保存在黑名單中的第一應用程序不符合預設篩選條件。
可選的,第二處理器62,還用于:
確定后臺運行時長小于預設時長、應用場景保存在預設應用場景名單中或者保存在黑名單中的第一應用程序符合預設篩選條件。
可選的,第二處理器62,還用于:
在強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖之前,保存第二應用程序及其調(diào)用的服務持有的喚醒鎖的特征信息,特征信息包括對應第二應用程序的標識;以及,
在強制釋放第二應用程序及其調(diào)用的服務持有的喚醒鎖之后,將第二應用程序設置為代理鎖狀態(tài)。
可選的,第二處理器62,還用于:
若接收到攜帶第二應用程序的標識的喚醒鎖申請請求,則在包括第二應用程序的標識的特征信息中記錄喚醒鎖申請請求,不執(zhí)行喚醒鎖申請請求;
若接收到攜帶第二應用程序的標識的喚醒鎖變更請求,則在包括第二應用程序的標識的特征信息中記錄喚醒鎖變更請求,不執(zhí)行喚醒鎖變更請求;
若接收到攜帶第二應用程序的標識的喚醒鎖刪除請求,則刪除包括第二應用程序的標識的特征信息,不執(zhí)行喚醒鎖刪除請求。
可選的,第二處理器62,還用于:
判斷第二應用程序是否符合強制恢復條件;
若確定第二應用程序符合強制恢復條件,則根據(jù)包括第二應用程序的標識的特征信息,強制恢復第二應用程序及其調(diào)用的服務持有的喚醒鎖;
取消第二應用程序的代理鎖狀態(tài)。
具體的,強制恢復條件包括前臺運行或者被調(diào)用,第二處理器62,用于判斷第二應用程序是否符合強制恢復條件,具體用于:
監(jiān)控第二應用程序是否轉換為前臺運行或者第二應用程序是否被調(diào)用;
若監(jiān)控到第二應用程序轉換為前臺運行或者第二應用程序被調(diào)用,則確定第二應用程序符合強制恢復條件。
可選的,第二處理器62,還用于:
若監(jiān)控到第二應用程序未轉換為前臺運行且第二應用程序未被調(diào)用,則確定第二應用程序不符合強制恢復條件。
以上是本發(fā)明的核心思想,為了使本領域技術人員更好地理解本發(fā)明方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清除、完整地描述,顯然,所述描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。