Symbian OS S60平台

3

我从这里了解到S60目前是世界领先的智能手机平台之一。
然而,我不明白:

  • S60是做什么的,为什么需要一个平台,当已经存在一个底层的Symbian操作系统时?
  • 如果我使用Symbian C++或Java ME编写应用程序,是为了Symbian操作系统还是S60平台?
  • 我能否绕过S60层直接为Symbian操作系统编写应用程序?
2个回答

10
S60本质上是一个UI框架和一组中间件组件,位于Symbian OS之上。历史上,Symbian提供了基础操作系统(例如内核、通信、多媒体服务、核心应用引擎、参考UI),设备制造商在其之上添加了自己的代码,以区别于竞争对手并优化其设备以适应特定目的。
S60是其中之一,最初为旨在单手使用带键盘的手机开发。还有其他UI框架也在Symbian OS之上,例如诺基亚的Series 80Series 90UIQMOAP(S)
现在,随着Symbian转向Symbian Foundation运营模式,S60和Symbian OS本质上合并为一个Symbian Foundation平台。其他UI框架已停止使用。但目前市场上的设备仍然区分Symbian OS和S60。
  • 如果我用Symbian C++或Java ME编写应用程序,它是为Symbian OS还是S60平台编写的?
  • 我能直接为Symbian OS编写应用程序而绕过S60层吗?
这取决于您使用哪些API。
使用Java ME编写的应用程序更容易不依赖于S60特定的附加组件。在C++中,您可能需要为您的应用程序添加一些UI,因此必须使用S60 Avkon UI。但是,如果您想要更多平台无关的C++应用程序UI,请查看Qt for S60
无论如何,编写C++应用程序以使同一二进制文件可以在所有基于Symbian OS的设备上运行几乎是不可能的。在Java中,“一次编写,到处运行”在理论上有效,但在实践中更像是“一次编写,到处测试并尝试解决设备之间的差异”。

编写C++应用程序以使相同的二进制文件可以在所有基于Symbian OS的设备上运行实际上是不可能的,为什么? 为什么呢? - Kevin Boyd
2
@Kevin Boyd: Symbian OS 9.1和9.1之前的版本之间存在二进制兼容性问题,具有不同的UI框架等。如果你的目标是Symbian OS设备的子集,比如S60第三版设备,那么二进制兼容性是可以实现的。 - laalto
1
仍然存在一些情况,即第三方设备与FP1或FP2设备之间的兼容性出现问题。 SyncML和蓝牙设置是我想到的一些内容。 - Riho
1
@Riho:好的,没问题。但是那里破损的BC API数量相对较少。你不需要在每个项目中都使用它们。如果你确实需要使用它们,可以将API使用封装在适配器DLL中,然后有条件地加载。 - laalto

4
理论上,S60是一个UI框架(Avkon)和应用程序集合,而Symbian OS则提供了基本的操作系统服务。实际上,它更加复杂,因为S60还具有中间件和其他服务,不仅限于纯UI元素。
Symbian确实具有一个通用的UI框架称为UIKON,但我认为它并不经常使用。此外,在日本以外的地方,S60在Symbian世界中占据了主导地位(日本有自己的环境称为MOAP)。
不确定Java问题。
这取决于您的应用程序是否绕过S60。您可以编写非常简单的应用程序和没有依赖于S60的OS级别服务。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接