Android系統(tǒng)的事件收集上報(bào)系統(tǒng)及其收集上報(bào)方法
【專利摘要】本發(fā)明公開(kāi)一種Android系統(tǒng)的事件收集上報(bào)系統(tǒng)及其收集上報(bào)方法,所述系統(tǒng)包括:事件收集模塊,用于收集并篩選Android系統(tǒng)的內(nèi)核發(fā)送的NetLink廣播消息,獲取篩選后的NetLink廣播消息對(duì)應(yīng)的事件;事件解析模塊,用于對(duì)所述事件進(jìn)行解析獲取事件信息,并將所述事件信息發(fā)送至事件服務(wù)模塊;事件服務(wù)模塊,用于為事件解析模塊和Android的應(yīng)用程序提供事件查詢的接口函數(shù),并將事件信息發(fā)送至事件分發(fā)模塊;事件分發(fā)模塊,用于根據(jù)不同的事件信息創(chuàng)建相應(yīng)的事件廣播,并將所述事件廣播上報(bào)給Android系統(tǒng)的應(yīng)用程序。
【專利說(shuō)明】Andro i d系統(tǒng)的事件收集上報(bào)系統(tǒng)及其收集上報(bào)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及Android系統(tǒng)領(lǐng)域,尤其涉及一種Android系統(tǒng)的事件收集上報(bào)系統(tǒng)及方法。
【背景技術(shù)】
[0002]Android系統(tǒng)的框架層和應(yīng)用層經(jīng)常需要底層主動(dòng)上報(bào)一些事件,或者查詢底層的狀態(tài)信息,其具體是通過(guò)NetLink機(jī)制上報(bào)事件信息,但是由于采用了不同的協(xié)議,需要軟件模塊分別去輪詢接收,框架層和應(yīng)用層需要底層的狀態(tài)信息的時(shí)候,需要分別去輪詢查詢多個(gè)模塊,事件收集上報(bào)的效率較低;而且原生Android系統(tǒng)上報(bào)的事件數(shù)量有限,如果有新的事件需求,添加起來(lái)也非常不方便,另外傳統(tǒng)的事件收集上報(bào)的信息有限,擴(kuò)展能力弱。
[0003]因此,現(xiàn)有技術(shù)還有待于改進(jìn)和發(fā)展。
【發(fā)明內(nèi)容】
[0004]鑒于上述現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種Android系統(tǒng)的事件收集上報(bào)系統(tǒng)及其收集上報(bào)方法,旨在解決現(xiàn)有Android系統(tǒng)的事件收集上報(bào)的效率低、擴(kuò)展能力弱的問(wèn)題。
[0005]本發(fā)明的技術(shù)方案如下:
一種Android系統(tǒng)的事件收集上報(bào)系統(tǒng),其中,包括:
事件收集模塊,用于收集并篩選Android系統(tǒng)的內(nèi)核發(fā)送的NetLink廣播消息,獲取篩選后的NetLink廣播消息對(duì)應(yīng)的事件;
事件解析模塊,用于對(duì)所述事件進(jìn)行解析獲取事件信息,并將所述事件信息發(fā)送至事件服務(wù)1吳塊;
事件服務(wù)模塊,用于為事件解析模塊和Android的應(yīng)用程序提供事件查詢的接口函數(shù),并將事件信息發(fā)送至事件分發(fā)模塊;
事件分發(fā)模塊,用于根據(jù)不同的事件信息創(chuàng)建相應(yīng)的事件廣播,并將所述事件廣播上報(bào)給Android系統(tǒng)的應(yīng)用程序;
所述事件收集模塊、事件解析模塊、事件服務(wù)模塊、事件分發(fā)模塊依次連接。
[0006]所述Android系統(tǒng)的事件收集上報(bào)系統(tǒng),其中,所述事件收集模塊包括:
NetLink廣播消息監(jiān)聽(tīng)單元,用于創(chuàng)建多個(gè)線程及與所述線程對(duì)應(yīng)的NetLink端口,監(jiān)
聽(tīng)所述NetLink端口的NetLink廣播消息;
NetLink廣播消息收集單元,用于對(duì)監(jiān)聽(tīng)到的NetLink廣播消息進(jìn)行收集;
事件收集單元,用于通過(guò)預(yù)定方法對(duì)NetLink廣播消息進(jìn)行篩選,篩選出有用的NetLink廣播消息,獲取篩選后的NetLink廣播信息對(duì)應(yīng)的事件;
所述NetLink廣播消息監(jiān)聽(tīng)單元、NetLink廣播消息收集單元、事件收集單元依次連接。[0007]所述Android系統(tǒng)的事件收集上報(bào)系統(tǒng),其中,所述事件收集模塊包括:
事件擴(kuò)展信息收集單元,用于通過(guò)與Android系統(tǒng)的內(nèi)核交互獲取事件擴(kuò)展信息。
[0008]所述Android系統(tǒng)的事件收集上報(bào)系統(tǒng),其中,所述事件解析模塊包括:
事件協(xié)議類型獲取單元,用于獲取事件的協(xié)議類型;
事件解析單元,用于根據(jù)事件的協(xié)議類型解析事件以獲取事件信息;
所述事件協(xié)議類型獲取單元、事件解析單元依次連接。
[0009]所述Android系統(tǒng)的事件收集上報(bào)系統(tǒng),其中,所述事件服務(wù)模塊包括:
通信單元,用于通過(guò)JAVA本地調(diào)用與事件解析模塊進(jìn)行Socket通信;
事件信息監(jiān)聽(tīng)單元,用于實(shí)時(shí)監(jiān)聽(tīng)Socket端口是否有事件解析模塊傳送來(lái)的事件信
息;
發(fā)送單元,用于當(dāng)有事件信息傳送過(guò)來(lái)時(shí),將事件信息發(fā)送至事件分發(fā)模塊;
所述通信單元、事件信息監(jiān)聽(tīng)單元、發(fā)送單元依次連接。
[0010]所述Android系統(tǒng)的事件收集上報(bào)系統(tǒng),其中,所述事件服務(wù)模塊通過(guò)其接口函數(shù)接收應(yīng)用程序指定的需要查詢的事件擴(kuò)展消息的指令,并啟動(dòng)事件擴(kuò)展消息收集單元獲取需要查詢的事件擴(kuò)展消息。
[0011]一種如所述Android系統(tǒng)的事件收集上報(bào)系統(tǒng)的收集上報(bào)方法,其中,包括步驟:
A、事件收集模塊收集并篩選Android系統(tǒng)的內(nèi)核發(fā)送的NetLink廣播消息,獲取篩選后的NetLink廣播消息對(duì)應(yīng)的事件;
B、事件解析模塊對(duì)所述事件進(jìn)行解析獲取事件信息,并將所述事件信息發(fā)送至事件服務(wù)豐吳塊;
C、事件服務(wù)模塊為事件解析模塊和Android的應(yīng)用程序提供事件查詢的接口函數(shù),并將事件信息發(fā)送至事件分發(fā)模塊;
D、事件分發(fā)模塊根據(jù)不同的事件信息創(chuàng)建相應(yīng)的事件廣播,并將所述事件廣播上報(bào)給Android系統(tǒng)的應(yīng)用程序。
[0012]所述Android系統(tǒng)的事件收集上報(bào)方法,其中,所述步驟A具體包括:
Al、創(chuàng)建多個(gè)線程及與所述線程對(duì)應(yīng)的NetLink端口,監(jiān)聽(tīng)所述NetLink端口的NetLink廣播消息;
A2、對(duì)監(jiān)聽(tīng)到的NetLink廣播消息進(jìn)行收集;
A3、通過(guò)預(yù)定方法對(duì)NetLink廣播消息進(jìn)行篩選,篩選出有用的NetLink廣播消息,獲取篩選后的NetLink廣播信息對(duì)應(yīng)的事件;
A4、通過(guò)與Android系統(tǒng)的內(nèi)核交互獲取事件擴(kuò)展信息。
[0013]所述Android系統(tǒng)的事件收集上報(bào)方法,其中,所述步驟B具體包括:
B1、獲取事件的協(xié)議類型;
B2、根據(jù)事件的協(xié)議類型解析事件以獲取事件信息。
[0014]所述Android系統(tǒng)的事件收集上報(bào)方法,其中,所述步驟C還包括:
Cl、通過(guò)JAVA本地調(diào)用與事件解析模塊進(jìn)行Socket通信;
C2、實(shí)時(shí)監(jiān)聽(tīng)Socket端口是否有事件解析模塊傳送來(lái)的事件信息;
C3、當(dāng)有事件信息傳送過(guò)來(lái)時(shí),將事件信息發(fā)送至事件分發(fā)模塊。
[0015]有益效果:本發(fā)明Android系統(tǒng)的事件收集上報(bào)系統(tǒng)及其收集上報(bào)方法,通過(guò)事件收集模塊來(lái)專門收集事件,從而將事件收集到一個(gè)模塊中,然后上報(bào)給應(yīng)用程序,大大提高了事件上報(bào)的效率,并且可根據(jù)應(yīng)用程序的需求定制需要上報(bào)的事件內(nèi)容,方便應(yīng)用程序和內(nèi)核的交互。
【專利附圖】
【附圖說(shuō)明】
[0016]圖1為本發(fā)明Android系統(tǒng)的事件收集上報(bào)系統(tǒng)的結(jié)構(gòu)框圖。
[0017]圖2為圖1所示系統(tǒng)中事件收集模塊的結(jié)構(gòu)框圖。
[0018]圖3為圖1所示系統(tǒng)中事件解析模塊的結(jié)構(gòu)框圖。
[0019]圖4為圖1所示系統(tǒng)中事件服務(wù)模塊的結(jié)構(gòu)框圖。
[0020]圖5為本發(fā)明Android系統(tǒng)的事件收集上報(bào)方法的流程圖。
[0021]圖6為本發(fā)明Android系統(tǒng)的事件收集上報(bào)方法中事件收集的流程圖。
[0022]圖7為本發(fā)明Android系統(tǒng)的事件收集上報(bào)方法中事件解析的流程圖。
[0023]圖8為本發(fā)明Android系統(tǒng)的事件收集上報(bào)方法中事件服務(wù)的流程圖。
【具體實(shí)施方式】
[0024]本發(fā)明提供Android系統(tǒng)的事件收集上報(bào)系統(tǒng)及其收集上報(bào)方法,為使本發(fā)明的目的、技術(shù)方案及效果更加清楚、明確,以下對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0025]請(qǐng)參閱圖1,圖1為本發(fā)明Android系統(tǒng)的事件收集上報(bào)系統(tǒng)的結(jié)構(gòu)框圖,其包括:
事件收集模塊100,用于收集并篩選Android系統(tǒng)的內(nèi)核發(fā)送的NetLink (應(yīng)用程序與內(nèi)核通信的常用的接口)廣播消息,獲取篩選后的NetLink廣播消息對(duì)應(yīng)的事件;
事件解析模塊200,用于對(duì)所述事件進(jìn)行解析獲取事件信息,并將所述事件信息發(fā)送至事件服務(wù)模塊300 ;
事件服務(wù)模塊300,用于為事件解析模塊200和Android的應(yīng)用程序提供事件查詢的接口函數(shù),并將事件信息發(fā)送至事件分發(fā)模塊400 ;
事件分發(fā)模塊400,用于根據(jù)不同的事件信息創(chuàng)建相應(yīng)的事件廣播,并將所述事件廣播上報(bào)給Android系統(tǒng)的應(yīng)用程序;
所述事件收集模塊100、事件解析模塊200、事件服務(wù)模塊300、事件分發(fā)模塊400依次連接。
[0026]事件收集模塊100設(shè)置在HAL層(Hardware Abstraction Layer,硬件抽象層),其收集的事件是指Android系統(tǒng)的內(nèi)核或驅(qū)動(dòng)通過(guò)NetLink機(jī)制發(fā)送給用戶層的NetLink廣播消息,這些NetLink廣播消息對(duì)應(yīng)著不同的事件,例如SD卡、U盤(pán)、鼠標(biāo)、網(wǎng)線、無(wú)線網(wǎng)卡、鍵盤(pán)、耳機(jī)等設(shè)備的插拔事件,這些事件是系統(tǒng)主動(dòng)上報(bào)的,對(duì)于事件收集模塊100來(lái)說(shuō),屬于被動(dòng)接收,這些事件可直接向上層傳遞。
[0027]對(duì)于事件收集模塊100收集事件的過(guò)程可通過(guò)依次連接的NetLink廣播消息監(jiān)聽(tīng)單元110、NetLink廣播消息收集單元120、事件收集單元130來(lái)實(shí)現(xiàn),如圖2所示:
首先通過(guò)NetLink廣播消息監(jiān)聽(tīng)單元110創(chuàng)建多個(gè)線程及與所述線程對(duì)應(yīng)的NetLink端口,監(jiān)聽(tīng)所述NetLink端口的NetLink廣播消息;該NetLink廣播消息監(jiān)聽(tīng)單元是以Native服務(wù)程序的形式駐留在內(nèi)存中,根據(jù)不同類型的事件,創(chuàng)建不同的線程,監(jiān)聽(tīng)不同端口的事件。
[0028]再由NetLink廣播消息收集單元120對(duì)監(jiān)聽(tīng)到的NetLink廣播消息進(jìn)行收集;
因向上層廣播的事件有很多條,且以字符串的形式上報(bào)的,所以最后可通過(guò)事件收集單元130設(shè)置關(guān)鍵字來(lái)對(duì)NetLink廣播消息進(jìn)行篩選,以篩選出有用的NetLink廣播消息。當(dāng)然,如果NetLink廣播消息是以其他類型上報(bào)的,則可采用其他方法進(jìn)行篩選,例如對(duì)于以協(xié)議包形式上報(bào)的NetLink廣播消息,可通過(guò)相應(yīng)的協(xié)議來(lái)進(jìn)行解包篩選。
[0029]在篩選完成后,可根據(jù)應(yīng)用程序及系統(tǒng)移植的需求,定制需要收集上報(bào)的事件擴(kuò)展信息,這主要是針對(duì)一些復(fù)雜的事件而言,例如磁盤(pán)設(shè)備或網(wǎng)絡(luò)設(shè)備的插入,其需要進(jìn)一步獲取更詳細(xì)的事件擴(kuò)展信息,這時(shí)可啟動(dòng)事件擴(kuò)展信息收集單元140來(lái)通過(guò)軟件主動(dòng)去查詢收集到的事件,獲取諸如磁盤(pán)的分區(qū)、大小、剩余空間等詳細(xì)信息。該事件擴(kuò)展信息收集單元140可通過(guò)讀取proc文件(可用于獲取內(nèi)核的狀態(tài)、屬性、進(jìn)程的狀態(tài)等信息)、ioctl命令(一種獲得設(shè)備信息和向設(shè)備發(fā)送控制參數(shù)的手段)等方式和內(nèi)核進(jìn)行交互來(lái)獲取事件擴(kuò)展信息,或者還可調(diào)用Android系統(tǒng)的其他模塊提供的接口函數(shù)來(lái)獲取,該事件擴(kuò)展信息收集單元140可由上層例如應(yīng)用程序通過(guò)接口函數(shù)直接調(diào)用,或者可由事件收集模塊100來(lái)啟動(dòng)。
[0030]以磁盤(pán)熱插拔事件為例,Android系統(tǒng)的磁盤(pán)的接入到最終的掛載成功有一段時(shí)間的延時(shí),需要等到磁盤(pán)掛載成功后,才能獲得磁盤(pán)的擴(kuò)展信息,具體采用輪詢查詢proc文件的方式確認(rèn)磁盤(pán)是否掛載完成,掛載完成后,計(jì)算出磁盤(pán)的大小、可用空間等等事件擴(kuò)展信息,并對(duì)這些事件擴(kuò)展信息進(jìn)行整理,通過(guò)socket傳入到服務(wù)程序。
[0031]Android系統(tǒng)底層上報(bào)的事件都是以數(shù)據(jù)幀格式封裝的,所以需要對(duì)收集來(lái)的事件進(jìn)行解析,具體可通過(guò)事件解析模塊200,對(duì)事件進(jìn)行解析獲取事件信息。如圖3所示,解析的具體過(guò)程可通過(guò)依次連接的事件協(xié)議類型獲取單元210、事件解析單元220來(lái)實(shí)現(xiàn):
首先通過(guò)事件協(xié)議類型獲取單元210獲取事件的協(xié)議類型;
再由事件解析單元220根據(jù)事件的協(xié)議類型解析事件以獲取事件信息,解析完成,再按事件的協(xié)議類型進(jìn)行封裝,或者直接以字符串的形式通過(guò)socket傳遞給上層的服務(wù)程序。對(duì)于NetLink廣播消息,其是以協(xié)議的格式封裝的,通過(guò)事件解析單元可解析出大部分的事件信息,而對(duì)于熱插拔信息則是以字符串的形式存在的,則需要逐條進(jìn)行解析。
[0032]所述事件服務(wù)模塊300注冊(cè)為Android系統(tǒng)的服務(wù)程序,其主要是為事件解析模塊200和Android的應(yīng)用程序提供事件查詢的接口函數(shù),并將事件信息發(fā)送至事件分發(fā)模塊400 ;所述事件服務(wù)模塊300還通過(guò)其接口函數(shù)接收應(yīng)用程序指定的需要查詢的事件擴(kuò)展消息的指令,并啟動(dòng)事件擴(kuò)展消息收集單元獲取需要查詢的事件擴(kuò)展消息。
[0033]如圖4所示,所述事件服務(wù)模塊300包括:
通信單元310,用于通過(guò)JNI (JAVA本地調(diào)用)與事件解析模塊200進(jìn)行Socket通信;事件信息監(jiān)聽(tīng)單元320,用于實(shí)時(shí)監(jiān)聽(tīng)Socket端口是否有事件解析模塊200傳送來(lái)的事件信息;
發(fā)送單元330,用于當(dāng)有事件信息傳送過(guò)來(lái)時(shí),將事件信息發(fā)送至事件分發(fā)模塊400 ; 所述通信單元310、事件信息監(jiān)聽(tīng)單元320、發(fā)送單元330依次連接。
[0034]事件分發(fā)模塊400位于JAVA層,其根據(jù)不同的事件信息創(chuàng)建相應(yīng)的事件廣播,并將所述事件廣播上報(bào)給Android系統(tǒng)的應(yīng)用程序,應(yīng)用程序可根據(jù)所需的事件注冊(cè)相應(yīng)的事件廣播,得到所需的事件信息。
[0035]基于上述系統(tǒng),本發(fā)明還提供一種Android系統(tǒng)的事件收集上報(bào)系統(tǒng)的收集上報(bào)方法,如圖5所示,包括步驟:
5101、事件收集模塊收集并篩選Android系統(tǒng)的內(nèi)核發(fā)送的NetLink廣播消息,獲取篩選后的NetLink廣播消息對(duì)應(yīng)的事件;
5102、事件解析模塊對(duì)所述事件進(jìn)行解析獲取事件信息,并將所述事件信息發(fā)送至事件服務(wù)1吳塊;
5103、事件服務(wù)模塊為事件解析模塊和Android的應(yīng)用程序提供事件查詢的接口函數(shù),并將事件信息發(fā)送至事件分發(fā)模塊;
5104、事件分發(fā)模塊根據(jù)不同的事件信息創(chuàng)建相應(yīng)的事件廣播,并將所述事件廣播上報(bào)給Android系統(tǒng)的應(yīng)用程序。
[0036]進(jìn)一步,如圖6所示,所述步驟SlOl具體包括:
5201、創(chuàng)建多個(gè)線程及與所述線程對(duì)應(yīng)的NetLink端口,監(jiān)聽(tīng)所述NetLink端口的NetLink廣播消息;
5202、對(duì)監(jiān)聽(tīng)到的NetLink廣播消息進(jìn)行收集;
5203、通過(guò)預(yù)定方法對(duì)NetLink廣播消息進(jìn)行篩選,篩選出有用的NetLink廣播消息,獲取篩選后的NetLink廣播信息對(duì)應(yīng)的事件;其中的預(yù)定方法包括前文所述的設(shè)置關(guān)鍵字、協(xié)議包解包等方法。
[0037]S204、通過(guò)與Android系統(tǒng)的內(nèi)核交互獲取事件擴(kuò)展信息。
[0038]進(jìn)一步,如圖7所示,所述步驟S102具體包括:
5301、獲取事件的協(xié)議類型;
5302、根據(jù)事件的協(xié)議類型解析事件以獲取事件信息。
[0039]進(jìn)一步,如圖8所示,所述步驟S103還包括:
5401、通過(guò)JAVA本地調(diào)用與事件解析模塊進(jìn)行Socket通信;
5402、實(shí)時(shí)監(jiān)聽(tīng)Socket端口是否有事件解析模塊傳送來(lái)的事件信息;
5403、當(dāng)有事件信息傳送過(guò)來(lái)時(shí),將事件信息發(fā)送至事件分發(fā)模塊。
[0040]關(guān)于上述方法的具體過(guò)程可參見(jiàn)前面系統(tǒng)的敘述,不再贅述。另外,本發(fā)明也可用于Linux系統(tǒng)的事件收集上報(bào),其原理過(guò)程與Android系統(tǒng)類似,不再贅述。
[0041]綜上所述,本發(fā)明Android系統(tǒng)的事件收集上報(bào)系統(tǒng)及其收集上報(bào)方法,通過(guò)事件收集模塊來(lái)專門收集事件,從而將事件收集到一個(gè)模塊中,然后上報(bào)給應(yīng)用程序,大大提高了事件上報(bào)的效率,并且可根據(jù)應(yīng)用程序的需求定制需要上報(bào)的事件內(nèi)容,方便應(yīng)用程序和內(nèi)核的交互。
[0042]應(yīng)當(dāng)理解的是,本發(fā)明的應(yīng)用不限于上述的舉例,對(duì)本領(lǐng)域普通技術(shù)人員來(lái)說(shuō),可以根據(jù)上述說(shuō)明加以改進(jìn)或變換,所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。
【權(quán)利要求】
1.一種Android系統(tǒng)的事件收集上報(bào)系統(tǒng),其特征在于,包括: 事件收集模塊,用于收集并篩選Android系統(tǒng)的內(nèi)核發(fā)送的NetLink廣播消息,獲取篩選后的NetLink廣播消息對(duì)應(yīng)的事件; 事件解析模塊,用于對(duì)所述事件進(jìn)行解析獲取事件信息,并將所述事件信息發(fā)送至事件服務(wù)1吳塊; 事件服務(wù)模塊,用于為事件解析模塊和Android的應(yīng)用程序提供事件查詢的接口函數(shù),并將事件信息發(fā)送至事件分發(fā)模塊; 事件分發(fā)模塊,用于根據(jù)不同的事件信息創(chuàng)建相應(yīng)的事件廣播,并將所述事件廣播上報(bào)給Android系統(tǒng)的應(yīng)用程序; 所述事件收集模塊、事件解析模塊、事件服務(wù)模塊、事件分發(fā)模塊依次連接。
2.根據(jù)權(quán)利要求1所述Android系統(tǒng)的事件收集上報(bào)系統(tǒng),其特征在于,所述事件收集模塊包括: NetLink廣播消息監(jiān)聽(tīng)單元,用于創(chuàng)建多個(gè)線程及與所述線程對(duì)應(yīng)的NetLink端口,監(jiān)聽(tīng)所述NetLink端口的NetLink廣播消息; NetLink廣播消息收集單元,用于對(duì)監(jiān)聽(tīng)到的NetLink廣播消息進(jìn)行收集; 事件收集單元,用于通過(guò)預(yù)定方法對(duì)NetLink廣播消息進(jìn)行篩選,篩選出有用的NetLink廣播消息,獲取篩選后的NetLink廣播信息對(duì)應(yīng)的事件; 所述NetLink廣播消息`監(jiān)聽(tīng)單元、NetLink廣播消息收集單元、事件收集單元依次連接。
3.根據(jù)權(quán)利要求1所述Android系統(tǒng)的事件收集上報(bào)系統(tǒng),其特征在于,所述事件收集模塊包括: 事件擴(kuò)展信息收集單元,用于通過(guò)與Android系統(tǒng)的內(nèi)核交互獲取事件擴(kuò)展信息。
4.根據(jù)權(quán)利要求1所述Android系統(tǒng)的事件收集上報(bào)系統(tǒng),其特征在于,所述事件解析模塊包括: 事件協(xié)議類型獲取單元,用于獲取事件的協(xié)議類型; 事件解析單元,用于根據(jù)事件的協(xié)議類型解析事件以獲取事件信息; 所述事件協(xié)議類型獲取單元、事件解析單元依次連接。
5.根據(jù)權(quán)利要求1所述Android系統(tǒng)的事件收集上報(bào)系統(tǒng),其特征在于,所述事件服務(wù)模塊包括: 通信單元,用于通過(guò)JAVA本地調(diào)用與事件解析模塊進(jìn)行Socket通信; 事件信息監(jiān)聽(tīng)單元,用于實(shí)時(shí)監(jiān)聽(tīng)Socket端口是否有事件解析模塊傳送來(lái)的事件信息; 發(fā)送單元,用于當(dāng)有事件信息傳送過(guò)來(lái)時(shí),將事件信息發(fā)送至事件分發(fā)模塊; 所述通信單元、事件信息監(jiān)聽(tīng)單元、發(fā)送單元依次連接。
6.根據(jù)權(quán)利要求1所述Android系統(tǒng)的事件收集上報(bào)系統(tǒng),其特征在于,所述事件服務(wù)模塊通過(guò)其接口函數(shù)接收應(yīng)用程序指定的需要查詢的事件擴(kuò)展消息的指令,并啟動(dòng)事件擴(kuò)展消息收集單元獲取需要查詢的事件擴(kuò)展消息。
7.—種如權(quán)利要求1至6任一項(xiàng)所述Android系統(tǒng)的事件收集上報(bào)系統(tǒng)的收集上報(bào)方法,其特征在于,包括步驟:A、事件收集模塊收集并篩選Android系統(tǒng)的內(nèi)核發(fā)送的NetLink廣播消息,獲取篩選后的NetLink廣播消息對(duì)應(yīng)的事件; B、事件解析模塊對(duì)所述事件進(jìn)行解析獲取事件信息,并將所述事件信息發(fā)送至事件服務(wù)豐吳塊; C、事件服務(wù)模塊為事件解析模塊和Android的應(yīng)用程序提供事件查詢的接口函數(shù),并將事件信息發(fā)送至事件分發(fā)模塊; D、事件分發(fā)模塊根據(jù)不同的事件信息創(chuàng)建相應(yīng)的事件廣播,并將所述事件廣播上報(bào)給Android系統(tǒng)的應(yīng)用程序。
8.根據(jù)權(quán)利要求7所述Android系統(tǒng)的事件收集上報(bào)方法,其特征在于,所述步驟A具體包括: Al、創(chuàng)建多個(gè)線程及與所述線程對(duì)應(yīng)的NetLink端口,監(jiān)聽(tīng)所述NetLink端口的NetLink廣播消息; A2、對(duì)監(jiān)聽(tīng)到的NetLink廣播消息進(jìn)行收集; A3、通過(guò)預(yù)定方法對(duì)NetLink廣播消息進(jìn)行篩選,篩選出有用的NetLink廣播消息,獲取篩選后的NetLink廣播信息對(duì)應(yīng)的事件; A4、通過(guò)與Android系統(tǒng)的內(nèi)核交互獲取事件擴(kuò)展信息。
9.根據(jù)權(quán)利要求7所述Android系統(tǒng)的事件收集上報(bào)方法,其特征在于,所述步驟B具體包括:` B1、獲取事件的協(xié)議類型; B2、根據(jù)事件的協(xié)議類型解析事件以獲取事件信息。
10.根據(jù)權(quán)利要求7所述Android系統(tǒng)的事件收集上報(bào)方法,其特征在于,所述步驟C還包括: Cl、通過(guò)JAVA本地調(diào)用與事件解析模塊進(jìn)行Socket通信; C2、實(shí)時(shí)監(jiān)聽(tīng)Socket端口是否有事件解析模塊傳送來(lái)的事件信息; C3、當(dāng)有事件信息傳送過(guò)來(lái)時(shí),將事件信息發(fā)送至事件分發(fā)模塊。
【文檔編號(hào)】G06F9/46GK103514030SQ201210257193
【公開(kāi)日】2014年1月15日 申請(qǐng)日期:2012年7月24日 優(yōu)先權(quán)日:2012年7月24日
【發(fā)明者】彭芃, 楊志平 申請(qǐng)人:Tcl集團(tuán)股份有限公司