本發(fā)明涉及計算機技術(shù)領域,具體而言,本發(fā)明涉及一種應用程序存儲數(shù)據(jù)的方法,及一種應用程序存儲數(shù)據(jù)的裝置。
背景技術(shù):
隨著時代的發(fā)展,各種終端設備已成為人們生活中必不可少的工具,各種功能強大的終端操作系統(tǒng)及終端應用程序不斷涌現(xiàn),為用戶帶來了更加便捷的體驗,同時,用戶的使用需求也越來越多樣化,用戶對隱私保護的安全意識也逐漸增強。例如,用戶在使用終端應用程序時,希望靈活地根據(jù)意愿自主選擇保留或刪除應用程序的相關數(shù)據(jù),從而保護用戶自身的隱私信息。
現(xiàn)有技術(shù)中,一方面,例如,用戶在使用聊天類應用程序時,用戶希望不保存本次聊天記錄,往往在用戶退出本次應用程序的同時刪除用戶所有的聊天記錄,當用戶再次進入該聊天類應用程序時,用戶將無法獲取到用戶在上次登錄之前的歷史聊天記錄,從而降低用戶的使用體驗;另一方面,例如,用戶通過瀏覽器進行網(wǎng)頁瀏覽時,當用戶希望本次瀏覽的網(wǎng)頁地址不被瀏覽器記錄時,通過類似無痕模式的方式進行網(wǎng)頁瀏覽,但是,用戶在該模式下無法查看歷史瀏覽記錄,從而無法滿足用戶的個性化使用需求。
技術(shù)實現(xiàn)要素:
為克服上述技術(shù)問題或者至少部分地解決上述技術(shù)問題,特提出以下技術(shù)方案:
本發(fā)明的實施例提出了一種應用程序存儲數(shù)據(jù)的方法,包括:
當監(jiān)測到應用程序請求數(shù)據(jù)處理時,通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及其所存儲的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件;
若不存在,將第一數(shù)據(jù)文件備份存儲至第二存儲路徑,并作為第二數(shù)據(jù)文件;
檢測到應用程序的活動進程結(jié)束時,刪除第二存儲路徑下的所有文件。
優(yōu)選地,當監(jiān)測到應用程序請求數(shù)據(jù)處理時,通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及其所存儲的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件,包括:
確定與所請求數(shù)據(jù)對應的第一存儲路徑,并判斷第一存儲路徑下是否存儲第一數(shù)據(jù)文件;
若已存儲,則通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及其所存儲的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件。
可選地,該方法還包括:
若判斷第一存儲路徑下未存儲第一數(shù)據(jù)文件時,在第二存儲路徑中創(chuàng)建第二數(shù)據(jù)文件。
可選地,該方法還包括:
響應于應用程序的數(shù)據(jù)處理請求,對第二數(shù)據(jù)文件中的數(shù)據(jù)進行相應處理。
可選地,該方法還包括:
判斷應用程序存儲數(shù)據(jù)的方式是否為預定的存儲方式;
若不是,響應于應用程序的數(shù)據(jù)處理請求,對第一數(shù)據(jù)文件中的數(shù)據(jù)進行相應處理。
可選地,檢測到應用程序的活動進程結(jié)束時,還包括:
刪除第二存儲路徑。
可選地,該方法還包括:
應用程序的活動進程啟動時,創(chuàng)建第二存儲路徑。
本發(fā)明的另一實施例提出了一種應用程序存儲數(shù)據(jù)的裝置,包括:
掛鉤及判斷模塊,用于當監(jiān)測到應用程序請求數(shù)據(jù)處理時,通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及其所存儲的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件;
備份模塊,用于若不存在,將第一數(shù)據(jù)文件備份存儲至第二存儲路徑,并作為第二數(shù)據(jù)文件;
刪除模塊,用于檢測到應用程序的活動進程結(jié)束時,刪除第二存儲路徑下的所有文件。
優(yōu)選地,掛鉤及判斷模塊,包括:
確定及判斷單元,用于確定與所請求數(shù)據(jù)對應的第一存儲路徑,并判斷第一存儲路徑下是否存儲第一數(shù)據(jù)文件;
掛鉤單元,用于若已存儲,則通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及其所存儲的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件。
可選地,該裝置還包括:
第一創(chuàng)建模塊,用于若判斷第一存儲路徑下未存儲第一數(shù)據(jù)文件時,在第二存儲路徑中創(chuàng)建第二數(shù)據(jù)文件。
可選地,該裝置還包括:
第一處理模塊,用于響應于應用程序的數(shù)據(jù)處理請求,對第二數(shù)據(jù)文件中的數(shù)據(jù)進行相應處理。
可選地,該裝置還包括:
判斷模塊,用于判斷應用程序存儲數(shù)據(jù)的方式是否為預定的存儲方式;
第二處理模塊,用于若不是,響應于應用程序的數(shù)據(jù)處理請求,對第一數(shù)據(jù)文件中的數(shù)據(jù)進行相應處理。
可選地,刪除模塊,還包括:
刪除單元,用于刪除第二存儲路徑。
可選地,該裝置還包括:
第二創(chuàng)建模塊,用于應用程序的活動進程啟動時,創(chuàng)建第二存儲路徑。
本發(fā)明的實施例中,提出了一種應用程序存儲數(shù)據(jù)的方案,當監(jiān)測到應用程序請求數(shù)據(jù)處理時,通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及其所存儲的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件,若不存在,將第一數(shù)據(jù)文件備份存儲至第二存儲路徑,并作為第二數(shù)據(jù)文件;一方面,實現(xiàn)了對應用程序活動進程的監(jiān)控,為后續(xù)及時處理請求數(shù)據(jù)的操作提供了必要的前提保障,另一方面,通過將第一數(shù)據(jù)文件進行備份,保證了在不丟失用戶歷史數(shù)據(jù)的前提下,同時不影響用戶對歷史數(shù)據(jù)的使用;檢測到應用程序的活動進程結(jié)束時,刪除第二存儲路徑下的所有文件,實現(xiàn)了不破壞用戶歷史數(shù)據(jù)的同時對用戶隱私數(shù)據(jù)的清理,滿足了用戶個性化的隱私要求,保證了用戶的隱私安全,進一步地,提高了用戶的使用體驗。
本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
附圖說明
本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1為本發(fā)明中一個實施例的應用程序存儲數(shù)據(jù)的方法的流程圖;
圖2為本發(fā)明中另一實施例的應用程序存儲數(shù)據(jù)的裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
本技術(shù)領域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”和“該”也可包括復數(shù)形式。應該進一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應該理解,當我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關聯(lián)的列出項的全部或任一單元和全部組合。
本技術(shù)領域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學術(shù)語),具有與本發(fā)明所屬領域中的普通技術(shù)人員的一般理解相同的意義。還應該理解的是,諸如通用字典中定義的那些術(shù)語,應該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。
圖1為本發(fā)明中一個實施例的應用程序存儲數(shù)據(jù)的方法的流程圖。
需要說明的是,本發(fā)明的實施例中的應用程序,均為雙開分身的應用程序,因此,應用程序可以運行在沙箱環(huán)境中,在沙箱運行環(huán)境中可以獲取到應用程序在終端設備操作系統(tǒng)中的相應權(quán)限及相應的系統(tǒng)資源,以執(zhí)行相應的數(shù)據(jù)處理的操作;當然本發(fā)明的實施例也可基于非雙開分身的應用程序中,但是,首先得獲取應用程序在終端設備操作系統(tǒng)中的相應權(quán)限及相應的系統(tǒng)資源,本領域人員可以了解到,獲取應用程序在終端設備操作系統(tǒng)中的相應權(quán)限及相應的系統(tǒng)資源的方式有多種途徑,在此不做限定和贅述。
本發(fā)明的實施例中,各步驟所執(zhí)行的內(nèi)容概述如下:步驟S110:當監(jiān)測到應用程序請求數(shù)據(jù)處理時,通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及其所存儲的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件;步驟S120:若不存在,將第一數(shù)據(jù)文件備份存儲至第二存儲路徑,并作為第二數(shù)據(jù)文件;步驟S130:檢測到應用程序的活動進程結(jié)束時,刪除第二存儲路徑下的所有文件。
本發(fā)明的實施例中,提出了一種應用程序存儲數(shù)據(jù)的方法,當監(jiān)測到應用程序請求數(shù)據(jù)處理時,通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及其所存儲的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件,若不存在,將第一數(shù)據(jù)文件備份存儲至第二存儲路徑,并作為第二數(shù)據(jù)文件;一方面,實現(xiàn)了對應用程序活動進程的監(jiān)控,為后續(xù)及時處理請求數(shù)據(jù)的操作提供了必要的前提保障,另一方面,通過將第一數(shù)據(jù)文件進行備份,保證了在不丟失用戶歷史數(shù)據(jù)的前提下,同時不影響用戶對歷史數(shù)據(jù)的使用;檢測到應用程序的活動進程結(jié)束時,刪除第二存儲路徑下的所有文件,實現(xiàn)了不破壞用戶歷史數(shù)據(jù)的同時對用戶隱私數(shù)據(jù)的清理,滿足了用戶個性化的隱私要求,保證了用戶的隱私安全,進一步地,提高了用戶的使用體驗。以下針對各個步驟的具體實現(xiàn)做進一步的說明:
步驟S110:當監(jiān)測到應用程序請求數(shù)據(jù)處理時,通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及其所存儲的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件。
需要說明的是,術(shù)語“鉤子”涵蓋了用于通過攔截在軟件組件之間傳遞的函數(shù)調(diào)用、消息、或事件來改變或增加操作系統(tǒng)、應用程序、或其他軟件組件的行為的技術(shù)。而處理這種被攔截的函數(shù)調(diào)用、事件或消息的代碼就被稱為鉤子hook函數(shù)。鉤子通常用于各種目標,包括對功能進行調(diào)試和對功能進行擴展。其示例可以包括在鍵盤或鼠標事件傳遞到應用程序之前攔截它們,或者攔截系統(tǒng)調(diào)用(system call)、或者系統(tǒng)函數(shù)行為、函數(shù)執(zhí)行結(jié)果等,以監(jiān)視或修改應用程序或其他組件的功能等等。本實施例即可采用鉤子hook函數(shù)接管應用程序運行時請求數(shù)據(jù)處理的操作。
作為一個沙箱實例,使應用程序運行于沙箱運行環(huán)境中,監(jiān)控應用程序的活動進程是沙箱運行環(huán)境的核心實現(xiàn)者,負責實現(xiàn)兩方面一下的功能,一方面:通過監(jiān)控應用程序?qū)Y源的訪問,使應用程序進程能夠?qū)崿F(xiàn)對應資源的正常調(diào)用。另一方面通過監(jiān)控應用程序?qū)ο到y(tǒng)資源的訪問,例如是否請求發(fā)送短信息,來依據(jù)安全策略確定是否允許其操作,當不允許這種實施這種行為時,可以向相關調(diào)用指令返回自定義數(shù)據(jù),例如返回空值,從而確保能杜絕一些非法操作??蓪⑼ㄟ^鉤子函數(shù)對應用程序的活動進程進行監(jiān)控的方式注冊為服務進程,以鉤子函數(shù)關聯(lián)應用程序活動進程的調(diào)用指令以實現(xiàn)對應用程序的活動監(jiān)控。
具體地,當監(jiān)測到應用程序請求數(shù)據(jù)處理時,通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及存儲與所請求數(shù)據(jù)對應的第一數(shù)據(jù)文件的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件。
例如,用戶在終端設備中使用應用程序App1的分身應用程序App1’,分身應用App1’運行在沙箱運行環(huán)境中,在用戶的使用過程中,在沙箱運行環(huán)境中,通過鉤子函數(shù)對App1’的活動進程進行監(jiān)控,當監(jiān)測到App1’請求讀取數(shù)據(jù)Data1時,通過相關鉤子函數(shù)掛鉤與所請求數(shù)據(jù)Data1所在的第一數(shù)據(jù)文件a.db及存儲文件a.db的第一存儲路徑path1,如“path/data/”,并判斷第二存儲路徑path2,如“path/date/temp”,中是否存在與第一數(shù)據(jù)文件a.db相同的第二數(shù)據(jù)文件,如a’.db。
優(yōu)選地,步驟S110進一步包括步驟S111(圖中未示出)和步驟S112(圖中未示出);步驟S111:確定與所請求數(shù)據(jù)對應的第一存儲路徑,并判斷第一存儲路徑下是否存儲第一數(shù)據(jù)文件;步驟S112:若已存儲,則通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及其所存儲的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件。
例如,用戶在終端設備中使用應用程序App1的分身應用程序App1’,當監(jiān)測到App1’請求讀取數(shù)據(jù)Data1的時,確定存儲所請求讀取數(shù)據(jù)Data1的第一存儲路徑path1,如“path/data/”,并判斷第一存儲路徑path1下是否存儲所請求數(shù)據(jù)Data1所在的第一數(shù)據(jù)文件a.db;若path1下存儲有文件a.db,則通過相關鉤子函數(shù)掛鉤path1和文件a.db,并判斷第二存儲路徑path2,如“path/date/temp”,中是否存在與文件a.db相同的第二數(shù)據(jù)文件,如a’.db。
優(yōu)選地,步驟S110還包括步驟S113(圖中未示出);步驟S113:若判斷第一存儲路徑下未存儲第一數(shù)據(jù)文件時,在第二存儲路徑中創(chuàng)建第二數(shù)據(jù)文件。
例如,用戶在終端設備中使用應用程序App1的分身應用程序App1’,當監(jiān)測到App1’請求讀取數(shù)據(jù)Data1的時,確定存儲所請求讀取數(shù)據(jù)Data1的第一存儲路徑path1,如“path/data/”,并判斷第一存儲路徑path1下是否存儲所請求數(shù)據(jù)Data1所在的第一數(shù)據(jù)文件a.db;若path1未存儲有文件a.db,隨后,在第二存儲路徑path2,如“path/date/temp”,中創(chuàng)建第二數(shù)據(jù)文件,如a’.db。
步驟S120:若不存在,將第一數(shù)據(jù)文件備份存儲至第二存儲路徑,并作為第二數(shù)據(jù)文件。
具體地,若第二存儲路徑中不存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件,將第一數(shù)據(jù)文件備份存儲至第二存儲路徑,并將第一數(shù)據(jù)文件的備份文件作為第二數(shù)據(jù)文件。
例如,若第二存儲路徑path2,如“path/date/temp”,中不存在與第一數(shù)據(jù)文件a.db相同的第二數(shù)據(jù)文件,如a’.db,則將文件a.db通過復制的方式備份存儲至第二存儲路徑path2,備份文件為a’.db,并將文件a’.db作為第二數(shù)據(jù)文件。
步驟S130:檢測到應用程序的活動進程結(jié)束時,刪除第二存儲路徑下的所有文件。
具體地,通過鉤子函數(shù)檢測到應用程序的活動進程結(jié)束時,刪除第二存儲路徑下的所有文件。
例如,在沙箱運行環(huán)境中,通過相關鉤子函數(shù)檢測到應用程序App1’的活動進程結(jié)束時,刪除第二存儲路徑“path/date/temp”下的所有文件。
優(yōu)選地,步驟S130進一步包括步驟S131(圖中未示出);步驟S131:刪除第二存儲路徑。
例如,在沙箱運行環(huán)境中,通過相關鉤子函數(shù)檢測到應用程序App1’的活動進程結(jié)束時,刪除第二存儲路徑“path/date/temp”下的所有文件,并刪除第二存儲路徑“path/date/temp”。
在一優(yōu)選實施例中,該方法還包括步驟S140(圖中未示出);步驟S140:應用程序的活動進程啟動時,創(chuàng)建第二存儲路徑。
例如,在沙箱運行環(huán)境中,通過相關鉤子函數(shù)檢測到應用程序App1’的活動進程啟動時,基于掛鉤到的第一存儲路徑path1,如“path/data/”,創(chuàng)建第二存儲路徑path2,如“path/date/temp”。
又例如,在沙箱運行環(huán)境中,通過相關鉤子函數(shù)檢測到應用程序App1’的活動進程啟動時,首先判斷是否存在第二存儲路徑path2,如“path/date/temp”,若不存在,基于掛鉤到的第一存儲路徑path1,如“path/data/”,創(chuàng)建第二存儲路徑“path/date/temp”。
在一優(yōu)選實施例中,該方法還包括步驟S150(圖中未示出);步驟S150:響應于應用程序的數(shù)據(jù)處理請求,對第二數(shù)據(jù)文件中的數(shù)據(jù)進行相應處理。
例如,響應于應用程序App1’的讀取數(shù)據(jù)Data1的請求,在第二數(shù)據(jù)文件a’.db中查找數(shù)據(jù)Data1對應的數(shù)據(jù)值。
在一優(yōu)選實施例中,該方法還包括步驟S160(圖中未示出)和步驟S170(圖中未示出);步驟S160:判斷應用程序存儲數(shù)據(jù)的方式是否為預定的存儲方式;步驟S170:若不是,響應于應用程序的數(shù)據(jù)處理請求,對第一數(shù)據(jù)文件中的數(shù)據(jù)進行相應處理。
例如,在沙箱運行環(huán)境中,通過相關鉤子函數(shù)檢測到應用程序App1’的活動進程啟動時,判斷App1’存儲數(shù)據(jù)的方式是否為預定的存儲方式,如無痕存儲方式,若不是,響應于App1’的讀取數(shù)據(jù)Data1的請求,在第一數(shù)據(jù)文件a’.db中查找數(shù)據(jù)Data1對應的數(shù)據(jù)值。
又例如,在沙箱運行環(huán)境中,通過相關鉤子函數(shù)檢測到應用程序App1’的活動進程啟動時,判斷App1’存儲數(shù)據(jù)的方式是否為預定的存儲方式,如無痕存儲方式,若不是,在終端設備的人機交互界面中,向用戶提供可選擇無痕存儲方式的選項,隨后根據(jù)用戶的選擇,確定App1’存儲數(shù)據(jù)的方式;若用戶忽略選擇無痕存儲方式,可確定App1’存儲數(shù)據(jù)的方式不是預定的無痕存儲方式,隨后響應于App1’的讀取數(shù)據(jù)Data1的請求,在第一數(shù)據(jù)文件a’.db中查找數(shù)據(jù)Data1對應的數(shù)據(jù)值。
圖2為本發(fā)明中另一實施例的應用程序存儲數(shù)據(jù)的裝置的結(jié)構(gòu)示意圖。
需要說明的是,本發(fā)明的實施例中的應用程序,均為雙開分身的應用程序,因此,應用程序可以運行在沙箱環(huán)境中,在沙箱運行環(huán)境中可以獲取到應用程序在終端設備操作系統(tǒng)中的相應權(quán)限及相應的系統(tǒng)資源,以執(zhí)行相應的數(shù)據(jù)處理的操作;當然本發(fā)明的實施例也可基于非雙開分身的應用程序中,但是,首先得獲取應用程序在終端設備操作系統(tǒng)中的相應權(quán)限及相應的系統(tǒng)資源,本領域人員可以了解到,獲取應用程序在終端設備操作系統(tǒng)中的相應權(quán)限及相應的系統(tǒng)資源的方式有多種途徑,在此不做限定和贅述。
本發(fā)明的實施例中,各模塊所執(zhí)行的內(nèi)容概述如下:掛鉤及判斷模塊210當監(jiān)測到應用程序請求數(shù)據(jù)處理時,通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及其所存儲的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件;備份模塊220若不存在,將第一數(shù)據(jù)文件備份存儲至第二存儲路徑,并作為第二數(shù)據(jù)文件;刪除模塊230檢測到應用程序的活動進程結(jié)束時,刪除第二存儲路徑下的所有文件。
本發(fā)明的實施例中,提出了一種應用程序存儲數(shù)據(jù)的裝置,當監(jiān)測到應用程序請求數(shù)據(jù)處理時,通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及其所存儲的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件,若不存在,將第一數(shù)據(jù)文件備份存儲至第二存儲路徑,并作為第二數(shù)據(jù)文件;一方面,實現(xiàn)了對應用程序活動進程的監(jiān)控,為后續(xù)及時處理請求數(shù)據(jù)的操作提供了必要的前提保障,另一方面,通過將第一數(shù)據(jù)文件進行備份,保證了在不丟失用戶歷史數(shù)據(jù)的前提下,同時不影響用戶對歷史數(shù)據(jù)的使用;檢測到應用程序的活動進程結(jié)束時,刪除第二存儲路徑下的所有文件,實現(xiàn)了不破壞用戶歷史數(shù)據(jù)的同時對用戶隱私數(shù)據(jù)的清理,滿足了用戶個性化的隱私要求,保證了用戶的隱私安全,進一步地,提高了用戶的使用體驗。以下針對各個模塊的具體實現(xiàn)做進一步的說明:
掛鉤及判斷模塊210當監(jiān)測到應用程序請求數(shù)據(jù)處理時,通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及其所存儲的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件。
需要說明的是,術(shù)語“鉤子”涵蓋了用于通過攔截在軟件組件之間傳遞的函數(shù)調(diào)用、消息、或事件來改變或增加操作系統(tǒng)、應用程序、或其他軟件組件的行為的技術(shù)。而處理這種被攔截的函數(shù)調(diào)用、事件或消息的代碼就被稱為鉤子hook函數(shù)。鉤子通常用于各種目標,包括對功能進行調(diào)試和對功能進行擴展。其示例可以包括在鍵盤或鼠標事件傳遞到應用程序之前攔截它們,或者攔截系統(tǒng)調(diào)用(system call)、或者系統(tǒng)函數(shù)行為、函數(shù)執(zhí)行結(jié)果等,以監(jiān)視或修改應用程序或其他組件的功能等等。本實施例即可采用鉤子hook函數(shù)接管應用程序運行時請求數(shù)據(jù)處理的操作。
作為一個沙箱實例,使應用程序運行于沙箱運行環(huán)境中,監(jiān)控應用程序的活動進程是沙箱運行環(huán)境的核心實現(xiàn)者,負責實現(xiàn)兩方面一下的功能,一方面:通過監(jiān)控應用程序?qū)Y源的訪問,使應用程序進程能夠?qū)崿F(xiàn)對應資源的正常調(diào)用。另一方面通過監(jiān)控應用程序?qū)ο到y(tǒng)資源的訪問,例如是否請求發(fā)送短信息,來依據(jù)安全策略確定是否允許其操作,當不允許這種實施這種行為時,可以向相關調(diào)用指令返回自定義數(shù)據(jù),例如返回空值,從而確保能杜絕一些非法操作??蓪⑼ㄟ^鉤子函數(shù)對應用程序的活動進程進行監(jiān)控的方式注冊為服務進程,以鉤子函數(shù)關聯(lián)應用程序活動進程的調(diào)用指令以實現(xiàn)對應用程序的活動監(jiān)控。
具體地,當監(jiān)測到應用程序請求數(shù)據(jù)處理時,通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及存儲與所請求數(shù)據(jù)對應的第一數(shù)據(jù)文件的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件。
例如,用戶在終端設備中使用應用程序App1的分身應用程序App1’,分身應用App1’運行在沙箱運行環(huán)境中,在用戶的使用過程中,在沙箱運行環(huán)境中,通過鉤子函數(shù)對App1’的活動進程進行監(jiān)控,當監(jiān)測到App1’請求讀取數(shù)據(jù)Data1時,通過相關鉤子函數(shù)掛鉤與所請求數(shù)據(jù)Data1所在的第一數(shù)據(jù)文件a.db及存儲文件a.db的第一存儲路徑path1,如“path/data/”,并判斷第二存儲路徑path2,如“path/date/temp”,中是否存在與第一數(shù)據(jù)文件a.db相同的第二數(shù)據(jù)文件,如a’.db。
優(yōu)選地,掛鉤及判斷模塊210進一步包括確定及判斷單元(圖中未示出)和掛鉤單元(圖中未示出);確定及判斷單元確定與所請求數(shù)據(jù)對應的第一存儲路徑,并判斷第一存儲路徑下是否存儲第一數(shù)據(jù)文件;掛鉤單元若已存儲,則通過鉤子函數(shù)掛鉤與所請求數(shù)據(jù)對應第一數(shù)據(jù)文件及其所存儲的第一存儲路徑,并判斷第二存儲路徑中是否存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件。
例如,用戶在終端設備中使用應用程序App1的分身應用程序App1’,當監(jiān)測到App1’請求讀取數(shù)據(jù)Data1的時,確定存儲所請求讀取數(shù)據(jù)Data1的第一存儲路徑path1,如“path/data/”,并判斷第一存儲路徑path1下是否存儲所請求數(shù)據(jù)Data1所在的第一數(shù)據(jù)文件a.db;若path1下存儲有文件a.db,則通過相關鉤子函數(shù)掛鉤path1和文件a.db,并判斷第二存儲路徑path2,如“path/date/temp”,中是否存在與文件a.db相同的第二數(shù)據(jù)文件,如a’.db。
優(yōu)選地,該裝置還包括第一創(chuàng)建模塊(圖中未示出);第一創(chuàng)建模塊若判斷第一存儲路徑下未存儲第一數(shù)據(jù)文件時,在第二存儲路徑中創(chuàng)建第二數(shù)據(jù)文件。
例如,用戶在終端設備中使用應用程序App1的分身應用程序App1’,當監(jiān)測到App1’請求讀取數(shù)據(jù)Data1的時,確定存儲所請求讀取數(shù)據(jù)Data1的第一存儲路徑path1,如“path/data/”,并判斷第一存儲路徑path1下是否存儲所請求數(shù)據(jù)Data1所在的第一數(shù)據(jù)文件a.db;若path1未存儲有文件a.db,隨后,在第二存儲路徑path2,如“path/date/temp”,中創(chuàng)建第二數(shù)據(jù)文件,如a’.db。
備份模塊220若不存在,將第一數(shù)據(jù)文件備份存儲至第二存儲路徑,并作為第二數(shù)據(jù)文件。
具體地,若第二存儲路徑中不存在與第一數(shù)據(jù)文件相同的第二數(shù)據(jù)文件,將第一數(shù)據(jù)文件備份存儲至第二存儲路徑,并將第一數(shù)據(jù)文件的備份文件作為第二數(shù)據(jù)文件。
例如,若第二存儲路徑path2,如“path/date/temp”,中不存在與第一數(shù)據(jù)文件a.db相同的第二數(shù)據(jù)文件,如a’.db,則將文件a.db通過復制的方式備份存儲至第二存儲路徑path2,備份文件為a’.db,并將文件a’.db作為第二數(shù)據(jù)文件。
刪除模塊230檢測到應用程序的活動進程結(jié)束時,刪除第二存儲路徑下的所有文件。
具體地,通過鉤子函數(shù)檢測到應用程序的活動進程結(jié)束時,刪除第二存儲路徑下的所有文件。
例如,在沙箱運行環(huán)境中,通過相關鉤子函數(shù)檢測到應用程序App1’的活動進程結(jié)束時,刪除第二存儲路徑“path/date/temp”下的所有文件。
優(yōu)選地,刪除模塊230進一步包括刪除單元(圖中未示出);刪除單元刪除第二存儲路徑。
例如,在沙箱運行環(huán)境中,通過相關鉤子函數(shù)檢測到應用程序App1’的活動進程結(jié)束時,刪除第二存儲路徑“path/date/temp”下的所有文件,并刪除第二存儲路徑“path/date/temp”。
在一優(yōu)選實施例中,該裝置還包括第二創(chuàng)建模塊(圖中未示出);第二創(chuàng)建模塊應用程序的活動進程啟動時,創(chuàng)建第二存儲路徑。
例如,在沙箱運行環(huán)境中,通過相關鉤子函數(shù)檢測到應用程序App1’的活動進程啟動時,基于掛鉤到的第一存儲路徑path1,如“path/data/”,創(chuàng)建第二存儲路徑path2,如“path/date/temp”。
又例如,在沙箱運行環(huán)境中,通過相關鉤子函數(shù)檢測到應用程序App1’的活動進程啟動時,首先判斷是否存在第二存儲路徑path2,如“path/date/temp”,若不存在,基于掛鉤到的第一存儲路徑path1,如“path/data/”,創(chuàng)建第二存儲路徑“path/date/temp”。
在一優(yōu)選實施例中,該裝置還包括第一處理模塊(圖中未示出);第一處理模塊響應于應用程序的數(shù)據(jù)處理請求,對第二數(shù)據(jù)文件中的數(shù)據(jù)進行相應處理。
例如,響應于應用程序App1’的讀取數(shù)據(jù)Data1的請求,在第二數(shù)據(jù)文件a’.db中查找數(shù)據(jù)Data1對應的數(shù)據(jù)值。
在一優(yōu)選實施例中,該裝置還包括判斷模塊(圖中未示出)和第二處理模塊(圖中未示出);判斷模塊判斷應用程序存儲數(shù)據(jù)的方式是否為預定的存儲方式;第二處理模塊若不是,響應于應用程序的數(shù)據(jù)處理請求,對第一數(shù)據(jù)文件中的數(shù)據(jù)進行相應處理。
例如,在沙箱運行環(huán)境中,通過相關鉤子函數(shù)檢測到應用程序App1’的活動進程啟動時,判斷App1’存儲數(shù)據(jù)的方式是否為預定的存儲方式,如無痕存儲方式,若不是,響應于App1’的讀取數(shù)據(jù)Data1的請求,在第一數(shù)據(jù)文件a’.db中查找數(shù)據(jù)Data1對應的數(shù)據(jù)值。
又例如,在沙箱運行環(huán)境中,通過相關鉤子函數(shù)檢測到應用程序App1’的活動進程啟動時,判斷App1’存儲數(shù)據(jù)的方式是否為預定的存儲方式,如無痕存儲方式,若不是,在終端設備的人機交互界面中,向用戶提供可選擇無痕存儲方式的選項,隨后根據(jù)用戶的選擇,確定App1’存儲數(shù)據(jù)的方式;若用戶忽略選擇無痕存儲方式,可確定App1’存儲數(shù)據(jù)的方式不是預定的無痕存儲方式,隨后響應于App1’的讀取數(shù)據(jù)Data1的請求,在第一數(shù)據(jù)文件a’.db中查找數(shù)據(jù)Data1對應的數(shù)據(jù)值。
本技術(shù)領域技術(shù)人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請中所述操作中的一項或多項的設備。這些設備可以為所需的目的而專門設計和制造,或者也可以包括通用計算機中的已知設備。這些設備具有存儲在其內(nèi)的計算機程序,這些計算機程序選擇性地激活或重構(gòu)。這樣的計算機程序可以被存儲在設備(例如,計算機)可讀介質(zhì)中或者存儲在適于存儲電子指令并分別耦聯(lián)到總線的任何類型的介質(zhì)中,所述計算機可讀介質(zhì)包括但不限于任何類型的盤(包括軟盤、硬盤、光盤、CD-ROM、和磁光盤)、ROM(Read-Only Memory,只讀存儲器)、RAM(Random Access Memory,隨即存儲器)、EPROM(Erasable Programmable Read-Only Memory,可擦寫可編程只讀存儲器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲器)、閃存、磁性卡片或光線卡片。也就是,可讀介質(zhì)包括由設備(例如,計算機)以能夠讀的形式存儲或傳輸信息的任何介質(zhì)。
本技術(shù)領域技術(shù)人員可以理解,可以用計算機程序指令來實現(xiàn)這些結(jié)構(gòu)圖和/或框圖和/或流圖中的每個框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。本技術(shù)領域技術(shù)人員可以理解,可以將這些計算機程序指令提供給通用計算機、專業(yè)計算機或其他可編程數(shù)據(jù)處理方法的處理器來實現(xiàn),從而通過計算機或其他可編程數(shù)據(jù)處理方法的處理器來執(zhí)行本發(fā)明公開的結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個框中指定的方案。
本技術(shù)領域技術(shù)人員可以理解,本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進一步地,具有本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進一步地,現(xiàn)有技術(shù)中的具有與本發(fā)明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。
以上所述僅是本發(fā)明的部分實施方式,應當指出,對于本技術(shù)領域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。