Windows Mobile 程序开发

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

普通WindowsMobile应用程序开发WindowsMobile应用开发培训陈震邦2009.4.18PocketPCSmartPhoneMicrosoftWindowsmobile系统的特点:类似于小电脑,目前主流配置:CPU:180~600MHZ;程序内存64-128MB;ROM内存:128-256MB与其他手机系统比较-------优点:1、内置office系统2、含Internet、多媒体等PDA功能3、可安装卸载软件,有触摸屏等等4、支持很多硬件设备—SDRAM,USB,PCI等缺点:1、操作复杂2、对硬件要求高3、体积较大Windowsmobile软件平台分类:1、SmartPhone2、PocketPCWindowsMobile操作系统的分类:1、Standard、2、Professional3、ClassicWindowsmobile系统总体架构图WindowsMobile的体系结构与特征采用Windows兼容的Win32API方式使用的API和WINCE基本相同,另外还加入了WindowsMobile特有的API.对COM/ActiveX的支持上,WindowsMobile只支持“轻量级”的COM,而且对COM的执行是在进程内完成的。支持MFC支持Microsoft.NETCompactFrameworkWindowsMobile应用开发环境和常用工具介绍Visualstudio2005/2008WindowsmobilesdkRemoteSpyRemoteHeepRemoteRegisterEditorRemoteZoomInRemoteFileViewerRemoteProcessViewerActiveSync4.5WindowsMobile常用测试工具介绍CETK(系统集成测试工具)Hopper(随机测试)Vsbenchmark(硬件性能测试)Visualunit(单元测试)AgendaWindowsMobile编程考虑Win32/MFC/WTL三种mobile上编程方式比较设计WindowsMobile用户界面窗口、基础控件内核服务文件系统POOMMAPICellcoreAPIUI自定义WindowsMobile编程考虑1、Win32API标准Win32API的子集部分简化的API函数独特的WindowsMobileAPI函数消息的考虑,消息通知机制可能要修改的数据类型WindowsMobile编程考虑2、WindowsMobile平台和外壳考虑屏幕大小规格(QCIF176X220,QVGA240x320,VGA480x640)更小的显示器、更灵活的通讯方式平台硬件环境考虑鼠标触摸屏键盘软键盘、硬键、光标笔WindowsMobile编程考虑3、基于Unicode环境在代码中包含Tchar.h,它包含所有的字符转换函数。使用Win32字符串函数,而不是Crun-time函数。使用TCHAR和LPTSTR进行声明。声明一个变量为TCHAR类型,用户可以编译代码为Unicode和ASCII。使用TEXT宏来转换一个字符串。使用Cstring和MultiByteToWideChar()转换字符串UnicodeC-Runtime函数ANSIstringfunctionsstrlen()-querylengthstrcpy()-copystringstrcat()-concatenatestringUnicodestringfunctionswcslen()-querylengthwcscpy()-copystringwcscat()-concatenatestringBi-Modalstringfunctions_tcslen()-querylength_tcscpy()-copystring_tcscat()-concatenatestringWindowsMobile编程考虑WindowsMobile编程考虑UnicodeC-Runtime转换函数ConvertingtoUnicodeConvertingfromUnicodembstowcs(wchar_t*wcstr,//Outputstring.constchar*mbstr,//Inputstring.size_tcount);//Charactercountwcstombs(char*mbstr,//Outputstring.constwchar_t*wcstr,//Inputstring.size_tcount);//CharactercountWindowsMobile编程考虑为了防止这样的错误发生,可以按照下面的代码来改写。intmyfunc(TCHAR*p){TCHAR*pszFileName;pszFileName=(TCHAR*)malloc(MAXFILELEN);if(pszFileName)_tcsncpy(szFileName,p,MAXFILELEN);}intmyfunc(TCHAR*p){TCHAR*pszFileName;pszFileName=(TCHAR*)malloc(MAXFILELEN*sizeof(TCHAR));if(pszFileName)_tcsncpy(szFileName,p,MAXFILELEN);}4、进程只最多支持32个进程,默认至少开启5个进程:nk.exe:内核服务FileSys.exe:文件系统服务GWES.exe:GUI支持device.exe:加载和维护驱动程序services.exe管理和停止服务WindowsMobile编程考虑创建和终止进程调用CreateProcess函数来创建进程.调用TerminateProcess函数来终止进程。BOOLCreateProcess(LPCTSTRlpApplicationName,LPTSTRlpCommandLine,NULL,NULL,FALSE,DWORDdwCreationFlags,NULL,NULL,NULL,LPPROCESS_INFORMATIONlpProcessInformation);BOOLTerminateProcess(HANDLEhProcess,DWORDuExitCode);VOIDExitThread(DWORDdwExitCode);HANDLECreateThread(LPSECURITY_ATTRIBUTESlpThreadAttributes,DWORDdwStackSize,LPTHREAD_START_ROUTINElpStartAddress,LPVOIDlpParameter,DWORDdwCreationFlags,LPDWORDlpThreadId);WindowsMobile编程考虑结束线程主线程结束,该进程也就结束创建线程,使用CreateThread函数5、线程线程数量不限,跟内存大小有关。WindowsMobile编程考虑6、内存管理Wm存储结构ROMRAM扩展内存程序存储区对象存储区(TCard等FlashCard)(能够以现场执行:XIP)其中FlashCard的程序在执行时必须拷贝到RAM的程序存储区,ROM则能够以现场执行的方式,节约了有价值的RAMWindowsmobile支持虚拟内存、本地和分离堆,以及内存映射文件。获取存储区使用情况:获取系统当前的内存状态:GetSystemInfoRAM程序存储区:GlobalMemoryStatusRAM对象存储区:GetStoreInformation或GetDiskSpaceExROM存储区:需要根据OEM提供的函数在BSP层获取存储大小。一个典型的WinCE下的内存处理消息:WM_HIBERNATE消息(发送给WS_OVERLAPPED样式的窗口,一般先发送给后台程序)事件自由内存(1024-PageSize)自由内存(4096-PageSize)注解Limited-memorystate128KB160KB发送WM_HIBERNATE消息给inreverseZ-order的应用程序。释放栈空间并回收利用。Low-memorystate64KB96KB限制虚拟内存分配为16KB。显示Low-memory对话框。Critical-memorystate16KB48KB限制虚拟内存分配为8KB。设计WindowsMobile用户界面设计概念让用户得到控制权使用熟悉的控件保持界面的一致性提供信息反馈简捷的设计风格支持多种输入方法(键盘,触笔)设计WindowsMobile应用程序应用程序设计UI尽量和PPC,Smartphone本身设计风格相统一使用WIN32SDKMFC,C#设计界面创建的程序类型EXE,DLLWindowsMobileSmartphone用户界面WindowsMobileSmartphone界面风格Smartphone界面特性1.使用左右软键,进行菜单操作2.回退键的处理3.列表框,编辑框,静态文本的大量使用4.由于没有触摸屏,一般不使用按钮控件WindowsMobilePocketPC用户界面WindowsMobilePocketPC界面风格PocketPC界面特性1.非常类似PC上的UI操作方式2.可以使用左右软键,进行菜单操作3.鼠标左键用触笔单击操作取代,4.鼠标右键用触笔长按操作取代窗口、基本控件窗口主要的输入和输出方式用户通过窗口对手机进行操作基本控件Button按钮Static文本Edit编辑框CheckBox复选框RadioBox单选框List列表控件ListCtrl…..列表视图控件创建窗口撤销窗口BOOLDestroyWindow(HWNDhWnd);HWNDCreateWindow(LPCTSTRlpClassName,LPCTSTRlpWindowName,DWORDdwStyle,intx,inty,intnWidth,intnHeight,HWNDhWndParent,HMENUhMenu,HANDLEhInstance,PVOIDlpParam);窗口(1)注册窗口类WNDCLASSwc;wc.style=CS_HREDRAW|CS_VREDRAW;wc.lpfnWndProc=WndProc;wc.cbClsExtra=0;wc.cbWndExtra=0;wc.hInstance=hInstance;wc.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_WIN32SAMPLE));wc.hCursor=0;wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);wc.lpszMenuName=0;wc.lpszClassName=szWindowClass;returnRegisterClass(&wc);窗口(2)窗口回调函数LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam){intwmId,wmEvent;PAINTSTRUCTps;HDChdc;RECTrc;switch(message){caseWM_COMMAND:break;caseWM_CREATE:break;窗口(3)线程创建线程,使用CreateThread函数.内核服务(2)文件系统文件文件名中不允许包含的字符‘*’,‘\\’,‘/’,‘?’,‘’,‘’,‘:’,‘“’,‘|’,以及ASCII码值小于32的字符.获取可使用的磁盘空间GetDiskFreeSpaceEx打开、创建文件CreateFileRead/Write文件操作ReadFile(),WriteFile()文件操作示例voidOpenFileEx

1 / 41
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功