[摘要] 本文論述了如何在PDA上進行應用系統(tǒng)的開發(fā)并用一個簡單的實例探討了在WinCE操作系統(tǒng)上進行應用系統(tǒng)開發(fā)的一般步驟和應注意的問題。
[關(guān)鍵詞] PDA WinCE操作系統(tǒng) 開發(fā)
近幾年,PDA以其體積小、攜帶方便、迅捷移動辦公等特點,已得到廣泛的應用,隨著PDA硬件水平的不斷提高,其應用系統(tǒng)的開發(fā)也越來越受到關(guān)注。由于PDA自身的特點決定它成為了無線網(wǎng)絡應用的主要終端設(shè)備。PDA的無線上網(wǎng)方式有三種:
在短距離內(nèi)的紅外對接方式和藍牙技術(shù);
在局域網(wǎng)范圍內(nèi)采用無線站點與局域網(wǎng)連接;
在廣域網(wǎng)范圍內(nèi)通過蜂窩接入技術(shù)的無線連接。
目前PDA上的操作系統(tǒng)有Palm OS和WinCE。在Windows平臺上開發(fā)基于WinCE的應用程序一般采用EVC,EVB或者VS.NET。占統(tǒng)治地位的WinCE操作系統(tǒng)的界面具有Windows的友好性,熟悉Windows編程的開發(fā)人員,可很快掌握其應用程序開發(fā)。下面就WinCE操作系統(tǒng)上應用系統(tǒng)開發(fā)的一般步驟和問題進行探討。
一、構(gòu)建開發(fā)環(huán)境
安裝PDA應用程序開發(fā)環(huán)境(Win2000下,安裝Embedded Visual C++為例)。
1.安裝Microsoft ActiveSync 3.7。
2.安裝Embedded Visual C++ 4.0。
3.安裝Embedded VC4.0 SP3和Embedded VC4.0 SP4。
4.安裝Visual Studio .NET 2003(可選)
5.安裝Pocket PC 2003 SDK。
安裝成功的EVC開發(fā)環(huán)境同VC6.0的用戶界面基本相同,配置時在Tool目錄下選擇Configure Platform Manager,會彈出裝載運行設(shè)備的界面,在裝有Pocket PC 2003后屏幕上出現(xiàn)POCKET PC 2003的樹狀選項,系統(tǒng)自動添加了實際設(shè)備和模擬設(shè)備。為在中文環(huán)境下運行,可點擊Add Device增加一個新設(shè)備,改名為POCKET PC 2003 Emulator (CHS)。在Properties中設(shè)置屬性,在Transport中選擇TCP或IP Transport for Windows CE傳輸方式,在Startup中選擇Emulator Startup Server以模擬器的方式啟動。最后,根據(jù)不同的CPU類型選擇不同的編譯器即可完成設(shè)置。
二、一個簡單的示例
下面是一個最簡單的“Hello World”程序開發(fā)事例:
先新建一個工程,在工程選項中選擇WCE Pocket PC 2003 Application,輸入項目名稱HelloWorldPrj(CPU全部選中)。選擇A Typical “Hello World” Application,點擊Finish。
打開工作區(qū),在界面中打開HelloWorldPrj.cpp文件。接下來轉(zhuǎn)入到消息處理函數(shù):LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam),此函數(shù)的應用程序?qū)τ赪M_PAINT消息進行了以下處理:
case WM_PAINT:RECT rt;
hdc = BeginPaint(hWnd, ps);
GetClientRect(hWnd, rt);
LoadString(g_hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
DrawText(hdc, szHello, _tcslen(szHello), rt,
DT_SINGLELINE | DT_VCENTER | DT_CENTER);
EndPaint(hWnd, ps);break;
其中IDS_HELLO是預定義的字符串資源,通過LoadString函數(shù)導入到szHello變量中然后利用DrawText函數(shù)進行屏幕繪制。最后選擇編譯設(shè)備進行編譯可得到運行結(jié)果。
三、開發(fā)過程中的注意事項
1.EVC的環(huán)境和VC6.0非常相似,但EVC中的類庫只是VC6.0中類庫的一個子集,且有些SDK函數(shù)庫也不盡相同,需要留意幫助文檔。
2.在模擬器上調(diào)試的程序為保證在實際設(shè)備上也能正常。調(diào)試時要能調(diào)用任何桌面操作系統(tǒng)的動態(tài)鏈接庫函數(shù),注意第一次將非Unicode應用程序裝入Windows CE模擬器時,許多正在使用的函數(shù)它都不支持。
3.注意字節(jié)對齊問題。在ARM內(nèi)核的CPU中,內(nèi)存的訪問必需是四字節(jié)對齊。在EVC 程序中如涉及指針操作而且是奇字節(jié)時,可能引起內(nèi)存訪問的非字節(jié)對齊異常。而在模擬器中因為x86模擬器系統(tǒng)的CPU 不考慮此問題。
4.幾乎所有Windows CE支持的Win32和運行時間庫函數(shù)都要求寬字符變量。Windows 95不支持Unicode,為使程序代碼具有可移植性,應采用tchar.h定義的TCHAR類型,不要直接使用wchar_t。同樣有關(guān)字符串處理函數(shù)的宏定義也是如此。
四、已知應用和前景
因為PDA方便、靈活、功能強大等特點,在各行各業(yè)都得到了普遍的應用。
在公安行業(yè)的警用車查詢系統(tǒng),可以讓執(zhí)勤警員在無通訊和計算機網(wǎng)絡的路面,可動態(tài)、靜態(tài)地核查所轄機動車車輛行駛證的真?zhèn)螜n案。
在保險行業(yè)中,通過PDA設(shè)備可以為保險公司的業(yè)務員提供服務,可方便地查詢輸入業(yè)務信息也可與公司的數(shù)據(jù)庫服務器方便地連接。
在邊防巡邏、野外勘察、醫(yī)療系統(tǒng)和餐飲行業(yè)等,通過使用PDA設(shè)備,提高了管理水平和工作效率,節(jié)約了成本。
PDA市場具有非常大的開發(fā)潛力,其應用領(lǐng)域也在被不斷擴大。由于其硬件技術(shù)的進步和不斷開發(fā)出的軟件,以及無線網(wǎng)絡的發(fā)展,它將越來越被人們認識和接受。
參考文獻:
[1]吳慶陸明泉馮振明:基于J2ME技術(shù)的嵌入式系統(tǒng)的開發(fā)[J].計算機應用與軟件,2005,22(2)
[2]微軟公司:WindowsCE通信指南[M].北京:北京希望電子出版社,1999.02