本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種包配置文件的備份方法及終端。
背景技術(shù):
隨著終端技術(shù)的發(fā)展,數(shù)據(jù)備份與恢復(fù)的使用越來(lái)越多,并且,在現(xiàn)有的手機(jī)中,幾乎都存在數(shù)據(jù)備份與恢復(fù)這個(gè)ROM模塊工具,用戶可以備份老手機(jī)上的數(shù)據(jù)并在新手機(jī)上恢復(fù),這就使得用戶在在更換手機(jī)后或者手機(jī)刷機(jī)后,便捷快速地實(shí)現(xiàn)原有手機(jī)數(shù)據(jù)轉(zhuǎn)移的功能。例如,用戶可以對(duì)手機(jī)中的自帶應(yīng)用包含的數(shù)據(jù)進(jìn)行備份,例如短信,聯(lián)系人,通話記錄,日歷,時(shí)鐘,設(shè)置等,進(jìn)一步的,用戶還可以對(duì)手機(jī)上安裝的第三方應(yīng)用進(jìn)行備份,備份的包括了該應(yīng)用下的相關(guān)數(shù)據(jù)(例如聊天記錄等),還包括了該應(yīng)用的相關(guān)配置文件,例如支付寶、微信等第三方應(yīng)用。上述自帶應(yīng)用的數(shù)據(jù)或者第三方應(yīng)用的數(shù)據(jù),都可以看做是一個(gè)備份項(xiàng),例如,通話記錄是一個(gè)備份項(xiàng),微信也是一個(gè)備份項(xiàng)。
除了上述自帶應(yīng)用或者第三方應(yīng)用之外,在手機(jī)中還存在一些其他模塊也需要備份數(shù)據(jù),但是它又沒(méi)有自己相應(yīng)的apk,無(wú)法以應(yīng)用的形式展示出來(lái),只是一個(gè)插件形式,又或者是該模塊不希望單獨(dú)顯示在用戶的面前,想依附于某個(gè)備份項(xiàng)存在。針對(duì)上述數(shù)據(jù)的備份,因?yàn)橛脩魺o(wú)法在備份的列表中查看到該模塊或者對(duì)應(yīng)的數(shù)據(jù),就無(wú)法對(duì)其進(jìn)行備份,這就使得終端上某些需要備份的數(shù)據(jù)無(wú)法進(jìn)行備份的問(wèn)題。也就是說(shuō),現(xiàn)有的數(shù)據(jù)備份與恢復(fù)中針對(duì)無(wú)法以應(yīng)用的形式展示出來(lái)的模塊的數(shù)據(jù)的備份沒(méi)有相應(yīng)的處理方案,導(dǎo)致了終端中的數(shù)據(jù)備份不完全。
技術(shù)實(shí)現(xiàn)要素:
基于此,為解決現(xiàn)有技術(shù)中數(shù)據(jù)備份與恢復(fù)的方案中因?yàn)闆](méi)有針對(duì)無(wú)法以應(yīng)用的形式展示出來(lái)的模塊的數(shù)據(jù)進(jìn)行備份的相關(guān)解決方案而存在的數(shù)據(jù)備份的完整性不足的技術(shù)問(wèn)題,特提出了一種包配置文件的備份方法。
一種包配置文件的備份方法,包括:
掃描系統(tǒng)中的包文件,獲取所述掃描到的包文件中的包配置文件,所述包文件中包含至少一個(gè)備份項(xiàng);
根據(jù)所述包配置文件中包含的備份項(xiàng)的定義、該備份項(xiàng)的組標(biāo)識(shí)以及備份項(xiàng)類型,加載所述包文件中包含的至少一個(gè)備份項(xiàng),所述備份項(xiàng)類型包括父?jìng)浞蓓?xiàng)和子備份項(xiàng);
在同一組標(biāo)識(shí)的已加載的備份項(xiàng)中查找所述備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng),若查找到,則將所述同一組標(biāo)識(shí)的已加載的備份項(xiàng)中所述備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng)添加到備份恢復(fù)隊(duì)列中;
通過(guò)備份恢復(fù)進(jìn)程檢測(cè)所述備份恢復(fù)隊(duì)列中的備份項(xiàng),若檢測(cè)到的備份項(xiàng)的備份項(xiàng)類型為父?jìng)浞蓓?xiàng),則將該備份項(xiàng)添加到備份項(xiàng)顯示列表中。
可選的,在一個(gè)實(shí)施例中,所述將所述檢測(cè)到的備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng)添加到備份項(xiàng)顯示列表中之后還包括:
將所述組標(biāo)識(shí)與所述檢測(cè)到的備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng)的組標(biāo)識(shí)相同的、且所述備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng)不添加到備份項(xiàng)顯示列表中。
可選的,在一個(gè)實(shí)施例中,所述通過(guò)備份恢復(fù)進(jìn)程檢測(cè)備份恢復(fù)隊(duì)列中的備份項(xiàng)之后還包括:
若檢測(cè)到的備份項(xiàng)的備份項(xiàng)類型為子備份項(xiàng),則在所述備份恢復(fù)隊(duì)列中查找所述組標(biāo)識(shí)與該備份項(xiàng)相同、且所述備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng)作為目標(biāo)父?jìng)浞蓓?xiàng);
在未查找到所述目標(biāo)父?jìng)浞蓓?xiàng)時(shí),判斷該備份項(xiàng)是否支持單獨(dú)備份,若該備份項(xiàng)支持單獨(dú)備份,則將該備份項(xiàng)添加到所述備份項(xiàng)顯示列表中。
可選的,在一個(gè)實(shí)施例中,所述在同一組標(biāo)識(shí)的已加載的備份項(xiàng)中查找所述備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng)之后還包括:
若在所述同一組標(biāo)識(shí)的已加載的備份項(xiàng)中未查找到所述備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng),則判斷該備份項(xiàng)是否支持單獨(dú)備份,若若該備份項(xiàng)支持單獨(dú)備份,則將該備份項(xiàng)添加到所述備份恢復(fù)列表中。
可選的,在一個(gè)實(shí)施例中,所述包配置文件為AndroidManifest.xml文件。
此外,為解決現(xiàn)有技術(shù)中數(shù)據(jù)備份與恢復(fù)的方案中因?yàn)闆](méi)有針對(duì)無(wú)法以應(yīng)用的形式展示出來(lái)的模塊的數(shù)據(jù)進(jìn)行備份的相關(guān)解決方案而存在的數(shù)據(jù)備份的完整性不足的技術(shù)問(wèn)題,特提出了一種包配置文件的備份裝置。
一種包配置文件的備份裝置,包括:
包文件掃描模塊,用于掃描系統(tǒng)中的包文件,獲取所述掃描到的包文件中的包配置文件,所述包文件中包含至少一個(gè)備份項(xiàng);
備份項(xiàng)加載模塊,用于根據(jù)所述包配置文件中包含的備份項(xiàng)的定義、該備份項(xiàng)的組標(biāo)識(shí)以及備份項(xiàng)類型,加載所述包文件中包含的至少一個(gè)備份項(xiàng),所述備份項(xiàng)類型包括父?jìng)浞蓓?xiàng)和子備份項(xiàng);
備份項(xiàng)恢復(fù)隊(duì)列添加模塊,用于在同一組標(biāo)識(shí)的已加載的備份項(xiàng)中查找所述備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng),若查找到,則將所述同一組標(biāo)識(shí)的已加載的備份項(xiàng)中所述備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng)添加到備份恢復(fù)隊(duì)列中;
備份項(xiàng)顯示列表添加模塊,用于通過(guò)備份恢復(fù)進(jìn)程檢測(cè)所述備份恢復(fù)隊(duì)列中的備份項(xiàng),若檢測(cè)到的備份項(xiàng)的備份項(xiàng)類型為父?jìng)浞蓓?xiàng),則將該備份項(xiàng)添加到備份項(xiàng)顯示列表中。
可選的,在一個(gè)實(shí)施例中,所述備份項(xiàng)顯示列表添加模塊還用于將所述組標(biāo)識(shí)與所述檢測(cè)到的備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng)的組標(biāo)識(shí)相同的、且所述備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng)不添加到備份項(xiàng)顯示列表中。
可選的,在一個(gè)實(shí)施例中,所述備份項(xiàng)顯示列表添加模塊還用于若檢測(cè)到的備份項(xiàng)的備份項(xiàng)類型為子備份項(xiàng),則在所述備份恢復(fù)隊(duì)列中查找所述組標(biāo)識(shí)與該備份項(xiàng)相同、且所述備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng)作為目標(biāo)父?jìng)浞蓓?xiàng);在未查找到所述目標(biāo)父?jìng)浞蓓?xiàng)時(shí),判斷該備份項(xiàng)是否支持單獨(dú)備份,若該備份項(xiàng)支持單獨(dú)備份,則將該備份項(xiàng)添加到所述備份項(xiàng)顯示列表中。
可選的,在一個(gè)實(shí)施例中,所述備份項(xiàng)恢復(fù)隊(duì)列添加模塊還用于若在所述同一組標(biāo)識(shí)的已加載的備份項(xiàng)中未查找到所述備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng),則判斷該備份項(xiàng)是否支持單獨(dú)備份,若若該備份項(xiàng)支持單獨(dú)備份,則將該備份項(xiàng)添加到所述備份恢復(fù)列表中。
可選的,在一個(gè)實(shí)施例中,所述包配置文件為AndroidManifest.xml文件。
實(shí)施本發(fā)明實(shí)施例,將具有如下有益效果:
采用了上述包配置文件的備份方法及裝置之后,在進(jìn)行備份的過(guò)程中,對(duì)終端系統(tǒng)中的包文件進(jìn)行掃描,并根據(jù)包文件中包括的包配置文件中對(duì)應(yīng)的備份項(xiàng)的相關(guān)屬性信息加載包文件中的所有備份項(xiàng),并根據(jù)父?jìng)浞蓓?xiàng)、子備份項(xiàng)確定是否該備份項(xiàng)能否被備份,在父?jìng)浞蓓?xiàng)存在時(shí),其對(duì)應(yīng)的子備份項(xiàng)會(huì)隨著父?jìng)浞蓓?xiàng)的備份而進(jìn)行備份,在父?jìng)浞蓓?xiàng)不存在時(shí),其對(duì)應(yīng)的子備份項(xiàng)是否被備份由該備份項(xiàng)預(yù)先定義的是否支持單獨(dú)備份進(jìn)行決定。也就是說(shuō),在采用了上述包配置文件的備份方法及裝置之后,在對(duì)終端中的文件進(jìn)行備份時(shí),針對(duì)終端中無(wú)法以應(yīng)用的形式單獨(dú)展示出來(lái)的模塊的數(shù)據(jù),提供了一種數(shù)據(jù)備份的方案,避免了因?yàn)樯鲜鰯?shù)據(jù)因?yàn)闊o(wú)法單獨(dú)以應(yīng)用的形式進(jìn)行展示而導(dǎo)致的無(wú)法備份的問(wèn)題,提高了終端中的數(shù)據(jù)在進(jìn)行備份的過(guò)程中的數(shù)據(jù)完整性。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
其中:
圖1為一個(gè)實(shí)施例中一種包配置文件的備份方法的流程示意圖;
圖2為一個(gè)實(shí)施例中一種包配置文件的備份裝置的結(jié)構(gòu)示意圖;
圖3為一個(gè)實(shí)施例中運(yùn)行上述包配置文件的備份方法的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
為解決現(xiàn)有技術(shù)中數(shù)據(jù)備份與恢復(fù)的方案中因?yàn)闆](méi)有針對(duì)無(wú)法以應(yīng)用的形式展示出來(lái)的模塊的數(shù)據(jù)進(jìn)行備份的相關(guān)解決方案而存在的數(shù)據(jù)備份的完整性不足的技術(shù)問(wèn)題,在本實(shí)施例中,特提出了一種包配置文件的備份方法,該方法的實(shí)現(xiàn)可依賴于計(jì)算機(jī)程序,該計(jì)算機(jī)程序可運(yùn)行于基于馮諾依曼體系的計(jì)算機(jī)系統(tǒng)之上,該計(jì)算機(jī)程序可以是文件備份與恢復(fù)的應(yīng)用程序。該計(jì)算機(jī)系統(tǒng)可以是運(yùn)行上述計(jì)算機(jī)程序的例如智能手機(jī)、平板電腦、掌上電腦、個(gè)人電腦等終端設(shè)備。
具體的,如圖1所示,上述包配置文件的備份方法包括如下步驟:
步驟S102:掃描系統(tǒng)中的包文件,獲取所述掃描到的包文件中的包配置文件,所述包文件中包含至少一個(gè)備份項(xiàng)。
在用戶需要對(duì)終端進(jìn)行備份時(shí),或者終端自身根據(jù)預(yù)先設(shè)置啟動(dòng)備份程序時(shí),首先需要對(duì)終端的系統(tǒng)中包含的所有包文件進(jìn)行掃描,也就是說(shuō),需要對(duì)終端中所有安裝的APP的包文件進(jìn)行掃描,在終端中安裝的APP的包文件中包含了至少一個(gè)備份項(xiàng),例如,在微信應(yīng)用的包文件中包含了聊天記錄、用戶設(shè)置、聯(lián)系人等多個(gè)獨(dú)立的備份項(xiàng)。
在系統(tǒng)中的包文件中還包括了包配置文件,例如,在Android系統(tǒng)中,包配置文件即為AndroidManifest.xml文件,該文件在每一個(gè)程序中均為存在且唯一存在的必須的文件,且位于整個(gè)應(yīng)用對(duì)應(yīng)的所有的文件中的根目錄,描述了包文件中暴露的組件(activities,services等)、相應(yīng)的實(shí)現(xiàn)類、以及能被處理的數(shù)據(jù)和啟動(dòng)位置。
在包配置文件中包含了包文件中包含了其中包含的每一個(gè)備份項(xiàng)對(duì)應(yīng)的寶備份項(xiàng)的定義、備份項(xiàng)的組標(biāo)識(shí)以及備份項(xiàng)的備份項(xiàng)類型,根據(jù)包配置文件中包含的與備份項(xiàng)對(duì)應(yīng)的上述屬性信息,可以確定在該包文件中包含的各個(gè)備份項(xiàng)以及其對(duì)應(yīng)的定義等屬性信息。
步驟S104:根據(jù)所述包配置文件中包含的備份項(xiàng)的定義、該備份項(xiàng)的組標(biāo)識(shí)以及備份項(xiàng)類型,加載所述包文件中包含的至少一個(gè)備份項(xiàng),所述備份項(xiàng)類型包括父?jìng)浞蓓?xiàng)和子備份項(xiàng)。
具體實(shí)施例中,根據(jù)包配置文件中包含的包文件中包含的所有的備份項(xiàng)對(duì)應(yīng)的備份項(xiàng)的定義、備份項(xiàng)的組標(biāo)識(shí)、備份項(xiàng)的備份項(xiàng)類型,加載包文件中包含的所有備份項(xiàng)。
需要說(shuō)明的是,在本實(shí)施例中,上述包配置文件中包含的備份項(xiàng)的備份項(xiàng)的組標(biāo)識(shí)可以是在該備份項(xiàng)的AndroidManifest.xml文件中添加對(duì)應(yīng)的屬性信息來(lái)實(shí)現(xiàn),例如,可以在每一個(gè)備份項(xiàng)的AndroidManifest.xml文件中添加GROUP_NAME屬性來(lái)對(duì)每一個(gè)備份項(xiàng)的組標(biāo)識(shí)進(jìn)行定義。
進(jìn)一步的,上述包配置文件中包含的備份項(xiàng)的備份項(xiàng)類型包括了父?jìng)浞蓓?xiàng)、子備份項(xiàng)以及普通備份項(xiàng)三種情形,并且,備份項(xiàng)類型的定義可以通富哦在每一個(gè)備份項(xiàng)在AndroidManifest.xml文件中相應(yīng)的定義中添加對(duì)應(yīng)的屬性信息來(lái)實(shí)現(xiàn),例如,可以在每一個(gè)備份項(xiàng)在AndroidManifest.xml文件中的相關(guān)定義部分添加GROUP_TYPE屬性,且在GROUP_TYPE=1時(shí),該備份項(xiàng)的備份項(xiàng)類型為父?jìng)浞蓓?xiàng),在GROUP_TYPE=2時(shí),該備份項(xiàng)的備份項(xiàng)類型為子備份項(xiàng),在GROUP_TYPE=0時(shí),該備份項(xiàng)的備份項(xiàng)類型為普通備份項(xiàng)。
需要說(shuō)明的是,在本實(shí)施例中,備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng)(以下簡(jiǎn)稱父?jìng)浞蓓?xiàng))和與之對(duì)應(yīng)的備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng)(以下簡(jiǎn)稱與父?jìng)浞蓓?xiàng)對(duì)應(yīng)的子備份項(xiàng))的組標(biāo)識(shí)是一樣的,也就是說(shuō),對(duì)應(yīng)的父子備份項(xiàng)的組標(biāo)識(shí)是相同的。在已知某一組標(biāo)識(shí)的情況下,在AndroidManifest.xml文件中遍歷所有的備份項(xiàng)對(duì)應(yīng)的相關(guān)屬性信息,可以確定該組標(biāo)識(shí)下的所有備份項(xiàng)。
步驟S106:在同一組標(biāo)識(shí)的已加載的備份項(xiàng)中查找所述備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng),若查找到,則執(zhí)行步驟S108:將所述同一組標(biāo)識(shí)的已加載的備份項(xiàng)中所述備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng)添加到備份恢復(fù)隊(duì)列中;若未查找到,則執(zhí)行步驟S110:判斷該備份項(xiàng)是否支持單獨(dú)備份,若該備份項(xiàng)支持單獨(dú)備份,則將該備份項(xiàng)添加到所述備份恢復(fù)列表中。
針對(duì)AndroidManifest.xml文件中所有的組標(biāo)識(shí)下的備份項(xiàng)分別執(zhí)行步驟S106。對(duì)于某一個(gè)組標(biāo)識(shí)下的所有的已加載的備份項(xiàng),在其中查找備份項(xiàng)類型為父?jìng)浞蓓?xiàng),若查找到,則說(shuō)明在該組標(biāo)識(shí)下存在備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng),則將該備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng)以及對(duì)應(yīng)的備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng)均添加到備份恢復(fù)隊(duì)列中。反之,若沒(méi)有查找到備份項(xiàng)類型為付備份項(xiàng)的備份項(xiàng),則說(shuō)明在該組標(biāo)識(shí)下的備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng)并不存在與之對(duì)應(yīng)的備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng),在此種情況下,是否將該備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng)添加到備份恢復(fù)隊(duì)列中需要分情況討論。
具體的,判斷在該組標(biāo)識(shí)下的備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng),判斷該備份項(xiàng)是否支持單獨(dú)備份,若支持,則將該備份項(xiàng)添加到備份恢復(fù)隊(duì)列中去,以便在后續(xù)的備份中可以將該備份項(xiàng)進(jìn)行備份;反之,若不支持,則不將該備份項(xiàng)添加到備份恢復(fù)隊(duì)列中去,也就是說(shuō),該備份項(xiàng)將不能被后續(xù)的備份中進(jìn)行備份。
可選的,在一個(gè)實(shí)施例中,上述判斷一個(gè)備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng)是否支持單獨(dú)備份的過(guò)程可以通過(guò)該備份項(xiàng)在AndroidManifest.xml文件中關(guān)于單獨(dú)備份的屬性信息進(jìn)行確定,具體的,預(yù)先在備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng)在AndroidManifest.xml文件中的定義中添加是否允許單獨(dú)備份的屬性信息,例如,可以在AndroidManifest.xml文件中針對(duì)備份項(xiàng)添加GROUP_ALONE屬性信息,且在GROUP_ALONE=TRUE時(shí),允許該備份項(xiàng)進(jìn)行單獨(dú)備份,在GROUP_ALONE=FALSE時(shí),不允許該備份項(xiàng)進(jìn)行單獨(dú)備份。需要說(shuō)明的是,在本實(shí)施例中,GROUP_ALONE的屬性信息只需要添加在備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng)在AndroidManifest.xml文件中的相關(guān)定義和屬性信息中進(jìn)行添加,而其他備份項(xiàng)不需要添加與GROUP_ALONE先關(guān)的屬性信息。
步驟S112:通過(guò)備份恢復(fù)進(jìn)程檢測(cè)所述備份恢復(fù)隊(duì)列中的備份項(xiàng),若檢測(cè)到的備份項(xiàng)的備份項(xiàng)類型為父?jìng)浞蓓?xiàng),則執(zhí)行步驟S114:將該備份項(xiàng)添加到備份項(xiàng)顯示列表中;若檢測(cè)到的備份項(xiàng)的備份項(xiàng)類型為子備份項(xiàng),則執(zhí)行步驟S116:在所述備份恢復(fù)隊(duì)列中查找所述組標(biāo)識(shí)與該備份項(xiàng)相同、且所述備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng)作為目標(biāo)父?jìng)浞蓓?xiàng);在未查找到所述目標(biāo)父?jìng)浞蓓?xiàng)時(shí),判斷該備份項(xiàng)是否支持單獨(dú)備份,若該備份項(xiàng)支持單獨(dú)備份,則將該備份項(xiàng)添加到所述備份項(xiàng)顯示列表中。
在針對(duì)系統(tǒng)中包含的所有的包文件中的備份項(xiàng)是否添加到備份恢復(fù)隊(duì)列進(jìn)行操作之后,通過(guò)備份恢復(fù)進(jìn)程檢測(cè)備份恢復(fù)對(duì)應(yīng)中包含的所有備份項(xiàng),需要說(shuō)明的是,在本實(shí)施例中,備份恢復(fù)隊(duì)列中不僅包含了備份項(xiàng),還包含了其對(duì)應(yīng)的相關(guān)屬性信息,例如組標(biāo)識(shí)、備份項(xiàng)類型等。
真毒檢測(cè)到的每一個(gè)備份項(xiàng),根據(jù)該備份項(xiàng)的備份項(xiàng)類型為父?jìng)浞蓓?xiàng)或子備份項(xiàng)分兩種情況分別進(jìn)行說(shuō)明。
具體的,在檢測(cè)到的備份項(xiàng)的備份項(xiàng)類型為父?jìng)浞蓓?xiàng)時(shí),將該備份項(xiàng)添加到備份項(xiàng)顯示列表中去,并且,其對(duì)應(yīng)的備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng)(組標(biāo)識(shí)相同)不會(huì)被添加到備份項(xiàng)顯示列表中去,因?yàn)閭浞蓓?xiàng)類型為子備份項(xiàng)的備份項(xiàng)是依附于備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng)而存在時(shí),只有在后者不存在是才會(huì)單獨(dú)顯示,在后者存在時(shí),并不會(huì)單獨(dú)顯示出來(lái)。
進(jìn)一步的,在檢測(cè)到的備份項(xiàng)的備份項(xiàng)類型為子備份項(xiàng)時(shí),在備份恢復(fù)隊(duì)列中查找與之對(duì)應(yīng)的備份項(xiàng)類型為父?jìng)浞蓓?xiàng)、組標(biāo)識(shí)相同的備份項(xiàng)作為閾值對(duì)應(yīng)的目標(biāo)父?jìng)浞蓓?xiàng),若查找到,則說(shuō)明該父?jìng)浞蓓?xiàng)會(huì)被添加到備份項(xiàng)顯示列表中去,不需要將該檢測(cè)到的備份項(xiàng)添加到備份項(xiàng)顯示列表中去;反之,若沒(méi)有查找到,則說(shuō)明其對(duì)應(yīng)的目標(biāo)父?jìng)浞蓓?xiàng)是不存在的,則需要對(duì)該備份項(xiàng)是否支持單獨(dú)備份進(jìn)行判斷,在支持單獨(dú)備份時(shí),將該備份項(xiàng)添加到備份項(xiàng)顯示列表中去,在不支持單獨(dú)備份時(shí),將該備份項(xiàng)不添加到備份項(xiàng)顯示列表中去,即用戶在備份項(xiàng)顯示列表中既查找不到備份項(xiàng),該備份項(xiàng)也不會(huì)隨著其他備份項(xiàng)進(jìn)行備份。
此外,為解決現(xiàn)有技術(shù)中數(shù)據(jù)備份與恢復(fù)的方案中因?yàn)闆](méi)有針對(duì)無(wú)法以應(yīng)用的形式展示出來(lái)的模塊的數(shù)據(jù)進(jìn)行備份的相關(guān)解決方案而存在的數(shù)據(jù)備份的完整性不足的技術(shù)問(wèn)題,在一個(gè)實(shí)施例中,如圖2所示,還提出了一種包配置文件的備份裝置,具體的,該裝置包括包文件掃描模塊102、備份項(xiàng)加載模塊104、備份項(xiàng)恢復(fù)隊(duì)列添加模塊106以及備份項(xiàng)顯示列表添加模塊108,其中:
包文件掃描模塊102,用于掃描系統(tǒng)中的包文件,獲取所述掃描到的包文件中的包配置文件,所述包文件中包含至少一個(gè)備份項(xiàng);
備份項(xiàng)加載模塊104,用于根據(jù)所述包配置文件中包含的備份項(xiàng)的定義、該備份項(xiàng)的組標(biāo)識(shí)以及備份項(xiàng)類型,加載所述包文件中包含的至少一個(gè)備份項(xiàng),所述備份項(xiàng)類型包括父?jìng)浞蓓?xiàng)和子備份項(xiàng);
備份項(xiàng)恢復(fù)隊(duì)列添加模塊106,用于在同一組標(biāo)識(shí)的已加載的備份項(xiàng)中查找所述備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng),若查找到,則將所述同一組標(biāo)識(shí)的已加載的備份項(xiàng)中所述備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng)添加到備份恢復(fù)隊(duì)列中;
備份項(xiàng)顯示列表添加模塊108,用于通過(guò)備份恢復(fù)進(jìn)程檢測(cè)所述備份恢復(fù)隊(duì)列中的備份項(xiàng),若檢測(cè)到的備份項(xiàng)的備份項(xiàng)類型為父?jìng)浞蓓?xiàng),則將該備份項(xiàng)添加到備份項(xiàng)顯示列表中。
可選的,在其中一個(gè)實(shí)施例中,備份項(xiàng)顯示列表添加模塊108還用于將所述組標(biāo)識(shí)與所述檢測(cè)到的備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng)的組標(biāo)識(shí)相同的、且所述備份項(xiàng)類型為子備份項(xiàng)的備份項(xiàng)不添加到備份項(xiàng)顯示列表中。
可選的,在其中一個(gè)實(shí)施例中,備份項(xiàng)顯示列表添加模塊108還用于若檢測(cè)到的備份項(xiàng)的備份項(xiàng)類型為子備份項(xiàng),則在所述備份恢復(fù)隊(duì)列中查找所述組標(biāo)識(shí)與該備份項(xiàng)相同、且所述備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng)作為目標(biāo)父?jìng)浞蓓?xiàng);在未查找到所述目標(biāo)父?jìng)浞蓓?xiàng)時(shí),判斷該備份項(xiàng)是否支持單獨(dú)備份,若該備份項(xiàng)支持單獨(dú)備份,則將該備份項(xiàng)添加到所述備份項(xiàng)顯示列表中。
可選的,在其中一個(gè)實(shí)施例中,備份項(xiàng)恢復(fù)隊(duì)列添加模塊106還用于若在所述同一組標(biāo)識(shí)的已加載的備份項(xiàng)中未查找到所述備份項(xiàng)類型為父?jìng)浞蓓?xiàng)的備份項(xiàng),則判斷該備份項(xiàng)是否支持單獨(dú)備份,若若該備份項(xiàng)支持單獨(dú)備份,則將該備份項(xiàng)添加到所述備份恢復(fù)列表中。
可選的,在其中一個(gè)實(shí)施例中,上述包配置文件為AndroidManifest.xml文件。
實(shí)施本發(fā)明實(shí)施例,將具有如下有益效果:
采用了上述包配置文件的備份方法及裝置之后,在進(jìn)行備份的過(guò)程中,對(duì)終端系統(tǒng)中的包文件進(jìn)行掃描,并根據(jù)包文件中包括的包配置文件中對(duì)應(yīng)的備份項(xiàng)的相關(guān)屬性信息加載包文件中的所有備份項(xiàng),并根據(jù)父?jìng)浞蓓?xiàng)、子備份項(xiàng)確定是否該備份項(xiàng)能否被備份,在父?jìng)浞蓓?xiàng)存在時(shí),其對(duì)應(yīng)的子備份項(xiàng)會(huì)隨著父?jìng)浞蓓?xiàng)的備份而進(jìn)行備份,在父?jìng)浞蓓?xiàng)不存在時(shí),其對(duì)應(yīng)的子備份項(xiàng)是否被備份由該備份項(xiàng)預(yù)先定義的是否支持單獨(dú)備份進(jìn)行決定。也就是說(shuō),在采用了上述包配置文件的備份方法及裝置之后,在對(duì)終端中的文件進(jìn)行備份時(shí),針對(duì)終端中無(wú)法以應(yīng)用的形式單獨(dú)展示出來(lái)的模塊的數(shù)據(jù),提供了一種數(shù)據(jù)備份的方案,避免了因?yàn)樯鲜鰯?shù)據(jù)因?yàn)闊o(wú)法單獨(dú)以應(yīng)用的形式進(jìn)行展示而導(dǎo)致的無(wú)法備份的問(wèn)題,提高了終端中的數(shù)據(jù)在進(jìn)行備份的過(guò)程中的數(shù)據(jù)完整性。
在一個(gè)實(shí)施例中,如圖3所示,圖3展示了一種運(yùn)行上述包配置文件的備份方法的基于馮諾依曼體系的計(jì)算機(jī)系統(tǒng)的終端。該計(jì)算機(jī)系統(tǒng)可以是智能手機(jī)、平板電腦、掌上電腦等終端。具體的,可包括通過(guò)系統(tǒng)總線連接的外部輸入接口1001、處理器1002、存儲(chǔ)器1003和輸出接口1004。其中,外部輸入接口1001可選的可至少包括網(wǎng)絡(luò)接口10012。存儲(chǔ)器1003可包括外存儲(chǔ)器10032(例如硬盤(pán)、光盤(pán)或軟盤(pán)等)和內(nèi)存儲(chǔ)器10034。輸出接口1004可至少包括顯示屏10042等設(shè)備。
在本實(shí)施例中,本方法的運(yùn)行基于計(jì)算機(jī)程序,該計(jì)算機(jī)程序的程序文件存儲(chǔ)于前述基于馮諾依曼體系的計(jì)算機(jī)系統(tǒng)的外存儲(chǔ)器10032中,在運(yùn)行時(shí)被加載到內(nèi)存儲(chǔ)器10034中,然后被編譯為機(jī)器碼之后傳遞至處理器1002中執(zhí)行,并形成邏輯上的包文件掃描模塊102、備份項(xiàng)加載模塊104、備份項(xiàng)恢復(fù)隊(duì)列添加模塊106以及備份項(xiàng)顯示列表添加模塊108。且在上述包配置文件的備份方法執(zhí)行過(guò)程中,輸入的參數(shù)均通過(guò)外部輸入接口1001接收,并傳遞至存儲(chǔ)器1003中緩存,然后輸入到處理器1002中進(jìn)行處理,處理的結(jié)果數(shù)據(jù)或緩存于存儲(chǔ)器1003中進(jìn)行后續(xù)地處理,或被傳遞至輸出接口1004進(jìn)行輸出。
本發(fā)明實(shí)施例方法中的步驟可以根據(jù)實(shí)際需要進(jìn)行順序調(diào)整、合并和刪減。
本發(fā)明實(shí)施例終端中的單元可以根據(jù)實(shí)際需要進(jìn)行合并、劃分和刪減。本發(fā)明實(shí)施例提供的終端包括但不限于搭載或者其它操作系統(tǒng)的終端,諸如移動(dòng)電話。也可以是其它終端,諸如具有觸敏表面(例如,觸摸屏顯示器和/或觸控板)的膝上型計(jì)算機(jī)或平板電腦或臺(tái)式計(jì)算機(jī)。
在下面的討論中,介紹了一種包括顯示器和觸敏表面的終端。然而應(yīng)當(dāng)理解,終端可以包括一個(gè)或多個(gè)其他物理用戶接口設(shè)備,諸如物理鍵盤(pán)、鼠標(biāo)和/或操作桿。
終端通常支持多種應(yīng)用程序,諸如以下中的一種或多種:畫(huà)圖應(yīng)用程序、呈現(xiàn)應(yīng)用程序、文字處理應(yīng)用程序、網(wǎng)頁(yè)創(chuàng)建應(yīng)用程序、盤(pán)編輯應(yīng)用程序、電子表格應(yīng)用程序、游戲應(yīng)用程序、電話應(yīng)用程序、視頻會(huì)議應(yīng)用程序、電子郵件應(yīng)用程序、即時(shí)消息應(yīng)用程序、鍛煉支持應(yīng)用程序、相片管理應(yīng)用程序、數(shù)字相機(jī)應(yīng)用程序、數(shù)字視頻攝像機(jī)應(yīng)用程序、網(wǎng)絡(luò)瀏覽應(yīng)用程序、數(shù)字音樂(lè)播放器應(yīng)用程序、和/或數(shù)字視頻播放器應(yīng)用程序。
可在終端上執(zhí)行的各種應(yīng)用程序可使用至少一個(gè)共用的物理用戶接口設(shè)備,諸如觸敏表面。觸敏表面的一種或多種功能以及顯示在終端上的相應(yīng)信息可從一種應(yīng)用程序調(diào)整和/或變化至下一種應(yīng)用程序和/或在相應(yīng)應(yīng)用程序內(nèi)被調(diào)整和/或變化。這樣,終端的共用物理架構(gòu)(諸如觸敏表面)可利用對(duì)于用戶而言直觀清楚的用戶界面來(lái)支持各種應(yīng)用程序。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,RAM)等。
以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。