Symbian+C+开发经验

### Symbian C++开发经验详析####一、前言随着智能手机的普及和发展,Symbian操作系统作为曾经市场占有率极高的移动操作系统,其C++开发技术备受关注。本文作者通过自身的实践经验和深入研究,整理了关于Symbian C++开发的重要知识点,并针对S60第三版进行了详细介绍,旨在帮助读者更好地理解和掌握Symbian C++开发技巧。 ####二、Symbian C++简介Symbian OS是由Symbian公司专门为移动设备设计的操作系统,在智能手机市场曾占据主导地位。该系统由诺基亚等多家大型移动设备制造商共同维护和支持,因此了解和掌握Symbian C++对于开发者来说至关重要。 Symbian C++是该操作系统上最主要的开发语言之一,拥有高度的灵活性和效率。为了更好地利用这一语言,开发者需要了解其独特的编程模式和机制。 ####三、Symbian C++开发环境搭建##### 3.1 Nokia的Carbide Carbide是诺基亚推出的一款专用于Symbian开发的集成开发环境(IDE)。它分为多个版本,分别支持不同类型的项目开发。 - **3.1.1针对JAVA的Carbide开发工具**:适用于Java ME应用的开发。 - **3.1.2针对Symbian OS C++的Carbide开发工具**:主要用于Symbian C++应用的开发。 - **3.1.3实现用户界面个性化和定制化的Carbide工具**:提供了强大的UI设计功能。 ##### 3.2基于Microsoft Visual Studio IDE的开发环境搭建基于Visual Studio的Symbian C++开发环境是一种常见的选择,尤其是对于熟悉Windows平台的开发者而言。 - **3.2.1安装Carbide.vs 3.0的必要条件**:确保计算机满足安装需求。 - **3.2.2安装Visual Studio 2005**:此版本的Visual Studio与Carbide.vs兼容性较好。 - **3.2.3安装JRE和ActivePerl**:这两项是构建Symbian应用所需的软件环境的一部分。 - **3.2.4选择安装SDK**:选择适合目标平台的Symbian SDK进行安装。 - **3.2.5安装Carbide.vs**:按照官方指南进行安装。 - **3.2.6安装完成**:完成上述步骤后,即可开始Symbian C++应用的开发。 ##### 3.3基于Eclipse IDE的开发环境搭建除了Carbide和Visual Studio之外,Eclipse也是一个流行的开源IDE,可以用来进行Symbian C++开发。 ####四、Symbian C++独特机制Symbian C++有一些与其他C++开发环境不同的机制,这些机制对于开发者来说非常重要。 ##### 4.1命名惯例Symbian C++有一套严格的命名规则,有助于提高代码的可读性和一致性。 - **4.1.1命名总则**:通常采用匈牙利命名法,如`TBuf8`表示一个长度为128的字符数组。 - **4.1.2命名前缀与命名后缀**:例如,`TBuf`表示缓冲区,`C`开头表示类,`R`表示资源类等。 ##### 4.2基本类型Symbian C++定义了一些基本数据类型,这些类型通常比标准C++类型更具语义含义,例如`TInt`代表整型。 ##### 4.3类的划分Symbian C++中定义了几种不同类型的类: - **4.3.1 C-Class:堆分配类**:这类类的对象在堆上创建。 - **4.3.2 R-Class:资源类**:资源类管理资源,如文件句柄或内存块。 - **4.3.3 T-Class:值类**:这类类的对象通常存储在栈上,作为简单数据结构使用。 - **4.3.4 M-Class:接口类**:表示接口的类。 - **4.3.5静态类**:提供静态成员函数和数据成员的类。 - **4.3.6 D-Class**:未明确说明,但在Symbian C++中可能指代某种特定类型的类。 ##### 4.4异常处理Symbian C++的异常处理机制非常独特: - **4.4.1 TRAP和TRAPD**:这两个宏用于捕获异常并继续执行。 - **4.4.2异常抛出函数**:如`User::Leave()`和`User::Panic()`等,用于抛出异常。 - **4.4.3可能异常退出的操作符**:如`new(ELeave)`,当内存不足时会抛出异常。 - **4.4.4可能异常退出的函数**:某些函数可能会因为内部错误而抛出异常。 - **4.4.5清除栈机制**:用于自动清理资源,确保资源在异常情况下得到释放。 ##### 4.5清除栈Symbian C++中的清除栈机制是一个非常重要的特性,用于管理资源的生命期。 - **4.5.1清除栈成员要求**:加入清除栈的成员必须遵循特定的规则。 - **4.5.2清除栈的操作**:如何将对象添加到清除栈以及如何从栈中移除对象。 - **4.5.3清除栈弹出操作的debug版本**:在调试模式下,可以使用特殊版本的弹出操作来检查错误。 - **4.5.4使用清除栈的注意事项**:需要注意的一些细节,以避免常见的错误。 ##### 4.6两阶段构造Symbian C++中引入了两阶段构造的概念: - **4.6.1引入原因**:为了确保对象在完全构造之前不会被意外访问。 - **4.6.2具体措施**:通常涉及构造函数和Initialize方法两个阶段。 - **4.6.3总结**:两阶段构造可以有效防止因构造失败导致的对象不完整状态。 ####五、S60第三版程序框架S60第三版是Symbian OS的一个重要版本,其程序框架对于理解Symbian C++开发至关重要。 - **5.2.1 E32Main()函数**:主入口函数,用于初始化和启动应用程序。 - **5.2.2应用类**:负责创建文档类对象,管理应用程序的生命周期。 - **5.2.3文档类**:负责创建UI类对象,管理用户界面的生命周期。 - **5.2.4 UI类**:应用程序的核心部分,控制UI的行为和外观。 - **5.2.5视图类**:处理用户的交互,展示信息。 - **5.2.6引擎类**:处理后台逻辑,支持视图类的功能。 ####六、Symbian C++程序安装- **6.1在Carbide.C++v1.2下制作安装包**:通过Carbide IDE生成安装包。 - **6.2安装过程中出现的错误提示**:常见问题及解决方法。 ####七、Symbian C++有效的学习方法- **7.1读程序**:阅读源代码是快速掌握Symbian C++的好方法。 - **7.2看文档**:官方文档是获取详细信息的最佳途径。 - **7.3逛论坛**:社区和论坛是交流问题和分享经验的好地方。 - **7.4我经常访问的网站**:推荐一些有用的网站和资源。通过对Symbian C++的深入了解和实践经验的总结,开发者能够更加高效地进行Symbian C++的应用开发。尽管Symbian OS已经不再是主流的操作系统,但其背后的编程理念和技术仍然值得学习和借鉴。
pdf 文件大小:400.03KB