mobile android雙模手機的開發(fā)流程及框架_第1頁
mobile android雙模手機的開發(fā)流程及框架_第2頁
mobile android雙模手機的開發(fā)流程及框架_第3頁
mobile android雙模手機的開發(fā)流程及框架_第4頁
mobile android雙模手機的開發(fā)流程及框架_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、WM Platform雙模手機的開發(fā)流程及框架 分類: +3G/移動開發(fā) 2009-04-28 22:42 185人閱讀 評論(1 收藏 舉報 當(dāng)前,基于WM(Windows Mobile)/UNIX/Linux系統(tǒng)的嵌入式開發(fā)已成為終端通訊產(chǎn)品的主流開發(fā)模式。終端通訊產(chǎn)品,特別是手機,隨3G時代的到來,將引領(lǐng)當(dāng)前潮流。雙模式手機產(chǎn)品更是未來手機的發(fā)展趨勢。工作之余,整理了WM Platform雙模手機的開發(fā)流程及框架。首先,請一定要弄清楚Windows程序內(nèi)部運行原理。Windows應(yīng)用程序、操作系統(tǒng)與輸入輸出設(shè)備三者之間的交互如下:  其中:(1)Windows程序設(shè)計

2、是一種事件驅(qū)動方式的程序設(shè)計模式,主要是基于消息的。當(dāng)用戶需要完成某項功能時,會調(diào)用操作系統(tǒng)的某項支持,然后操作系統(tǒng)將用戶的需要包裝成消息并投遞到消息隊列中,最后應(yīng)用程序從消息隊列中取走消息并進(jìn)行消息響應(yīng)。(2)應(yīng)用程序通過函數(shù)調(diào)用的方式來通知操作系統(tǒng)執(zhí)行相應(yīng)的功能。一般情況下,操作系統(tǒng)所能完成的每一個功能都有一個函數(shù)與其對應(yīng)。因此,應(yīng)用程序?qū)@些函數(shù)的調(diào)用就稱為系統(tǒng)調(diào)用,這些函數(shù)的集合就是Windows操作系統(tǒng)提供給應(yīng)用程序編程的接口,簡稱Windows API(Application Programming Interface)。(3)操作系統(tǒng)將每一個事件都包裝成一個稱為消息的結(jié)構(gòu)體MSG

3、來傳遞給應(yīng)用程序,然后應(yīng)用程序?qū)κ录M(jìn)行處理。對事件做出反應(yīng)的過程稱為消息響應(yīng)。其次,請弄清楚WM Platform雙模手機開發(fā)框架中每一層的功能,便于Bug的定位及調(diào)試。一般情況下,基于WM Platform雙模手機的開發(fā)框架圖如下: 其中:(1)左邊為基于WM Platform的主模式,右邊為內(nèi)嵌的副模式。(2)主模中各層的主要功能如下:APP:用戶信息的顯示和用戶操作的管理。同API進(jìn)行交互。API:給APP提供調(diào)用接口和同RilProxy進(jìn)行交互。實現(xiàn)系統(tǒng)的兼容性、重用性和安全性。RilProxy:將進(jìn)程函數(shù)回調(diào)到RilDriver層。同API和RilDriver進(jìn)行交互。R

4、ilDriver:同RilProxy和Module進(jìn)行交互,包括Active信息。Module:實現(xiàn)網(wǎng)絡(luò)的通信功能。同RilDriver進(jìn)行交互。(3)副模中各層的主要功能如下:APP:通過主模中提供的Cprog.exe程序?qū)崿F(xiàn)與主模中APP相同的功能。TSPI:由主模中API層提供的TSPI來進(jìn)行交互。 Driver:作用等同于主模中的RilProxy層和RilDriver層 。 Module:實現(xiàn)網(wǎng)絡(luò)的通信功能。同RilDriver進(jìn)行交互。最后,請注意如下兩點:(1)副模式的流程及框架理論上應(yīng)與主模式相同,但實際設(shè)計中常把作交互的層合并在一起。因此,副模式的流程及框架可以有所不同。(2)

5、WM有很多不同版本,具體細(xì)節(jié)可查詢最新的MSDN。注:(1)雙模手機中涉及的術(shù)語可能有不同的名稱。(2)為適應(yīng)發(fā)展,Microsoft已將WM改成WP(Windows Phone)了。優(yōu)化RIL驅(qū)動,巧解WinCE電話漏接難題 分類: wince 2010-06-29 21:11 136人閱讀 評論(1 收藏 舉報 隨著3G移動電話熱潮的高漲,我公司許多的嵌入式移動產(chǎn)品也正計劃加入無線上網(wǎng)和電話功能。近期,公司委派我負(fù)責(zé)一個在WinCE 6.0平臺下集成移動電話、無線上網(wǎng)和收發(fā) SMS功能的項目。但沒有想到的是這個項目卻讓我陷入到反復(fù)調(diào)試的痛苦之中。原因是這個在WinCE 6.0平臺下開發(fā)的系

6、統(tǒng)經(jīng)常出現(xiàn):漏接電話、或有信號但電話無法撥出、或短信收發(fā)不正常、或通話自動中斷和通話斷斷續(xù)續(xù)等問題。初期我懷疑是因為信號質(zhì)量問題所導(dǎo)致,所以花了大量時間和精力在硬件上,如天線和GSM射頻通訊模塊上。但后來卻發(fā)現(xiàn)原來是我在Win CE 下沒有進(jìn)行優(yōu)化RIL接口驅(qū)動所造成的問題。在這里與大家分享一些在此過程中得到的經(jīng)驗和教訓(xùn)。一WinCE系統(tǒng)電話漏接的原因分析在無線移動通訊上,漏接的意思是指機器設(shè)備接通了,但機器設(shè)備卻沒反應(yīng)。一般來說,這個故障可能出現(xiàn)在兩個層面:一是GSM射頻通訊基帶部分沒有發(fā)出有來電的消息;二可能是WinCE系統(tǒng)沒有對GSM模塊的來電消息做出響應(yīng)。(1)硬件上沒有發(fā)出有來電消息

7、第一種漏接的原因可能是GSM射頻通訊基帶部分沒有發(fā)出有來電的消息,這部份主要是因為GSM硬件上出現(xiàn)了問題,使到系統(tǒng)根本沒有輸入信號。例如,在有信號的場合下但電話無法撥出時,很可能就是GSM信號質(zhì)量出現(xiàn)問題。所謂信號質(zhì)量問題是指在正常情況下接收到的信號強度明顯低于正常標(biāo)準(zhǔn),這是與GSM射頻硬件相關(guān)的故障。因此,我把時間和精力都集中在天線接收和GSM射頻通訊硬件上,例如更換增強型的天線和使用經(jīng)測試合格的GSM射頻芯片和基帶處理芯片。但經(jīng)過多次硬件調(diào)試和更換,卻發(fā)現(xiàn)此問題一直存在,后來我決定先排除對GSM硬件可能存在故障的懷疑。(2)WinCE系統(tǒng)沒有對來電消息做出響應(yīng)第二種漏接的原因可能是WinC

8、E系統(tǒng)對來電信號沒有做出響應(yīng)。后來,經(jīng)過多次調(diào)試,我發(fā)現(xiàn)問題還真是出在WinCE 6.0系統(tǒng)的軟件部分。用專業(yè)術(shù)語的話說,就是在通訊接口層RIL模塊(即Radio Interface Layer,無線接口層)和優(yōu)先級處理上出了問題。這個RIL層主要是用于溝通WinCE系統(tǒng)與GSM通訊模塊,并且對GSM通訊模塊的行為做出適當(dāng)?shù)捻憫?yīng)與動作,例如啟動數(shù)據(jù)連接、發(fā)送 SMS 消息等。換句話說就是,當(dāng)問題出在WinCE軟件模塊時,就算GSM信號強度提高了,該漏接的還是會漏接,該掛斷的還是會掛斷。二WinCE 6.0 RIL接口驅(qū)動詳細(xì)分析  (1)WinCE 6.0新加入的電話功能一般來說,要

9、在基于WinCE平臺的產(chǎn)品上具備無線通訊功能(如撥號上網(wǎng)、撥打電話、收發(fā)短信)的方法有兩種:一是選擇讓用戶外接手機模塊;二是在嵌入式產(chǎn)品上集成手機模塊。如果是外接手機模塊,那么手機只是起到在上網(wǎng)瀏覽期間接收和發(fā)送數(shù)據(jù)的作用,而如果是嵌入式設(shè)備自身集成手機模塊,那么就可以很方便的實現(xiàn)無線通訊的全部功能。因此,為了實現(xiàn)嵌入式設(shè)備更好的增加無線通信功能,WinCE 6.0 提供了連接移動電話網(wǎng)絡(luò)所需的接口函數(shù)。例如,WinCE 6.0 提供了cellcore.dll組件,這個動態(tài)鏈接庫擴展了 Win32 API函數(shù),其作用是用以支持各種移動電話服務(wù),例如啟動數(shù)據(jù)連接、發(fā)送 SMS 消息等。另一個重要

10、組件是無線接口層 RIL驅(qū)動程序 ril.dll。該組件為應(yīng)用層與移動電話硬件的連接提供了低級別接口。在早先幾個版本的WinCE是不支持直接撥打電話和發(fā)送 SMS文本消息的。因此,在以前要想在WinCE上構(gòu)建移動電話,OEM廠商就必須開發(fā)自己的接口層,然而這并非易事?,F(xiàn)在有了這個RIL接口,要想在 WinCE平臺上構(gòu)建移動電話程序,就不用OEM廠商再自己開發(fā)相應(yīng)的接口層了,這一功能也大大激發(fā)OEM廠商在WinCE平臺上構(gòu)建移動電話程序的熱潮。(2)什么是RIL(Radio Interface Layer組件?在WinCE 6.0新加的RIL無線接口層組件原本是Windows Mobile里的,

11、它的主要工作為連接WinCE操作系統(tǒng)和電話模塊,RIL的主要作用是用于維護(hù)和關(guān)聯(lián)無線GSM通訊模塊的狀態(tài)和事件消息。微軟的幫助手冊是這樣介紹RIL的,作為無線通訊的一個非常重要的組件,RIL使各種無線語音和數(shù)據(jù)應(yīng)用成為可能,也使到運行在WinCE 6.0上的軟件可以通過RIL無縫地與GSM/GPRS或者CDMA2000 1X modem通信。RIL的位置是處于GSM無線基帶系統(tǒng)的協(xié)議棧之上,而在WinCE系統(tǒng)的CellCore層之下。RIL跟上層通訊主要采用兩種方式,一種是通過Socket發(fā)送與接收消息的方式來實現(xiàn),還有另外一種方式是通過TCP/IP直接訪問內(nèi)核中的shared memory,

12、進(jìn)行RPC調(diào)用,這種方式主要應(yīng)用在數(shù)據(jù)模式上。因此,RIL組件能隱藏GSM無線基帶硬件上的一些細(xì)節(jié),也就使到OEM廠商可以根據(jù)自己的需要將不同型號的無線modem集成到它們的產(chǎn)品之中。簡單的說,就是只要采用了RIL驅(qū)動模塊和底層的GSM通訊模塊,WinCE系統(tǒng)就具有了移動電話的功能。一是因為RIL提供了語音、數(shù)據(jù)、SMS短信、 SIM卡管理以及STK應(yīng)用的功能,也包括了EXTAPI、拔號盤等移動電話的其它功能。二是因為從軟件的角度來看,RIL工作在PPP、TCP/IP協(xié)議之下,能把AT命令的發(fā)送以及Response響應(yīng)的解析,也能把數(shù)據(jù)可靠的傳輸。而且,除了對網(wǎng)絡(luò)協(xié)議的支持,RIL也支持SMS

13、、Voice Call等功能。(3)RIL驅(qū)動程序的結(jié)構(gòu)解析從RIL組件的功能我們可知,開發(fā)一個移動電話的設(shè)計起點,是需要有效的進(jìn)行RIL驅(qū)動程序的開發(fā)。因為RIL驅(qū)動程序為應(yīng)用程序提供無線通信相關(guān)的服務(wù),包括呼叫控制、短消息、GPRS等功能。而且對于上層應(yīng)用程序來說,也可以抽象地把RIL驅(qū)動程序看作邏輯設(shè)備,它只需要和RIL驅(qū)動程序通信就能夠獲得所需要的服務(wù)。因此,RIL接口層驅(qū)動可以按照流驅(qū)動Stream I/O的規(guī)范來設(shè)計,這樣做的好處是應(yīng)用程序可以把設(shè)備看作文件,通過文件接口來訪問RIL。在WinCE系統(tǒng)中,一個加載式驅(qū)動程序通常會被分成與硬件相關(guān)的PDD層和與硬件無關(guān)的MDD層兩部分

14、。MDD實現(xiàn)的是和平臺無關(guān)的功能,它描述了一個通用的驅(qū)動程序框架,而PDD是和硬件以及平臺相關(guān)的代碼組成。MDD會調(diào)用PDD中特定的接口來獲取硬件相關(guān)的信息。因此,在使用層次型驅(qū)動的時候,一般只需要基于相近的樣列驅(qū)動程序,針對特定的硬件只修改PDD程序,MDD建立的框架可繼續(xù)使用。在根據(jù)微軟幫助手冊的建議,RIL 驅(qū)動程序的基本框架最好是采用MDD+PDD結(jié)構(gòu)。一般來說,微軟在WinCE中提供了很多通用驅(qū)動程序的MDD樣本,所以關(guān)鍵在于調(diào)試PDD層。因為不同的GSM/GPRS通訊模塊,其PDD層的實現(xiàn)是不一樣的。例如,層次模型RIL_XXX是提供給DeviceManger的 stream In

15、terface。而在RIL Service這一層,Dispather 會將request code 分發(fā)給相應(yīng)的function,例如SMS短信息發(fā)送。然后SMS 的function 會發(fā)消息給 RIL Device,目的是為了請求以AT命令的形式發(fā)送給 GSM modem。也就是說,公用的MDD部分已經(jīng)做好了,現(xiàn)在只需要針對不同的GSM模塊進(jìn)行不同的PDD驅(qū)動開發(fā),這樣就可以大大地提高開發(fā)效率了。(4)WinCE如何通過RIL實現(xiàn)電話功能?現(xiàn)在我們從WinCE線程的角度來觀察RIL的工作流程。RIL主要包括RIL Stub 和 RIL Driver 兩個部份。RIL Stub 和 RIL D

16、river 都擁有自己的線程,名為RILThread。應(yīng)用程序調(diào)用RIL驅(qū)動程序的工作流程如下:應(yīng)用程序的進(jìn)程在自己的進(jìn)程空間里,以調(diào)用RIL Proxy方式發(fā)送請求。RIL Proxy 以IPC方式把請求傳給 Device Manager。Device Mananger 根據(jù)操作碼,將請求分發(fā)到相應(yīng)的RIL驅(qū)動程序。RIL Stub接收到操作碼后根據(jù)PID做Context切換,然后把請求轉(zhuǎn)發(fā)給RIL Driver。最后,對應(yīng)于用戶進(jìn)程Context中的RIL Driver會開始處理操作碼。例如,RIL Driver將AT命令發(fā)給GSM modem,然后等待返回的response。因此,從以上

17、的工作流程來看,RIL驅(qū)動模塊性能的好壞會直接影響著所有無線通信應(yīng)用相關(guān)的軟件,而驅(qū)動程序設(shè)計是否經(jīng)過優(yōu)化又影響著RIL驅(qū)動程序的性能。三優(yōu)先級處理時需要注意的要點(1)什么是優(yōu)先級處理問題?一般來說,WinCE系統(tǒng)上的移動電話設(shè)計并沒有像Symbian一樣針對電話做過優(yōu)化,甚至根本沒考慮到GSM通訊模塊的特殊性,而僅僅是把它當(dāng)作一個可以擴展的硬件模塊。也就是說,GSM通訊模塊和普通硬件模塊的優(yōu)先級是一樣的。因此,連接GSM通訊模塊的RIL作為一個驅(qū)動和其它驅(qū)動是平等的搶奪 CPU周期,或平等的被調(diào)度,甚至在優(yōu)先級上都是一樣的。但是,GSM通訊模塊和其它擴展硬件又有幾點很大的差別:一是它需要W

18、inCE系統(tǒng)對某些通訊事件進(jìn)行足夠及時的響應(yīng);二是某些正在進(jìn)行的通訊任務(wù)必須不得被搶占,至少不得被長時間掛起,這點有些類似于實時系統(tǒng)的要求。正是這樣的優(yōu)先級處理方式在WinCE平臺下是會導(dǎo)致漏接電話的。例如,在移動電話有來電時,就會發(fā)起一個高于RIL驅(qū)動優(yōu)先級的線程,它會在下一個分發(fā)期間拿走CPU處理權(quán),而在它退出之前RIL是無法及時搶回時間片的,因為WinCE對優(yōu)先級的處理遠(yuǎn)不如Win NT復(fù)雜和靈活,因此可能會存在高優(yōu)先級線程完全控制CPU而導(dǎo)致低優(yōu)先級線程被餓死的情況發(fā)生的,這樣就會“丟失”這一次來電消息,現(xiàn)象就是漏接。或在通話期間產(chǎn)生了一個高優(yōu)先級線程,它也會從RIL驅(qū)動手里奪走CPU控制權(quán),從而可能導(dǎo)致通話中途斷開的情況。而且,許多實踐也證實,WinCE系統(tǒng)的通訊穩(wěn)定性問題絕大多數(shù)都出在優(yōu)先級處理上,再加上WinCE系統(tǒng)本身在任務(wù)調(diào)度上也經(jīng)常會出現(xiàn)BU

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論