从这里我读到 S60 目前是世界领先的智能手机平台之一。
但是我无法理解:
- S60 做了什么,当已经存在底层 Symbian OS 时,对平台的需求是什么?
- 如果我用 Symbian C++ 或 Java ME 编写应用程序,是为 Symbian OS 还是 S60 平台编写的?
- 我可以绕过S60层直接为Symbian OS编写应用程序吗?
S60 本质上是一个 UI 框架和一组基于 Symbian OS 的中间件组件。从历史上看,Symbian 提供了基础操作系统(例如内核、通信、多媒体服务、核心应用引擎、参考 UI),设备制造商在其上添加了自己的代码,以从竞争中脱颖而出,并针对特定目的优化他们的设备。
S60 是这些附加组件之一,最初是为旨在单手使用键盘的手机而开发的。在 Symbian OS 之上还有其他 UI 框架,例如诺基亚的80系列和90 系列、UIQ和MOAP(S)。
现在,随着 Symbian 转向 Symbian Foundation 的运行模式,S60 和 Symbian OS 基本上合并为一个 Symbian Foundation 平台。其他 UI 框架已停止使用。但是目前市场上的设备仍然存在 Symbian OS 和 S60 的区别。
- 如果我用 Symbian C++ 或 Java ME 编写应用程序,是为 Symbian OS 还是 S60 平台编写的?
- 我可以绕过S60层直接为Symbian OS编写应用程序吗?
取决于您使用的 API。
使用 Java ME,可以更轻松地编写不依赖于 S60 特定插件的应用程序。在 C++ 中,您可能需要一些 UI 用于您的应用程序,因此必须使用 S60 Avkon UI。不过,如果您想为您的 C++ 应用程序提供更多独立于平台的 UI,请查看Qt for S60。
在任何情况下,编写 C++ 应用程序以便可以在所有基于 Symbian OS 的设备上运行相同的二进制文件实际上是不可能的。在 Java 中,“一次编写到处运行”理论上是可行的,但实际上它更像是“到处编写一次测试并尝试解决设备之间的差异”。
从理论上讲,S60 是一个 UI 框架 (Avkon) 和应用程序集合,其中 Symbian OS 提供了基本的 OS 服务。实际上它更复杂,因为 S60 还具有中间件和其他服务,不仅限于纯 UI 元素。
Symbian 确实具有称为 UIKON 的通用 UI 框架,但我认为它不经常使用。此外,Symbian 世界几乎由日本以外的 S60 主导(它有自己的环境,称为 MOAP)。
不确定Java问题。
这取决于您的应用程序是否绕过 S60。您可以编写非常简单的应用程序和操作系统级别的服务,而不依赖于 S60。