本發明涉及通信技術領域,尤其涉及一種無痕瀏覽方法及裝置。
背景技術:
隨著時代的發展,各種終端設備已成為人們生活中必不可少的工具,各種功能強大的終端操作系統及終端應用程序不斷涌現,為用戶帶來了更加便捷的體驗,與此同時,用戶的使用需求也越來越多樣化,用戶對隱私保護的安全意識也逐漸增強。例如,用戶在使用終端應用程序時,希望靈活地根據意愿自主選擇保留或刪除應用程序的相關數據,從而保護用戶自身的隱私。
在這一需求下,目前的終端應用程序開發出了無痕瀏覽模式。
目前的無痕瀏覽模式的技術,是在開啟無痕瀏覽模式之后,終端應用程序會重新建立目錄,用以存儲用戶在無痕瀏覽模式下的瀏覽數據,而在用戶退出時,則直接刪除該目錄中的數據,進而實現終端應用程序的無痕瀏覽。
但是,對于目前的無痕瀏覽模式來說,開啟無痕瀏覽模式就相當于應用程序重新安裝,即便在無痕瀏覽模式之前已經存儲有用戶產生的瀏覽數據,也不會將該瀏覽數據拷貝到新建立的目錄中。故而終端應用程序之前的任何數據都不能夠為無痕瀏覽模式所用。例如,終端應用程序之前已保存了用戶登錄時的登陸賬戶和登錄密碼,若切換到無痕瀏覽模式下,那么終端應用程序即便保存有登錄賬號和登錄密碼,也會重新跳轉到登錄界面,要求用戶重新輸入登陸賬號和登陸密碼進行登錄,只有在用戶登錄之后才能夠開放無痕瀏覽模式下的操作權限,并且登錄之后并無之前用戶瀏覽的任何歷史數據,導致用戶體驗極低。
技術實現要素:
鑒于上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的一種無痕瀏覽方法的及裝置,用以解決目前的無痕瀏覽模式無法保存歷史數據的問題。
本發明的一個方面,提供了一種無痕瀏覽方法,包括:
構建運行終端應用程序所需要的沙箱,使得所述終端應用程序在所述沙箱中運行;
當監測到所述終端應用程序運行在普通瀏覽模式下時,構建第一存儲目錄存儲所述終端應用程序在所述普通瀏覽模式下產生的第一瀏覽數據;
當監測到所述終端應用程序從所述普通瀏覽模式切換為無痕瀏覽模式時,獲取所述終端應用程序在所述無痕瀏覽模式下產生的第二瀏覽數據;
從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據;
將所述關聯瀏覽數據拷貝到第二存儲目錄之后,將所述第二瀏覽數據存儲在所述第二存儲目錄中;
當所述終端應用程序退出所述無痕瀏覽模式時,刪除所述第二存儲目錄中的所有瀏覽數據。
本發明的另一個方面,提供一種無痕瀏覽裝置,包括:
構建模塊,用于構建運行終端應用程序所需要的沙箱,使得所述終端應用程序在所述沙箱中運行;
第一存儲模塊,用于當監測到所述終端應用程序運行在普通瀏覽模式下時,構建第一存儲目錄存儲所述終端應用程序在所述普通瀏覽模式下產生的第一瀏覽數據;
第一獲取模塊,用于當監測到所述終端應用程序從所述普通瀏覽模式切換為無痕瀏覽模式時,獲取所述終端應用程序在所述無痕瀏覽模式下產生的第二瀏覽數據;
第二獲取模塊,用于從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據;
第二存儲模塊,用于將所述關聯瀏覽數據拷貝到第二存儲目錄之后,將所述第二瀏覽數據存儲在所述第二存儲目錄中;
刪除模塊,用于當所述終端應用程序退出所述無痕瀏覽模式時,刪除所述第二存儲目錄中的所有瀏覽數據。
本申請實施例中提供的技術方案,至少具有如下技術效果或優點:
本發明公開了一種無痕瀏覽方法及裝置,先構建運行終端應用程序所需要的沙箱,使得所述終端應用程序在所述沙箱中運行,然后將終端應用程序在普通瀏覽模式下產生的第一瀏覽數據存儲在第一存儲目錄中;而當監測到終端應用程序從普通瀏覽模式切換為無痕瀏覽模式時,獲取終端應用程序在無痕瀏覽模式下產生的第二瀏覽數據;再從第一瀏覽數據中獲取和第二瀏覽數據相關聯的關聯瀏覽數據,再將關聯瀏覽數據拷貝到第二存儲目錄。可見,本發明將關聯瀏覽數據作為歷史數據保存在第二存儲目錄中,解決了無痕瀏覽模式無法保存歷史數據的問題。另外本發明還將第二瀏覽數據存儲在第二存儲目錄中;當所述終端應用程序退出所述無痕瀏覽模式時,只是刪除第二存儲目錄中的所有瀏覽數據,用以保護用戶隱私,而第一存儲目錄中的關聯瀏覽數據還在,故而又不會破壞作為歷史數據的關聯瀏覽數據。
上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發明的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本發明的具體實施方式。
附圖說明
通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優選實施方式的目的,而并不認為是對本發明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了根據本發明一個實施例的一種無痕瀏覽方法的實施過程圖;
圖2示出了根據本發明一個實施例的沙箱監控終端應用程序的架構圖;
圖3示出了根據本發明一個實施例的一種無痕瀏覽裝置的架構圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
本技術領域技術人員可以理解,除非另外定義,這里使用的所有術語(包括技術術語和科學術語),具有與本發明所屬領域中的普通技術人員的一般理解相同的意義。還應該理解的是,諸如通用字典中定義的那些術語,應該被理解為具有與現有技術的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。
本發明實施例提供了一種無痕瀏覽方法的及裝置,用以解決目前的無痕瀏覽模式無法保存歷史數據的問題。
作為一種可選的實施例,圖1公開了本發明的無痕瀏覽方法的流程圖。
本發明的實施例中,各步驟所執行的內容概述如下:
步驟11,構建運行終端應用程序所需要的沙箱,使得所述終端應用程序在所述沙箱中運行。
步驟12,當監測到所述終端應用程序運行在普通瀏覽模式下時,構建第一存儲目錄存儲所述終端應用程序在所述普通瀏覽模式下產生的第一瀏覽數據。
步驟13,當監測到所述終端應用程序從所述普通瀏覽模式切換為無痕瀏覽模式時,獲取所述終端應用程序在所述無痕瀏覽模式下產生的第二瀏覽數據。
步驟14,從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據。
步驟15,構建第二存儲目錄存儲所述關聯瀏覽數據之后,將所述第二瀏覽數據一并存儲在所述第二存儲目錄中。
步驟16,當所述終端應用程序退出所述無痕瀏覽模式時,刪除所述第二存儲目錄中的所有瀏覽數據。
由于在現有技術中的無痕瀏覽模式,是在開啟無痕瀏覽模式之后,終端應用程序會重新建立目錄,用以存儲用戶在無痕瀏覽模式下的瀏覽數據,而在用戶退出時,則直接刪除該目錄中的數據,進而實現終端應用程序的無痕瀏覽。
但是,對于目前的無痕瀏覽模式來說,開啟無痕瀏覽模式就相當于應用程序重新安裝,即便在無痕瀏覽模式之前已經存儲有用戶產生的瀏覽數據,也不會將該瀏覽數據拷貝到新建立的目錄中。故而終端應用程序之前的任何數據都不能夠為無痕瀏覽模式所用。故而,針對上述不足,在本發明的實施例中,提出了一種無痕瀏覽方法,首先構建第二存儲目錄存儲所述關聯瀏覽數據之后,將所述第二瀏覽數據一并存儲在所述第二存儲目錄中。再將終端應用程序在所述普通瀏覽模式下產生的第一瀏覽數據存儲在第一存儲目錄中;而當監測到所述終端應用程序從所述普通瀏覽模式切換為無痕瀏覽模式時,獲取所述終端應用程序在所述無痕瀏覽模式下產生的第二瀏覽數據;再從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據,再將所述關聯瀏覽數據拷貝到第二存儲目錄。由此可見,本發明將關聯瀏覽數據作為歷史數據保存在第二存儲目錄中,解決了目前的無痕瀏覽模式無法保存歷史數據的問題,另外,本發明還將所述第二瀏覽數據存儲在所述第二存儲目錄中;當所述終端應用程序退出無痕瀏覽模式時,刪除所述第二存儲目錄中的所有瀏覽數據。實現了不破壞用戶歷史數據的同時可對用戶隱私數據的清理,提高了用戶的使用體驗。
進一步的,由于保存的關聯瀏覽數據是基于第二瀏覽數據獲取的,故而保存的都是終端應用程序需要的歷史數據,而不用將所有的第一瀏覽數據進行拷貝。進一步的,由于只是拷貝關聯瀏覽數據,故而在和拷貝所有第一瀏覽數據進行對比時,本發明的拷貝數據量更小并且占用的存儲空間也少。
以下針對各個步驟的具體實現做進一步的說明:
在步驟11中,構建運行終端應用程序所需要的沙箱,使得所述終端應用程序在所述沙箱中運行。
在具體的實施過程中,本發明會先構造沙箱,將終端應用程序放在沙箱中運行。
在本發明中,終端應用程序是在沙箱中運行的,而終端應用程序的模式切換也在沙箱中進行。本發明將終端應用程序中的運行模式分為兩類:普通瀏覽模式和無痕瀏覽模式。兩種瀏覽模式下產生的瀏覽數據分別存儲在不同的目錄中。本發明將普通瀏覽模式下產生的瀏覽數據命名為第一瀏覽數據,存儲在第一存儲目錄中,將無痕瀏覽模式下產生的瀏覽數據命名為第二瀏覽數據,存儲在第二存儲目錄中。終端應用程序的普通瀏覽模式和無痕瀏覽模式可以相互在沙箱中來回切換,只是在無痕瀏覽模式退出時,沙箱會刪除存儲在第二存儲目錄中的數據,以保護用戶的隱私。
而本發明的終端應用程序,包括但不限于是第三方應用程序,例如微信、QQ、瀏覽器等等應用程序。
在實際情況中,沙箱可同時運行多個終端應用程序,而對于每個終端應用程序的不同的瀏覽模式,沙箱都會建立不同的目錄進行存儲。
故而本發明可針對單個終端應用程序進行介紹,而其他終端應用程序的實施過程類似。
當然,除了上述‘將終端應用程序放在沙箱中運行’的情況之外,本發明還可以將安卓系統中的一個或多個終端應用程序的分身應用放入沙箱中,使得每個終端應用程序的分身應用可以與相應的終端應用程序并行運行。
其中,終端應用程序指的是能夠在安卓系統中正常運行的,類似于QQ聊天、UC瀏覽器等的應用軟件。而終端應用程序的分身應用作為終端應用程序的復制體,可以看做是終端應用程序的分身。現有技術中,每個終端應用程序的分身應用可以與相應的終端應用程序是不可以并行運行的,其原因是安卓系統無法認可兩個相同的應用所聲明的相同的注冊信息,因此,在終端應用程序已安裝的情況下,終端應用程序的分身應用是無法成功注冊到安卓系統中的,對于安卓系統來說,終端應用程序的分身應用是未知的,安卓系統無法與其進行正常交互。而在本發明中,終端應用程序的分身應用是可以在沙箱中運行的,故而可使得每個終端應用程序的分身應用可以與相應的終端應用程序并行運行。
將安卓系統中的一個或多個終端應用程序的分身應用放入沙箱中運行,使得每個終端應用程序的分身應用可以與相應的終端應用程序并行運行,實現了終端應用程序自身與終端應用程序分身的并行運行,對于在沙箱中運行的終端應用程序的分身應用,由于這些沙箱中運行的終端應用程序的分身應用對于安卓系統來說是未知的,為了使得終端應用程序的分身應用能夠正常地接收廣播消息并執行相應操作,本方案代理終端應用程序的分身應用接收廣播消息后,按一定的方式進行分析處理,并選擇性的將符合條件的廣播消息傳送給終端應用程序的分身應用的廣播接收器。保證了終端應用程序的分身應用與其對應的終端應用程序一樣能夠正常的運行以及和系統正常的交互。
進一步的,本發明使用鉤子函數來監聽終端應用程序的應用分身在沙箱中的運行。
具體來說,將鉤子函數掛載在沙箱中注冊廣播接收器的接口上,當攔截到所述注冊廣播接收器的接口發送的注冊請求時,確定監聽到沙箱中的終端應用程序的分身向安卓系統注冊廣播接收器的事件;所述當監聽到該事件時,禁止該事件繼續執行;上述該事件對應的廣播接收器的相關信息并保存至所述配置管理表中的動態注冊表包括:當監聽到所述注冊請求時,強制結束所述注冊請求的繼續傳播;從所述注冊請求中提取對應的廣播接收器的相關信息并保存至所述動態注冊表中。
例如,用戶在安卓系統中運行一個QQ聊天應用,同時在沙箱中運行該QQ聊天應用的分身應用。此時,該分身應用向安卓系統發送事件A,該事件A的內容為:向安卓系統注冊廣播接收器。該事件A以注冊請求的方式發送,并且該注冊請求中包含了與廣播接收器相關的信息。
在上述建立動態注冊表和靜態注冊表的基礎上,所述靜態注冊表和所述動態注冊表中的每個廣播接收器的相關信息包括:該廣播接收器的屬性數據。
故而可以從所述廣播消息對應的Intent參數中提取指示目標廣播接收器的屬性數據,判斷所提取的屬性數據是否匹配于所述靜態注冊表和所述動態注冊表中的廣播接收器的屬性數據;如果所提取的屬性數據匹配于所述靜態注冊表中的廣播接收器的屬性數據,確定所述廣播消息的目標廣播接收器命中所述靜態注冊表;如果所提取的屬性數據匹配于所述動態注冊表中的廣播接收器的屬性數據,確定所述廣播消息的目標廣播接收器命中所述動態注冊表。其中,Intent參數用來描述廣播消息的特征,這些參數中也包含目標廣播接收器的某些參數。
在本發明的一個實施例中,可通過沙箱中的常駐服務代理終端應用程序的分身應用接收廣播消息,安卓預設策略將所述廣播消息轉發至相應終端應用程序的復件應該的廣播接收器。其中,該常駐服務存在于該構建的沙箱中。
以上便是終端沙箱的監控終端應用程序或者終端應用程序的應用分身運行的過程。
在步驟11中,當終端應用程序處于普通瀏覽模式時,則會將終端應用程序在所述普通瀏覽模式下產生的第一瀏覽數據存儲在第一存儲目錄中。
第一瀏覽數據,包括但不限于是文字數據、語音數據、視頻數據、圖片數據、網頁數據等等。所有終端應用程序產生的瀏覽數據都應當包含在第一瀏覽數據中。舉例來說,本機的微信應用程序A在處于普通瀏覽模式時,可能會產生聊天的文字數據、圖片數據、語音聊天數據、視頻數據等等聊天數據,這些聊天數據會存儲在data\data\com.tencent.mm\目錄中。
由于在現有的無痕模式中,開啟無痕瀏覽模式就相當于應用程序重新安裝,登錄方式(包含登錄賬號、登錄密碼等等)都會抹去,需要用戶重新手動輸入登錄賬號、登錄密碼等等進行登錄。為了解決這一問題,在步驟12之前的一種可能的實施例中,當監測到所述終端應用程序從所述普通瀏覽模式切換為無痕瀏覽模式時,通常情況下,終端應用程序都會跳轉到登錄界面讓用戶登錄,而本發明此時會先判斷所述第一瀏覽數據中是否存儲有所述終端應用程序的登陸賬號和登陸密碼;若是,調用所述登陸賬號和所述登陸密碼對所述終端應用程序進行登錄,而不用用戶再進行手動輸入,為用戶瀏覽終端應用程序提供了便利。作為一種優選的方式,在終端應用程序跳轉到登錄頁面時,可不用將登錄頁面顯示給用戶,而直接在后臺調用第一瀏覽數據中的登錄賬號和登錄密碼對直接進行登錄,故而展示給用戶的是登錄成功之后的終端應用程序的展示界面,便于用戶直接對該終端應用程序進行操作,提高用戶體驗。
在登錄成功之后,此時終端應用程序處于無痕瀏覽模式下,故而此時會新建一個存儲目錄,本發明將其命名為第二存儲目錄,此時用戶操作產生第二瀏覽數據則會存儲在該第二存儲目錄中。
第二瀏覽數據和第一瀏覽數據類似,也是包括但不限于是文字數據、語音數據、視頻數據、圖片數據、網頁數據等等。
其中,在步驟12的具體實施過程中,實際上第二瀏覽數據是基于用戶的操作而產生的數據。例如,在無痕瀏覽模式下,用戶的操作包括但不限于是:文字輸入操作、搜索視頻、圖片、網頁等等的搜索操作、圖片、視頻、網頁等等的瀏覽操作。
故而用戶產生的第二瀏覽數據是用戶操作所產生的對應數據。例如,用戶的操作是文字輸入操作,故而產生的第二瀏覽數據則是文字數據。再例如,用戶的操作是瀏覽圖片操作,故而產生的第二瀏覽數據是圖片數據。
而在獲取所述終端應用程序在所述無痕瀏覽模式下產生的第二瀏覽數據之后,則執行步驟13:從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據。
而在具體的實施過程中,第一瀏覽數據和第二瀏覽數據相關聯的含義,可以是兩者的產生時間的關聯,也可以是兩者的數據類型的關聯等等,下面舉例進行說明。
作為一種可選的實施例,
所述從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據,包括:確定出所述第二瀏覽數據的首次產生時刻,將距離所述首次產生時刻一預設時間范圍的所述第一瀏覽數據作為所述關聯瀏覽數據。可選的,此時雖然獲得了第二瀏覽數據,但是并未進行存儲。需要在確定出關聯瀏覽數據并且將關聯瀏覽數據存儲到第二存儲目錄之后,再在關聯瀏覽數據之后的存儲位置寫入第二瀏覽數據進行存儲。而在具體的實施過程中,第二瀏覽數據實際上并不僅僅只有一種數據,而是有很多種且有很多類型的數據。而為了便于用戶在無痕瀏覽模式之前查找歷史數據,故而在第二瀏覽數據的首次產生時刻,可以將距離所述首次產生時刻一預設時間范圍的所述第一瀏覽數據進行關聯,并作為歷史數據拷貝到第二存儲目錄中。舉例來說,第二瀏覽數據首次產生的時刻是早上8點(AM 8),預設時間范圍是0-1小時之間,按此推論,則可以將AM 7-AM 8這一時間段產生的第一瀏覽數據作為關聯瀏覽數據拷貝到第二存儲目錄中,成為歷史數據,便于用戶查看在無痕模式之前用戶的瀏覽記錄。這種方式有很強的時效性,而預設時間范圍之前的第一瀏覽數據可以看做是無用數據進行忽略。
作為一種可選的實施例,
所述從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據,包括:確定所述第二瀏覽數據的數據類型;將具有和所述第二瀏覽數據相同數據類型的所述第一瀏覽數據作為所述關聯瀏覽數據。可選的,此時雖然獲得了第二瀏覽數據,但是并未進行存儲。需要在確定出關聯瀏覽數據并且將關聯瀏覽數據存儲到第二存儲目錄之后,再在關聯瀏覽數據之后的存儲位置寫入第二瀏覽數據進行存儲。舉例來說,微信應用程序中用于生成第二瀏覽數據的數據類型為文字類型,故而在關聯時,只需將第一瀏覽數據中的聊天文字數據(因為其數據類型也是文字類型)作為關聯數據拷貝到第二存儲目錄中,而不用拷貝圖片數據、語音數據等等。這種關聯方式具有很強的針對性,能夠滿足用戶的需求。
當然,上述兩種實施例還可以合并,例如將某一預設時間段之內的和第二瀏覽數據的操作類型相同的第一瀏覽數據作為關聯瀏覽數據拷貝到第二存儲目錄中,這種關聯方式及有針對性又有時效性,能夠獲得關聯性極強的關聯瀏覽數據。
而在另一種可選的實施例中,在獲取所述終端應用程序在所述無痕瀏覽模式下產生的第二瀏覽數據時,實際上是先獲取所述無痕瀏覽模式下用戶的操作指令,所述操作指令用于生成第二瀏覽數據。
進一步的,在從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據時,則基于所述操作指令中攜帶的操作數據對象,從所述第一瀏覽數據中獲取和所述操作數據對象相關聯的關聯瀏覽數據。
在上述列出的一種實施例中,實際上并未獲得真正的第二瀏覽數據,而是獲得了用于生成第二瀏覽數據的操作指令,該操作指令中攜帶有操作數據對象,然后基于該操作數據對象確定出關聯瀏覽數據,并將關聯瀏覽數據保存在第二存儲目錄中,然后基于操作指令獲取第二瀏覽數據,并在關聯瀏覽數據的存儲位置后面,寫入獲得的第二瀏覽數據進行存儲。
而在具體的實施過程中,操作數據對象攜帶有自身的數據類型,故而在從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據時,可基于操作數據對象的數據類型進行關聯。具體來說,先確定所述操作數據對象的數據類型;然后再將和所述操作數據對象相同數據類型的所述第一瀏覽數據作為所述關聯瀏覽數據。舉例來說,微信應用程序中用于生成第二瀏覽數據的操作指令,其攜帶的操作數據對象為文字,數據類型為文字類型,故而在關聯時,只需將第一瀏覽數據中的聊天文字數據作為關聯數據拷貝到第二存儲目錄中,而不用拷貝圖片數據、語音數據等等。這種關聯方式具有很強的針對性,能夠滿足用戶的需求。
當然,在另一種可選的實施例中,在獲得操作指令的同時,可以先確定出首次產生操作指令的首次時間點,然后以該首次時間點為準,獲得距離該首次時間點一預設時間范圍內的第一瀏覽數據,并將第一瀏覽數據作為關聯瀏覽數據。舉例來說,在無痕瀏覽模式下,終端應用程序中用于生成第二瀏覽數據的操作指令產生的時間點是早上8點(AM 8),預設時間范圍是0-1小時之間,按此推論,則可以將AM 7-AM 8這一時間段產生的第一瀏覽數據作為關聯瀏覽數據拷貝到第二存儲目錄中,成為歷史數據,便于用戶查看在無痕模式之前用戶的瀏覽記錄。這種方式有很強的時效性,在關聯時,預設時間范圍之前的第一瀏覽數據可以看做是無用數據進行忽略。
當然,上述兩種實施例還可以合并,例如將某一預設時間段之內的和操作對象數據的操作類型相同的第一瀏覽數據作為關聯瀏覽數據拷貝到第二存儲目錄中,這種關聯方式及有針對性又有時效性,能夠獲得關聯性極強的關聯瀏覽數據。
上述介紹的是如何在第一瀏覽數據中通過鉤子函數掛鉤關聯瀏覽數據及其所存儲的第一存儲目錄。
需要說明的是,術語“鉤子”涵蓋了用于通過攔截在軟件組件之間傳遞的函數調用、消息、或事件來改變或增加操作系統、應用程序、或其他軟件組件的行為的技術。而處理這種被攔截的函數調用、事件或消息的代碼就被稱為鉤子hook函數。鉤子通常用于各種目標,包括對功能進行調試和對功能進行擴展。其示例可以包括在鍵盤或鼠標事件傳遞到應用程序之前攔截它們,或者攔截系統調用(system call)、或者系統函數行為、函數執行結果等,以監視或修改應用程序或其他組件的功能等等。本實施例即可采用鉤子hook函數接管應用程序運行時請求數據處理的操作。
作為一個沙箱實例,使終端應用程序運行于沙箱運行環境中,監控終端應用程序的活動進程是沙箱運行環境的核心實現者,負責實現兩方面一下的功能,一方面:通過監控終端應用程序對資源的訪問,使終端應用程序進程能夠實現對應資源的正常調用。另一方面通過監控終端應用程序對系統資源的訪問,例如是否請求發送信息,來依據安全策略確定是否允許其操作,當不允許這種實施這種行為時,可以向相關調用指令返回自定義數據,例如返回空值,從而確保能杜絕一些非法操作。可將通過鉤子函數對終端應用程序的活動進程進行監控的方式注冊為服務進程,以鉤子函數關聯終端應用程序活動進程的調用指令以實現對終端應用程序的活動監控。
具體地,當監測到終端應用程序已經確定出關聯瀏覽數據之后,通過鉤子函數掛鉤與所述關聯瀏覽數據及第一存儲目錄。
例如圖2,沙箱中運行了多個終端應用程序(例如APP1,APP2……APPn),沙箱通過鉤子函數對終端應用程序的活動進程進行監控。
本發明終端描述終端應用程序APP1的實施過程,其他終端應用程序類似,故而在此不再詳述。
當APP1處于普通瀏覽模式時,通過鉤子函數監測到終端應用程序產生第一瀏覽數據時,則建立第一存儲目錄path1,如“path/data/”來存儲第一瀏覽數據。
當鉤子函數監測到終端應用程序從普通瀏覽模式切換到無痕瀏覽模式,并具有請求讀取關聯瀏覽數據時,通過相關鉤子函數掛鉤與關聯瀏覽數據所在的第一存儲目錄path1,如“path/data/”,然后將關聯瀏覽數據拷貝到第二存儲目錄path2中,并將在無痕瀏覽模式下產生的第二瀏覽數據也存儲到第二存儲目錄path2中。
而在本發明中,并不是所有的關聯瀏覽數據都可以進行拷貝,某些可讀可執行的數據文件是共用文件,則不需要進行拷貝,直接調用即可。故而所述從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據之后,所述方法還包括:
判斷所述關聯瀏覽數據所對應的數據文件的是否為可讀可執行的數據文件;
若不是,則將所述關聯瀏覽數據拷貝到所述第二存儲目錄。
在具體的實施過程中,可執行的數據文件包括但不限于是:
共用的可讀文件,如so庫(可讀so文件是unix的動態連接庫,是二進制文件,作用相當于windows下的.dll文件),dex文件(dex文件是Android平臺上可執行文件的類型)等全局文件,可以不用拷貝到第二存儲目錄,在使用時可以直接調用即可。
資源環境文件,即終端應用程序所使用的資源環境,不用拷貝。
基于統一發明構思,本發明還提供了一種無痕瀏覽裝置。
參看圖3,是一種無痕瀏覽裝置的結構示意圖。
下面介紹一種無痕瀏覽裝置的架構,包括:構建模塊31,第一存儲模塊32,第一獲取模塊33,第二獲取模塊34,第二存儲模塊35,刪除模塊36。
具體來說,構建模塊21主要用來構建沙箱,以運行終端應用程序。而當終端應用程序在沙箱中運行時,通過第一存儲模塊32來構建第一存儲目錄來存儲第一瀏覽數據。而當第一獲取模塊33監測到模式切換時,則獲取無痕瀏覽模式下的第二瀏覽數據。然后第二獲取模塊34獲取到關聯瀏覽數據。并通過第二存儲模塊35構建第二存儲目錄,存儲關聯瀏覽數據和第二瀏覽數據,當瀏覽結束,則利用刪除模塊36刪除第二存儲目錄中所有的瀏覽數據。
在具體的實施過程中,下面參看具體的介紹。
構建模塊31,用于構建運行終端應用程序所需要的沙箱,使得所述終端應用程序在所述沙箱中運行;
第一存儲模塊32,用于當監測到所述終端應用程序運行在普通瀏覽模式下時,構建第一存儲目錄存儲所述終端應用程序在所述普通瀏覽模式下產生的第一瀏覽數據;
第一獲取模塊33,用于當監測到所述終端應用程序從所述普通瀏覽模式切換為無痕瀏覽模式時,獲取所述終端應用程序在所述無痕瀏覽模式下產生的第二瀏覽數據;
第二獲取模塊34,用于從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據;
第二存儲模塊35,用于構建第二存儲目錄存儲所述關聯瀏覽數據之后,將所述第二瀏覽數據一并存儲在所述第二存儲目錄中;
刪除模塊36,用于當所述終端應用程序退出所述無痕瀏覽模式時,刪除所述第二存儲目錄中的所有瀏覽數據。
由于在現有技術中的無痕瀏覽模式,不能夠保存終端應用程序在無痕瀏覽模式之前產生的數據。故而,針對上述不足,在本發明的實施例中,提出了一種無痕瀏覽裝置,第一存儲模塊32,用于將終端應用程序在所述普通瀏覽模式下產生的第一瀏覽數據存儲在第一存儲目錄中;第一獲取模塊33,用于當監測到所述終端應用程序從所述普通瀏覽模式切換為無痕瀏覽模式時,獲取所述終端應用程序在所述無痕瀏覽模式下產生的第二瀏覽數據;第二獲取模塊34,用于從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據,再利用第二存儲模塊35,用于將所述關聯瀏覽數據拷貝到第二存儲目錄。由此可見,本發明將關聯瀏覽數據作為歷史數據保存在第二存儲目錄中,解決了目前的無痕瀏覽模式無法保存歷史數據的問題,另外,本發明還將所述第二瀏覽數據存儲在所述第二存儲目錄中;當所述終端應用程序結束瀏覽時,利用刪除模塊36,用于刪除所述第二存儲目錄中的所有瀏覽數據。實現了不破壞用戶歷史數據的同時可對用戶隱私數據的清理,提高了用戶的使用體驗。
進一步的,由于保存的關聯瀏覽數據是基于第二瀏覽數據獲取的,故而保存的都是終端應用程序需要的歷史數據,而不用將所有的第一瀏覽數據進行拷貝。進一步的,由于只是拷貝關聯瀏覽數據,故而在和拷貝所有第一瀏覽數據進行對比時,本發明的拷貝數據量更小并且占用的存儲空間也少。
作為一種可選的實施例,所述方法還包括:
第一判斷模塊,用于當監測到所述終端應用程序從所述普通瀏覽模式切換為無痕瀏覽模式時,判斷所述第一瀏覽數據中是否存儲有所述終端應用程序的登陸賬號和登陸密碼;
調用模塊,用于若是,調用所述登陸賬號和所述登陸密碼對所述終端應用程序進行登錄。
作為一種可選的實施例,所述第一獲取模塊33,具體用于獲取用于生成所述第二瀏覽數據的操作指令,其中,所述操作指令中攜帶有操作數據對象;
所述第二獲取模塊34,具體用于從所述第一瀏覽數據中獲取和所述操作數據對象相關聯的關聯瀏覽數據。
作為一種可選的實施例,所述第二獲取模塊34,具體包括:
第一確定模塊,用于確定所述操作數據對象的數據類型;
第二確定模塊,用于將具有和所述操作數據對象相同數據類型的所述第一瀏覽數據作為所述關聯瀏覽數據。
作為一種可選的實施例,所述第二獲取模塊34,具體包括:
第三確定模塊,用于確定出首次產生所述操作指令的首次時間點;
第四確定模塊,用于將距離所述首次時間點一預設時間范圍內的普通瀏覽模式下產生的第一瀏覽數據作為所述關聯瀏覽數據。
作為一種可選的實施例,所述存儲模塊,具體用于將所述關聯瀏覽數據拷貝到第二存儲目錄之后,基于所述操作指令獲得所述第二瀏覽數據,并將所述第二瀏覽數據存儲在所述第二存儲目錄中。
作為一種可選的實施例,所述裝置還包括:
第二判斷模塊,用于判斷所述關聯瀏覽數據是否為可讀可執行的數據文件;
拷貝模塊,用于若不是,則將所述關聯瀏覽數據拷貝到所述第二存儲目錄。
本申請實施例中提供的技術方案,至少具有如下技術效果或優點:
本發明公開了一種無痕瀏覽方法及裝置,先構建運行終端應用程序所需要的沙箱,使得所述終端應用程序在所述沙箱中運行,再將終端應用程序在普通瀏覽模式下產生的第一瀏覽數據存儲在第一存儲目錄中;而當監測到終端應用程序從普通瀏覽模式切換為無痕瀏覽模式時,獲取終端應用程序在無痕瀏覽模式下產生的第二瀏覽數據;再從第一瀏覽數據中獲取和第二瀏覽數據相關聯的關聯瀏覽數據,再將關聯瀏覽數據拷貝到第二存儲目錄。可見,本發明將關聯瀏覽數據作為歷史數據保存在第二存儲目錄中,解決了無痕瀏覽模式無法保存歷史數據的問題。另外本發明還將第二瀏覽數據存儲在第二存儲目錄中;當所述終端應用程序退出所述無痕瀏覽模式時,只是刪除第二存儲目錄中的所有瀏覽數據,用以保護用戶隱私,而第一存儲目錄中的關聯瀏覽數據還在,故而又不會破壞作為歷史數據的關聯瀏覽數據。
在此提供的算法和顯示不與任何特定計算機、虛擬系統或者其它設備固有相關。各種通用系統也可以與基于在此的示教一起使用。根據上面的描述,構造這類系統所要求的結構是顯而易見的。此外,本發明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現在此描述的本發明的內容,并且上面對特定語言所做的描述是為了披露本發明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節。然而,能夠理解,本發明的實施例可以在沒有這些具體細節的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開并幫助理解各個發明方面中的一個或多個,在上面對本發明的示例性實施例的描述中,本發明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權利要求書由此明確地并入該具體實施方式,其中每個權利要求本身都作為本發明的單獨實施例。
本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領域的技術人員能夠理解,盡管在此的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發明的范圍之內并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發明的各個部件實施例可以以硬件實現,或者以在一個或者多個處理器上運行的軟件模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數字信號處理器(DSP)來實現根據本發明實施例的網關、代理服務器、系統中的一些或者全部部件的一些或者全部功能。本發明還可以實現為用于執行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產品)。這樣的實現本發明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發明進行說明而不是對本發明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
本發明的另一個方面,提供了:
A1、一種無痕瀏覽方法,其特征在于,包括:
構建運行終端應用程序所需要的沙箱,使得所述終端應用程序在所述沙箱中運行;
當監測到所述終端應用程序運行在普通瀏覽模式下時,構建第一存儲目錄存儲所述終端應用程序在所述普通瀏覽模式下產生的第一瀏覽數據;
當監測到所述終端應用程序從所述普通瀏覽模式切換為無痕瀏覽模式時,獲取所述終端應用程序在所述無痕瀏覽模式下產生的第二瀏覽數據;
從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據;
構建第二存儲目錄存儲所述關聯瀏覽數據之后,將所述第二瀏覽數據一并存儲在所述第二存儲目錄中;
當所述終端應用程序退出所述無痕瀏覽模式時,刪除所述第二存儲目錄中的所有瀏覽數據。
A2、如權利要求A1所述的方法,其特征在于,所述獲取所述終端應用程序在所述無痕瀏覽模式下產生的第二瀏覽數據之前,所述方法還包括:
當監測到所述終端應用程序從所述普通瀏覽模式切換為無痕瀏覽模式時,判斷所述第一瀏覽數據中是否存儲有所述終端應用程序的登陸賬號和登陸密碼;
若是,調用所述登陸賬號和所述登陸密碼對所述終端應用程序進行登錄。
A3、如權利要求A1所述的方法,其特征在于,
所述獲取所述終端應用程序在所述無痕瀏覽模式下產生的第二瀏覽數據,包括:
獲取用于生成所述第二瀏覽數據的操作指令,其中,所述操作指令中攜帶有操作數據對象;
所述從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據,包括:
從所述第一瀏覽數據中獲取和所述操作數據對象相關聯的關聯瀏覽數據。
A4、如權利要求A3所述的方法,其特征在于,所述從所述第一瀏覽數據中獲取和所述操作數據對象相關聯的關聯瀏覽數據,包括:
確定所述操作數據對象的數據類型;
將具有和所述操作數據對象相同數據類型的所述第一瀏覽數據作為所述關聯瀏覽數據。
A5、如權利要求A3所述的方法,其特征在于,所述從所述第一瀏覽數據中獲取和所述操作數據對象相關聯的關聯瀏覽數據,包括:
確定出首次產生所述操作指令的首次時間點;
將距離所述首次時間點一預設時間范圍內的普通瀏覽模式下產生的第一瀏覽數據作為所述關聯瀏覽數據。
A6、如權利要求A3所述的方法,其特征在于,所述從所述第一瀏覽數據中獲取和所述操作數據對象相關聯的關聯瀏覽數據之后,包括:
將所述關聯瀏覽數據拷貝到第二存儲目錄之后,基于所述操作指令獲得所述第二瀏覽數據,并將所述第二瀏覽數據存儲在所述第二存儲目錄中。
A7、如權利要求A1所述的方法,其特征在于,所述從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據之后,所述方法還包括:
判斷所述關聯瀏覽數據是否為可讀可執行的數據文件;
若不是,則將所述關聯瀏覽數據拷貝到所述第二存儲目錄。
B8、一種無痕瀏覽裝置,其特征在于,包括:
構建模塊,用于構建運行終端應用程序所需要的沙箱,使得所述終端應用程序在所述沙箱中運行;
第一存儲模塊,用于當監測到所述終端應用程序運行在普通瀏覽模式下時,構建第一存儲目錄存儲所述終端應用程序在所述普通瀏覽模式下產生的第一瀏覽數據;
第一獲取模塊,用于當監測到所述終端應用程序從所述普通瀏覽模式切換為無痕瀏覽模式時,獲取所述終端應用程序在所述無痕瀏覽模式下產生的第二瀏覽數據;
第二獲取模塊,用于從所述第一瀏覽數據中獲取和所述第二瀏覽數據相關聯的關聯瀏覽數據;
第二存儲模塊,用于構建第二存儲目錄存儲所述關聯瀏覽數據之后,將所述第二瀏覽數據一并存儲在所述第二存儲目錄中;
刪除模塊,用于當所述終端應用程序退出所述無痕瀏覽模式時,刪除所述第二存儲目錄中的所有瀏覽數據。
B9、如權利要求B8所述的裝置,其特征在于,所述裝置還包括:
第一判斷模塊,用于當監測到所述終端應用程序從所述普通瀏覽模式切換為無痕瀏覽模式時,判斷所述第一瀏覽數據中是否存儲有所述終端應用程序的登陸賬號和登陸密碼;
調用模塊,用于若是,調用所述登陸賬號和所述登陸密碼對所述終端應用程序進行登錄。
B10、如權利要求B8所述的裝置,其特征在于,
所述第一獲取模塊,具體用于獲取用于生成所述第二瀏覽數據的操作指令,其中,所述操作指令中攜帶有操作數據對象;
所述第二獲取模塊,具體用于從所述第一瀏覽數據中獲取和所述操作數據對象相關聯的關聯瀏覽數據。
B11、如權利要求B10所述的裝置,其特征在于,所述第二獲取模塊,具體包括:
第一確定模塊,用于確定所述操作數據對象的數據類型;
第二確定模塊,用于將具有和所述操作數據對象相同數據類型的所述第一瀏覽數據作為所述關聯瀏覽數據。
B12、如權利要求B10所述的裝置,其特征在于,所述第二獲取模塊,具體包括:
第三確定模塊,用于確定出首次產生所述操作指令的首次時間點;
第四確定模塊,用于將距離所述首次時間點一預設時間范圍內的普通瀏覽模式下產生的第一瀏覽數據作為所述關聯瀏覽數據。
B13、如權利要求B10所述的裝置,其特征在于,所述存儲模塊,具體用于將所述關聯瀏覽數據拷貝到第二存儲目錄之后,基于所述操作指令獲得所述第二瀏覽數據,并將所述第二瀏覽數據存儲在所述第二存儲目錄中。
B14、如權利要求B8所述的裝置,其特征在于,所述裝置還包括:
第二判斷模塊,用于判斷所述關聯瀏覽數據是否為可讀可執行的數據文件;
拷貝模塊,用于若不是,則將所述關聯瀏覽數據拷貝到所述第二存儲目錄。