恢復方法及相關裝置與流程
2024-03-10 22:19:15

本發明涉及數據處理技術領域,具體涉及恢復方法及相關裝置。
背景技術:
終端(例如智慧型手機)在運行過程中,如關鍵業務(服務)出現故障,需要進行人為幹預,例如,用戶通過手工操作對終端的作業系統進行重裝(俗稱刷機),或進行返修。
技術實現要素:
有鑑於此,本發明實施例提供一種恢復方法及相關裝置,以在關鍵業務出現故障時對其進行自動恢復。
為實現上述目的,本發明實施例提供如下技術方案:
一種恢復方法,應用於終端,所述恢復方法包括:
在所述終端啟動後,獲取正在運行的關鍵業務的列表;
監測所述列表中各關鍵業務的運行狀態;所述運行狀態包括正常狀態和異常狀態;
判斷所述列表中的關鍵業務是否處於異常狀態;
響應於所述列表中至少一個關鍵業務處於異常狀態,獲取存儲在所述終端中的相應安裝包;
使用獲取的安裝包對相應的、處於異常狀態的關鍵業務進行恢復。
一種恢復裝置,應用於終端,所述恢復裝置包括:
獲取單元,用於在所述終端啟動後,獲取正在運行的關鍵業務的列表;
監測單元,用於監測所述列表中各關鍵業務的運行狀態;所述運行狀態包括正常狀態和異常狀態;
判斷單元,用於判斷所述列表中的關鍵業務是否處於異常狀態;
安裝包獲取單元,用於響應於所述列表中至少一個關鍵業務處於異常狀態,獲取存儲在所述終端中的相應安裝包;
恢復單元,用於使用獲取的安裝包對相應的、處於異常狀態的關鍵業務進行恢復。
一種終端,包括上述的恢復裝置。
基於上述恢復技術方案,本發明實施例在終端啟動後,可自動監測正在運行的關鍵業務的運行狀態,並可自動使用安裝包恢復處於異常狀態的關鍵業務,進而實現在關鍵業務出現故障時對其進行自動恢復。在此過程中,不需人工幹預。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1、2、3a、3b為本發明實施例提供的恢復方法示例性流程圖;
圖4為本發明實施例提供的恢復裝置的示例性結構圖;
圖5為本發明實施例提供的終端的計算機架構示例圖。
具體實施方式
本發明提供恢復方法、恢復裝置及終端。
上述恢復方法或裝置可應用於諸如移動終端(例如智慧型手機)、ministation微遊戲機等的終端中。
更具體的,上述恢復裝置可為作業系統(例如android系統)的監測模塊。
圖1示出了上述恢復方法的一種示例性流程,其至少可包括如下步驟:
s1:在終端啟動後,獲取正在運行的關鍵業務的列表;
上述關鍵業務可為作業系統的關鍵業務(或稱為關鍵模塊、核心模塊),在出廠前,可配置作業系統中的哪些業務為關鍵業務,哪些業務不是關鍵業務。
此外,除作業系統的關鍵業務外,也可允許用戶設置終端上的應用為關鍵業務。
在一個示例中,可在終端啟動後獲取一次列表,然後不再獲取。
作業系統的關鍵業務一般開機後就運行,不過有些關鍵業務運行一段時間後,休眠或者不再運行,有些關鍵業務則會一直運行。因此,在另一個示例中,也可周期性獲取列表。
s2:監測上述列表中各關鍵業務的運行狀態;上述運行狀態包括正常狀態和異常狀態。
更具體的,恢復裝置可維護監測表,在監測表中記錄著上述列表中各關鍵業務對應的運行狀態信息。運行狀態信息用於表徵運行狀態。
進一步的,上述監測表中的運行狀態信息可包括第一取值和第二取值,上述第二取值用於表徵正常狀態。第二取值具體可為1。第一取值具體可為0,或者第二取值具體可為0,第一取值具體可為1。當然,第一取值、第二取值的具體數值還可有其他選擇,只要二者可相互區分即可。
此外,監測表中的運行狀態信息還可包括第三取值,第三取值用於表徵運行終止。第三取值具體可為2。當然,第三取值的具體數值還可有其他選擇,只要與第一取值、第二取值可相互區分即可。
s3:判斷上述列表中的關鍵業務是否處於異常狀態。
可選的,可周期性執行步驟s2和s3。
恢復裝置可以計時器進行計時。
計時器啟動,一個監測周期開始,計時器計時到達設定的時長,則該監測周期結束。在監測周期內,恢復裝置可監測上述列表中各關鍵業務的運行狀態,在監測周期結束時,恢復裝置判斷列表中的關鍵業務是否處於異常狀態。
此外,對於周期性獲取列表的場景,可在監測周期開始時獲取列表。
可選的,用戶可設置計時器的時長,從而控制一個監測周期的時長。
進一步的,可根據監測表判斷上述列表中的關鍵業務是否處於異常狀態。
s4:響應於上述列表中至少一個關鍵業務處於異常狀態,獲取存儲在上述終端中的相應安裝包。
上述安裝包可存儲在終端的flash中。也可存儲在終端的其他存儲介質中。
更具體的,恢復裝置可調用系統安裝/恢復業務,由系統安裝/恢復業務獲取安裝包。
s5:使用獲取的安裝包對相應的、處於異常狀態的關鍵業務進行恢復。
相應的,可由系統安裝/恢復業務在恢復裝置的指示下使用安裝包進行重裝。
上述安裝包可為作業系統安裝包。也即,一旦某一關鍵業務故障,則重新安裝整個作業系統。在重新安裝過程中,可選擇保留用戶數據(例如普通手機app的數據),這樣,作業系統重裝後,用戶不用再重裝手機app。當然,也可選擇不保留用戶數據。
此外,上述安裝包也可為針對關鍵業務的安裝包。也即,哪個關鍵業務故障了,僅安裝該關鍵業務,不會對整個作業系統進行重裝。
無論是哪種安裝包,可以是出廠時即存儲在終端中,這樣重裝後就恢復到了出廠設置。
也可定期下載最新版本的安裝包,這樣重新安裝後,用戶將無需進一步升級。
基於上述恢復技術方案,本發明實施例在終端啟動後,可自動監測正在運行的關鍵業務的運行狀態,並可自動使用安裝包恢復處於異常狀態的關鍵業務,進而實現在關鍵業務出現故障時對其進行自動恢復。在此過程中,不需人工幹預。
需要說明的是,現有的筆記本或臺式機中,有任務管理器一項功能。但任務管理器需要用戶手動啟用,並且,其在啟動後雖可顯示各進程的運行狀態,但只能用戶手動選擇關閉某一進程。
與之相比,本發明實施例所提供的技術方案,在終端啟動後,可執行自動監測及自動恢復關鍵業務。並不需要用戶的參與。
下面,將對上述恢復方法的關鍵步驟進行詳細介紹。
在本發明其他實施例中,請參見圖2,上述步驟s2可具體包括:
s21:獲取狀態報告信息。
上述狀態報告信息由關鍵業務生成。
在一個示例中,若關鍵業務運行正常,則會生成並上報狀態報告信息,否則將不生成或不上報狀態報告信息。則在此示例中,狀態報告信息具體可包含相應關鍵業務的唯一標識,以便於恢復裝置識別是由哪個關鍵業務發送的狀態報告信息。
在另一個示例中,除唯一標識外,上述狀態報告信息還可包括相關的關鍵業務的上報類型。更具體的,上述上報類型可為周期性上報類型或非周期性上報類型。其中,非周期性上報類型的關鍵業務僅上報一次狀態報告信息;周期性上報類型的關鍵業務按設定的發送周期,周期性生成並上報狀態報告信息。
前述提及了,有些關鍵業務運行一段時間後將休眠或者不再運行,有些關鍵業務則會一直運行。只運行一段時間的關鍵業務,其上報類型為非周期性上報類型,也即,該關鍵業務啟動後只上報一次狀態報告信息。
而開機後一直運行的關鍵業務,其上報類型為周期性上報類型,也即,如運行正常,此類關鍵業務將周期性上報狀態報告信息。可將上報狀態報告信息的周期稱為上報周期。
在又一個示例中,即使關鍵業務運行異常,只要還可上報狀態報告信息,便會進行上報。此時,狀態報告信息中除包含相應關鍵業務的唯一標識外,還可包括運行狀態信息。其中,該狀態報告信息中的運行狀態信息可為第一取值、第二取值或第三取值,第一取值用於表徵異常狀態,第二取值用於表徵正常狀態,第三取值用於表徵運行終止。也就是說,關鍵業務會通過狀態報告信息報告自己是處於正常狀態還是處於異常狀態,在運行終止時,其也可發送包含第三取值的狀態報告信息,以便於恢復裝置知曉其運行終止。
s22:根據上述狀態報告信息維護監測表。
相應的,步驟s3可進一步包括如下步驟:
在本監測周期結束時,判定監測表中運行狀態信息為第一取值的關鍵業務的運行狀態為異常狀態,判定監測表中運行狀態信息為其他取值(例如第二取值、第三取值)的關鍵業務的運行狀態為正常狀態。
下面,將對本技術方案進行更為詳細的介紹。
請參見圖3a,上述恢復方法可具體包括:
s301:在終端啟動後,獲取正在運行的關鍵業務的列表。
301部分與上述步驟s1相類似,在此不作贅述。
s302:計時器清零,進入監測周期。
s303:在本監測周期開始時,將列表中的關鍵業務在監測表中對應的運行狀態信息設置為第一取值。
可採用一個監測表記錄列表中所有關鍵業務對應的運行狀態信息,也可採用兩個監測表分別記錄周期性上報類型的關鍵業務的運行狀態信息以及非周期性上報類型的關鍵業務的運行狀態信息。
假設列表中正在運行的關鍵業務有n個,並且第一取值具體為1,則本監測周期開始時,所有關鍵業務的運行狀態信息如下表1所示。
表1
s304:在本監測周期開始時,對非周期性上報類型的關鍵業務,如在本監測周期之前已獲取到了狀態報告信息,則修改對應的運行狀態信息為第二取值(例如0),否則,將運行狀態信息保持為第一取值(例如1)。
假設列表中第m個關鍵業務為非周期性上報類型,並且在本監測周期之前已獲取到其狀態報告信息,則將表1修改為如下表2所示。
表2
s305:在本監測周期內,獲取狀態報告信息。
獲取到的某一狀態報告信息可來自周期性上報類型的關鍵業務,也可來自非周期性上報類型的關鍵業務。
在一個示例中,恢復裝置可與作業系統中的關鍵業務直接通訊,從而可直接接收關鍵業務上報的狀態報告信息。
在另一個示例中,關鍵業務可將狀態報告信息上報(存儲)到共享緩存區域中,恢復裝置可讀取出共享緩存區域中的狀態報告信息,從而獲取到狀態報告信息。
狀態報告信息的發送周期的時長需小於監測周期的時長。
在又一個示例中,在本監測周期內,恢復裝置可向列表中未上報狀態報告信息的關鍵業務發送問詢消息,收到問詢消息的關鍵業務可反饋狀態報告信息。
s306:將本監測周期內獲取到的狀態報告信息所對應的關鍵業務、在監測表中的運行狀態信息設置為第二取值。
仍沿用前例,假定獲取到了表2中的第m個非周期性上報類型的關鍵業務的狀態報告信息,則將其運行狀態信息設置為第二取值(0)。此時,非周期性上報類型的關鍵業務的運行狀態信息如下表3所示。
表3
s307:在本監測周期結束時,判定運行狀態信息為第二取值的關鍵業務處於正常狀態,判定運行狀態信息為第一取值的關鍵業務處於異常狀態。
s308:判斷上述列表中的各關鍵業務是否均處於正常狀態(也即判斷監測表中的運行狀態信息是否均為第二取值),如果是,返回s302,否則,進入s309。
s309:響應於上述列表中至少一個關鍵業務處於異常狀態,獲取存儲在上述終端中的相應安裝包。
309部分與前述的s4相同,在此不作贅述。
s310:使用獲取的安裝包對相應的、處於異常狀態的關鍵業務進行恢復。
310部分與前述的s5相同,在此不作贅述。
在另一個實施例中,請參見圖3b,上述恢復方法可具體包括:
s3001:在終端啟動後,獲取正在運行的關鍵業務的列表。
3001部分與上述步驟s1相類似,在此不作贅述。
s3002:計時器清零,進入監測周期。
s3003:在本監測周期開始時,將列表中的關鍵業務在監測表中對應的運行狀態信息設置為第一取值。
假設列表中正在運行的關鍵業務有n個,並且第一取值具體為1,則本監測周期開始時,所有關鍵業務的運行狀態信息如下表4所示。
表4
s3004:在本監測周期內,獲取狀態報告信息。
其中,狀態報告信息中包含相應關鍵業務的唯一標識及運行狀態信息。狀態報告信息中的運行狀態信息可為第一取值、第二取值或第三取值:第一取值用於表徵異常狀態,第二取值用於表徵正常狀態,第三取值用於表徵運行終止。在本實施例中,第一取值具體為1,第二取值具體為0,第三取值具體為2。
在一個示例中,恢復裝置可與作業系統中的關鍵業務直接通訊,從而可直接接收關鍵業務上報的狀態報告信息。
在另一個示例中,關鍵業務可將狀態報告信息上報(存儲)到共享緩存區域中,恢復裝置可讀取出共享緩存區域中的狀態報告信息,從而獲取到狀態報告信息。
狀態報告信息的發送周期的時長需小於監測周期的時長。
在又一個示例中,在本監測周期內,恢復裝置可向列表中未上報狀態報告信息的關鍵業務發送問詢消息,收到問詢消息的關鍵業務可反饋狀態報告信息。
s3005:提取狀態報告信息中的運行狀態信息。
s3006:根據提取出的運行狀態信息更改監測表中相應關鍵業務的運行狀態信息。
仍沿用前例,假定,第1個關鍵業務上報的狀態報告信息中的運行狀態信息為1,第m個關鍵業務上報的狀態報告信息中的運行狀態信息為2,未收到第n個關鍵業務上報的狀態報告信息,其他關鍵業務上報的狀態報告信息中的運行狀態信息均為0。則表4更改為如下表5所示。
表5
s3007:在本監測周期結束時,判定運行狀態信息為第一取值的關鍵業務處於異常狀態,判定運行狀態信息為其他取值(例如2、0)的關鍵業務處於正常狀態。
s3008:判斷上述列表中的各關鍵業務是否均處於正常狀態(也即判斷上述列表中的各關鍵業務的運行狀態信息是否均不為第一取值),如果是,返回s3002,否則,進入s3009。
s3009:響應於上述列表中至少一個關鍵業務處於異常狀態,獲取存儲在上述終端中的相應安裝包。
3009部分與前述的s4相同,在此不作贅述。
s3010:使用獲取的安裝包對相應的、處於異常狀態的關鍵業務進行恢復。
3010部分與前述的s5相同,在此不作贅述。
在本發明其他實施例中,當本監測周期結束時,若各關鍵業務均處於正常狀態,恢復裝置還可對作業系統及運行中的各app的狀態進行快照,並保存快照數據。
而在某次監測周期結束時,如任一關鍵業務處於異常狀態,除使用安裝包恢復外,還可在恢復後,查找存儲的快照數據,將作業系統及各app的狀態恢復成前一監測周期結束時的狀態。
下面將介紹恢復裝置。前已述及,該恢復裝置可應用於終端。
圖4示出了上述恢復裝置的一種示例性結構,可包括:
獲取單元1,用於在上述終端啟動後,獲取正在運行的關鍵業務的列表;
監測單元2,用於監測上述列表中各關鍵業務的運行狀態;上述運行狀態包括正常狀態和異常狀態;
判斷單元3,用於判斷上述列表中的關鍵業務是否處於異常狀態;
安裝包獲取單元4,用於響應於上述列表中至少一個關鍵業務處於異常狀態,獲取存儲在上述終端中的相應安裝包;
恢復單元5,用於使用獲取的安裝包對相應的、處於異常狀態的關鍵業務進行恢復。
具體細節請參照本文方法部分的介紹,在此不作贅述。
在本發明其他實施例中,在上述監測上述列表中各關鍵業務的運行狀態的方面,上述所有實施例中的監測單元1可具體用於:
獲取狀態報告信息;上述狀態報告信息由關鍵業務生成;
根據上述狀態報告信息維護監測表;上述監測表中包括上述列表中各關鍵業務對應的運行狀態信息。
具體細節請參照本文方法部分的介紹,在此不作贅述。
上述關鍵業務對應有上報類型;上述狀態報告信息中包含相應關鍵業務的唯一標識及上報類型;上述上報類型為周期性上報類型或非周期性上報類型。
其中,非周期性上報類型的關鍵業務僅上報一次狀態報告信息;周期性上報類型的關鍵業務按設定的發送周期,周期性生成並上報狀態報告信息。
上述監測表中的運行狀態信息可至少包括第一取值和第二取值,其中,第二取值用於表徵正常狀態;
在本發明其他實施例中,在上述根據所述狀態報告信息維護監測表的方面,上述所有實施例中的監測單元1可用於:
在本監測周期開始時,將各關鍵業務在監測表中的運行狀態信息設置為第一取值;
如在本監測周期之前已獲取到了非周期性上報類型的關鍵業務的狀態報告信息,則修改監測表中對應的運行狀態信息為第二取值。
具體細節請參照本文方法部分的介紹,例如圖3a所示實例的介紹,在此不作贅述。
在本發明其他實施例中,在上述根據所述狀態報告信息維護監測表的方面,上述所有實施例中的監測單元1還可用於:
將本監測周期內獲取到的狀態報告信息所對應的關鍵業務、在監測表中的運行狀態信息設置為第二取值;
上述發送周期的時長小於上述監測周期的時長。
具體細節請參照本文方法部分的介紹,例如圖3a所示部分的介紹,在此不作贅述。
在本發明其他實施例中,上述所有實施例中的狀態報告信息可包含相應關鍵業務的唯一標識及運行狀態信息;所述狀態報告信息中的運行狀態信息為第一取值、第二取值或第三取值。其中,所述第一取值用於表徵異常狀態,所述第二取值用於表徵正常狀態,所述第三取值用於表徵運行終止。
相應的,在上述根據所述狀態報告信息維護監測表的方面,上述所有實施例中的監測單元1可用於:
在本監測周期開始時,將所述列表中關鍵業務的運行狀態信息設置為第一取值;
在本監測周期內,接收狀態報告信息;
提取接收到的狀態報告信息中的運行狀態信息;
根據提取出的運行狀態信息更改所述監測表中相應關鍵業務的運行狀態信息。
具體細節請參照本文方法部分的介紹,例如圖3b所示部分的介紹,在此不作贅述。
在本發明其他實施例中,在監測上述列表中各關鍵業務的運行狀態的方面,上述所有實施例中的監測單元1還可用於:
在本監測周期結束時,當上述列表中的各關鍵業務均處於正常狀態時,進入下一監測周期。
具體細節請參照本文方法部分的介紹,例如圖3a和圖3b所示部分的介紹,在此不作贅述。
在本發明其他實施例中,在判斷述列表中的關鍵業務是否處於異常狀態的方面,判斷單元3可用於:
在本監測周期結束時,判定監測表中運行狀態信息為第一取值的關鍵業務處於異常狀態,判定監測表中運行狀態信息為其他取值的關鍵業務處於正常狀態。
具體細節請參照本文方法部分的介紹,例如圖3a和圖3b所示部分的介紹,在此不作贅述。
圖5示出了上述終端的一種通用計算機系統結構。
上述計算機系統可包括總線、處理器501、存儲器502、通信接口503、輸入設備504和輸出設備505。處理器501、存儲器502、通信接口503、輸入設備504和輸出設備505通過總線相互連接。其中:
總線可包括一通路,在計算機系統各個部件之間傳送信息。
處理器501可以是通用處理器,例如通用中央處理器(cpu)、網絡處理 器(networkprocessor,簡稱np)、微處理器等,也可以是特定應用集成電路(application-specificintegratedcircuit,asic),或一個或多個用於控制本發明方案程序執行的集成電路。還可以是數位訊號處理器(dsp)、專用集成電路(asic)、現成可編程門陣列(fpga)或者其他可編程邏輯器件、分立門或者電晶體邏輯器件、分立硬體組件。
處理器501可包括主處理器,還可包括基帶晶片、數據機等。
存儲器502中保存有執行本發明技術方案的程序,還可以保存有作業系統和其他關鍵業務。具體地,程序可以包括程序代碼,程序代碼包括計算機操作指令。更具體的,存儲器502可以包括只讀存儲器(read-onlymemory,rom)、可存儲靜態信息和指令的其他類型的靜態存儲設備、隨機存取存儲器(randomaccessmemory,ram)、可存儲信息和指令的其他類型的動態存儲設備、磁碟存儲器、flash等等。此外,存儲器502可存儲安裝包。
輸入設備504可包括接收用戶輸入的數據和信息的裝置,例如鍵盤、滑鼠、攝像頭、掃描儀、光筆、語音輸入裝置、觸控螢幕、計步器或重力感應器等。
輸出設備505可包括允許輸出信息給用戶的裝置,例如顯示屏、印表機、揚聲器等。
通信接口503可包括使用任何收發器一類的裝置,以便與其他設備或通信網絡通信,如乙太網,無線接入網(ran),無線區域網(wlan)等。
處理器501執行存儲器502中所存放的程序,以及調用其他設備,可用於實現本發明前述實施例所提供的恢復方法中的各個步驟。
本說明書中各個實施例採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對於實施例公開的裝置而言,由於其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬體、計算機軟體或者二者的結合來實現,為了清楚地說明硬體和軟體的可互換性,在上述說明中已經按照功能一般性 地描述了各示例的組成及步驟。這些功能究竟以硬體還是軟體方式來執行,取決於技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的範圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬體、處理器執行的軟體模塊,或者二者的結合來實施。軟體模塊可以置於隨機存儲器(ram)、內存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬碟、可移動磁碟、cd-rom、或技術領域內所公知的任意其它形式的存儲介質中。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或範圍的情況下,在其它實施例中實現。因此,本發明將不會被限制於本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的範圍。