|
|
|
Symbian OS is a modular system, and licensees who build products with it are expected to add, remove, and in some cases, modify, components. This means that Symbian OS software written for one phone may or may not be compatible with another phone. As well as cross-device compatibility, you may also want to consider compatibility between different versions (releases) of Symbian OS.
This page summarises these compatibility issues.
The
extensive customisation facilities provided by Symbian OS mean that not all
phones support all the functionality it offers. There is, however, a large core
of interfaces that will be present on all phones. Example of common interfaces
are the large Kernel user library (euser.dll), and the engines for
the key PIM applications Contacts and Agenda.
Pre-platform developers should therefore either check with the phone manufacturer that the interfaces that they require are supported in the phone, or rely on the common interfaces.
User interfaces are likely to be the area of greatest difference between the Symbian OS and the eventual phone. This variability of UIs, over a common operating system core, means that Symbian OS encourages programs to be written with a clean separation of UI code from application logic (or engine) code.
Note that if you use a language other than C++, you may gain stronger cross-phone compatibility. MIDP Java, WAP, and HTML, are all designed to allow user interfaces to be coded without detailed knowledge of the target phone, whether Symbian-OS or otherwise.
The following table lists the key versions of the operating system, its major innovations, and the products (announced before December 2001) that use that release.
|
Symbian have attempted to maintain backward compatibility so that developers can write code that runs on multiple versions of Symbian OS.
Backward source compatibility means that code written
for older versions can be made to run on newer versions by simply rebuilding
it. This compatibility has been broadly maintained across these versions, with
the exception of the UI architecture, which was substantially changed at
Symbian OS v5.1. The best guide to backward source compatibility is the
Support information for each item in the Developer Library's
API Reference.
Symbian also try to maintain backward binary compatibility (allowing old code to run on newer versions without rebuilding), though this is not always possible when new functionality is introduced. The largest binary compatibility break occurred at Symbian OS v5.1, when Symbian OS began using Unicode, causing a break for all interfaces with string (descriptor) parameters.