本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種數(shù)據(jù)處理方法和一種數(shù)據(jù)處理裝置。
背景技術(shù):
隨著科技的發(fā)展,越來越多的用戶使用智能終端,智能終端也提供了越來越多樣的功能。用戶在使用移動(dòng)終端時(shí)通常會(huì)安裝各種應(yīng)用程序執(zhí)行不同的操作,例如安裝播放器應(yīng)用觀看音視頻,安裝購物應(yīng)用進(jìn)行網(wǎng)上購物,安裝游戲應(yīng)用玩游戲等。
應(yīng)用中往往包含多種功能,相應(yīng)展示不同的數(shù)據(jù)信息,但是這些數(shù)據(jù)信息僅能按照應(yīng)用提供的方式進(jìn)行處理,有時(shí)用戶可能需要屏蔽某些顯示內(nèi)容如廣告等。但是,現(xiàn)有通常無法對應(yīng)用中展示的廣告等無用信息進(jìn)行有效攔截,造成資源的浪費(fèi)。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的數(shù)據(jù)處理方法和相應(yīng)的數(shù)據(jù)處理裝置。
依據(jù)本發(fā)明的一個(gè)方面,提供了一種數(shù)據(jù)處理方法,包括:
依據(jù)對當(dāng)前應(yīng)用的活動(dòng)變化事件的監(jiān)聽,獲取當(dāng)前應(yīng)用的視圖樹;
遍歷所述視圖樹中各節(jié)點(diǎn),查找各節(jié)點(diǎn)對應(yīng)視圖對象的視圖類型;
當(dāng)依據(jù)視圖類型判斷所述視圖對象為瀏覽器控件時(shí),獲取所述瀏覽器控件的特征信息;
當(dāng)檢測所述特征信息符合預(yù)置攔截規(guī)則時(shí),對所述瀏覽器控件進(jìn)行攔截。
可選的,依據(jù)對當(dāng)前應(yīng)用的活動(dòng)變化事件的監(jiān)聽,獲取當(dāng)前應(yīng)用的視圖樹,包括:
監(jiān)聽所述當(dāng)前應(yīng)用的活動(dòng)變化事件;
依據(jù)所述活動(dòng)變化事件確定所述當(dāng)前應(yīng)用的界面布局發(fā)生變化時(shí),獲取所述當(dāng)前應(yīng)用的視圖樹。
可選的,監(jiān)聽所述當(dāng)前應(yīng)用的活動(dòng)變化事件,包括:
監(jiān)聽所述當(dāng)前應(yīng)用的視圖樹變化事件和生命周期事件。
可選的,遍歷所述視圖樹中各節(jié)點(diǎn),查找各節(jié)點(diǎn)對應(yīng)視圖對象的視圖類型,包括:
從所述視圖樹的根節(jié)點(diǎn)開始遍歷各節(jié)點(diǎn);
針對每個(gè)節(jié)點(diǎn),依據(jù)所述節(jié)點(diǎn)對應(yīng)節(jié)點(diǎn)信息查找對應(yīng)視圖對象的視圖類型。
可選的,獲取所述瀏覽器控件的特征信息,包括:
針對瀏覽器控件,提取所述瀏覽器控件對應(yīng)的代碼特征,將所述代碼特征作為所述瀏覽器控件的特征信息。
可選的,還包括:
采用預(yù)置特征庫對所述瀏覽器控件的代碼特征進(jìn)行特征匹配;
通過特征匹配識(shí)別所述瀏覽器控件為目標(biāo)對象時(shí),確認(rèn)所述特征信息符合預(yù)置攔截規(guī)則。
可選的,對所述瀏覽器控件進(jìn)行攔截,包括:
以所述瀏覽器控件對應(yīng)節(jié)點(diǎn)為起點(diǎn),自下而上查找所述視圖樹,確定所述瀏覽器控件對應(yīng)父窗口,對所述父窗口進(jìn)行攔截。
可選的,還包括:從云服務(wù)器獲取目標(biāo)特征,將所述目標(biāo)特征添加到所述預(yù)置特征庫中。
根據(jù)本發(fā)明實(shí)施例的另一個(gè)方面,提供了一種數(shù)據(jù)處理裝置,包括:
監(jiān)聽獲取模塊,用于依據(jù)對當(dāng)前應(yīng)用的活動(dòng)變化事件的監(jiān)聽,獲取當(dāng)前應(yīng)用的視圖樹;
遍歷查找模塊,用于遍歷所述視圖樹中各節(jié)點(diǎn),查找各節(jié)點(diǎn)對應(yīng)視圖對象的視圖類型;
獲取模塊,用于當(dāng)依據(jù)視圖類型判斷所述視圖對象為瀏覽器控件時(shí),獲 取所述瀏覽器控件的特征信息;
攔截模塊,用于當(dāng)檢測所述特征信息符合預(yù)置攔截規(guī)則時(shí),對所述瀏覽器控件進(jìn)行攔截。
可選的,所述監(jiān)聽獲取模塊,包括:
監(jiān)聽子模塊,用于監(jiān)聽所述當(dāng)前應(yīng)用的活動(dòng)變化事件;
視圖樹獲取子模塊,用于依據(jù)所述活動(dòng)變化事件確定所述當(dāng)前應(yīng)用的界面布局發(fā)生變化時(shí),獲取所述當(dāng)前應(yīng)用的視圖樹。
可選的,所述監(jiān)聽子模塊,用于監(jiān)聽所述當(dāng)前應(yīng)用的視圖樹變化事件和生命周期事件。
可選的,所述遍歷查找模塊,包括:
遍歷子模塊,用于從所述視圖樹的根節(jié)點(diǎn)開始遍歷各節(jié)點(diǎn);
查找子模塊,用于針對每個(gè)節(jié)點(diǎn),依據(jù)所述節(jié)點(diǎn)對應(yīng)節(jié)點(diǎn)信息查找對應(yīng)視圖對象的視圖類型。
可選的,所述獲取模塊,用于針對瀏覽器控件,提取所述瀏覽器控件對應(yīng)的代碼特征,將所述代碼特征作為所述瀏覽器控件的特征信息。
可選的,還包括:特征匹配模塊,用于采用預(yù)置特征庫對所述瀏覽器控件的代碼特征進(jìn)行特征匹配;通過特征匹配識(shí)別所述瀏覽器控件為目標(biāo)對象時(shí),確認(rèn)所述特征信息符合預(yù)置攔截規(guī)則。
可選的,所述攔截模塊,用于以所述瀏覽器控件對應(yīng)節(jié)點(diǎn)為起點(diǎn),自下而上查找所述視圖樹,確定所述瀏覽器控件對應(yīng)父窗口,對所述父窗口進(jìn)行攔截。
可選的,還包括:特征庫處理模塊,用于從云服務(wù)器獲取目標(biāo)特征,將所述目標(biāo)特征添加到所述預(yù)置特征庫中。
本發(fā)明實(shí)施例通過依據(jù)對當(dāng)前應(yīng)用的活動(dòng)變化事件的監(jiān)聽,獲取當(dāng)前應(yīng)用的視圖樹;遍歷視圖樹中各節(jié)點(diǎn),查找各節(jié)點(diǎn)對應(yīng)視圖對象的視圖類型,當(dāng)依據(jù)視圖類型判斷所述視圖對象為瀏覽器控件時(shí),獲取所述瀏覽器控件的特征信息;當(dāng)檢測所述特征信息符合預(yù)置攔截規(guī)則時(shí),對所述瀏覽器控件進(jìn)行攔截,使得用戶在使用智能設(shè)備時(shí),可以對一些廣告信息等無用信息進(jìn)行 攔截,減少了用戶流量的消耗。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)處理方法步驟流程圖;
圖2示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的數(shù)據(jù)處理方法步驟流程圖;
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖;以及
圖4示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
本實(shí)施例中,智能設(shè)備指的是具有多媒體功能的計(jì)算機(jī)設(shè)備,包括智能移動(dòng)設(shè)備如智能手機(jī)、平板電腦等、智能電視等各種設(shè)備,該設(shè)備可以采用Android、windows、IOS等各種操作系統(tǒng)。
實(shí)施例一
參照圖1,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)處理方法步驟流程圖,具體可以包括如下步驟:
步驟102,依據(jù)對當(dāng)前應(yīng)用的活動(dòng)變化事件的監(jiān)聽,獲取當(dāng)前應(yīng)用的視圖樹。
用戶在智能設(shè)備中可以運(yùn)行應(yīng)用執(zhí)行所需的操作,應(yīng)用啟動(dòng)后會(huì)顯示相 應(yīng)的圖形用戶界面(Graphical User Interface,GUI)?;贕UI可以對當(dāng)前應(yīng)用的活動(dòng)變化事件的監(jiān)聽,活動(dòng)變化事件即當(dāng)前應(yīng)用中信息的變化事件等,并且獲取當(dāng)前應(yīng)用的視圖樹ViewTree,
其中,GUI是應(yīng)用程序開發(fā)不可或缺的一部分,其不僅能為用戶提供輸入,還能夠根據(jù)(用戶)執(zhí)行的動(dòng)作,提供相應(yīng)的反饋。圖形用戶界面的基本組件包括:視圖View以及視圖組ViewGroup等,其中,ViewGroup作為容器,可以包含一組View,并且ViewGroup其本身就是View的擴(kuò)展,而各種不同的窗口部件Widgets如文本視圖TextView,按鈕Button等也是View的擴(kuò)展,只不過是放在各種布局Layout里,比如LinearLayout,RelativeLayout。其中,Layout可以看作是ViewGroup的子類。因此,對于應(yīng)用的GUI,將一個(gè)Layout里的各種Views和ViewGroups可以構(gòu)成樹形結(jié)構(gòu)即ViewTree。
即應(yīng)用的圖形用戶界面可以采用ViewTree表示相應(yīng)的視圖結(jié)構(gòu),當(dāng)應(yīng)用中顯示內(nèi)容變化時(shí),相應(yīng)ViewTree中節(jié)點(diǎn)以及節(jié)點(diǎn)信息也會(huì)發(fā)生變化。
步驟104,遍歷視圖樹中各節(jié)點(diǎn),查找各節(jié)點(diǎn)對應(yīng)視圖對象的視圖類型。
為了確定ViewTree中各節(jié)點(diǎn)的信息以及變化,可以對視圖樹進(jìn)行遍歷,即自上而下由根節(jié)點(diǎn)開始遍歷視圖樹的各節(jié)點(diǎn),依據(jù)各節(jié)點(diǎn)的節(jié)點(diǎn)信息確定該節(jié)點(diǎn)對應(yīng)視圖對象的視圖類型。
其中,在視圖樹中包含有一個(gè)根視圖(或稱根節(jié)點(diǎn)),即根據(jù)Activity中的Window生成一個(gè)DevorView,將DevorView作為Root View(根視圖),也叫根節(jié)點(diǎn),在根視圖的下邊還包括有一個(gè)或多個(gè)View或ViewGroup,作為子節(jié)點(diǎn)。
步驟106,當(dāng)依據(jù)視圖類型判斷所述視圖對象為瀏覽器控件時(shí),獲取所述瀏覽器控件的特征信息。
步驟108,當(dāng)檢測所述特征信息符合預(yù)置攔截規(guī)則時(shí),對所述瀏覽器控件進(jìn)行攔截。
可以依據(jù)視圖類型對視圖對象進(jìn)行判斷,當(dāng)判斷視圖對象為瀏覽器控件時(shí),獲取瀏覽器控件的特征信息。然后檢測瀏覽器控件的特征信息是否符合 預(yù)置攔截規(guī)則,當(dāng)特征信息符合預(yù)置攔截規(guī)則時(shí),對所述瀏覽器控件進(jìn)行攔截。本實(shí)施例中,可以按照視圖特征對視圖對象進(jìn)行識(shí)別,如執(zhí)行特征匹配等操作,又如確定該視圖對象對應(yīng)的類型、內(nèi)容等,從而基于識(shí)別結(jié)果執(zhí)行相應(yīng)的操作,例如識(shí)別出該瀏覽器控件為廣告,則可以屏蔽廣告。
綜上,本發(fā)明實(shí)施例通過依據(jù)對當(dāng)前應(yīng)用的活動(dòng)變化事件的監(jiān)聽,獲取當(dāng)前應(yīng)用的視圖樹;遍歷視圖樹中各節(jié)點(diǎn),查找各節(jié)點(diǎn)對應(yīng)視圖對象的視圖類型,當(dāng)依據(jù)視圖類型判斷所述視圖對象為瀏覽器控件時(shí),獲取所述瀏覽器控件的特征信息;當(dāng)檢測所述特征信息符合預(yù)置攔截規(guī)則時(shí),對所述瀏覽器控件進(jìn)行攔截,使得用戶在使用智能設(shè)備時(shí),可以對一些沒用的廣告信息進(jìn)行攔截,減少了用戶流量的消耗,增強(qiáng)了用戶的用戶體驗(yàn)。
實(shí)施例二
參照圖2,示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的數(shù)據(jù)處理方法的步驟流程圖,具體可以包括如下步驟:
步驟202,監(jiān)聽當(dāng)前應(yīng)用的活動(dòng)變化事件。
步驟204,依據(jù)活動(dòng)變化事件確定當(dāng)前應(yīng)用的界面布局發(fā)生變化時(shí),獲取當(dāng)前應(yīng)用的視圖樹。
應(yīng)用運(yùn)行過程中,采用Activity組件與用戶交互,該Activity是一個(gè)應(yīng)用程序組件,是安卓系統(tǒng)應(yīng)用程序的一個(gè)核心組件類型,程序界面展示的實(shí)體,用戶可以用來交互為了完成某項(xiàng)任務(wù)。Activity中所有操作都與用戶密切相關(guān),是一個(gè)負(fù)責(zé)與用戶交互的組件,可以通過setContentView(View)來顯示指定控件。
本實(shí)施例中,可以對與Activity組件相關(guān)的事件進(jìn)行監(jiān)聽,包括監(jiān)聽所述當(dāng)前應(yīng)用的視圖樹變化事件和生命周期事件,即監(jiān)聽ViewTree變化事件,同時(shí)監(jiān)聽Activity生命周期事件,ViewTree變化事件即應(yīng)用的顯示視圖對應(yīng)的變化,如啟動(dòng)、更換等,Activity生命周期事件即Activity整個(gè)運(yùn)行過程的事件,如包括Resumed(運(yùn)行)、Paused(暫停)、Stopped(停止)等。
當(dāng)監(jiān)聽到ViewTree變化,并且Activity生命周期變化時(shí),如應(yīng)用開始運(yùn) 行,或者應(yīng)用界面切換等變換過程中,可以依據(jù)所述活動(dòng)變化事件確定所述當(dāng)前應(yīng)用的界面布局發(fā)生變化,此時(shí)獲取當(dāng)前應(yīng)用的ViewTree,其中ViewTree變化后獲取的即變化的ViewTree。動(dòng)態(tài)注冊回調(diào)接口可以對ViewTree的根節(jié)點(diǎn)進(jìn)行監(jiān)控,根節(jié)點(diǎn)存在一個(gè)固定的結(jié)構(gòu)變化監(jiān)控器ViewTreeObserver,調(diào)用監(jiān)控器的addOnGlobalLayoutListener可以注冊回調(diào)以監(jiān)聽整個(gè)ViewTree的節(jié)點(diǎn)變化。
步驟206,從視圖樹的根節(jié)點(diǎn)開始遍歷各節(jié)點(diǎn)。
步驟208,針對每個(gè)節(jié)點(diǎn),獲取節(jié)點(diǎn)對應(yīng)視圖對象的視圖類型。
在確定當(dāng)前視圖發(fā)生變化且獲取ViewTree后,可以從視圖樹的根節(jié)點(diǎn)開始遍歷各節(jié)點(diǎn)。其中,ViewTree可以采用自上而下的方式進(jìn)行遍歷實(shí)現(xiàn),即應(yīng)用的GUI中父視圖Parent總是最先繪制的,其實(shí)才是子視圖Children的繪制。例如,將智能設(shè)備中屏幕顯示GUI為例,將屏幕看作由X,Y,Z軸構(gòu)成的坐標(biāo)系,以屏幕的左上角作為零點(diǎn)[0,0,0],X軸向右,Y軸向下沿著屏幕的長度,Z軸延伸出屏幕,在繪制ViewTree時(shí),Views可以沿著Z軸排放。從而在遍歷ViewTree時(shí)依據(jù)其繪制的方式從根節(jié)點(diǎn)開始自上而下的遍歷。針對每個(gè)節(jié)點(diǎn),依據(jù)該節(jié)點(diǎn)的節(jié)點(diǎn)信息確定對應(yīng)應(yīng)用的視圖對象,然后獲取視圖對象的視圖類型。
步驟210,依據(jù)視圖類型判斷所述視圖對象是否為瀏覽器控件。
然后可以對視圖對象的視圖類型進(jìn)行判斷,判斷所述視圖對象是否為瀏覽器控件。若是,即判斷所述視圖對象為瀏覽器控件,執(zhí)行步驟212;若否,即判斷所述視圖對象不為瀏覽器控件,返回步驟202繼續(xù)監(jiān)聽。
步驟212,針對瀏覽器控件,提取所述瀏覽器控件對應(yīng)的代碼特征,將所述代碼特征作為所述瀏覽器控件的特征信息。
本實(shí)施例中,視圖類型可以包括:瀏覽器控件、瀏覽器控件、通用視圖等,依據(jù)不同的視圖類型執(zhí)行不同的提取操作,提取相應(yīng)的視圖特征信息。其中對于瀏覽器控件,從該瀏覽器控件中提取代碼特征,作為視圖特征信息。例如對于瀏覽器控件WebView,可以提取onclicklistener的代碼和webviewclient代碼作為瀏覽器控件的視圖特征信息。
步驟214,采用預(yù)置特征庫對所述瀏覽器控件的代碼特征進(jìn)行特征匹配。
步驟216,通過特征匹配識(shí)別所述瀏覽器控件是否目標(biāo)對象。
本實(shí)施例中,預(yù)先確定對需要攔截的瀏覽器控件的代碼特征進(jìn)行收集,并生成相應(yīng)的特征庫,從而依據(jù)預(yù)置特征庫可以對所述瀏覽器控件的代碼特征進(jìn)行特征匹配。例如在獲取到視圖對象的視圖特征信息后,可以將視圖特征信息傳入native層進(jìn)行比對,即將視圖特征信息傳入本地框架層與預(yù)置特征庫進(jìn)行特征匹配。以廣告為例,廣告通常需要實(shí)現(xiàn)插件點(diǎn)擊后跳轉(zhuǎn)到廣告信息所對應(yīng)的展示頁,因此對于視圖對象依據(jù)其代碼特征可以匹配點(diǎn)擊、跳轉(zhuǎn)等事件,從而分析出該視圖對象符合廣告的特征,后續(xù)可以執(zhí)行攔截操作。
本實(shí)施例中,可以預(yù)先收集需要攔截瀏覽器控件的特征作為目標(biāo)特征,從而生成相應(yīng)的特征策略等,然后可以從云服務(wù)器獲取目標(biāo)特征,將目標(biāo)特征添加到預(yù)置特征庫中,從而能夠?qū)崟r(shí)對預(yù)置特征庫中目標(biāo)特征進(jìn)行更新,匹配特征處理策略,從而更加靈活的對瀏覽器控件進(jìn)行攔截。
若是,即通過特征匹配識(shí)別所述瀏覽器控件為目標(biāo)對象,執(zhí)行步驟218;若否,即通過特征匹配識(shí)別所述瀏覽器控件不為目標(biāo)對象,返回步驟202繼續(xù)監(jiān)聽。
步驟218,以所述瀏覽器控件對應(yīng)節(jié)點(diǎn)為起點(diǎn),自下而上查找所述視圖樹,確定所述瀏覽器控件對應(yīng)父窗口,對所述父窗口進(jìn)行攔截。
通過特征匹配識(shí)別所述瀏覽器控件為目標(biāo)對象時(shí),確認(rèn)該瀏覽器控件的特征信息符合預(yù)置攔截規(guī)則,需要對其進(jìn)行攔截。采用native層調(diào)用預(yù)置特征庫進(jìn)行特征,從而匹配識(shí)別出瀏覽器控件為目標(biāo)對象,即需要攔截的對象,如廣告、用戶選定無需查看的信息等,從而可以對視圖特征信息對應(yīng)視圖對象進(jìn)行攔截,在應(yīng)用的GUI中不顯示相應(yīng)的視圖對象,即不顯示廣告,以及用戶確定無需查看的信息,如視頻播放界面的視頻推薦,新聞界面的其他新聞鏈接等。
本實(shí)施例中,為了準(zhǔn)確的對視圖對象進(jìn)行攔截,防止無用信息的展示,可以以所述視圖特征信息對應(yīng)視圖對象為起點(diǎn),自下而上查找所述視圖樹,確定所述視圖對象對應(yīng)父窗口,對所述父窗口進(jìn)行攔截。即在確定為需要攔 截的第一特征對象后,通過反向向上查找ViewTree確定該視圖對象對應(yīng)最上層的父窗口,攔截該父窗口從而阻止無用信息如廣告的顯示。
從而深入到視圖對象的代碼層面,基于代碼特征對視圖對象進(jìn)行攔截,有效的對廣告等無用信息進(jìn)行攔截,在應(yīng)用運(yùn)行時(shí)減少對無用信息的獲取以及展示,減少資源的浪費(fèi)。
本實(shí)施例可以應(yīng)用于各種場景,適用于所有安卓系統(tǒng),解決了通過域名解析攔截時(shí)遇到的平臺(tái)兼容性問題。例如利用廣告插件中固定的代碼特征,在監(jiān)聽到應(yīng)用內(nèi)部窗口布局變化以及生命周期固定事件時(shí),對所有的View進(jìn)行特征碼匹配,精確定位應(yīng)用界面中的廣告內(nèi)容,然后對其進(jìn)行攔截。從而能夠統(tǒng)一化廣告插件特征,做到按照插件攔截,一款特征可以作用于所有使用了同類插件的應(yīng)用,并且可以通過云端特征下發(fā),做到專項(xiàng)應(yīng)用廣告攔截。
對于方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實(shí)施例并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明實(shí)施例,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本發(fā)明實(shí)施例所必須的。
實(shí)施例三
參照圖3,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖,具體可以包括如下模塊:
監(jiān)聽獲取模塊302,用于依據(jù)對當(dāng)前應(yīng)用的活動(dòng)變化事件的監(jiān)聽,獲取當(dāng)前應(yīng)用的視圖樹。
遍歷查找模塊304,用于遍歷所述視圖樹中各節(jié)點(diǎn),查找各節(jié)點(diǎn)對應(yīng)視圖對象的視圖類型。
獲取模塊306,用于當(dāng)依據(jù)視圖類型判斷所述視圖對象為瀏覽器控件時(shí),獲取所述瀏覽器控件的特征信息。
攔截模塊308,用于當(dāng)檢測所述特征信息符合預(yù)置攔截規(guī)則時(shí),對所述瀏覽器控件進(jìn)行攔截。
綜上,本發(fā)明實(shí)施例通過依據(jù)對當(dāng)前應(yīng)用的活動(dòng)變化事件的監(jiān)聽,獲取當(dāng)前應(yīng)用的視圖樹;遍歷視圖樹中各節(jié)點(diǎn),查找各節(jié)點(diǎn)對應(yīng)視圖對象的視圖類型,當(dāng)依據(jù)視圖類型判斷所述視圖對象為瀏覽器控件時(shí),獲取所述瀏覽器控件的特征信息;當(dāng)檢測所述特征信息符合預(yù)置攔截規(guī)則時(shí),對所述瀏覽器控件進(jìn)行攔截,使得用戶在使用智能設(shè)備時(shí),可以對一些沒用的廣告信息進(jìn)行攔截,減少了用戶流量的消耗,增強(qiáng)了用戶的用戶體驗(yàn)。
實(shí)施例四
參照圖4,示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖,具體可以包括如下模塊:
監(jiān)聽獲取模塊302,用于依據(jù)對當(dāng)前應(yīng)用的活動(dòng)變化事件的監(jiān)聽,獲取當(dāng)前應(yīng)用的視圖樹。
遍歷查找模塊304,用于遍歷所述視圖樹中各節(jié)點(diǎn),查找各節(jié)點(diǎn)對應(yīng)視圖對象的視圖類型。
獲取模塊306,用于當(dāng)依據(jù)視圖類型判斷所述視圖對象為瀏覽器控件時(shí),獲取所述瀏覽器控件的特征信息。
特征匹配模塊310,用于采用預(yù)置特征庫對所述瀏覽器控件的代碼特征進(jìn)行特征匹配;通過特征匹配識(shí)別所述瀏覽器控件為目標(biāo)對象時(shí),確認(rèn)所述特征信息符合預(yù)置攔截規(guī)則。
攔截模塊308,用于當(dāng)檢測所述特征信息符合預(yù)置攔截規(guī)則時(shí),對所述瀏覽器控件進(jìn)行攔截。
特征庫處理模塊300,用于從云服務(wù)器獲取目標(biāo)特征,將所述目標(biāo)特征添加到所述預(yù)置特征庫中。
其中,所述監(jiān)聽獲取模塊302,包括:
監(jiān)聽子模塊3022,用于監(jiān)聽所述當(dāng)前應(yīng)用的活動(dòng)變化事件。
視圖樹獲取子模塊3024,用于依據(jù)所述活動(dòng)變化事件確定所述當(dāng)前應(yīng)用的界面布局發(fā)生變化時(shí),獲取所述當(dāng)前應(yīng)用的視圖樹。
所述監(jiān)聽子模塊3022,用于監(jiān)聽所述當(dāng)前應(yīng)用的視圖樹變化事件和生命周期事件。
所述遍歷查找模塊304,包括:
遍歷子模塊3042,用于從所述視圖樹的根節(jié)點(diǎn)開始遍歷各節(jié)點(diǎn)。
查找子模塊3044,用于針對每個(gè)節(jié)點(diǎn),依據(jù)所述節(jié)點(diǎn)對應(yīng)節(jié)點(diǎn)信息查找對應(yīng)視圖對象的視圖類型。
所述獲取模塊306,用于針對瀏覽器控件,提取所述瀏覽器控件對應(yīng)的代碼特征,將所述代碼特征作為所述瀏覽器控件的特征信息。
所述攔截模塊308,用于以所述瀏覽器控件對應(yīng)節(jié)點(diǎn)為起點(diǎn),自下而上查找所述視圖樹,確定所述瀏覽器控件對應(yīng)父窗口,對所述父窗口進(jìn)行攔截。
本實(shí)施例中,為了準(zhǔn)確的對視圖對象進(jìn)行攔截,防止無用信息的展示,可以以所述視圖特征信息對應(yīng)視圖對象為起點(diǎn),自下而上查找所述視圖樹,確定所述視圖對象對應(yīng)父窗口,對所述父窗口進(jìn)行攔截。即在確定為需要攔截的第一特征對象后,通過反向向上查找ViewTree確定該視圖對象對應(yīng)最上層的父窗口,攔截該父窗口從而阻止無用信息如廣告的顯示。
從而深入到視圖對象的代碼層面,基于代碼特征對視圖對象進(jìn)行攔截,有效的對廣告等無用信息進(jìn)行攔截,在應(yīng)用運(yùn)行時(shí)減少對無用信息的獲取以及展示,減少資源的浪費(fèi)。
本實(shí)施例可以應(yīng)用于各種場景,適用于所有安卓系統(tǒng),解決了通過域名解析攔截時(shí)遇到的平臺(tái)兼容性問題。例如利用廣告插件中固定的代碼特征,在監(jiān)聽到應(yīng)用內(nèi)部窗口布局變化以及生命周期固定事件時(shí),對所有的View進(jìn)行特征碼匹配,精確定位應(yīng)用界面中的廣告內(nèi)容,然后對其進(jìn)行攔截。從而能夠統(tǒng)一化廣告插件特征,做到按照插件攔截,一款特征可以作用于所有使用了同類插件的應(yīng)用,并且可以通過云端特征下發(fā),做到專項(xiàng)應(yīng)用廣告攔截。
對于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定 編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理 器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理方法和數(shù)據(jù)處理裝置設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
本發(fā)明公開了A1、一種數(shù)據(jù)處理方法,包括:
依據(jù)對當(dāng)前應(yīng)用的活動(dòng)變化事件的監(jiān)聽,獲取當(dāng)前應(yīng)用的視圖樹;
遍歷所述視圖樹中各節(jié)點(diǎn),查找各節(jié)點(diǎn)對應(yīng)視圖對象的視圖類型;
當(dāng)依據(jù)視圖類型判斷所述視圖對象為瀏覽器控件時(shí),獲取所述瀏覽器控件的特征信息;
當(dāng)檢測所述特征信息符合預(yù)置攔截規(guī)則時(shí),對所述瀏覽器控件進(jìn)行攔截。
A2、如A1所述的方法,依據(jù)對當(dāng)前應(yīng)用的活動(dòng)變化事件的監(jiān)聽,獲取當(dāng)前應(yīng)用的視圖樹,包括:
監(jiān)聽所述當(dāng)前應(yīng)用的活動(dòng)變化事件;
依據(jù)所述活動(dòng)變化事件確定所述當(dāng)前應(yīng)用的界面布局發(fā)生變化時(shí),獲取 所述當(dāng)前應(yīng)用的視圖樹。
A3、如A2所述的方法,監(jiān)聽所述當(dāng)前應(yīng)用的活動(dòng)變化事件,包括:
監(jiān)聽所述當(dāng)前應(yīng)用的視圖樹變化事件和生命周期事件。
A4、如A1所述的方法,遍歷所述視圖樹中各節(jié)點(diǎn),查找各節(jié)點(diǎn)對應(yīng)視圖對象的視圖類型,包括:
從所述視圖樹的根節(jié)點(diǎn)開始遍歷各節(jié)點(diǎn);
針對每個(gè)節(jié)點(diǎn),依據(jù)所述節(jié)點(diǎn)對應(yīng)節(jié)點(diǎn)信息查找對應(yīng)視圖對象的視圖類型。
A5、如A1或A4所述的方法,獲取所述瀏覽器控件的特征信息,包括:
針對瀏覽器控件,提取所述瀏覽器控件對應(yīng)的代碼特征,將所述代碼特征作為所述瀏覽器控件的特征信息。
A6、如A5所述的方法,還包括:
采用預(yù)置特征庫對所述瀏覽器控件的代碼特征進(jìn)行特征匹配;
通過特征匹配識(shí)別所述瀏覽器控件為目標(biāo)對象時(shí),確認(rèn)所述特征信息符合預(yù)置攔截規(guī)則。
A7、如A5所述的方法,對所述瀏覽器控件進(jìn)行攔截,包括:
以所述瀏覽器控件對應(yīng)節(jié)點(diǎn)為起點(diǎn),自下而上查找所述視圖樹,確定所述瀏覽器控件對應(yīng)父窗口,對所述父窗口進(jìn)行攔截。
A8、如A6所述的方法,還包括:
從云服務(wù)器獲取目標(biāo)特征,將所述目標(biāo)特征添加到所述預(yù)置特征庫中。
本發(fā)明還公開了B9、一種數(shù)據(jù)處理裝置,包括:
監(jiān)聽獲取模塊,用于依據(jù)對當(dāng)前應(yīng)用的活動(dòng)變化事件的監(jiān)聽,獲取當(dāng)前應(yīng)用的視圖樹;
遍歷查找模塊,用于遍歷所述視圖樹中各節(jié)點(diǎn),查找各節(jié)點(diǎn)對應(yīng)視圖對象的視圖類型;
獲取模塊,用于當(dāng)依據(jù)視圖類型判斷所述視圖對象為瀏覽器控件時(shí),獲取所述瀏覽器控件的特征信息;
攔截模塊,用于當(dāng)檢測所述特征信息符合預(yù)置攔截規(guī)則時(shí),對所述瀏覽 器控件進(jìn)行攔截。
B10、如B9所述的裝置,所述監(jiān)聽獲取模塊,包括:
監(jiān)聽子模塊,用于監(jiān)聽所述當(dāng)前應(yīng)用的活動(dòng)變化事件;
視圖樹獲取子模塊,用于依據(jù)所述活動(dòng)變化事件確定所述當(dāng)前應(yīng)用的界面布局發(fā)生變化時(shí),獲取所述當(dāng)前應(yīng)用的視圖樹。
B11、如B10所述的裝置,
所述監(jiān)聽子模塊,用于監(jiān)聽所述當(dāng)前應(yīng)用的視圖樹變化事件和生命周期事件。
B12、如B9所述的裝置,所述遍歷查找模塊,包括:
遍歷子模塊,用于從所述視圖樹的根節(jié)點(diǎn)開始遍歷各節(jié)點(diǎn);
查找子模塊,用于針對每個(gè)節(jié)點(diǎn),依據(jù)所述節(jié)點(diǎn)對應(yīng)節(jié)點(diǎn)信息查找對應(yīng)視圖對象的視圖類型。
B13、如B9或B12所述的裝置,
所述獲取模塊,用于針對瀏覽器控件,提取所述瀏覽器控件對應(yīng)的代碼特征,將所述代碼特征作為所述瀏覽器控件的特征信息。
B14、如B13所述的裝置,還包括:
特征匹配模塊,用于采用預(yù)置特征庫對所述瀏覽器控件的代碼特征進(jìn)行特征匹配;通過特征匹配識(shí)別所述瀏覽器控件為目標(biāo)對象時(shí),確認(rèn)所述特征信息符合預(yù)置攔截規(guī)則。
B15、如B13所述的裝置,
所述攔截模塊,用于以所述瀏覽器控件對應(yīng)節(jié)點(diǎn)為起點(diǎn),自下而上查找所述視圖樹,確定所述瀏覽器控件對應(yīng)父窗口,對所述父窗口進(jìn)行攔截。
B16、如B14所述的裝置,還包括:
特征庫處理模塊,用于從云服務(wù)器獲取目標(biāo)特征,將所述目標(biāo)特征添加到所述預(yù)置特征庫中。