[0028]具體地,所述服務(wù)進(jìn)程sys_service內(nèi)部可以包含有JT/T808協(xié)議的部標(biāo)程序,且所述服務(wù)進(jìn)程sys_service與所述守護(hù)進(jìn)程sys_daemon之間采用進(jìn)程間消息隊列和共享內(nèi)存的混合方式進(jìn)行通信,其中,所述消息隊列用來進(jìn)行所述服務(wù)進(jìn)程SyS_Service與所述守護(hù)進(jìn)程SyS_daem0n之間服務(wù)命令傳遞,而所述共享內(nèi)存用來進(jìn)行所述服務(wù)進(jìn)程sys_service與所述守護(hù)進(jìn)程sys_daemon之間的數(shù)據(jù)傳遞,包括所述JT/T808程序數(shù)據(jù)的傳遞。
[0029]在具體實現(xiàn)上,為了防止所述Android服務(wù)層和所述服務(wù)進(jìn)程sys_service同時地對硬件資源進(jìn)行操作,本發(fā)明提供的Android平臺下集成JT/T808程序的方法還可以包括以下步驟:
[0030]在所述服務(wù)進(jìn)程sys_service需要操作硬件資源時,判斷所述Android服務(wù)層是否已經(jīng)控制所述硬件資源,如果是,所述服務(wù)進(jìn)程sys_service從硬件抽象層(HardwareAbstract1n Layer, HAL)提供的回調(diào)接口獲取與所述硬件資源相關(guān)的數(shù)據(jù)。
[0031]例如,當(dāng)所述服務(wù)進(jìn)程sys_service需要讀取定位系統(tǒng)(Global Posit1ningSytem, GPS)模塊的NMEA數(shù)據(jù)時,可以首先判斷所述Android服務(wù)層是否已經(jīng)在操作所述GPS模塊,所述判斷操作可以由程序員主動地執(zhí)行;如果是,考慮到硬件資源的獨占性,為防止所述服務(wù)進(jìn)程sys_service和所述Android服務(wù)層發(fā)生沖突,所述服務(wù)進(jìn)程sys_service不能直接操作所述GPS模塊的文件節(jié)點,在本實施例中,由于所述Android服務(wù)層已經(jīng)自帶了對所述GPS模塊的讀取操作,因此所述服務(wù)進(jìn)程SyS_SerViCe只需要從所述硬件抽象層提供的回調(diào)接口讀取所述NMEA數(shù)據(jù)便可。
[0032]如果在所述服務(wù)進(jìn)程sys_service需要操作硬件資源時不存在硬件沖突,比如所述服務(wù)進(jìn)程sys_service需要操作打印機(jī)硬件時,由于打印機(jī)沒有被Android服務(wù)層控制,此時所述守護(hù)進(jìn)程sys_daemon可以通知所述服務(wù)進(jìn)程sys_service直接操作所述打印機(jī)的文件節(jié)點。
[0033]相較于現(xiàn)有技術(shù),本發(fā)明提供的在Android平臺下集成JT/T808程序的方法通過將Android平臺的APK文件視為所述服務(wù)進(jìn)程sys_service的圖形用戶界面僅進(jìn)行界面顯示和命令通知,而所述服務(wù)進(jìn)程sys_service本身包含了 JT/T808協(xié)議的部標(biāo)程序,因此可以基本不用修改所述服務(wù)進(jìn)程sys_service的原有架構(gòu),從而可以簡單方便地實現(xiàn)將Linux環(huán)境開發(fā)的JT/T808程序移植到Android平臺。
[0034]基于上述在Android平臺下集成JT/T808程序的方法,本發(fā)明還進(jìn)一步提供一種在Android平臺下集成JT/T808程序的系統(tǒng),請參閱圖2,其為本發(fā)明提供的在Android平臺下集成JT/T808程序的系統(tǒng)一種實施例的示意圖,所述在Android平臺下集成JT/T808程序的系統(tǒng)包括守護(hù)進(jìn)程210、服務(wù)進(jìn)程220和Android服務(wù)層230,其中所述服務(wù)進(jìn)程220包含有JT/T808協(xié)議的部標(biāo)程序。
[0035]所述守護(hù)進(jìn)程210用于啟動所述服務(wù)進(jìn)程220,并實時監(jiān)測所述服務(wù)進(jìn)程220是否一直運行,并且在所述服務(wù)進(jìn)程220 —直處于運行狀態(tài)時同時與所述Android服務(wù)層230和所述服務(wù)進(jìn)程220進(jìn)行通訊,以將所述服務(wù)進(jìn)程220包含的JT/T808程序數(shù)據(jù)傳遞給所述Android服務(wù)層230,而在所述服務(wù)進(jìn)程220停止運行時重新啟動所述服務(wù)進(jìn)程220來確保所述服務(wù)進(jìn)程220 —直處于運行狀態(tài)。
[0036]具體地,所述守護(hù)進(jìn)程210 —方面可以用于接收所述Android服務(wù)層230下發(fā)的命令,并對所述命令解析處理之后轉(zhuǎn)發(fā)給所述服務(wù)進(jìn)程220 ;另一方面,所述守護(hù)進(jìn)程210還可以用于接收所述服務(wù)進(jìn)程220主動上報的消息,所述消息可以攜帶有JT/T808程序數(shù)據(jù),并對所述消息解析處理之后轉(zhuǎn)發(fā)給所述Android服務(wù)層230。
[0037]在本實施例提供的在Android平臺下集成JT/T808程序的系統(tǒng)中,所述守護(hù)進(jìn)程210和所述Android服務(wù)層230之間可以采用Android平臺的LocalSocket方式進(jìn)行通訊,而所述守護(hù)進(jìn)程210和所述服務(wù)進(jìn)程220之間可以采用Linux平臺標(biāo)準(zhǔn)的IPC方式進(jìn)行通訊。具體地,所述服務(wù)進(jìn)程220與所述守護(hù)進(jìn)程210之間可以采用進(jìn)程間消息隊列和共享內(nèi)存的混合方式進(jìn)行通訊,其中,所述消息隊列用來進(jìn)行所述服務(wù)進(jìn)程220與所述守護(hù)進(jìn)程210之間服務(wù)命令傳遞,而所述共享內(nèi)存用來進(jìn)行所述服務(wù)進(jìn)程220與所述守護(hù)進(jìn)程210之間的數(shù)據(jù)傳遞
[0038]另一方面,在具體實施例中,所述服務(wù)進(jìn)程220還用于在需要操作硬件資源240時,判斷所述Android服務(wù)層230是否已經(jīng)控制所述硬件資源240,如果是,直接從硬件抽象層提供的回調(diào)接口讀取所述硬件資源240的相關(guān)數(shù)據(jù)。
[0039]以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其它相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【主權(quán)項】
1.一種在Android平臺下集成JT/T808程序的方法,其特征在于,包括: Linux底層運行守護(hù)進(jìn)程,所述守護(hù)進(jìn)程啟動服務(wù)進(jìn)程,其中所述服務(wù)進(jìn)程包含有JT/T808協(xié)議的部標(biāo)程序; 所述守護(hù)進(jìn)程實時監(jiān)測所述服務(wù)進(jìn)程是否一直運行,如果所述服務(wù)進(jìn)程停止運行,則所述守護(hù)進(jìn)程重新啟動所述服務(wù)進(jìn)程; 如果所述服務(wù)進(jìn)程一直處于運行狀態(tài),所述守護(hù)進(jìn)程同時與Android服務(wù)層和所述服務(wù)進(jìn)程進(jìn)行通訊,并將所述服務(wù)進(jìn)程包含的JT/T808程序數(shù)據(jù)傳遞給所述Android服務(wù)層; 其中,Android平臺的APK文件作為所述服務(wù)進(jìn)程的圖形用戶界面,其用于執(zhí)行界面顯示和命令通知,且所述界面顯示的內(nèi)容是從所述服務(wù)進(jìn)程獲取的。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述守護(hù)進(jìn)程同時與Android服務(wù)層和所述服務(wù)進(jìn)程進(jìn)行通訊包括: 所述守護(hù)進(jìn)程接收所述Android服務(wù)層下發(fā)的命令,并對所述命令解析處理之后轉(zhuǎn)發(fā)給所述服務(wù)進(jìn)程; 所述守護(hù)進(jìn)程接收所述服務(wù)進(jìn)程主動上報的消息,并對所述消息解析處理之后轉(zhuǎn)發(fā)給所述Android服務(wù)層。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述守護(hù)進(jìn)程和所述Android服務(wù)層之間采用Android平臺的LocalSocket方式進(jìn)行通訊。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述守護(hù)進(jìn)程和所述服務(wù)進(jìn)程之間可以采用IPC方式進(jìn)行通訊。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述服務(wù)進(jìn)程與所述守護(hù)進(jìn)程之間采用進(jìn)程間消息隊列和共享內(nèi)存的混合方式進(jìn)行通訊,其中,所述消息隊列用來進(jìn)行所述服務(wù)進(jìn)程與所述守護(hù)進(jìn)程之間服務(wù)命令傳遞,而所述共享內(nèi)存用來進(jìn)行所述服務(wù)進(jìn)程與所述守護(hù)進(jìn)程之間的數(shù)據(jù)傳遞。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 所述服務(wù)進(jìn)程在需要操作硬件資源但所述硬件資源已經(jīng)被所述Android服務(wù)層控制時,直接從硬件抽象層提供的回調(diào)接口讀取與所述硬件資源相關(guān)的數(shù)據(jù)。7.—種在Android平臺下集成JT/T808程序的系統(tǒng),其特征在于,包括守護(hù)進(jìn)程、服務(wù)進(jìn)程和Android服務(wù)層,其中所述服務(wù)進(jìn)程包含有JT/T808協(xié)議的部標(biāo)程序;所述守護(hù)進(jìn)程用于啟動所述服務(wù)進(jìn)程,并實時監(jiān)測所述服務(wù)進(jìn)程是否一直運行,在所述服務(wù)進(jìn)程一直處于運行狀態(tài)時同時與所述Android服務(wù)層和所述服務(wù)進(jìn)程進(jìn)行通訊,并將所述服務(wù)進(jìn)程包含的JT/T808程序數(shù)據(jù)傳遞給所述Android服務(wù)層;其中,Android平臺的APK文件作為所述服務(wù)進(jìn)程的圖形用戶界面,其用于執(zhí)行界面顯示和命令通知,且所述界面顯示的內(nèi)容是從所述服務(wù)進(jìn)程獲取的。8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述守護(hù)進(jìn)程和所述Android服務(wù)層之間采用Android平臺的LocalSocket方式進(jìn)行通訊,而所述守護(hù)進(jìn)程和所述服務(wù)進(jìn)程之間可以采用IPC方式進(jìn)行通訊。9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述服務(wù)進(jìn)程與所述守護(hù)進(jìn)程之間采用進(jìn)程間消息隊列和共享內(nèi)存的混合方式進(jìn)行通訊,其中,所述消息隊列用來進(jìn)行所述服務(wù)進(jìn)程與所述守護(hù)進(jìn)程之間服務(wù)命令傳遞,而所述共享內(nèi)存用來進(jìn)行所述服務(wù)進(jìn)程與所述守護(hù)進(jìn)程之間的數(shù)據(jù)傳遞。10.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述服務(wù)進(jìn)程還用于在需要操作硬件資源但所述硬件資源已經(jīng)被所述Android服務(wù)層控制時,直接從硬件抽象層提供的回調(diào)接口讀取與所述硬件資源相關(guān)的數(shù)據(jù)。
【專利摘要】本發(fā)明提供一種在Android平臺下集成JT/T808程序的方法。所述方法包括Linux底層運行守護(hù)進(jìn)程,所述守護(hù)進(jìn)程啟動服務(wù)進(jìn)程,其中所述服務(wù)進(jìn)程包含有JT/T808協(xié)議的部標(biāo)程序;所述守護(hù)進(jìn)程實時監(jiān)測所述服務(wù)進(jìn)程是否一直運行,如果所述服務(wù)進(jìn)程停止運行,則所述守護(hù)進(jìn)程重新啟動所述服務(wù)進(jìn)程;如果所述服務(wù)進(jìn)程一直處于運行狀態(tài),所述守護(hù)進(jìn)程同時與Android服務(wù)層和所述服務(wù)進(jìn)程進(jìn)行通訊,并將所述服務(wù)進(jìn)程包含的JT/T808程序數(shù)據(jù)傳遞給所述Android服務(wù)層;其中,Android平臺的APK文件作為所述服務(wù)進(jìn)程的圖形用戶界面,其用于執(zhí)行界面顯示和命令通知,且所述界面顯示的內(nèi)容是從所述服務(wù)進(jìn)程獲取的。本發(fā)明還同時提供一種在Android平臺下集成JT/T808程序的系統(tǒng)。
【IPC分類】G06F9/44
【公開號】CN105183455
【申請?zhí)枴緾N201510496322
【發(fā)明人】褚陽波, 許寧
【申請人】深圳市廣和通無線股份有限公司
【公開日】2015年12月23日
【申請日】2015年8月13日