Symbian S60开发经验

2024-02-18 22:32
文章标签 开发 经验 symbian s60

本文主要是介绍Symbian S60开发经验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

学习symbian手机开发快两个星期了,个人觉得学习symbian入门确实挺难的,在学习symbian开发的过程中也走了很多弯路,现将自己这段时间学习symbian的过程写下来,以期望能给将来打算学习symbian开发的同事带来一定的帮助;
俗话说,弓欲善其事,必先利其器,要学习symbian手机开发,当然首先需要安装symbian的 开发环境(这里我们使用symbian sdk 2.0以及VC6 IDE),这里就不详细介绍,读者参考笔者写的symbian安装指导,按照顺序安装好symbian,然后检查一下看看能不能用,检查方法是拷贝安装目 录下的helloworld(C:/Symbian/7.0s/Series60_v20/Examples/helloworld)示例到系统根目录 (c盘根目录),然后进入DOS命令界面,进入helloworld当前目录,输入bldmake bldfiles(如下图1)回车,如果安装好的symbian开发环境不能用,则会会提示错误,正常情况不提示(如下图1);
图1
小提示:不知道是什么原因,笔者在学习 symbian 的过程中发现,如果我们需要编译的项目文件不放在 c 盘下的话,输入 bldmake bldfiles 提示环境变量 RPOCROOT 有问题,以及输入其他编译命令都会出问题(此外,在 VC 中新建项目,如果不放在 c 盘也会有问题),具体原因笔者也还没有搞清楚(也许 symbian 硬性规定吧),所以笔者建议将项目放在 c 盘下,这样就可以顺利我们的开发了;
 
     好了,现在开发环境已经建立好了,接下来介绍一下如何学习 symbian OS C++ 了;笔者建议,初学者不要买什么参考书,直接看 SDK 中自带的文档就可以, SDK 文档(直接进入 C:/Symbian/7.0s/Series60_v20/Series60Doc 这个目录看)有详细的 symbian 介绍,当然,这些文档都是英文的,如果英语不是很好的话,学习起来确实有点困难,不过笔者认为不要怕,大不了开着金山词霸,然后硬着头皮看,多花点时间慢慢看就好了,既可以学习 symbian 又可以提高英语,一举两得;
1 、阅读 SDK 文档
笔者觉得先看 coding idioms for symbian os.pdf ,这个文档主要是讲述 symbian 开发的一些通俗约定,先看这个的原因是,当你熟悉了这些约定后,接下来你看示例或者是其他文档,不会觉得莫名其妙,因为 Symbian C ++ 与我们平常 PC 平台的 C++ 编程规范很不一样;笔者在学习过程中走了弯路,开始学习时拿到了一本叫做“ Symbian OS C++ 手机应用开发”的书,刚开始看的迷迷糊糊,不知所云,原因就是不了解 symbian 的编程约定,所以看到很多名字和代码都不知道是怎么回事;
然后,再看看 series 60 ui style guide.pdf ,这个文档主要是介绍 series 60 开发的一些 UI 基本格局以及一些专业术语约定,当然,如果你以前做过手机开发,也许可以不看,因为目前大部分手机的界面格局基本都差不多;
接着再看看 getting started.pdf guide for application developers on document handler.pdf appwizard guide.pdf 这几个文档,前两个文档主要让你对 symbian 开发有感性认识,掌握一些基本知识;最后一个是教你怎么使用 VC IDE 建立一个新的 symbian 项目;
有了上面的基本知识后,我们再看 application framework handbook.pdf 这个文档,这个文档挺重要的,主要介绍 symbian 软件程序的开发框架(专业讲是软件的设计模式),看完这个文档,读者应该对 symbian 软件开发框架有个整体认识(真正开发还需要很多其他知识),知道怎样建立 symbian 应用程序,编写 symbian 程序具体怎么个步骤应心中有数;
说到这里,笔者顺便提一下 symbian 使用的设计模式,它采用 MVC 模式, MVC 字面意思是 Model View Control Model 主要负责数据, View 主要用于显示数据以及屏幕的一些处理, Control 主要是负责处理用户交互以及对数据的访问控制; MVC 很象微软的文档 / 视图结构(有微软 MFC 编程经验的人应该很清楚了),采用 MVC 的目的主要是为了文件的结构清晰,软件开发的复杂度明显降低;
看完上述文档后,应该对 symbian 有了个基本了解,开发的整体框架也知道,接下来就可以看一下深入的开发资料了,至于顺序就没什么关系,自己看着办,把其他资料看完就可以;
 
2 、示例分析
想要学会 symbian 开发,光看资料是没用的,还得多看示例代码,并自己多动手写才能真正掌握,接下来我们来分析一下 helloworld 这个程序:
helloworld.mmp 这个文件是项目工程文件,指出本工程包含信息有:目标文件名,目标问题类型, UID (应用程序标识号,目标文件、资源文件、源文件、头文件、库文件的位置;
HelloWorld.rss 资源文件,定义了该程序用到的资源(包括字符资源,菜单等资源);
Helloworld.uid.cpp ,定义程序标识号;
Helloworld_main.cpp ,程序入口点所在文件,该文件中包含两个函数 TInt E32Dll(TDllReason) CApaApplication* NewApplication() ,前一个没什么意义,后一个是用于建立程序示例,算是整个程序的入口点,整个程序由它来建立第一个我们的应用对象实例,这里建立 CExampleApplication 对象的一个实例;
Helloworld_application.cpp CExampleApplication 类对象的具体实现文件,包含两个函数 CreateDocumentL (), AppDllUid() ,前一个用于建立文档对象实例,后一个取得程序标识号;
Helloworld_document.cpp CExampleDocument 类对象的实现文件,包含 CExampleDocument(CEikApplication& aApp) CreateAppUiL() 两个成员函数,前一个是构造函数,后一个用于创建应用程序接口对象;
Helloworld_appui.cpp CexampleAppUi 类对象的实现文件, HandleCommandL(TInt aCommand) 命令处理函数, ~CExampleAppUi() 析构函数, ConstructL() 第二阶段构造函数,用于创建应用程序视图;
Helloworld_appview.cpp ,该文件中, CExampleAppView ()默认构造函数, ConstructL(const TRect& aRect) 第二阶段构造函数,建立具体的视图界面, ~CExampleAppView() 析构函数, NewL(const TRect& aRect) 对象示例构建函数, Draw(const TRect& /*aRect*/) 视图窗口绘制函数,用于绘制窗口;
整个程序的建立过程就是:系统通过 NewApplication 建立 CExampleApplication 对象实例,然后由其建立 CExampleDocument 文档对象,再由 CExampleDocument 建立 CExampleAppUi 对象,最后由 CExampleAppUi 建立 CExampleAppView 对象;
 
MVC 的角度来讲, CExampleDocument 相对于 M CExampleAppUi 对应于 C CExampleAppView 对应于 V ;整个文件因此包含四部分,也就是四个类,应用程序类、文档类、应用程序 UI 类以及应用程序视图类;
 
3 、应用程序的编译
       应用程序的编译方式包括两种:命令行表演和图形 IDE 中编译,我个人习惯命令行编译;
       首先,进入 helloworld 编译配置文件所在目录(一般就是 bld.inf 文件所在目录。这里就是 helloworld 当前目录),然后输入 bldmake bldfiles (如图 1 ),接着输入 abld build wins udeb (这里解释一下 wins udeb 两个参数,前一个参数指定生成是针对仿真器、使用的是 VC 编译器,后一个参数表示使用 unicode 调试生成;这样编译就完成了;
       如果还想让该项目在 VC IDE 中打开,这样用命令 abld makefile vc6 将来 VC 工程文件;
 
4 、运行程序
       要运行刚才编译生成的程序,可以直接在命令行输入 epoc.exe 也可以在 VC IDE 中直接点击运行(需要选择 epoc 来运行,在 C:/Symbian/7.0s/Series60_v20/Epoc32/release/wins/udeb 中),这样启动仿真器后就可以在仿真器上运行编译好的程序;
       以上只是编译成能够在仿真器上运行的调试程序,真正的程序要运行在真机上了,则编译参数需要改一改,并制作成安装包,安装到真机上运行;
      
总结,编译命令
bldmake bldfiles :生成项目的生成文件和批处理文件 abld.bat
abld build <platform> <buildtype> :编译命令, <buildtype> 参数若为 udeb ,则生成调试版,为 urel 则为发布版,为 all ,则同时生成两种;
<platform> 依赖于目标处理器和所用编译器两方面,若是仿真器下,则有 winsb (针对 Borland c++ )、 winscw Metrowerks )、 wins(Microsoft)
使用完全相同的过程,可以为实际的目标手机运行命令生成,只是 <platform> 参数不一样,可以是 ARM4 ( ARMv4 指令集编译 ) ARMI (为 ARMv4T 指令集的 THUMB 模式子集编译), THUMB (armvT 指令集的 ARM 模式子集编译 )
 
如要使用 VC6 IDE 则进入包含 abld.bat 文件的目录下,在命令行输入 abld makefile vc6

这篇关于Symbian S60开发经验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/722662

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

v0.dev快速开发

探索v0.dev:次世代开发者之利器 今之技艺日新月异,开发者之工具亦随之进步不辍。v0.dev者,新兴之开发者利器也,迅速引起众多开发者之瞩目。本文将引汝探究v0.dev之基本功能与优势,助汝速速上手,提升开发之效率。 何谓v0.dev? v0.dev者,现代化之开发者工具也,旨在简化并加速软件开发之过程。其集多种功能于一体,助开发者高效编写、测试及部署代码。无论汝为前端开发者、后端开发者

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex