当前位置: 首页 > news >正文

Symbian OS编码诀窍之设计诀窍

最重要的设计诀窍是将“引擎”代码与用户界面(UI)代码分开,分为不同的模块。这样设计有助于您的程序在不同用户界面系统之间的移植,Symbian OS本身也采用这种设计。
方法之一是在二进制级就进行这个区分。将所有非用户界面相关代码放到独立的引擎.DLL文件中。您的程序中用户界面相关的代码可以链接到这个.DLL文件,从而访问引擎获取其提供的功能。
另一种方法是在源代码级做出区分。应用程序生成为一个单一的.APP文件,但将“引擎”相关代码和用户界面相关代码分到不同的.CPP和.H文件中,以便于管理和调试。
编码时采用这种设计,您可以减轻移植到新的用户界面平台时产生的负担;纯引擎代码经常可以不经修改就在任何用户界面平台上运行。这意味着移植到新用户界面时您只需要移植和优化已经单独分开的用户界面层就行了。
设计时要牢记本地化支持。千万不要将字符串或文字“硬编写”到您的源文件中---应使用Symbian OS提供的资源文件机制来储存字符串。
应坚持使用软件开发包(SDK)和Symbian OS发布版本明确支持并提供文档的API。使用不受支持或“不推荐使用”(deprecated)的API将给您的应用程序带来潜在的问题---Symbian保留在未来的版本中更改或者移除不应被外部开发者使用的API的权利。
不要假定所有的“系统”文件都会出现在所有电话上。持有Symbian OS执照的厂商可以灵活的改制其手机;基于同一平台的电话如果由不同的生产商生产很可能包含不同的支持文件----从而,比如说,如果为您想要播放的音响片段编写固定的地址,此代码将不会保证具有良好的移植性。您至少应该考虑如果未来的手机没有这个系统文件,您将如何处理出错状态的问题。

相关文章:

  • python程序语法元素的描述_python有哪些语法元素
  • Symbian屏幕双缓冲DSA
  • mysql如何判断当前扫描的是第一条记录_MySQL锁机制——你想知道的都在这了
  • CSDN英雄会游记
  • python批量将pdf转成word_python批量实现Word文件转换为PDF文件
  • lstm时间序列预测_pytorch入门使用PyTorch进行LSTM时间序列预测
  • CSDN软件英雄会流水帐
  • jvm内存结构_你真的懂JVM内存结构吗?—深入理解JVM之内存结构
  • 技术大会英雄谱
  • python自动化和java自动化_Python和Java哪个更适合做自动化测试
  • java 创建目录_编程排行榜第一Java语言学习的第一个Java程序,小白快到碗里来...
  • 微软(北京).NET俱乐部第十四次技术沙龙-Visual Studio 2005 Team System企业级开发实训...
  • Visual Basic.net还是C# ——如何选择.net语言
  • c语言解三元一次方程组_人教版初中数学七年级下册三元一次方程组的解法2公开课优质课课件教案视频...
  • 华章公司近期重点产品介绍
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • java取消线程实例
  • Linux快速复制或删除大量小文件
  • Object.assign方法不能实现深复制
  • react 代码优化(一) ——事件处理
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Vue官网教程学习过程中值得记录的一些事情
  • 对象管理器(defineProperty)学习笔记
  • 飞驰在Mesos的涡轮引擎上
  • 聚类分析——Kmeans
  • 看域名解析域名安全对SEO的影响
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 我有几个粽子,和一个故事
  • 详解移动APP与web APP的区别
  • 小程序开发中的那些坑
  • 用简单代码看卷积组块发展
  • 在Mac OS X上安装 Ruby运行环境
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (175)FPGA门控时钟技术
  • (C#)获取字符编码的类
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (二)Linux——Linux常用指令
  • (二)WCF的Binding模型
  • (力扣)1314.矩阵区域和
  • (七)Java对象在Hibernate持久化层的状态
  • (十五)使用Nexus创建Maven私服
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET Micro Framework初体验(二)
  • .NET的数据绑定
  • .net反编译工具
  • .NET命令行(CLI)常用命令
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • //解决validator验证插件多个name相同只验证第一的问题
  • @PreAuthorize注解
  • [ 数据结构 - C++]红黑树RBTree
  • []sim300 GPRS数据收发程序
  • [1204 寻找子串位置] 解题报告
  • [3D基础]理解计算机3D图形学中的坐标系变换