當前,基於WM(Windows
Mobile)/UNIX/Linux系統的嵌入式開發已成為終端通訊產品的主流開發模式。終端通訊產品,特別是手機,隨3G時代的到來,將引領當前潮流。雙模式手機產品更是未來手機的發展趨勢。
工作之餘,整理了WM
Platform雙模手機的開發流程及架構。
首先,請一定要弄清楚Windows程式內部運行原理。
Windows應用程式、作業系統與輸入輸出裝置三者之間的互動如下:
其中:
(1)Windows程式設計是一種事件驅動方式的程式設計模式,主要是基於訊息的。當使用者需要完成某項功能時,會叫用作業系統的某項支援,然後作業系統將使用者的需要封裝成訊息並投遞到訊息佇列中,最後應用程式從訊息佇列中取走訊息並進行訊息響應。
(2)應用程式通過函數調用的方式來通知作業系統執行相應的功能。一般情況下,作業系統所能完成的每一個功能都有一個函數與其對應。因此,應用程式對這些函數的調用就稱為系統調用,這些函數的集合就是Windows作業系統提供給應用程式編程的介面,簡稱Windows
API(Application
Programming Interface)。
(3)作業系統將每一個事件都封裝成一個稱為訊息的結構體MSG來傳遞給應用程式,然後應用程式對事件進行處理。對事件做出反應的過程稱為訊息響應。
其次,請弄清楚WM
Platform雙模手機開發架構中每一層的功能,便於Bug的定位及調試。
一般情況下,基於WM
Platform雙模手機的開發架構圖如下:
其中:
(1)左邊為基於WM
Platform的主模式,右邊為內嵌的副模式。
(2)主模中各層的主要功能如下:
APP:①使用者資訊的顯示和使用者操作的管理。②同API進行互動。
API:①給APP提供調用介面和同RilProxy進行互動。②實現系統的相容性、重用性和安全性。
RilProxy:①將進程函數回調到RilDriver層。②同API和RilDriver進行互動。
RilDriver:同RilProxy和Module進行互動,包括Active資訊。
Module:①實現網路的通訊功能。②同RilDriver進行互動。
(3)副模中各層的主要功能如下:
APP:通過主模中提供的Cprog.exe程式實現與主模中APP相同的功能。
TSPI:由主模中API層提供的TSPI來進行互動。
Driver:作用等同於主模中的RilProxy層和RilDriver層
。
Module:①實現網路的通訊功能。②同RilDriver進行互動。
最後,請注意如下兩點:
(1)副模式的流程及架構理論上應與主模式相同,但實際設計中常把作互動的層合并在一起。因此,副模式的流程及架構可以有所不同。
(2)WM有很多不同版本,具體細節可查詢最新的MSDN。
註:(1)雙模手機中涉及的術語可能有不同的名稱。(2)為適應發展,Microsoft已將WM改成WP(Windows
Phone)了。