Find your PDA here
Knowledge Base
S
Symbian OS | Symbian OS |
|
Symbian OS has a few quirks, which you should know about whether you're switching from Palm OS or any other operating system. A prime example is that Symbian OS uses its own exception-handling mechanism: Leaving. Any function with an "L" at the end of its name can leave. Given limited memory, you can count on a lot of memory exceptions or 'leaves' during the development process. Efficient memory management is the key to avoid leaving the program in a memory muddle. Symbian OS, with its roots in Psion Software's EPOC is structured like many desktop operating systems, with pre-emptive multitasking, multithreading, and memory protection. Symbian OS's major advantage is the fact that it was built for handheld devices, with limited resources, that may be running for months or years. There is a strong emphasis on conserving memory, using Symbian-specific programming idioms such as descriptors and a cleanup stack. Together with other techniques, these keep memory usage low and memory leaks rare. There are similar techniques for conserving disk space (though the disks on Symbian devices are usually flash memory). Furthermore, all Symbian OS programming is event-based, and the CPU is switched off when applications are not directly dealing with an event. This is achieved through a programming idiom called active objects. Correct use of these techniques helps ensure longer battery life. All of this makes Symbian OS's flavour of OPL, Python, Visual Basic, Simkin, and Perl - together with the Java ME and PersonalJava flavours of Java. There are a number of smartphone user interface platforms based on Symbian OS, including open platforms UIQ, Nokia's Series 60, Series 80 and Series 90 and closed platforms such as that developed for NTT DoCoMo's FOMA handsets. This adaptability allows Symbian OS to be used on smartphones with a variety of form factors (e.g. clam-shell or "monoblock"/"candybar", keypad- or pen-driven). Fortunately, Symbian OS also provides a "Cleanup stack" tool to help with leave exceptions. Use the Cleanup stack to handle these leave memory exceptions with minimal trouble. SymbianOS EKA2 also supports hard enough real-time operation that it is possible to build a single-core phone around it- that is, a phone in which a single processor core executes both the user applications and the signalling stack. This is not a feature that is available from Linux or Windows CE. This has allowed SymbianOS EKA2 phones to become smaller, cheaper and more power efficient. There is a large networking and communication subsystem, which has three main servers - ETEL (EPOC telephony), ESOCK (EPOC sockets) and C32 (responsible for serial communication). Each of these has a plug-in scheme. For example ESOCK allows different ".PRT" protocol modules, implementing different types of networking protocol scheme. There's lots of stuff relating to short-range communication links too, such as Bluetooth, IrDA and USB. There's also a large amount of user interface code. Even though the user interfaces themselves are maintained by other parties, the base classes and substructure ("UIKON") for all UIs are present in Symbian OS, along with certain related servers (for example, a view server which controls transitions between different phone user interface screens). There's a lot of related graphics code too - such as a window server and a font and bitmap server. An application architecture provides for standard application types, embedding, and file and data recognition. There is also a selection of application engines for popular smartphone applications such as calendars, address books, and task lists. A typical Symbian OS application is split up into an engine DLL and a graphical application - the application being a thin wrapper over the engine DLL. Symbian OS provides some of these engine DLLs. There are, of course, many other things that don't yet fit into this model - for example, SyncML, Java ME providing another set of APIs on top of most of the OS and multimedia. Java ME applications for Symbian OS are developed using standard techniques and tools such as the Sun Java Wireless Toolkit (formerly the J2ME Wireless Toolkit). They are packaged as JAR (and possibly JAD) files. Both CLDC and CDC applications can be created with NetBeans. Other tools include SuperWaba, which can be used to build Symbian 7.0 and 7.0s programs using Java. Nokia Series 60 phones can also run python scripts when the interpeter is installed, with a custom made API that allows for Bluetooth support and such. There is also an interactive console to allow the user to write python scripts directly from the phone. |