|
|
Classification: |
C++ |
Category: |
Development |
Created: |
02/04/2003 |
Modified: |
02/07/2003 |
Number: |
FAQ-0847 |
Platform: |
Symbian OS v6.0, Symbian OS v6.1, Symbian OS v7.0 |
|
Question: Not all Symbian OS APIs documented in the Symbian Developer Library for a particular OS version are on all SDKs. Nor are all
the APIs publicised in the SDK for a particular reference design available on all phones based upon that reference design.
How can I be sure the APIs I am using in my code will be supported on the target phone?
Answer: There are three comments that can be made in reply to this question:
1. According to the formal definition of Symbian OS, not all its public APIs need be supported on every phone. However very
many of them do have to be on every phone and the overwhelming majority are on every phone. The situation is described in relation to all versions of Symbian OS and all phones currently on the market
in the technical paper "Symbian OS system definition." This gives an albeit coarse-grained picture of which APIs are available on which phones which should help resolve many
questions. 2. In those few cases where a Symbian OS API is omitted from a reference design such as UIQ or Series 60 (and so in practice
from all phones based on this reference design), it should be a straightforward task to discover the omission as, when you
try to build your code against the relevent SDK (if not before), you will get a link error. 3. Even before writing any code, it should be possible to discover whether or not any particular API is or is not supported
on the phone you are targeting. First, if you look up the class which encapsulates the API of interest in the appropriate
version of the Symbian Developer Library, you will be able to find which lib the class is built into. Then, if a dll of the
same name is provided on the target phone, you can assume that the API you want is available. Notice that Series 60 and UIQ
phones ship without a file browser, so you will have to obtain one and install it to do this checking. File browsers are readily
available for download from Symbian OS community sites. You will find the dlls in \system\libs and a few other subfolders of \system.
The above comments should address most issues, although there is no guarantee that, in the case of so-called "optional replaceable"
components, all published APIs will be supported in the dll version published. However, where Symbian OS licensees customise
or replace a Symbian component (usually by adding functionality or modifying the implementation), the associated dll will
usually have its name converted to upper case letters (or renamed completely in the case of a replaced component).
|
|
|