您好,欢迎访问三七文档
Symbian智能手机应用开发过程及实例分析华清远见侯茂清2009-6-7主要内容}SymbianOS简介}SymbianOSC++}简要Symbian应用开发过程}Symbian手机应用开发方向}Symbian上的IM项目实践2SymbianOS简介SymbianOS简介}Symbian之前–Psion}Psion成立于1980年}为基于Z80的Sinclair系列,如ZX81和ZXSpectrum,开发游戏和软件}产品包括}飞行模拟器,“豪斯滑雪”,Psion象棋,太空奇袭和其他游戏}其中为ZX81开发的Psion象棋只占用1K内存}为SinclairQL开发的办公套件(1983)4SymbianOS简介1998–Symbian由Psion,Nokia,Ericsson和Motorola创建}Matsushita于1999年加入,SonyEricsson&Siemens于2002年加入,Samsung2003加入}Motorola在Symbian的股份于2003年售出}Psion股份于2004年售出}EPOC32后来更名为SymbianOS第一款SymbianOS手机与2000年发布(EricssonR380)}Nokia9210Communicator于2001年发布——它是第一款“开放”的手机2.5G手机于2002年早期出现}Nokia76503G手机在2002年12月发布}Fujitsu的3GFOMAF20515SymbianOS简介到2008年3月31日}成长的公司——2008年第一季度,Symbian授权厂家交货的手机达1850万台,比2007年第一季度增长16.5%(2007年第一季度为1590万台)}Symbian智能手机累计交货达2亿部}自从2003年3GSymbian模块交货以来,日本累计Symbian手机单元交货量已经达到了2000万的里程碑}SymbianOSC++开发者已经供不应求!6SymbianOS简介}2008年6月24日,诺基亚宣布以2.64亿欧元购买Symbian公司诺基亚之前未拥有的52%的股份。}诺基亚、摩托罗拉、索尼爱立信和NTTDOCOMO联合宣布将统一SymbianOS、S60、UIQ以及MOAP为一个开放的手机软件平台7SymbianOS简介}SymbianOS上实现的UI}S60}UIQ}MOAP8SymbianOS简介}UI平台外观9NokiaS60SonyEricssonUIQSymbian移动开发方向}WAP应用}移动梦网}wap.sina.com}手机终端应用}掌讯通}百阅视听}PICA}XROSE}Msn}QQ}艾米视频聊天}游戏10SymbianOSC++基础主要内容}SymbianOSC++语言概述}基本数据类型}编码规范}描述符}动态数组12SymbianOSC++语言概述}SymbianOSC++被称为是“特定领域的C++语言”,并附有用于构建SymbianOS及运行于其上的软件框架}13SymbianOSC++语言概述}SymbianOSC++的语言基础是C++语言14基本数据类型}整型:TInt8TUint8TInt16TInt32typedefsignedcharTInt8;typedefunsignedcharTUint8;typedefshortintTInt16;typedefunsignedshortintTUint16;typedeflongintTInt32;typedefunsignedlongintTUint32;typedefsignedintTInt;typedefunsignedintTUint;15基本数据类型}浮点型:TReal32TReal64typedeffloatTReal32;typedefdoubleTReal64;typedefdoubleTReal;16基本数据类型}布尔型typedefintTBool;#defineTRUE1#defineFALSE0enumTFalse{EFalse=FALSE};enumTTrue{ETrue=TRUE};17基本数据类型}字符串型typedefunsignedcharTText8;typedefunsignedshortintTText16;18基本数据类型}枚举型enumTAknExListMenuCommands{EAknExListCmdEmptyOutline=0x6000,EAknExListCmdSelectionItem,EAknExListCmdOutline01,EAknExListCmdOutline02}19编码规范}四种基本的类T-C-R-M-}函数命名}变量命名20描述符}字符串类}(2)TBufC不可修改的缓冲区描述符。}(3)TPtr可修改指针描述符。}(4)TPtrC不可修改指针描述符。}(5)RbufC可修改的堆缓冲区描述符}(6)HBufC不可修改的堆缓冲区描述符。21动态数组22常用的动态数组}RArray}RPointerArray2324简要简要SymbianSymbian应用开发过程应用开发过程}SDK选择}S60}S605thEdition-SymbianOSv9.5}S603rdEditionFP2-SymbianOSv9.3}S603rdEditionFP1-SymbianOSv9.2}S603rdEditionMR-SymbianOSv9.1}S603rdEdition-SymbianOSv9.1}S602ndEditionwithFP3-SymbianOSv8.1}S602ndEditionwithFP2-SymbianOSv8.0a}S602ndEditionwithFP1-SymbianOSv7.0senhanced}S602ndEdition-SymbianOSv7.0s}S601stEdition-SymbianOSv6.1}UIQ}UIQ3.0(SymbianOSv9.1)}UIQ2.1(SymbianOSv7.0)}UIQ2.0(SymbianOSv7.0)251.搭建Symbian开发环境}(1)准备工作}到Nokia论坛下载对应的SDK}下载ActivePerlScript安装程序,5.6.1版}下载JavaJDK,1.4.2.06版或以后(但不能大于1.6)}集成开发环境(IDE)¨carbide.c++(推荐)¨MetrowerksCodeWarrior¨.net2003/2005¨……26}(2)安装过程}第一步,安装IDE}第二步,安装JRE,JDK1.4.2.06或以后,最好是1.5版}第三步,安装Perl,必须是5.6.1版本}第四步,安装S60SDK}注意:上面所有工具都必须安装在同一个分区内,否则可能会引起不可预知的问题,建议所有的安装都使用默认的目录就好,这样安装完成后,不用做任何设置,环境就成功搭建了272.创建项目}使用Carbide.c++的应用向导新建项目,建立一个S603rdEd.GUIApplication程序28}Symbian项目的工程组织}项目根目录}Group目录¨主要存储程序工程组织文件:bld.inf和xx.mmp}Inc目录¨存储程序的头文件}Src目录¨存储程序的实现文件}Aif目录¨存储程序的图标}Data目录¨存储程序的资源文件}Sis目录¨存储与发布有关的打包文件和sis等29}Symbian项目与平台无关}使用一种IDE生成的Symbian项目,可以导入到其它的IDE中进行编译和调试}支持的平台¨WINSCWWINSARMITHUMBARMV5}平台对应的IDE¨WINSCW¨CodeWarrior¨Carbide.c++¨WINSSymbianOS8及以前的版本支持¨vc++6.030}使用IDE环境编译和调试}编辑、编译与PC项目开发基本相同}在IDE环境中,选择运行程序功能,会调出模拟器31}打包发布程序}制作安装程序}makesisxxx.pkg生成xxx.sis安装程序}发布程序}把xxx.sis传送到手机上}蓝牙}红外}数据线}在手机上安装程序32Symbian上的IM项目实践}IM系统架构34}IM客户端基本需求}申请号码、登录聊天系统。}添加、删除好友。}收发即时消息。}更新好友在线状态。35}IM通讯协议}消息结构36}消息体格式37}IM客户端实现设计}(1)注册即时聊天号码界面流程38}(2)登录聊天程序界面流程3940}IM客户端实现}技术准备}Symbian编程基础知识}UI界面}数据存储---文件操作}网络编程---Socket41}通讯协议封装设计classCImMsgBody:publicCBase{public:virtualintGetBodyLen(void)=0;virtualvoidEncode(TUint8*pBuf,int&nLen)=0;virtualvoidDecode(TUint8*pBuf)=0;};classCImMsg:publicCBase{intGetHeaderLen(void);boolEncode(TUint8**ppBuf,int&nLen);voidDecode(TUint8*pBuf);public://消息总长度(4字节整数)命令ID(4字节整数)消息顺序号(4字节整数)//源用户号码(10字节)目标用户号码(10字节)响应码(4字节整数)intm_nMsgLen;intm_nCommandID;intm_nSeqNo;TUint8m_strSrcUser[11];TUint8m_strDstUser[11];intm_nRespResult;CImMsgBody*m_pBody;};42}注册消息实现classCImRegistryReq:publicCImMsgBody{public:CImRegistryReq();virtual~CImRegistryReq();intGetBodyLen(void);voidEncode(TUint8*pBuf,int&nLen);voidDecode(TUint8*pBuf);public:TUint8m_strPassword[11];};43CImRegistryReq::CImRegistryReq(){}CImRegistryReq::~CImRegistryReq(){memset(m_strPassword,0,11);}intCImRegistryReq::GetBodyLen(void){return10;}voidCImRegistryReq::Encode(TUint8*pBuf,int&nLen){TUint8*pTemp=pBuf;//源用户号码memcpy(pTemp,m_strPassword,10);pTemp+=10;nLen=GetBodyLen();}voidCImRegistryReq::Decode(TUint8*pBuf){//解码消息头TUint8*pTemp=pBuf;//用户密码memcpy((void*)m_strPassword,pTemp,10);pTemp+=10;}44}创建项目}实现客户端}发布程序45}Symbian学习途径}专业培训---快速入门及提高}自学---边学边摸索,会花费较长时间46华清远见Symbian培训}国内首家Symbian公司全球授权认证培训机构}专业的师资,授课讲师均有丰富的实践经验}培训课程}Symbian开发培训初级班}Symbian开发培训高级班47Symbian开发培训初级班}课程目标掌握Symbian操作系统下C++应用开发的基本方法和工具,能够在symbain上进行UI开发,能够独立在Symbain上开发手机应用产品。}主要内容Symbian程序架构、基础知识,活动对象,UI开发,文件操作,网络应用开发,蓝牙应用,多媒体应用开发等48Symbian开发培训高级班}课程目标}以专
本文标题:Symbian智能手机应用开发过程及实例分析Farsight090607-Symbian
链接地址:https://www.777doc.com/doc-6297507 .html