一種喚醒鎖的釋放方法和裝置的制造方法
【專利摘要】本發(fā)明實施例公開了一種喚醒鎖的釋放方法和裝置;該方法包括:在關閉應用進程時,釋放應用進程持有的喚醒鎖,確定與該應用進程相關聯(lián)的關聯(lián)應用進程,判斷上述關聯(lián)應用進程是否持有喚醒鎖,若是,則釋放該關聯(lián)應用進程持有的喚醒鎖;本方案可以在關閉應用進程時,釋放掉該應用進程的喚醒鎖的同時進一步釋放與該應用進程相關聯(lián)的應用進程所持有的喚醒鎖,從而減少了終端中電量的消耗,節(jié)省了終端的電量,進而可以提高終端的續(xù)航能力。
【專利說明】
一種喚醒鎖的釋放方法和裝置
技術領域
[0001 ]本發(fā)明涉及終端技術領域,具體涉及一種喚醒鎖的釋放方法和裝置。
【背景技術】
[0002]隨著電子通訊領域的發(fā)展,移動終端例如智能手機的功能越來越強大,用戶不僅通過智能手機打電話、發(fā)短信,用戶還可以根據(jù)需求在移動終端中安裝各種功能的應用程序,以滿足自己在不同方面的需求(例如游戲、閱讀、音樂、視頻播放、購物等等)。
[0003]目前,在使用智能手機的過程當中,有的應用程序往往會關聯(lián)啟動其他的應用程序并在后臺運行比如打開支付寶后,其會關聯(lián)啟動淘寶、天貓等應用程序,而應用進程在退出到后臺以后釋放其持有的喚醒鎖,與該應用進程相關聯(lián)的后臺應用所持有的喚醒鎖并沒有立即被釋放掉,還需要持有系統(tǒng)的喚醒鎖一段時間,以保證其正常運行,但是如果長時間不能釋放掉此喚醒鎖,會導致手機不能正常深度睡眠,看上去手機已經不再工作,實際上手機在待機的時候,后臺的CPU等設備一直處于工作狀態(tài),增加了不必要的待機電池電量的消耗。如果用戶手機安裝了比較多的此類應用進程在后臺運行,就會出現(xiàn)比較多的關聯(lián)應用進程在后臺運行并持有喚醒鎖,從而造成終端電量的浪費。
[0004]由上可知,在現(xiàn)有的終端中應用進程關閉后其關聯(lián)應用進程會繼續(xù)在后臺運行并持有喚醒鎖,從而造成終端電量的浪費。
【發(fā)明內容】
[0005]本發(fā)明實施例提供一種喚醒鎖的釋放方法和裝置,可以在關閉應用的同時釋放此應用相關聯(lián)的后臺應用持有的喚醒鎖,從而節(jié)省了終端的電量。
[0006]本發(fā)明實施例提供一種喚醒鎖的釋放方法,包括以下步驟:
[0007]關閉應用進程時,釋放所述應用進程持有的喚醒鎖;
[0008]確定與所述應用進程相關聯(lián)的關聯(lián)應用進程;
[0009]判斷所述關聯(lián)應用進程是否持有喚醒鎖;
[0010]若是,則釋放所述關聯(lián)應用進程持有的喚醒鎖。
[0011 ]進一步的,在所述確定與所述應用進程相關聯(lián)的關聯(lián)應用進程之后,判斷所述關聯(lián)應用進程是否持有喚醒鎖之前,所述方法還包括:
[0012]判斷所述關聯(lián)應用進程是否正在終端前臺運行;
[0013]若否,則執(zhí)行判斷所述關聯(lián)應用進程是否持有喚醒鎖的步驟。
[0014]在本發(fā)明實施例中,在確定與所述應用進程相關聯(lián)的關聯(lián)應用進程之后,判斷所述關聯(lián)應用進程是否持有喚醒鎖之前,所述方法還包括:
[0015]判斷所述關聯(lián)應用進程是否為預設應用進程;
[0016]若否,則執(zhí)行判斷所述關聯(lián)應用進程是否持有喚醒鎖的步驟。
[0017]進一步的,所述確定與所述應用進程相關聯(lián)的關聯(lián)應用進程的步驟具體包括:
[0018]獲取所述關閉的應用進程中的用戶標識信息;
[0019]在終端系統(tǒng)中查找具有相同所述用戶標識信息的進程;
[0020]確定所述進程為所述關聯(lián)應用進程。
[0021 ]進一步的,所述確定與所述應用進程相關聯(lián)的關聯(lián)應用進程的步驟具體包括:
[0022]獲取所述應用進程的進程標識信息;
[0023]根據(jù)所述進程標識信息確定相關聯(lián)的應用進程。
[0024]本發(fā)明實施例還提供了一種喚醒鎖的釋放裝置,包括:第一釋放模塊、確定模塊、第一判斷模塊以及第二釋放模塊;
[0025]所述第一釋放模塊,用于關閉應用進程時,釋放所述應用進程持有的喚醒鎖;
[0026]所述確定模塊,用于確定與所述應用進程相關聯(lián)的關聯(lián)應用進程;
[0027]所述第一判斷模塊,用于判斷所述關聯(lián)應用進程是否持有喚醒鎖;
[0028]所述第二釋放模塊,用于當所述第一判斷模塊判斷為是時,釋放所述關聯(lián)應用進程持有的喚醒鎖。
[0029]進一步的,所述裝置還包括:第二判斷模塊;
[0030]所述第二判斷模塊,用于在所述確定模塊確定與所述應用進程相關聯(lián)的關聯(lián)應用進程之后,所述第一判斷模塊判斷所述關聯(lián)應用進程是否持有喚醒鎖之前,判斷所述關聯(lián)應用進程是否正在終端前臺運行;
[0031]所述第一判斷模塊,具體用于當所述第二判斷模塊判斷為否時,判斷所述關聯(lián)應用進程是否持有喚醒鎖。
[0032]在本發(fā)明實施例當中,所述裝置還包括:第三判斷模塊;
[0033]所述第三判斷模塊,用于在所述確定模塊確定與所述應用進程相關聯(lián)的關聯(lián)應用進程之后,所述第一判斷模塊判斷所述關聯(lián)應用進程是否持有喚醒鎖之前,判斷所述關聯(lián)應用進程是否為預設應用進程;
[0034]所述第一判斷模塊,具體用于當所述第三判斷模塊判斷為否時,判斷所述關聯(lián)應用進程是否持有喚醒鎖。
[0035]進一步的,所述確定模塊具體包括:獲取子模塊、查找子模塊以及第一確定子模塊;
[0036]所述獲取子模塊,用于獲取所述關閉的應用進程中的用戶標識信息;
[0037]所述查找子模塊,用于在終端系統(tǒng)中查找具有相同所述用戶標識信息的進程;
[0038]所述第一確定子模塊,用于確定所述進程為所述關聯(lián)應用進程。
[0039]進一步的,所述確定模塊具體包括:第二獲取子模塊和第二確定子模塊;
[0040]所述第二獲取子模塊,用于獲取所述應用進程的進程標識信息;
[0041]所述第二確定子模塊,用于根據(jù)所述進程標識信息確定相關聯(lián)的應用進程。
[0042]本發(fā)明實施例首先在關閉應用進程時,釋放應用進程持有的喚醒鎖,確定與該應用進程相關聯(lián)的關聯(lián)應用進程,判斷上述關聯(lián)應用進程是否持有喚醒鎖,若是,則釋放該關聯(lián)應用進程持有的喚醒鎖;本方案可以在關閉應用進程時,釋放掉該應用進程的喚醒鎖的同時進一步釋放與該應用進程相關聯(lián)的應用進程所持有的喚醒鎖,從而減少了終端中電量的消耗,節(jié)省了終端的電量,進而可以提高終端的續(xù)航能力。
【附圖說明】
[0043]為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0044]圖1為本發(fā)明實施例一提供的一種喚醒鎖的釋放方法的流程示意圖;
[0045]圖2為本發(fā)明實施例二提供的一種喚醒鎖的釋放方法的流程示意圖;
[0046]圖3為本發(fā)明實施例三提供的一種智能手機中釋放cpu鎖的流程示意圖;
[0047]圖4為本發(fā)明實施例四提供的一種喚醒鎖的釋放裝置的結構示意圖;
[0048]圖5為本發(fā)明實施例四提供的第二種喚醒鎖的釋放裝置的結構示意圖。
【具體實施方式】
[0049]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0050]本發(fā)明實施例提供一種喚醒鎖的釋放方法和裝置。以下將分別進行詳細說明。
[0051]實施例一、
[0052]本實施例將從喚醒鎖的釋放裝置的角度進行描述,該裝置具體可以集成在終端中,該終端可以為移動互聯(lián)網(wǎng)設備(如智能手機、平板電腦)、智能穿戴設備(如智能手表)等各類電子設備。
[0053]請參閱圖1,圖1為本發(fā)明實施例一提供的一種喚醒鎖的釋放方法的流程示意圖,本實施例的喚醒鎖的釋放方法包括:
[0054]步驟SlOl,關閉應用進程時,釋放應用進程持有的喚醒鎖。
[0055]具體的,可以接收用戶的關閉指令,該指令包含應用進程的標識信息,根據(jù)上述關閉指令,關閉應用進程并同時釋放該應用進程持有的喚醒鎖。
[0056]在本發(fā)明實施例中,在關閉上述應用進程之后,釋放應用進程的喚醒鎖之前,上述方法還可以包括:判斷該應用進程是否持有喚醒鎖,若是,則釋放該應用進程所持有的喚醒鎖。其中,判斷該應用進程是否持有喚醒鎖的方法可以有多種,比如檢測終端當中是否存在處于工作狀態(tài)的喚醒鎖,若是,則進一步判斷上述處于工作狀態(tài)的喚醒鎖中是否存在該應用進程持有的喚醒鎖,若存在,則確定該應用進程持有喚醒鎖。其中,可以通過系統(tǒng)的框架層來獲取處于工作狀態(tài)的喚醒鎖的名稱以及處于工作狀態(tài)的喚醒鎖對應的應用進程名稱,需要說明的是,上述處于工作狀態(tài)的喚醒鎖可能有一個,也可能有多個,當檢測到處于工作狀態(tài)的喚醒鎖有多個時,則分別獲取多個喚醒鎖對應的應用進程名稱,確定是否存在與上述應用進程相對應的喚醒鎖。即判斷上述應用進程是否持有喚醒鎖的步驟可以具體包括:
[0057]檢測終端中是否存在處于工作狀態(tài)的喚醒鎖;
[0058]若是,則判斷上述處于工作狀態(tài)的喚醒鎖是否為與上述應用進程相對應的喚醒鎖;
[0059]若是,則確定上述應用進程持有喚醒鎖。
[0060]步驟S102,確定與關閉的應用進程相關聯(lián)的關聯(lián)應用進程。
[0061]在實際應用當中,以基于android系統(tǒng)的智能設備為例,一切都是軟件進程事件觸發(fā)自行后臺啟動造成的。因為安卓系統(tǒng)的進程管理機制是事件觸發(fā)式,比如開機時、打開某應用進程時、網(wǎng)絡連接更改時、電量不足時、時間更改、插上電源時、斷開電源時等等這些狀態(tài)的改變都可看作一個事件,而安卓系統(tǒng)允許程序關聯(lián)這些事件,比如關聯(lián)開機事件后,就相當于我們一般說的開機啟動了。但是安卓系統(tǒng)是可以允許一個程序關聯(lián)多個事件的,以谷歌地圖舉例,它關聯(lián)的觸發(fā)事件有“開機后、安裝程序、卸載程序、更新程序、插上電源”等等,這些事件中的任何一個狀態(tài)發(fā)生改變,系統(tǒng)就會自動后臺運行谷歌地圖,再比如說打開支付寶APP時,該事件作為一個觸發(fā)事件,便可以關聯(lián)啟動天貓APP、淘寶APP等應用進程。很多軟件安裝完以后所產生的自啟動項,會根據(jù)不同觸發(fā)條件自行啟動自身的進程。另外,在用戶終端上安裝的眾多應用進程當中,有些應用進程之間存在相互依賴關系,比如應用進程A與應用進程B同時運行時,若強制關閉應用進程A,則應用進程B將無法運行,則可以認為該應用進程A與應用進程B屬于關聯(lián)進程。
[0062]在本發(fā)明實施例當中,可以獲取上述關閉的應用進程的標識信息,該標識信息可以為該應用進程中的特征信息,比如該應用進程的uicKUser Identifier,用戶身份證明)信息,uid是描述業(yè)務關聯(lián)點進程的一個標識,相同業(yè)務不同進程一般會使用相同的UidJA而查找系統(tǒng)后臺運行的應用進程當中使用該uid的應用進程,該應用進程即為上述關聯(lián)應用進程。即上述根據(jù)關閉的應用進程確定與其進程相關聯(lián)的關聯(lián)應用進程的步驟可以具體包括:
[0063]獲取關閉的應用進程中的標識信息;
[0064]在終端系統(tǒng)中查找具有相同標識信息的進程;
[0065]確定該進程為關聯(lián)應用進程。
[0066]在本發(fā)明的其他實施例當中,還可以在預設的關聯(lián)應用進程列表中查找與關閉的應用進程相關聯(lián)的應用進程,其中,該關聯(lián)應用進程列表可以為預先從服務器中下載的預設列表,該關聯(lián)應用進程列表中可以包括應用進程和與該應用進程相關聯(lián)的應用進程的信息。
[0067]可選的,還可以先確定用戶關閉的應用進程的標識信息(比如應用進程的名稱),將該標識信息發(fā)送至服務器,以使服務器在預設的關聯(lián)應用進程列表當中查找與該應用進程標識對應的應用進程標識,并將該對應的應用進程標識發(fā)送至用戶終端,從而確定關聯(lián)應用進程。
[0068]步驟S103,判斷關聯(lián)應用進程是否持有喚醒鎖。若是,則執(zhí)行步驟S104,若否,則執(zhí)行步驟S105。
[0069]比如,可以獲取該關聯(lián)應用進程的標識信息,根據(jù)該標識信息在系統(tǒng)中查找與該標識信息相對應且處于工作狀態(tài)的喚醒鎖,若存在,則確定該關聯(lián)應用進程持有喚醒鎖。
[0070]步驟S104,釋放關聯(lián)應用進程持有的喚醒鎖。
[0071]比如,若判斷上述關聯(lián)應用進程持有喚醒鎖,則釋放掉該喚醒鎖,以使終端的cpu能夠進入深度睡眠狀態(tài),從而減少了不必要的待機時電池電量的消耗,增加待機時間。
[0072]可選的,在釋放該關聯(lián)應用進程持有的喚醒鎖之前,接收用戶發(fā)出的確認信息,然后根據(jù)該確認信息釋放上述喚醒鎖,比如,在手機屏幕中生成一個提示窗口,該提示窗口中可以包含關聯(lián)應用進程信息,提醒用戶是否釋放這些應用進程的喚醒鎖,若用戶點擊“確認”按鈕,則對上述關聯(lián)應用進程持有的喚醒鎖進行釋放;若用戶點擊“取消”按鈕,則上述喚醒鎖不做進一步處理。
[0073]步驟S105,確定其關聯(lián)應用進程未持有喚醒鎖。
[0074]在本發(fā)明實施例中,考慮到用戶使用終端的靈活性,本發(fā)明實施例可以增加一個控制開關,用于控制該喚醒鎖的釋放方式的開啟與關閉。
[0075]可選的,本發(fā)明實施例提供的喚醒鎖的釋放方式可以減少終端的功耗,進而增長待機時間,因此該處理方法還可以預先在終端中設置一個剩余電量閾值,當終端電量低于該預設閾值時,自動打開該功能,比如,當手機電量低于20 %時,手機進入省電模式自動打開該功能,其中剩余電量的預設閾值可以根據(jù)用戶需求來自行設定。
[0076]由上可知,本發(fā)明實施例采用在關閉應用進程時,釋放應用進程持有的喚醒鎖,確定與該應用進程相關聯(lián)的關聯(lián)應用進程,判斷上述關聯(lián)應用進程是否持有喚醒鎖,若是,則釋放該關聯(lián)應用進程持有的喚醒鎖;本方案可以在關閉應用進程時,釋放掉該應用進程的喚醒鎖的同時進一步釋放與該應用進程相關聯(lián)的應用進程所持有的喚醒鎖,從而減少了終端中電量的消耗,節(jié)省了終端的電量,進而可以提高終端的續(xù)航能力。
[0077]實施例二、
[0078]本實施例將在實施例一描述的方法基礎上,對本發(fā)明的處理方法做進一步介紹,參考圖2,本發(fā)明實施例提供的喚醒鎖的釋放方法包括:
[0079]步驟S201,關閉應用進程時,釋放應用進程持有的喚醒鎖。
[0080]步驟S202,獲取關閉的應用進程中的用戶標識信息。
[0081]具體的,可以獲取該應用進程的uid,以基于android系統(tǒng)的終端為例,為了實現(xiàn)數(shù)據(jù)共享,android為每個應用幾乎都分配了不同的uid,相同業(yè)務不同進程一般會使用相同的uid,具體的,可以獲取該應用進程的屬性信息,其中,上述屬性信息中包括該應用進程的uido
[0082]步驟S203,在系統(tǒng)中查找具有相同用戶標識信息的進程;
[0083]步驟S204,確定該進程為關聯(lián)應用進程;
[0084]上述步驟S202-S204即為確定關聯(lián)應用進程的過程,在實際應用進程中,考慮到有些應用進程之間會相互綁定,此時,確定綁定的應用進程為關聯(lián)應用進程,該步驟可以具體為:獲取所述應用進程的進程標識信息;
[0085]根據(jù)所述進程標識信息確定相關聯(lián)的應用進程。
[0086]步驟S205,判斷關聯(lián)應用進程是否正在終端前臺運行,若是,則執(zhí)行步驟S208,若否,則執(zhí)行步驟S206。
[0087]在本步驟中,考慮到用戶在關閉一個應用進程后,可能在前臺打開與其關聯(lián)的應用進程,此時并不需要釋放該關聯(lián)應用進程持有的喚醒鎖,故而增加判斷關聯(lián)應用進程是否正在終端前臺運行的步驟,增加了便利性。
[0088]步驟S206,判斷關聯(lián)應用進程是否為預設應用進程,若是,則執(zhí)行步驟S208,若否,則執(zhí)行步驟S207。
[0089]在本發(fā)明實施例中,可預先建立預設應用進程集合,該預設應用進程可以為一些常用的應用進程,或是可以允許后臺持有鎖不被釋放掉的應用進程,因此判斷關聯(lián)應用進程是否為預設應用進程的步驟可以具體包括:
[0090]獲取該關聯(lián)應用進程的標識信息;
[0091 ]在預設應用進程集合查找是否存在與該標識信息相對應的樣本;
[0092]若不存在,則確定該關聯(lián)應用進程不為預設應用進程。
[0093]步驟S207,判斷關聯(lián)應用進程是否持有喚醒鎖,若是,則執(zhí)行步驟S209,若否,則執(zhí)行步驟S209。
[0094]在本發(fā)明實施例中,判斷上述關聯(lián)應用進程是否持有喚醒鎖的方法可以有多種,比如可以對終端進行檢測是否有喚醒鎖處于工作狀態(tài),若是,則判斷該喚醒鎖是否為與上述關聯(lián)應用進程所對應的喚醒鎖。
[0095]步驟S208,允許關聯(lián)應用進程持有喚醒鎖。
[0096]比如,當該關聯(lián)應用進程正在終端的前臺運行時,或者判斷該關聯(lián)應用進程為預設應用進程時,允許其持有喚醒鎖。
[0097]步驟S209,釋放關聯(lián)應用進程持有的喚醒鎖。
[0098]可選的,在釋放該關聯(lián)應用進程持有的喚醒鎖時,可以生成提示信息,以通知用戶那些喚醒鎖被釋放掉。
[0099]步驟S210,確定關聯(lián)應用進程未持有喚醒鎖。
[0100]本發(fā)明實施例中,上述終端可以但不限于智能手機、平板電腦、筆記本電腦等智能終端,其中,該終端的操作系統(tǒng)可以為Android操作系統(tǒng)、1S操作系統(tǒng)、Black Berry操作系統(tǒng)等,本發(fā)明不做限定。
[0101]由上可知,本發(fā)明實施例采用在關閉應用進程時,釋放應用進程持有的喚醒鎖,確定與該應用進程相關聯(lián)的關聯(lián)應用進程,判斷上述關聯(lián)應用進程是否持有喚醒鎖,若是,則釋放該關聯(lián)應用進程持有的喚醒鎖;本方案可以在關閉應用進程時,釋放掉該應用進程的喚醒鎖的同時進一步釋放與該應用進程相關聯(lián)的應用進程所持有的喚醒鎖,從而減少了終端中電量的消耗,節(jié)省了終端的電量,進而可以提高終端的續(xù)航能力,另外方案不需要增加任何器件以及物料成本,實施起來較為簡單。
[0102]實施例三、
[0103]本實施例將以智能手機為例,上述喚醒鎖為cpu鎖,描述本方案在實際應用當中的具體實施步驟,請參閱圖3,包括以下步驟:
[0104]步驟S301,智能手機關閉應用進程時,釋放該應用進程持有的cpu鎖。
[0105]比如,關閉應用A時,系統(tǒng)會查找到后臺處于工作狀態(tài)的cpu鎖當中與A相對應的,并將該cpu鎖釋放掉。
[0106]步驟S302,智能手機獲取該關閉的應用進程中的uid;
[0107]步驟S303,智能手機在系統(tǒng)中查找具有相同uid的進程;
[0108]步驟S304,智能手機確定該進程為關聯(lián)應用進程。
[0109]比如,應用進程A與應用進程B的進程中使用相同的uid,則在應用A關閉后,獲取應用A進程當中的uid,然后進一步查找系統(tǒng)的進程當中同樣具有上述uid的其他進程也即應用進程B,確定應用進程B為關聯(lián)應用進程。
[0110]步驟S305,智能手機判斷關聯(lián)應用進程是否正在手機前臺運行,若是,則執(zhí)行步驟S308,若否,則執(zhí)行步驟S306。
[0111]比如,在確定關聯(lián)應用進程為B后,判斷當前的手機前臺是否正在運行該應用進程B。
[0112]步驟S306,智能手機判斷關聯(lián)應用進程是否在白名單當中,若是,則執(zhí)行步驟S308,若否,則執(zhí)行步驟S307。
[0113]具體的,可以預先根據(jù)用戶指令建立白名單,該白名單中包含的應用進程可以為一些常用的應用進程,或是可以允許后臺持有鎖不被釋放掉的應用進程;具體的,可以將該關聯(lián)應用進程與白名單當中的應用進程進行匹配,若該應用進程與白名單當中的應用進程匹配成功,即該應用進程在白名單當中,所以允許該應用進程持有cpu鎖;若該應用進程與白名單當中的應用進程匹配失敗,即該應用進程不在白名單當中,所以不允許該應用進程持有cpu鎖。
[0114]步驟S307,智能手機判斷關聯(lián)應用進程是否持有cpu鎖,若是,則執(zhí)行步驟S309,若否,則執(zhí)行步驟S310。
[0115]以上述關聯(lián)應用進程B為例,具體的,檢測智能手機中是否存在處于工作狀態(tài)的cpu鎖,若存在,則進一步判斷該處于工作狀態(tài)的cpu鎖是否為與應用進程B相對應的cpu鎖,若是則執(zhí)行步驟S309,若否,則執(zhí)行步驟S310。
[0116]步驟S308,智能手機允許該關聯(lián)應用進程持有cpu鎖。
[0117]以上述關聯(lián)應用進程B為例,若智能手機當前正在前臺運行該應用進程B,或是確定該應用進程B在白名單當中,則允許該應用進程B持有cpu鎖。
[0118]步驟S309,智能手機釋放關聯(lián)應用進程持有的cpu鎖。
[0119]可選的,在釋放該應用進程持有的cpu鎖時,可以生成提示信息,以提示用戶該cpu鎖被釋放掉。
[0120]步驟S310,智能手機確定關聯(lián)應用進程未持有cpu鎖,不做進一步處理。
[0121]由上可知,本發(fā)明實施例采用在智能手機關閉應用進程時,釋放應用進程持有的cpu鎖,確定與該應用進程相關聯(lián)的關聯(lián)應用進程,判斷上述關聯(lián)應用進程是否持有cpu鎖,若是,則釋放該關聯(lián)應用進程持有的cpu鎖;本方案可以在手機關閉應用進程時,釋放掉該應用進程的cpu鎖的同時進一步釋放與該應用進程相關聯(lián)的應用進程所持有的cpu鎖,從而減少了終端中電量的消耗,節(jié)省了終端的電量,進而可以提高終端的續(xù)航能力,提升用戶體驗。
[0122]實施例四、
[0123]為了更好地實施上述方法實施例,本發(fā)明還提供了一種喚醒鎖的釋放裝置,該裝置可以集成在終端中,該終端可以為移動互聯(lián)網(wǎng)設備(如智能手機、平板電腦)、智能穿戴設備(如智能手表)等各類智能電子設備。
[0124]如圖4所示,該喚醒鎖的釋放裝置具體包括:第一釋放模塊401、確定模塊402、第一判斷模塊403以及第二釋放模塊404;
[0125]該第一釋放模塊401,用于關閉應用進程時,釋放應用進程持有的喚醒鎖;
[0126]該確定模塊402,用于確定與關閉的應用進程相關聯(lián)的關聯(lián)應用進程;
[0127]該第一判斷模塊403,用于判斷關聯(lián)應用進程是否持有喚醒鎖;
[0128]該第二釋放模塊404,用于當?shù)谝慌袛嗄K403判斷為是時,釋放關聯(lián)應用進程持有的喚醒鎖。
[0129]優(yōu)選的,如圖5所示,本發(fā)明實施例提供的喚醒鎖的釋放裝置還可以包括:第二判斷模塊405和第三判斷模塊406 ;
[0130]該第二判斷模塊405,用于在確定模塊402確定與關閉的應用進程相關聯(lián)的關聯(lián)應用進程之后,第一判斷模塊403判斷關聯(lián)應用進程是否持有喚醒鎖之前,判斷關聯(lián)應用進程是否正在終端前臺運行;
[0131]第一判斷模塊403,具體用于當?shù)诙袛嗄K405判斷為否時,判斷關聯(lián)應用進程是否持有喚醒鎖;
[0132]該第三判斷模塊406,用于在確定模塊402確定與關閉的應用進程相關聯(lián)的關聯(lián)應用進程之后,第一判斷模塊403判斷關聯(lián)應用進程是否持有喚醒鎖之前,判斷關聯(lián)應用進程是否為預設應用進程;
[0133]第一判斷模塊403,具體用于當?shù)谌袛嗄K406判斷為否時,判斷關聯(lián)應用進程是否持有喚醒鎖。
[0134]在本發(fā)明實施例當中,上述裝置中的確定模塊402可以具體包括:第一獲取子模塊、查找子模塊以及第一確定子模塊;
[0135]該第一獲取子模塊,用于獲取關閉的應用進程中的用戶標識信息;
[0136]該查找子模塊,用于在終端系統(tǒng)中查找具有相同用戶標識信息的進程;
[0137]該第一確定子模塊,用于確定該進程為關聯(lián)應用進程。
[0138]可選的,確定模塊402還可以具體包括:第二獲取子模塊和第二確定子模塊;
[0139]該第二獲取子模塊,用于獲取應用進程的進程標識信息;
[0140]該第二確定子模塊,用于根據(jù)進程標識信息確定相關聯(lián)的應用進程。。
[0141]由上可知,本發(fā)明實施例采用在關閉應用進程時,第一釋放模塊401釋放應用進程持有的喚醒鎖,確定模塊402確定與該應用進程相關聯(lián)的關聯(lián)應用進程,第一判斷模塊403判斷上述關聯(lián)應用進程是否持有喚醒鎖,若是,則由第二釋放模塊404釋放該關聯(lián)應用進程持有的喚醒鎖;本方案可以在關閉應用進程時,釋放掉該應用進程的喚醒鎖的同時進一步釋放與該應用進程相關聯(lián)的應用進程所持有的喚醒鎖,從而減少了終端中電量的消耗,節(jié)省了終端的電量,進而可以提高終端的續(xù)航能力。
[0142]具體實施時,以上各個模塊可以作為獨立的實體來實現(xiàn),也可以進行任意組合,作為同一或若干個實體來實現(xiàn),以上各個模塊的具體實施可參見前面的方法實施例,在此不再贅述。
[0143]需要說明的是,本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,該程序可以存儲于計算機可讀存儲介質中,如存儲在終端的存儲器中,并被該終端內的至少一個處理器執(zhí)行,在執(zhí)行過程中可包括如信息發(fā)布方法的實施例的流程。其中,存儲介質可以包括:只讀存儲器(R0M,Read OnlyMemory)、隨機存取記憶體(RAM,Random Access Memory)、磁盤或光盤等。
[0144]以上對本發(fā)明實施例提供的一種喚醒鎖的釋放方法和裝置進行了詳細介紹,其各功能模塊可以集成在一個處理芯片中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的技術人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。
【主權項】
1.一種喚醒鎖的釋放方法,其特征在于,包括以下步驟: 關閉應用進程時,釋放所述應用進程持有的喚醒鎖; 確定與所述應用進程相關聯(lián)的關聯(lián)應用進程; 判斷所述關聯(lián)應用進程是否持有喚醒鎖; 若是,則釋放所述關聯(lián)應用進程持有的喚醒鎖。2.如權利要求1所述的釋放方法,其特征在于,在所述確定與所述應用進程相關聯(lián)的關聯(lián)應用進程之后,判斷所述關聯(lián)應用進程是否持有喚醒鎖之前,所述方法還包括: 判斷所述關聯(lián)應用進程是否正在終端前臺運行; 若否,則執(zhí)行判斷所述關聯(lián)應用進程是否持有喚醒鎖的步驟。3.如權利要求1所述的釋放方法,其特征在于,在確定與所述應用進程相關聯(lián)的關聯(lián)應用進程之后,判斷所述關聯(lián)應用進程是否持有喚醒鎖之前,所述方法還包括: 判斷所述關聯(lián)應用進程是否為預設應用進程; 若否,則執(zhí)行判斷所述關聯(lián)應用進程是否持有喚醒鎖的步驟。4.如權利要求1所述的釋放方法,其特征在于,所述確定與所述應用進程相關聯(lián)的關聯(lián)應用進程的步驟具體包括: 獲取所述關閉的應用進程中的用戶標識信息; 在終端系統(tǒng)中查找具有相同所述用戶標識信息的進程; 確定所述進程為所述關聯(lián)應用進程。5.如權利要求1所述的釋放方法,其特征在于,所述確定與所述應用進程相關聯(lián)的關聯(lián)應用進程的步驟具體包括: 獲取所述應用進程的進程標識信息; 根據(jù)所述進程標識信息確定相關聯(lián)的應用進程。6.一種喚醒鎖的釋放裝置,其特征在于,包括第一釋放模塊、確定模塊、第一判斷模塊以及第二釋放模塊; 所述第一釋放模塊,用于關閉應用進程時,釋放所述應用進程持有的喚醒鎖; 所述確定模塊,用于確定與所述應用進程相關聯(lián)的關聯(lián)應用進程; 所述第一判斷模塊,用于判斷所述關聯(lián)應用進程是否持有喚醒鎖; 所述第二釋放模塊,用于當所述第一判斷模塊判斷為是時,釋放所述關聯(lián)應用進程持有的喚醒鎖。7.如權利要求6所述的喚醒鎖的釋放裝置,其特征在于,所述裝置還包括:第二判斷模塊; 所述第二判斷模塊,用于在所述確定模塊確定與所述應用進程相關聯(lián)的關聯(lián)應用進程之后,所述第一判斷模塊判斷所述關聯(lián)應用進程是否持有喚醒鎖之前,判斷所述關聯(lián)應用進程是否正在終端前臺運行; 所述第一判斷模塊,具體用于當所述第二判斷模塊判斷為否時,判斷所述關聯(lián)應用進程是否持有喚醒鎖。8.如權利要求6所述的喚醒鎖的釋放裝置,其特征在于,所述裝置還包括:第三判斷模塊; 所述第三判斷模塊,用于在所述確定模塊確定與所述應用進程相關聯(lián)的關聯(lián)應用進程之后,所述第一判斷模塊判斷所述關聯(lián)應用進程是否持有喚醒鎖之前,判斷所述關聯(lián)應用進程是否為預設應用進程; 所述第一判斷模塊,具體用于當所述第三判斷模塊判斷為否時,判斷所述關聯(lián)應用進程是否持有喚醒鎖。9.如權利要求6所述的喚醒鎖的釋放裝置,其特征在于,所述確定模塊具體包括:第一獲取子模塊、查找子模塊以及第一確定子模塊; 所述第一獲取子模塊,用于獲取所述關閉的應用進程中的用戶標識信息; 所述查找子模塊,用于在終端系統(tǒng)中查找具有相同所述用戶標識信息的進程; 所述第一確定子模塊,用于確定所述進程為所述關聯(lián)應用進程。10.如權利要求6所述的喚醒鎖的釋放裝置,其特征在于,所述確定模塊具體包括:第二獲取子模塊和第二確定子模塊; 所述第二獲取子模塊,用于獲取所述應用進程的進程標識信息; 所述第二確定子模塊,用于根據(jù)所述進程標識信息確定相關聯(lián)的應用進程。
【文檔編號】G06F1/32GK106020426SQ201610379891
【公開日】2016年10月12日
【申請日】2016年5月31日
【發(fā)明人】張俊
【申請人】廣東歐珀移動通信有限公司