您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Symbian手机应用开发标准教程
第3章Symbian手机应用开发过程本章目标本章主要介绍基于SymbianOS的手机应用开发的基本过程,使读者掌握整体的开发过程以及工程的组织、建立、编译、发布等,通过本章的学习,读者将会掌握以下内容。掌握Symbian程序的基本类型掌握如何建立一个新的Symbian工程掌握Symbian工程的结构掌握Symbian工程的编译掌握如何打包发布一个Symbian程序3.1SymbianOS上的程序类型基于Symbian的智能手机应用程序主要有3种类型:控制台程序、有界面的GUI应用程序和DLL程序,具体开发哪一种类型的应用程序,开发之初根据要实现的功能进行选择。3.1.1控制台应用程序在Symbian中,控制台应用程序是没有图形界面的,这与在Windows平台上的DOS程序只有文本提示是相同的,控制台应用程序可以实现对数据的处理,或者实现为运行在后台完成特定功能的程序。控制台应用程序还可以再简单地分为两类:没有控制台输出界面、有控制台输出界面。没有输出界面的控制台应用程序,程序启动后运行在后台,主动执行任务,或者为其他程序提供服务。这种程序没有界面、不和用户进行交互,可以用这种类型的控制台应用程序第3章Symbian手机应用开发过程23实现一个简单服务程序,为手机上的其他程序提供服务。有控制台输出界面的控制台应用程序,用户可以把一些信息打印到控制台上,如图3.1所示。这种类型的控制台应用直接在控制台输出程序,如图3.1中的“Hello,world!”就是在应用中输出的。图3.1控制台应用的输出控制台应用程序直接在模拟器或设备上运行,如果要在模拟器中运行这类程序,打开一个DOS窗口,在命令行输入下面的命令:eshell.exe这个命令会以控制台的形式打开S60模拟器,在S60模拟器的控制台窗口中输入一个控制台应用的名称,如Exam0301Console.exe,程序运行效果如图3.1所示。例子代码Exam0301Console可以通过Carbide.c++1.3进行创建,创建时程序类型选择“GenericSymbianOS”下的“Basicconsoleapplication(EXE)”,然后单击“Next”按钮,以后所有选项都选择默认,直到完成,最后编译,按照上面的方法运行程序。3.1.2GUI程序在Symbian中的GUI程序是有丰富图形界面的应用程序,在用户手机的程序应用界面中,通过单击应用图标启动的应用都是GUI的应用程序,在这样的程序中,用户可以通过手机键盘控制程序中的视图切换,在编辑框中输入文本、浏览信息等。Symbian有两个UI实现S60和UIQ,开发过程也是在这两个UI之上开发图形化、使用组件技术的GUI程序。下面使用Symbian中最有名的UI实现—S60来介绍GUI程序的组成Symbian开发标准教程24部分,如图3.2所示。1.按键定义首先介绍S60智能手机对按键的定义,S60手机都有如下的按键。n程序键:在手机待机状态,按下程序键后,手机界面会切换到功能选择界面,在这里,手机用户可以选择执行手机提供的功能和用户安装的程序。第3章Symbian手机应用开发过程25图3.2GUI程序界面结构图n左右软键:这两个键分别对应手机应用界面左下角和右下角提示的功能,一般由应用定义这两个键的功能,通常左软键定义为肯定,右软键定义为否定。n导航键:由上、下、左、右4个方向键和一个确认键组成,用于控制程序中光标的移动或移动程序的被选中区域,确认键用于确认或打开用户选中的程序。n删除键:在编辑模式下,按该键可以删除输入的字符,在手机的选择程序界面,也就是按程序键后进入的所有程序列表界面,按该键可以卸载程序。n编辑键:在编辑模式下,按该键可以调出输入法选择框,让用户选择合适的输入法。早期版本的手机上都有这个键,现在有些手机已经不再使用这个编辑键了,而使用“#”号键切换输入法。2.GUI程序组成在S60上,一个标准的GUI程序由从上到下的3部分组成:状态栏、客户区和CBA栏。在状态栏上,主要显示程序的图标、程序的标题等,在指定的区域显示有系统全局的一些信息,如手机的信号指示、电池电量指示等,如图3.3所示。在程序界面的中间位置,占据大部分区域的是程序的客户区,用户程序可以在这个客户区输出文字、绘图等,也可以建立view,然后在view中创建UI组件。图3.3状态栏Symbian开发标准教程26在程序界面的最下部分是CBA栏,在CBA栏主要显示应用定义的命令。CBA栏提示的左按钮命令和右按钮命令分别对应左软键和右软键功能,左软键对应的CBA栏左按钮命令主要用来弹出程序的菜单。3.1.3DLL程序Symbian作为一个操作系统,同样也支持DLL,和其他的操作系统平台(如Windows)一样,在使用DLL时,首先在程序中包含DLL的头文件,在编译和链接时,包含与DLL一致的LIB库文件,在程序运行时,把DLL复制到使用DLL的EXE所在的目录中或复制到系统的搜索路径中。DLL一般用来封装一些功能相对独立的功能函数,以利于其他程序重复使用DLL封装的功能。例如,可以把MD5摘要的计算封装在一个md5encode.dll的动态链接库中,这样我们就可以直接在任何的Symbian程序中使用这个md5encode.dll提供的方法计算指定字符串的md5摘要,而不用在程序中再实现md5算法。DLL是通过二进制的方式实现代码的重复利用的,在运行时,EXE与所使用的DLL运行在同一个进程的地址空间中,系统会为EXE自动加载所使用的DLL,系统只会加载一份DLL的复本到系统中,当有其他程序B也需要使用DLL时,系统发现DLL已经被另外的程序加载,这时系统就会给程序B一个DLL的映射,并且给DLL使用引用加1,当程序退出时,系统发现DLL的使用引用减为0,则把DLL从系统中卸载。Carbide.c++1.3中提供了生成DLL的向导,可以通过这个向导生成工程,填入自己要实现的功能代码就可以了。3.2建立新工程3.1节主要介绍了Symbian中的3种程序类型,相比EXE程序和DLL程序的工程组织及实现,GUI程序实现及工程组织等涉及的内容比较多。在以后的开发过程中,基本上都是开发基于图形化的GUI应用,即使在一个项目中需要开发一个EXE的程序,基本上也是实现GUI应用的一个辅助功能。下面讲解使用Carbide.c++1.3建立一个GUI应用程序的过程。(1)打开Carbide.c++1.3,选择“File”→“New”,在弹出的子菜单中选择“SymbianOSC++Project”,会打开新建Symbian工程向导,如图3.4所示。在向导的初始界面选择“S603rdEdition”下的“3rd-FutureEd.GUIApplication”,创建一个S603rd下的GUI应用程序,单击“Next”按钮。如果想建立S602nd下的GUI应用程序,可以使用S602ndSDK自带的应用程序创建向导或者使用Carbide.c++1.2的创建向导。(2)在弹出的对话框中输入新建工程的名字,如“Exam0303NewGui”,如图3.5所示,单击“Next”按钮。(3)在弹出的对话框中选择要使用的S603rd的SDK,如图3.6所示。选择SDK后,单击“Next”按钮进行后面的向导设置,一直单击“Next”按钮,直到单第3章Symbian手机应用开发过程27击“Finish”按钮完成新工程创建向导,新工程创建完成。Symbian开发标准教程28图3.4新建Symbian工程向导图3.5添加项目名称向导图3.6选择SDK向导在Carbide.c++中的项目管理器中,选择上面创建的项目“Exam0303NewGui”,在项目名第3章Symbian手机应用开发过程29称上单击右键,在弹出的快捷菜单中选择“BuildProject”,开始编译工程,默认是在模拟器上编译。3.3工程结构3.3.1工程目录组织在一个新建立的目录中,通常包含如图3.7中所示的目录结构。这个工程目录结构的子目录的名称是Carbide.c++向导给推荐的,在使用向导生成工程时可以根据需要进行修改,下面是对项目中所使用的目录的详细介绍。ngroup目录:该目录主要存储工程的组织文件bld.inf和*.mmp文件,在S603rd的Symbian开发环境中,程序的图标及程序使用图片的编译文件*.mk文件也存储在该目录中。ninc目录:该目录下主要存储的是程序代码所使用的头文件。nsrc目录:该目录下主要存储的是程序代码的源程序文件,在SymbianOSC++中,也就是*.cpp文件。ndata目录:该目录下存储的是程序的资源文件。ngfx目录:该目录下存储的是程序的图标文件,在S603rd中图标文件是SVG格式的,在S603rd的程序中可以使用位图或SVG图进行程序界面的绘制,这些在程序中使用的图片可以直接存储在这个目录,或者可以再建立一个专门用来存放程序中所使用图片的目录,如建立一个lookandfeel目录,专门用来存储跟程序界面有关的图片。nhelp目录:该目录主要存储程序的帮助文件。nsis目录:该目录主要存储制作安装程序时使用的*.pkg文件,将来生成的安装文件*.sis也会存储在该目录。3.3.2程序文件的组织一个Symbian工程是由很多个文件组成的,包括程序代码文件、资源文件、图标文件、图片文件等,这些文件之间的关系主要是由group目录下的编译信息文件bld.inf和工程组织文件*.mmp组织到一起的。在bld.inf文件中,主要记录了该工程可以在什么平台下编译和该工程包含哪些工程组织文件,在S603rd开发中常见平台主要有winscw、gcce、armv5等。Symbian工程的编译是从这个文件bld.inf开始的,这个文件名是固定的。在*.mmp文件中,主要存储有下面的这些程序信息。n可执行程序的名称、程序的类型、程序的UID等。图3.7工程目录结构Symbian开发标准教程30n程序的代码源程序文件*.cpp。n需要编译资源文件。n编译连接程序需要使用的*.lib库文件。n程序中使用的用户头文件目录和系统头文件目录。n程序使用的API的能力及必要的安全信息。3.4程序编译当程序建立好后,就可以进行编译、测试刚刚建立的程序框架是否是我们想要的,只有编译好的程序才可以在模拟器上安装到设备上运行,才能看到程序执行的结果。Symbian的开发环境,不管是基于S60的,还是基于UIQ的,都能够支持两种编译方式:基于命令行的编译和基于IDE环境的编译。3.4.1命令行编译在使用命令行进行编译时,首先要保证所使用的Symbian开发环境平台是要编译的Symbian的目标平台,也就是说,如果想把一个程序编译成S603rd的手机上运行的程序,那么就要切换成S603rd的开发环境平台。1.切换Symbian开发环境能进行Symbian程序开发的环境很多,如S602nd、S603rd、UIQ2.0、UIQ3.0等,而且这些SDK可以同时安装在开发人员的计算机上。如图3.8所示,笔者用来开发的计算机上就安装了两个SDK:S60_2nd_FP2_CW和S60_3rd_MR。如果想查看计算机上都安装了哪些Symbian的SDK,可在DOS窗中输入以下命令:devices这个命令的执行结果就是列出已经安装的SDK列表,在SDK列表中,后面带default参数指示的那个SDK,就是系统当前缺省使用的Symbian的开发环境,图3.8列出的列表中显示S60_3rd_MR是缺省使用的开发Symbian开发环境。如果想切换到另外一个开发环境,在DOS窗口中输入下面的命令:devices-setdefault@S60_2nd_FP2_CW:com.nokia.series60这个命令会把Symbian开发环境切换到S60_2nd_FP2_CW,命令参数“@”后为指定要切换到的目标环
本文标题:Symbian手机应用开发标准教程
链接地址:https://www.777doc.com/doc-1527 .html