普通WindowsMobile应用程序开发

上传人:sx****84 文档编号:243319017 上传时间:2024-09-20 格式:PPT 页数:41 大小:943.50KB
返回 下载 相关 举报
普通WindowsMobile应用程序开发_第1页
第1页 / 共41页
普通WindowsMobile应用程序开发_第2页
第2页 / 共41页
普通WindowsMobile应用程序开发_第3页
第3页 / 共41页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,集思广益,精诚协作,普通Windows Mobile应用程序开发,Windows Mobile应用开发培训,陈震邦 2009.4.18,1,Pocket PC,SmartPhone,2,Microsoft Windows mobile系统的特点:,类似于小电脑,目前主流配置:CPU:180600MHZ;程序内存64-128MB;ROM内存:128-256MB,与其他手机系统比较-,优点:,1、内置office系统2、含Internet、多媒体等PDA功能3、,可安装卸载软件,有触摸屏等等4、支持很多硬件设备SDRAM,USB,PCI等缺点:1、操作复杂2、对硬件要求高3、体积较大,Windows mobile 软件平台分类:,1、SmartPhone2、Pocket PC,3,Windows Mobile操作系统的分类:,1、Standard、,2、Professional,3、Classic,4,Windows mobile系统总体架构图,5,Windows Mobile的体系结构与特征,采用Windows兼容的Win32 API方式,使用的API和WINCE基本相同,另外还加入了Windows Mobile特有的API.,对COM/ActiveX的支持上,Windows Mobile只支持“轻量级”的COM,而且对COM的执行是在进程内完成的。,支持MFC,支持,Microsoft .NET Compact Framework,6,Windows Mobile应用开发环境和常用工具介绍,Visual studio 2005/2008,Windows mobile sdk,Remote Spy,Remote Heep,Remote Register Editor,Remote Zoom In,Remote,Remote Process Viewer,ActiveSync 4.5,7,Windows Mobile常用测试工具介绍,CETK(系统集成测试工具),Hopper(随机测试),Vsbenchmark (硬件性能测试),Visual unit(单元测试),8,Agenda,Windows Mobile 编程考虑,Win32/MFC/WTL三种mobile上编程方式比较,设计Windows Mobile用户界面,窗口、基础控件,内核服务,文件系统,POOM,MAPI,Cellcore API,UI自定义,9,Windows Mobile编程考虑,1、Win32 API,标准Win32 API的子集,部分简化的API函数,独特的Windows Mobile API函数,消息的考虑,消息通知机制,可能要修改的数据类型,10,Windows Mobile编程考虑,2、Windows Mobile平台和外壳考虑,屏幕大小规格,(QCIF176X220, QVGA240x320,VGA480x640),更小的显示器、更灵活的通讯方式,平台硬件环境考虑,鼠标,触摸屏,键盘,软键盘、硬键、光标笔,11,Windows Mobile编程考虑,3、基于,Unicode 环境,在代码中包含Tchar.h,它包含所有的字符转换函数。,使用Win32字符串函数,而不是C run-time函数。,使用TCHAR和LPTSTR进行声明。声明一个变量为TCHAR类型,用户可以编译代码为Unicode和ASCII。,使用TEXT宏来转换一个字符串。,使用Cstring 和MultiByteToWideChar( ) 转换字符串,12,Unicode C-Runtime函数,ANSI string functions,strlen() - query length,strcpy() - copy string,strcat() - concatenate string,Unicode string functions,wcslen() - query length,wcscpy() - copy string,wcscat() - concatenate string,Bi-Modal string functions,_tcslen() - query length,_tcscpy() - copy string,_tcscat() - concatenate string,Windows Mobile编程考虑,13,Windows Mobile编程考虑,Unicode,C-Runtime,转换函数,Converting to Unicode,Converting from Unicode,mbstowcs(,wchar_t *,wcstr, / Output string.,const char *,mbstr, / Input string.,size_t,count,); / Character count,wcstombs(,char *,mbstr, / Output string.,const wchar_t *,wcstr, / Input string.,size_t,count,);/ Character count,14,Windows Mobile编程考虑,为了防止这样的错误发生,可以按照下面的代码来改写。,int myfunc(TCHAR *p),TCHAR *psz;,psz = (TCHAR*)malloc(,MAX,);,if (psz),_tcsncpy(sz, p, MAX);,int myfunc(TCHAR *p),TCHAR *psz;,psz = (TCHAR*)malloc(,MAX * sizeof(TCHAR),);,if (psz),_tcsncpy(sz, p, MAX);,15,4、,进程,只最多支持32个进程,默认至少开启5个进程:,nk.exe :内核服务,:文件系统服务,GWES.exe: GUI支持,device.exe:加载和维护驱动程序,services.exe管理和停止服务,Windows Mobile编程考虑,16,创建和终止进程,调用CreateProcess 函数来创建进程.,调用TerminateProcess 函数来终止进程。,BOOL CreateProcess(LPCTSTR lpApplicationName, LPTSTR lpCommandLine, NULL, NULL, FALSE, DWORD dwCreationFlags, NULL, NULL, NULL, LPPROCESS_INFORMATION lpProcessInformation );,BOOL TerminateProcess( HANDLE,hProcess, DWORD,uExitCode,);,17,VOID ExitThread( DWORD dwExitCode );,HANDLE CreateThread(,LPSECURITY_ATTRIBUTES lpThreadAttributes,DWORD dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags, LPDWORD lpThreadId,);,Windows Mobile编程考虑,结束线程,主线程结束,该进程也就结束,创建线程,使用,CreateThread,函数,5,、,线程,线程数量不限,跟内存大小有关。,18,Windows Mobile编程考虑,6、,内存管理,Wm 存储,结构,ROM,RAM,扩展,内存,程序存储区,对象存储区,(T Card等Flash Card),(能够以现场执行: XIP),其中Flash Card的程序在,执行时必须拷贝到RAM的,程序存储区,ROM则能够,以现场执行的方式,节约,了有价值的RAM,19,Windows mobile支持虚拟内存、本地和分离堆,以及内存映射文件。,获取存储区使用情况:,获取系统当前的内存状态:GetSystemInfo,RAM程序存储区:GlobalMemoryStatus,RAM对象存储区:GetStoreInformation或GetDiskSpaceEx,ROM存储区:需要根据OEM提供的函数在BSP层获取存储大小。,20,21,一个典型的WinCE下的内存处理消息:,WM_HIBERNATE,消息(发送给WS_OVERLAPPED样式的窗口,一般先发送 给后台程序),22,设计Windows Mobile用户界面,设计概念,让用户得到控制权,使用熟悉的控件,保持界面的一致性,提供信息反馈,简捷的设计风格,支持多种输入方法(键盘,触笔),23,设计Windows Mobile应用程序,应用程序设计,UI,尽量和,PPC,Smartphone,本身设计风格相统一,使用,WIN32 SDK,MFC, C#,设计界面,创建的程序类型,EXE,DLL,24,Windows Mobile Smartphone用户界面,Windows Mobile Smartphone界面风格,Smartphone界面特性,1.使用左右软键,进行菜单操作,2.回退键的处理,3.列表框,编辑框,静态文本的大量使用,4.由于没有触摸屏,一般不使用按钮控件,25,Windows Mobile Pocket PC用户界面,Windows Mobile Pocket PC界面风格,Pocket PC界面特性,1.非常,类似PC上的UI操作方式,2.可以,使用左右软键,进行菜单操作,3.鼠标左键用触笔单击操作取代,4.鼠标右键用,触笔,长按操作取代,26,窗口、基本控件,窗口,主要的输入和输出方式,用户通过窗口对手机进行操作,基本控件,Button 按钮,Static 文本,Edit 编辑框,CheckBox 复选框,RadioBox 单选框,List 列表控件,ListCtrl . 列表视图控件,27,创建窗口,撤销窗口,BOOL DestroyWindow( HWND,hWnd,);,HWND CreateWindow( LPCTSTR,lpClassName,LPCTSTR l,pWindowName,DWORD,dwStyle, int,x, int,y, int,nWidth, int,nHeight,HWND,hWndParent,HMENU,hMenu, HANDLE,hInstance, PVOID,lpParam,);,窗口(1),28,注册窗口类,WNDCLASS wc;,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;,return RegisterClass(,窗口(2),29,窗口回调函数,LRESULT CALLBACK WndProc(HWND hWnd, UINT message,WPARAM wParam, LPARAM lParam),int wmId, wmEvent;,PAINTSTRUCT ps;,HDC hdc;,RECT rc;,switch (message),case WM_COMMAND:,break;,case WM_CREATE:,break;,窗口(3),30,线程,创建线程,使用 CreateThread 函数.,内核服务(2),31,文件系统,文件,文件名中不允许包含的字符* , , /,?, , , :, “, |, 以及ASCII码值小于 32的字符.,获取可使用的磁盘空间 GetDiskFreeSpaceEx,打开、创建文件 CreateFile,Read/Write 文件操作,ReadFile,( ), WriteFile( ),32,文件操作示例,void Open (void),HANDLE hFile;,hFile = CreateFile (TEXT(MY),/ Open MY,GENERIC_READ, / Open for reading, / Share for reading,NULL, / No security,OPEN_EXISTING, / Existing, / Normal file,NULL); / No template file,if (h INVALID_HANDLE_VALUE),/ Your error-handling code goes here.,return;, / End of Open code,33,数据库,装备数据卷,CeMountDBVol,( ),打开数据文件,CeCreateDatabaseEx ( ),读写数据库,CeReadRecordPropsEx ( ),CeWriteRecordProps ( ),关闭数据库,CloseHandle,( ),卸载数据卷,CeUnmountDBVol,( ),CE数据库系统,34,注册表,打开注册表,RegOpenKeyEx ,RegCreateKeyEx,读写注册表,RegQueryValueEx,RegSetValueEx,列举注册表,RegEnumKeyEx,删除注册表,RegDeleteValue,RegDeleteKey,关闭注册表,RegCloseKey,刷新注册表,RegFlushKey,注册表系统,35,POOM,全称,Pocket Outlook Object Model,在CE上就有使用,功能,提供一系列的COM接口,能够方便的访问Windows Mobile内置数据库,如联系人,日程,任务数据库,,并使用POOM进行PC和Device上的联系人等的同步。,Windows Mobile上的新增函数,CalendarNe,ContactsNewContact,Window Mobile上的Notification,监测POOM数据的创建,修改,删除,当前开发的POOM相关应用,火拼速查,联系人群组管理,POOM,36,MAPI,全称,Messaging API, Windows Mobile所特有,功能,提供一系列的COM接口,能够方便的访问和操作Windows Mobile中的信息数据,如收件箱中的,短信,彩信,Email等,并可以对信息功能进行扩展,Windows Mobile上的新增函数,MailDisplayMessage,MailSwitchToAccount,.,MAPI上的Notification,使用IMAPIAdviseSink接口接收信息改变通知,当前开发的MAPI相关应用,短信聊天,智能备份,MAPI,37,Cellcore API:Windows Mobile特有,功能,用来操作无线相关功能(通话,短信,网络,SIM卡),TAPI:实现通话等相关功能,Telephony API (TAPI) 2.0,SMS API:实现短信收发,读取功能,SIM API:实现SIM卡读写相关操作,RIL Function:直接通过RIL和Modem交互,Cellcore API,38,主要用于运营商定制,待机界面,PPC: Today Plugin,Smartphone: Homescreen Plugin,主菜单图标自定义,拨号盘自定义(Phone Canvas),Menu extensibility,开关机动画,网络参数预制(GPRS, WAP,彩信预制),UI自定义,39,Windows Mobile应用开发流程,40,结束,Question?,41,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!