本發明涉及移動通訊技術領域,具體涉及一種電源管理方法及系統。
背景技術:
智能手機通常耗電較快,使智能手機在不需要使用時盡快進入睡眠狀態是主要的省電方法之一。
但是現在的智能手機經常會安裝許多第三方應用程序(APP),這些第三方APP為了維持自身數據的刷新或是出于其他不友好的目的,經常頻繁設置各種定時器,定時喚醒手機,使得安卓系統的耗電程度呈幾何級數倍增。巨大耗電量中的最大元兇,就是第三方App頻頻調用喚醒鎖(Wakelock)。
一旦申請到了Wakelock,根據申請到的不同類型的Wakelock,都會影響智能手機及時進入到低功耗狀態。影響包括屏幕保持亮屏狀態,或者CPU一直保持在運行狀態等。從而導致智能手機整體續航能力變差,嚴重影響用戶體驗。
技術實現要素:
鑒于以上內容,有必要提出一種電源管理方法及系統,能夠阻止非系統資源或不在預先設置的白名單上的資源長時間調用持有Wakelock,從而使移動終端能夠及時進入睡眠狀態,減少能量的損耗,達到節省電量的目的。
一種電源管理方法,應用于移動終端中,所述方法包括:
在接收到資源對喚醒鎖的調用申請時為所述資源分配一個喚醒鎖;
判斷所述喚醒鎖所對應的資源是否為系統資源;
當確定所述喚醒鎖所對應的資源為非系統資源時判斷所述資源是否在預先設置的白名單上;及
當確定所述資源不在預先設置的白名單上時,將所述喚醒鎖轉換為超時指定的喚醒鎖,并在指定時間到達時強制釋放所述喚醒鎖。
根據本發明的一個優選實施例,所述資源包括安裝在所述移動終端中的第三方應用軟件,系統軟件或者所述移動終端所提供的相關服務。
根據本發明的一個優選實施例,所述方法還包括:
當確定所述喚醒鎖所對應的資源為系統資源時;或者
當確定所述喚醒鎖所對應的資源為非系統資源但所述資源在所述預先設置的白名單上時;
保持所述資源繼續占用所述喚醒鎖。
根據本發明的一個優選實施例,所述方法還包括:
設置超時定時器,所述超時定時器用以記錄所述資源申請的喚醒鎖開始工作的時間點并統計所述喚醒鎖的工作時長;及
當所述超時定時器定時未滿且所述資源主動釋放所述喚醒鎖時,清除所述超時定時器;或者
當所述超時定時器定時滿時,強制釋放所述喚醒鎖。
根據本發明的一個優選實施例,所述方法還包括:
提供顯示界面,用以方便用戶查看資源調用鎖喚醒鎖的頻率,針對調用喚醒鎖頻率最高的資源做出優化,其中,所述優化包括:
將調用喚醒鎖頻率最高的資源放置到自動殺進程的列表中;或者暫停調用喚醒鎖頻率最高的資源;或者在調用喚醒鎖頻率最高的資源進入后臺超過預設時間段后自動將所述資源調整到休眠狀態。
一種電源管理系統,運行于移動終端中,所述系統包括:
分配模塊,用于在接收到資源對喚醒鎖的調用申請時為所述資源分配一個喚醒鎖;
第一判斷模塊,用于判斷所述喚醒鎖所對應的資源是否為系統資源;
第二判斷模塊,用于當所述第一判斷模塊確定所述喚醒鎖所對應的資源為非系統資源時判斷所述資源是否在預先設置的白名單上;及
強制釋放模塊,用于當所述第二判斷模塊確定所述資源不在預先設置的白名單上時,將所述喚醒鎖轉換為超時指定的喚醒鎖,并在指定時間到達時強制釋放所述喚醒鎖。
根據本發明的一個優選實施例,所述資源包括安裝在所述移動終端中的第三方應用軟件,系統軟件或者所述移動終端所提供的相關服務。
根據本發明的一個優選實施例,所述系統還包括保留模塊,用于:
當所述第一判斷模塊確定所述喚醒鎖所對應的資源為系統資源時;或者
當所述第一判斷模塊確定所述喚醒鎖所對應的資源為非系統資源但所述第二判斷模塊確定所述資源在所述預先設置的白名單上時;
保持所述資源繼續占用所述喚醒鎖。
根據本發明的一個優選實施例,所述強制釋放模塊,還用于:
設置超時定時器,所述超時定時器用以記錄所述資源申請的喚醒鎖開始工作的時間點并統計所述喚醒鎖的工作時長;及
當所述超時定時器定時未滿且所述資源主動釋放所述喚醒鎖時,清除所述超時定時器;或者
當所述超時定時器定時滿時,強制釋放所述喚醒鎖。
根據本發明的一個優選實施例,所述系統還包括:
顯示模塊,用于提供顯示界面以方便用戶查看資源調用喚醒鎖的頻率,針對調用喚醒鎖頻率最高的資源做出優化,其中,所述優化包括:
將調用喚醒鎖頻率最高的資源放置到自動殺進程的列表中;或者暫停調用喚醒鎖頻率最高的資源;或者在調用喚醒鎖頻率最高的資源進入后臺超過預設時間段后自動將所述資源調整到休眠狀態。
相較于現有技術,使用本發明所述電源管理方法及系統,可對運行喚醒鎖的應用程序或者服務進行判斷,尤其是惡意第三方APP設置的喚醒鎖運行時長進行判斷,當檢測到這些程序申請的喚醒鎖運行的實際超出預定時長時,自動釋放Wakelock,從而使移動終端能夠及時進入睡眠狀態,減少能量的損耗,達到節省電量的目的。
附圖說明
圖1所示是本發明電源管理方法較佳實施例的方法流程圖。
圖2所示是實現本發明所述電源管理方法的移動終端的硬件結構示意圖。
圖3所示是本發明電源管理系統較佳實施例的功能模塊圖。
主要元件符號說明
具體實施方式
為了使本發明的目的、技術方案和優點更加清楚,下面將結合附圖和具體實施例,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明的一部分實施例,而不是全部的實施例。此外,應當理解,本文所描述的具體實施例,僅用以解釋本發明,并不用于限定本發明。
基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
參考圖1所示,是本發明電源管理方法較佳實施例的方法流程圖。所述較佳實施例中的方法由移動終端所執行。在本實施例中,所述移動終端可以是,例如,智能手機,平板電腦,筆記本電腦,穿戴式設備以及其他任何具有電源管理單元的移動終端。
根據不同的需求,圖1所示流程圖中的執行順序可以改變,某些可以省略。
S11,所述移動終端在接收到資源對喚醒鎖的調用申請時為所述資源分配一個喚醒鎖。
在一些實施例中,所述移動終端的系統可以是安卓(Android)系統,安裝在Android系統中的應用或服務在申請CPU資源的時候會占據一個喚醒鎖(Wakelock)。
Wakelock作為安卓系統中電源管理機制中的一種,為了確保應用程序中關鍵代碼的正確執行,應用程序需要向電源管理框架申請Wakelock,以阻止系統進入休眠狀態。直到所有的Wakelock被釋放后,系統才會進入休眠狀態。即,只要有處于活動狀態的喚醒鎖,Android系統就無法進入休眠。
電源管理服務(Power Manager Service,PMS)在檢測到有Wakelock被占據時,會通過內核接口以及Android系統的其他服務控制內核保持CPU、屏幕等資源處于活動狀態。一旦系統中沒有任何活動的Wakelock時,就會允許系統進入自動待機流程。
在一些實施例中,所述資源包括安裝在Android系統中的第三方應用軟件,系統軟件或者系統所提供的相關服務,所述資源是通過預設函數,例如acquire()函數,向所述PMS申請的。
S12,所述移動終端判斷所述喚醒鎖所對應的資源是否為系統資源。
在一些實施例中,所述移動終端的資源分為系統資源和非系統資源。其中,所述系統資源是指控制和協調所述移動終端及外部設備,支持應用軟件開發和運行的系統,是無需用戶干預的各種程序的集合。所述非系統資源包括安裝在所述系統中的第三方應用軟件(application software),是用戶可以使用的各種程序設計語言,以及用各種程序設計語言編制的應用程序的集合。
在一些實施例中,安卓系統的每個進程都對應Linux的UID(user identity),所述移動終端根據所述UID來確定所述資源為系統資源。在其他一些實施例中,所述移動終端還可以通過查詢喚醒鎖所對應的資源的發布者來判斷所述資源是否為系統資源。對于第三方APP,也可以通過包名(package name)來確認。
在一些實施例中,當所述移動終端確定所述資源為非系統資源時,執行步驟S13;當所述移動終端確定所述資源為系統資源時,執行步驟S15。
S13,所述移動終端判斷所述資源是否在預先設置的白名單上。
在一些實施例中,所述移動終端預先設置白名單,所述白名單上可以記錄不需要被強制釋放喚醒鎖的資源的名稱。
在所述白名單上記錄不需要被強制釋放喚醒鎖的資源的名稱,主要是考慮一些系統級別的應用軟件,如下載類應用軟件、音樂應用,還是需要長時間持有Wakelock來保證自身功能,所以添加這些資源到所述白名單中可以用以來保證不適合進行強制釋放喚醒鎖的資源申請的Wakelock不會被強制釋放。
在一些實施例中,所述白名單可由所述移動終端默認設置,此外,所述白名單還可提供用戶選項,供用戶根據實際需要自行添加、刪除或者更改。
在一些實施例中,所述移動終端可以通過模糊匹配的方法確定喚醒鎖所對應的資源是否在預先設置的白名單上。
在一些實施例中,當所述移動終端確定所述資源不在所述預先設置的白名單上時,執行步驟S14;當所述移動終端確定所述資源在所述預先設置的白名單上時,執行步驟S15。
S14,所述移動終端將所述喚醒鎖轉換為超時指定的喚醒鎖,并在指定時間到達時強制釋放所述喚醒鎖。
在一些實施例中,所述移動終端確定所申請喚醒鎖的資源為非系統資源且所述資源不在所述白名單中時,則將所述喚醒鎖轉換為超時指定的喚醒鎖。
所述超時指定的喚醒鎖是指為所述喚醒鎖指定了工作時長,在工作時長到達時,所述喚醒鎖被自動釋放,從而資源不再持有喚醒鎖。
在一些實施例中,所述移動終端中還設置有超時定時器,所述超時定時器用以記錄所述資源申請的喚醒鎖開始工作的時間點并統計所述喚醒鎖的工作時長,在所述喚醒鎖的工作時長超過預設的指定時長時強制釋放所述喚醒鎖。
具體而言,在所述超時定時器定時未滿時,所述資源主動釋放所述喚醒鎖,則清除所述超時定時器;而當所述超時定時器定時滿時,強制釋放所述喚醒鎖。
在一些實施例中,所述移動終端通過調用release()函數主動釋放Wakelock,一旦系統中的喚醒鎖被全部釋放,即沒有處于活動狀態的喚醒鎖時,所述移動終端即可進入待機狀態,處于低功耗。
在一些實施例中,所述移動終端強制釋放Wakelock后,清除所述超時定時器。
S15,所述移動終端保持所述資源繼續占用所述喚醒鎖。
在一些實施例中,所述移動終端確定所申請喚醒鎖的資源為系統資源,或者所述資源為非系統資源但所述資源在所述白名單中時,繼續保持喚醒鎖的運行狀態不變。
進一步地,所述方法還可以包括:提供顯示界面,用以方便用戶能夠查看資源調用Wakelock的頻率。
用戶找到頻頻調用Wakelock的資源后,即可針對性地作出優化。針對調用Wakelock頻率最高的資源所可以做出的優化包括:將調用Wakelock頻率最高的資源放置到自動殺進程的列表中,不許這些資源常駐后臺;或者暫停調用Wakelock頻率最高的資源從而達到節省電量的目的;或者在調用Wakelock頻率最高的資源進入后臺超過預設時間段后自動將所述資源調整到休眠狀態。
綜上所述,本發明所述的電源管理方法,在接收到資源對喚醒鎖的調用申請時為所述資源分配一個喚醒鎖,判斷喚醒鎖所對應的資源是否為系統資源,當確定所述資源為非系統資源時,進一步判斷所述資源是否在預先設置的白名單上,當所述移動終端確定所述資源不在所述白名單上時,將所述喚醒鎖轉換為超時指定的喚醒鎖,并在指定時間到達時強制釋放所述喚醒鎖;所述移動終端確定所申請喚醒鎖的資源為系統資源,或者所述資源為非系統資源但所述資源在所述白名單中時,繼續保持喚醒鎖的運行狀態不變。因此,所述的電源管理方法能夠實現將非系統資源所申請的喚醒鎖進行強制釋放Wakelock,避免喚醒鎖長時間處于活動狀態,使得所述系統無法進入待機狀態,加強了對系統的電源管理,達到了節省電量的目的。
以上所述,僅是本發明的具體實施方式,但本發明的保護范圍并不局限于此,對于本領域的普通技術人員來說,在不脫離本發明創造構思的前提下,還可以做出改進,但這些均屬于本發明的保護范圍。
上述圖1詳細介紹了本發明的電源管理方法,下面結合第2~3圖,分別對實現上述電源管理方法的移動終端的硬件結構及功能模塊進行介紹。
應該了解,所述實施例僅為說明之用,在專利申請范圍上并不受此結構的限制。
如圖2所示,是實現本發明所述電源管理方法的移動終端的硬件結構示意圖。
在本發明較佳實施例中,所述移動終端1包括存儲器11、至少一個處理器12、至少一個通信總線13、接收器14、發送器15及電源組件16。應該了解,所述移動終端1也可以包括其他硬件或者軟件部件,而并不限制于上述列舉的部件。
在一些實施例中,所述移動終端1包括一種能夠按照事先設定或存儲的指令,自動進行數值計算和/或信息處理的移動終端,其硬件包括但不限于微處理器、專用集成電路、可編程門陣列、數字處理器、嵌入式設備等。所述移動終端1還可包括用戶設備。所述用戶設備包括但不限于任何一種可與用戶通過鍵盤、鼠標、遙控器、觸摸板或聲控設備等方式進行人機交互的電子產品,例如,個人計算機、平板電腦、智能手機、智能式穿戴設備等。
需要說明的是,所述移動終端1僅為舉例,其他現有的或今后可能出現的電子產品如可適應于本發明,也應包含在本發明的保護范圍以內,并以引用方式包含于此。
在一些實施例中,所述存儲器11用于存儲程序代碼和各種數據,例如所述電源管理系統10,并在移動終端1運行過程中實現高速、自動地完成程序或數據的存取。所述存儲器11可以是所述移動終端1的內部存儲單元,例如所述移動終端1的硬盤或者內存。所述存儲器11也可以是所述移動終端1的外部存儲單元,例如所述移動終端1上的插接式硬盤、智能媒體卡(Smart Media Card,SMC)、安全數字卡(Secure Digital Card,SD)、快閃存儲器卡(flash card)等儲存單元。進一步地,所述存儲器11還可以既包括所述移動終端1的內部存儲單元,也可以包括外部存儲單元。
在本實施例中,所述存儲器11預先存儲有白名單,所述白名單上記錄了不需要被強制釋放喚醒鎖的資源的名稱,主要是系統級別的應用軟件,如下載類應用軟件、音樂應用,需要長時間持有Wakelock來保證自身的功能。
在一些實施例中,所述處理器12是一個或者多個中央處理器(Central Processing unit,CPU)、微處理器或其他數字處理芯片等,是移動終端1的運算核心(Core)和控制核心(Control Unit)。所述處理器12用于解釋程序指令以及處理軟件中的數據,例如執行電源管理系統10。
在一些實施例中,所述通信總線13被設置為實現所述存儲器11、所述處理器12、所述接收器14、所述發送器15以及電源組件16等之間的連接通信。
在一些實施例中,所述接收器14和所述發送器15可以是有線發送端口,也可以為無線設備,例如包括天線裝置,用于與其他設備進行數據通信。
在一些實施例中,所述電源組件16用于為所述移動終端1中所有組件提供所需要的電能。所述電源組件16可以包括電源管理系統,一個或多個電源,及其他與為所述移動終端1生成、管理和分配電力相關聯的組件。
應該了解,所述實施例僅為說明之用,在專利申請范圍上并不受此結構的限制。
參閱圖3所示,是本發明電源管理系統10電源管理較佳實施例中的功能模塊圖。
在一些實施例中,所述電源管理系統10運行于所述移動終端1中。所述電源管理系統10可以包括多個由程序代碼段所組成的功能模塊(詳見圖3)。所述電源管理系統10中的各個程序段的程序代碼可以存儲于所述存儲器11中,并由所述處理器12所執行,以執行(詳見圖1中描述)。
本實施例中,所述電源管理系統10根據其所執行的功能,可以被劃分為多個功能模塊。所述功能模塊可以包括:分配模塊101、第一判斷模塊102、第二判斷模塊103、強制釋放模塊104、保留模塊105及顯示模塊106。本發明所稱的模塊是指一種能夠被處理器12所執行并且能夠完成固定功能的一系列計算機程序段,其存儲在存儲器11中。在本實施例中,關于各模塊的功能將在后續的實施例中詳述。
所述分配模塊101,用于在接收到資源對喚醒鎖的調用申請時為所述資源分配一個喚醒鎖。
在一些實施例中,所述移動終端1的系統可以是安卓(Android)系統,安裝在Android系統中的應用或服務在申請CPU資源的時候會占據一個喚醒鎖(Wakelock)。
Wakelock作為安卓系統中電源管理機制中的一種,為了確保應用程序中關鍵代碼的正確執行,應用程序需要向電源管理框架申請Wakelock,以阻止系統進入休眠狀態。直到所有的Wakelock被釋放后,系統才會進入休眠狀態。即,只要有處于活動狀態的喚醒鎖,Android系統就無法進入休眠。
電源管理服務(Power Manager Service,PMS)在檢測到有Wakelock被占據時,會通過內核接口以及Android系統的其他服務控制內核保持CPU、屏幕等資源處于活動狀態。一旦系統中沒有任何活動的Wakelock時,就會允許系統進入自動待機流程。
在一些實施例中,所述資源包括安裝在Android系統中的第三方應用軟件,系統軟件或者系統所提供的相關服務,所述資源是通過預設函數,例如acquire()函數,向所述PMS申請的。
所述第一判斷模塊102,用于判斷所述喚醒鎖所對應的資源是否為系統資源。
在一些實施例中,所述移動終端1的資源分為系統資源和非系統資源。其中,所述系統資源是指控制和協調所述移動終端1及外部設備,支持應用軟件開發和運行的系統,是無需用戶干預的各種程序的集合。所述非系統資源包括安裝在所述系統中的第三方應用軟件(application software),是用戶可以使用的各種程序設計語言,以及用各種程序設計語言編制的應用程序的集合。
在一些實施例中,安卓系統的每個進程都對應Linux的UID(user identity),所述第一判斷模塊102根據所述UID來確定所述資源為系統資源。在其他一些實施例中,所述第一判斷模塊102還可以通過查詢喚醒鎖所對應的資源的發布者來判斷所述資源是否為系統資源。對于第三方APP,所述第一判斷模塊102也可以通過包名(package name)來確認。
在一些實施例中,當所述第一判斷模塊102確定所述資源為非系統資源時,執行所述第二判斷模塊103;當所述第一判斷模塊102確定所述資源為系統資源時,執行所述保留模塊105。
所述第二判斷模塊103,用于判斷所述資源是否在預先設置的白名單上。
在一些實施例中,所述移動終端1預先設置白名單,所述白名單上可以記錄不需要被強制釋放喚醒鎖的資源的名稱。
在所述白名單上記錄不需要被強制釋放喚醒鎖的資源的名稱,主要是考慮一些系統級別的應用軟件,如下載類應用軟件、音樂應用,還是需要長時間持有Wakelock來保證自身功能,所以添加這些資源到所述白名單中可以用以來保證不適合進行強制釋放喚醒鎖的資源申請的Wakelock不會被強制釋放。
在一些實施例中,所述白名單可由所述移動終端1默認設置,此外,所述白名單還可提供用戶選項,供用戶根據實際需要自行添加、刪除或者更改。
在一些實施例中,所述第二判斷模塊103可以通過模糊匹配的方法確定喚醒鎖所對應的資源是否在預先設置的白名單上。
在一些實施例中,當所述第二判斷模塊103確定所述資源不在所述預先設置的白名單上時,執行所述強制釋放模塊104;當所述第二判斷模塊103確定所述資源在所述預先設置的白名單上時,執行所述保留模塊105。
所述強制釋放模塊104,用于將所述喚醒鎖轉換為超時指定的喚醒鎖,并在指定時間到達時強制釋放所述喚醒鎖。
在一些實施例中,所述第一判斷模塊102確定所申請喚醒鎖的資源為非系統資源且所述第二判斷模塊103確定所述資源不在所述白名單中時,則所述強制釋放模塊104將所述喚醒鎖轉換為超時指定的喚醒鎖。
所述超時指定的喚醒鎖是指為所述喚醒鎖指定了工作時長,在工作時長到達時,所述喚醒鎖被自動釋放,從而資源不再持有喚醒鎖。
在一些實施例中,強制釋放模塊104還設置有超時定時器,所述超時定時器用以記錄所述資源申請的喚醒鎖開始工作的時間點并統計所述喚醒鎖的工作時長,在所述喚醒鎖的工作時長超過預設的指定時長時強制釋放所述喚醒鎖。
具體而言,在所述超時定時器定時未滿時,所述資源主動釋放所述喚醒鎖,則所述強制釋放模塊104清除所述超時定時器;而當所述超時定時器定時滿時,所述強制釋放模塊104強制釋放所述喚醒鎖。
在一些實施例中,所述強制釋放模塊104通過調用release()函數主動釋放Wakelock,一旦系統中的喚醒鎖被全部釋放,即沒有處于活動狀態的喚醒鎖時,所述移動終端1即可進入待機狀態,處于低功耗。
在一些實施例中,所述強制釋放模塊104強制釋放Wakelock后,清除所述超時定時器。
所述保留模塊105,用于保持所述資源繼續占用所述喚醒鎖。
在一些實施例中,所述第一判斷模塊102確定所申請喚醒鎖的資源為系統資源,或者第一判斷模塊102確定所述資源為非系統資源但所述第二判斷模塊103確定所述資源在所述白名單中時,所述保留模塊105繼續保持喚醒鎖的運行狀態不變。
進一步地,所述電源管理系統10還可以包括顯示模塊106用于:提供顯示界面,用以方便用戶能夠查看資源調用Wakelock的頻率。
用戶找到頻頻調用Wakelock的資源后,即可針對性地作出優化。針對調用Wakelock頻率最高的資源所可以做出的優化包括:將調用Wakelock頻率最高的資源放置到自動殺進程的列表中,不許這些資源常駐后臺;或者暫停調用Wakelock頻率最高的資源從而達到節省電量的目的;或者在調用Wakelock頻率最高的資源進入后臺超過預設時間段后自動將所述資源調整到休眠狀態。
綜上所述,本發明所述的電源管理系統10,所述分配模塊101在接收到資源對喚醒鎖的調用申請時為所述資源分配一個喚醒鎖,所述第一判斷模塊102判斷喚醒鎖所對應的資源是否為系統資源,當所述第一判斷模塊102確定所述資源為非系統資源時,所述第二判斷模塊103進一步判斷所述資源是否在預先設置的白名單上,當所述第二判斷模塊103確定所述資源不在所述白名單上時,所述強制釋放模塊104將所述喚醒鎖轉換為超時指定的喚醒鎖,并在指定時間到達時強制釋放所述喚醒鎖;所述第一判斷模塊102確定所申請喚醒鎖的資源為系統資源,或者所述第一判斷模塊102確定所述資源為非系統資源但所述第二判斷模塊103確定所述資源在所述白名單中時,所述保留模塊105繼續保持喚醒鎖的運行狀態不變。因此,所述的電源管理系統能夠實現將非系統資源所申請的喚醒鎖進行強制釋放Wakelock,避免喚醒鎖長時間處于活動狀態,使得所述系統無法進入待機狀態,加強了對系統的電源管理,達到了節省電量的目的。
上述以軟件功能模塊的形式實現的集成的單元,可以存儲在一個計算機可讀取存儲介質中。上述軟件功能模塊存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,移動終端,或者網絡設備等)或處理器(processor)執行本發明各個實施例所述方法的部分。
在進一步的實施例中,結合圖2,所述至少一個處理器12可執行所述移動終端1的操作系統以及安裝的各類應用程序(如所述的電源管理系統10)、程序代碼等,例如,上述的各個模塊,包括所述:分配模塊101、第一判斷模塊102、第二判斷模塊103、強制釋放模塊104、保留模塊105及顯示模塊106。
所述存儲器11中存儲有程序代碼,且所述至少一個處理器12可調用所述存儲器11中存儲的程序代碼以執行相關的功能。例如,圖3中所述的各個模塊(例如,分配模塊101、第一判斷模塊102、第二判斷模塊103、強制釋放模塊104、保留模塊105及顯示模塊106等)是存儲在所述存儲器11中的程序代碼,并由所述至少一個處理器12所執行,從而實現所述各個模塊的功能以達到節省電量的目的。
在本發明的一個實施例中,所述存儲器11存儲多個指令,所述多個指令被所述至少一個處理器12所執行以實現電源的優化管理。具體而言,所述至少一個處理器12對所述多個指令的執行包括:
在接收到資源對喚醒鎖的調用申請時為所述資源分配一個喚醒鎖;
判斷所述喚醒鎖所對應的資源是否為系統資源;
當確定所述喚醒鎖所對應的資源為非系統資源時判斷所述資源是否在預先設置的白名單上;及
當確定所述資源不在預先設置的白名單上時,將所述喚醒鎖轉換為超時指定的喚醒鎖,并在指定時間到達時強制釋放所述喚醒鎖。
在一個優選實施例中,所述資源包括安裝在所述移動終端中的第三方應用軟件,系統軟件或者所述移動終端所提供的相關服務。
在一個優選實施例中,所述至少一個處理器12進一步執行以下指令:
當確定所述喚醒鎖所對應的資源為系統資源時;或者
當確定所述喚醒鎖所對應的資源為非系統資源但所述資源在所述預先設置的白名單上時;
保持所述資源繼續占用所述喚醒鎖。
在一個優選實施例中,所述至少一個處理器12進一步執行以下指令:
設置超時定時器,所述超時定時器用以記錄所述資源申請的喚醒鎖開始工作的時間點并統計所述喚醒鎖的工作時長;及
當所述資源主動釋放所述喚醒鎖且所述超時定時器定時未滿時,清除所述超時定時器;或者
當所述超時定時器定時滿時,強制釋放所述喚醒鎖。
在一個優選實施例中,所述至少一個處理器12進一步執行以下指令:
提供顯示界面,用以方便用戶查看資源調用喚醒鎖的頻率,針對調用喚醒鎖頻率最高的資源做出優化,其中,所述優化包括:
將調用喚醒鎖頻率最高的資源放置到自動殺進程的列表中;或者暫停調用喚醒鎖頻率最高的資源;或者在調用喚醒鎖頻率最高的資源進入后臺超過預設時間段后自動將所述資源調整到休眠狀態。
具體地,所述至少一個處理器12對上述指令的具體實現方法可參考圖1對應實施例中相關步驟的描述,在此不贅述。
在本發明所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式。
所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能模塊可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用硬件加軟件功能模塊的形式實現。
對于本領域技術人員而言,顯然本發明不限于上述示范性實施例的細節,而且在不背離本發明的精神或基本特征的情況下,能夠以其他的具體形式實現本發明。因此,無論從哪一點來看,均應將實施例看作是示范性的,而且是非限制性的,本發明的范圍由所附權利要求而不是上述說明限定,因此旨在將落在權利要求的等同要件的含義和范圍內的所有變化涵括在本發明內。不應將權利要求中的任何附圖標記視為限制所涉及的權利要求。此外,顯然“包括”一詞不排除其他單元或,單數不排除復數。系統權利要求中陳述的多個單元或裝置也可以由一個單元或裝置通過軟件或者硬件來實現。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。
最后應說明的是,以上實施例僅用以說明本發明的技術方案而非限制,盡管參照較佳實施例對本發明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發明的技術方案進行修改或等同替換,而不脫離本發明技術方案的精神和范圍。