symbian What's new for developers in Symbian OS v9.1? Mark Shackman Version1.1 EVOLUTION OF SYMBIAN OS........... 2 ARCHITECTURAL ENHANCEMENTS. 21 GENERIC FILESERVER HOOKS.. 2.2. 2.3. GENERIC QOS(QUALITY OF SERVICE).. 24 INTEROPERABILITY AND DEVICE MANAGEMENT 3 NEW APIs... BASE SERVICE 3 3 ICs APIs .5 ALISATION/DEPRECATION OF WORLD SERVER. 3.6 JAVA ENHANCEMENTS. 7 NEW AND UPDATED TOOLS. 6 CONCLUSION. 1.Evolution of Symbian OS operators and end-users can be confident that Platform Security provides a more reliable,private and trustworthy open environment in which to work. ion of a mbian os is n introduction of enhanced Platform Security has necessitated changes to APIs that have broken icaon ibereertonyman www.symbian.com
What's new for developers in Symbian OS v9.1? Mark Shackman Version 1.1 1. EVOLUTION OF SYMBIAN OS .................................................................... 1 2. ARCHITECTURAL ENHANCEMENTS......................................................... 2 2.1. GENERIC FILESERVER HOOKS............................................................................ 2 2.2. BLUETOOTH..................................................................................................... 2 2.3. GENERIC QOS (QUALITY OF SERVICE)............................................................... 3 2.4. INTEROPERABILITY AND DEVICE MANAGEMENT ................................................... 3 3. NEW APIs ..................................................................................................... 3 3.1. BASE SERVICES APIS....................................................................................... 3 3.2. MESSAGING API .............................................................................................. 4 3.3. UI AND GRAPHICS APIS.................................................................................... 4 3.4. CALENDAR API ................................................................................................ 5 3.5. TIME ZONE LOCALISATION/DEPRECATION OF WORLD SERVER .............................. 6 3.6. CONTROL FRAMEWORK..................................................................................... 6 4. JAVA ENHANCEMENTS.............................................................................. 7 5. NEW AND UPDATED TOOLS...................................................................... 7 6. CONCLUSION............................................................................................... 7 1. Evolution of Symbian OS Symbian OS v9.1 brings Platform Security to the recently-introduced real-time kernel (EKA2). When coupled with the Symbian Signed programme, developers, phone manufacturers, network operators and end-users can be confident that Platform Security provides a more reliable, private and trustworthy open environment in which to work. The introduction of a new tool chain (see section 5 below) means that code compiled for previous versions of Symbian OS is not binary-compatible with Symbian OS v9.1 code. In some cases, the introduction of enhanced Platform Security has necessitated changes to APIs that have broken source compatibility. Applications will therefore need to be recompiled in order to run on Symbian OS v9.1 and later
symbian Enhancements introduced since Symbian OS v8.1 include Generic hooks are provided in to the file server Bluetooth stereo headset profiles and Bluetooth extended-SCO links Network quality of service requirements can be specified by applications SyncML APIs now conform to OMA standards gAP7RNp8gasagadean85MscoAneoko3nirgsupot.thrdpaW Symbian OS v9.1 provides a native RTP(Realtime Transport Protocol)stack.This stack can be used by licensee and 3rd party applications These enhancements are discussed in section 2 below There have also been a number of changes to the functionality available to developers.particularly in the following areas: 8eoep8rdeeuFangteniesanscamnmniceai0stReamenseesabebfer A new Send-As API allows applications to create and send messages The graphics subsystem has been extended and enhanced .A new Calendar API replaces the Agenda Model,adding group scheduling support These changes are discussed in section 3 below. 2.Architectural Enhancements The old version of the kernel 2.1.Generic fileserver hooks Generic hooks are provided in Symbian OS v9.1 so that multiple vendors can hook into the file system simultaneously;for example allowing concurrent on-access virus scanning and encryption. 2.2.Bluetooth Bluetooth stereo audio headsets Symbian OS v9.1 provides the relevant Bluetooth protocols and infrastructure to allow devices to 9 h Bluetoot at th ty aud enhancing the phone's credentials as an entertainment device. Generic Re mote Control Framework the ue 8ea6roneRegsnaneeosneemoecoraconmandsoanaionemoeGensn8 www.symbian.com
Enhancements introduced since Symbian OS v8.1 include: • Generic hooks are provided in to the file server • Bluetooth stereo headset profiles and Bluetooth extended-SCO links • Network quality of service requirements can be specified by applications • SyncML APIs now conform to OMA standards • Telephony now includes support for – R-USIM, CDMA network roaming support, third party OTA API, NAM programming mode and R5 IMS • Symbian OS v9.1 provides a native RTP (Realtime Transport Protocol) stack. This stack can be used by licensee and 3rd party applications These enhancements are discussed in section 2 below. There have also been a number of changes to the functionality available to developers, particularly in the following areas: • Base Services contains enhanced APIs for error handling, a writable, resizable buffer descriptor class, RBuf, and new IPCs and communications mechanisms • A new Send-As API allows applications to create and send messages • The graphics subsystem has been extended and enhanced • A new Calendar API replaces the Agenda Model, adding group scheduling support These changes are discussed in section 3 below. 2. Architectural Enhancements Symbian OS v9.1 is built on top of the real-time kernel (EKA2). The old version of the kernel (EKA1) is no longer available. 2.1. Generic fileserver hooks Generic hooks are provided in Symbian OS v9.1 so that multiple vendors can hook into the file system simultaneously; for example allowing concurrent on-access virus scanning and encryption. 2.2. Bluetooth Bluetooth stereo audio headsets Symbian OS v9.1 provides the relevant Bluetooth protocols and infrastructure to allow devices to support Bluetooth stereo audio headsets. Bluetooth stereo headsets allow stereo quality audio to be streamed from the phone to the headset so that the phone can act as a media server thus enhancing the phone's credentials as an entertainment device. Generic Remote Control Framework To support stereo headsets, a generic, bearer-agnostic, remote control framework is provided by the Bluetooth subsystem. The framework supports both target and controller roles and allows applications to send and receive remote control commands to and from remote devices in a bearer-agnostic manner
symbian Extended-SCO Support Extended-SCO(eScO)is a Bluetooth v1.2 feature that allows various SCO link parameters to be by the host beneiencedioasosporlescndlingsc0inks API for PAN Bluetooth PAN profile is designed to make a Bluetooth piconet look like an ethemnet network at an application level same PAN network ach remote 2.3.Generic QoS(Quality of Service) channel.The inte rfac channel,supporting the use of QoS by all protocol types. 2.4.Interoperability and Device Management device management and support also for OMA client provisioning v1.2. 3.New APIs 3.1.Base Services APIs 合peph6ae6aaeBasesenvesnsymbanosvo1oadeebpes New Leaving functions in RArray array ude OS v9.1hag added leaving versions of the existing methods in RPointerArray.RArray<TRArrayTt and RArray<TUint>. RBuf descriptor RBuf provides a new writable.dynamically sized.buffer descriptor class that is build-independent This offers developers an easier-to-use replacement for HBufC.which should assist in improving program correctness.For further details,see the technical paper Introduction to RBuf Publish and subscribe,message queues and shared buffer /O Publish and Subscribe allows the setting.retrieving and monitoring of system-wide variables and provides a new c me chanism for pe -to-peer communic en threads.In Symbian OS v9,Publish and Subs scribe is de suc an not true ymbi www.symbian.com
Extended-SCO Support Extended-SCO (eSCO) is a Bluetooth v1.2 feature that allows various SCO link parameters to be specified by the host. The existing Symbian API for handling SCO links (CBluetoothSynchronousLink) has been extended to also support eSCO. PAN Bluetooth PAN profile is designed to make a Bluetooth piconet look like an ethernet network at an application level. Symbian OS v9.1 provides support for a single active PAN network at a time, which means that each remote device that connects to the Symbian device will be merged into the same PAN network. 2.3. Generic QoS (Quality of Service) Symbian OS v9.1 provides an interface to allow applications to specify the QoS they require from their network. This includes support to allow a number of sockets to bundle to an individual channel. The interface provides an unencumbered future proof solution for setting the QoS of a channel, supporting the use of QoS by all protocol types. 2.4. Interoperability and Device Management The SyncML APIs have been enhanced to comply with OMA standards. Specifically, these include OMA Data Synchronisation v1.1 for Agenda & Contacts, OMA Device Management v1.1.2 for device management and support also for OMA client provisioning v1.2. 3. New APIs 3.1. Base Services APIs A number of features have been added to the Base Services in Symbian OS v9.1 to aid developers and support Platform Security. These include: New Leaving functions in RArray Many of the methods of the dynamic array classes have been enhanced to include leaving versions of these functions, for better error condition handling. Specifically, Symbian OS v9.1 has added leaving versions of the existing methods in RPointerArray, RArray<T>, RArray<TInt> and RArray<TUint>. RBuf descriptor RBuf provides a new writable, dynamically sized, buffer descriptor class that is build-independent. This offers developers an easier-to-use replacement for HBufC, which should assist in improving program correctness. For further details, see the technical paper Introduction to RBuf. Publish and subscribe, message queues and shared buffer I/O Publish and Subscribe allows the setting, retrieving and monitoring of system-wide variables and provides a new IPC mechanism for peer-to-peer communication between threads. In Symbian OS v9, Publish and Subscribe is deterministic and bounded (but this is not true where the mechanism has been backported to a previous version of Symbian OS). For further details, see the technical paper Publish and Subscribe
symbian queues offer a peer-to-peer many-to-many communications paradigm.They allow m2e8osy5b82etoeee8escneeerssen9Amesa9eqeue Shared buffer is primarily intended for device driver communications.For further details on all three mechanisms,see the technical paper New IPC mechanisms for Symbian OS. 3.2. Messaging API New secure SendAs serve The original SendAs API ran in the client application process.Under the new platform secure OS se的wip6om e fore been added ies to create and ser ssages The new API allows any client application to create messages in the Drafts folder of the message store and to launch an appropriate message editor for a given message type It supports two An u confirmed end does require confirmation by the UI MTM. Client applications create messag using the rsendasMessage apl.Opening an RSendAsMessage object on a SendAs server session creates a csendAsMessage object in the SendAs server.There is a one-to-one mapping between an RSendAsMessage object and a csendAsMessage object.This design allows client applications to create multiple messages concurrently. 3.3. Ul and Graphics APls A number of enhancements have been made to the graphics and UI subsystems in Symbian OS v9.1. Animated user interfaces application Icons Two types of animation are supported:basic client side animations (CBasicAnimation)and animated sprites that run in the window server thread (CSpri teAnimation). Data formats.A concrete data provider,(CICLAnimationDataProvider)which animates data formats supported by the image converter library (ICL),for instance animated GIFs,has been implemente Icons replaceable while application runs gCPgocaiempsa3rpaherg8retetheapicaonsnumngTmsaloshelons0 www.symbian.com
Message queues offer a peer-to-peer many-to-many communications paradigm. They allow threads to send messages without needing to know if the recipient is listening. A message queue can be globally visible, local to the current process or anonymous. Shared buffer I/O is primarily intended for device driver communications. For further details on all three mechanisms, see the technical paper New IPC mechanisms for Symbian OS. 3.2. Messaging API New secure SendAs server The original SendAs API ran in the client application process. Under the new platform secure OS, this model would require client applications to be trusted with several capabilities to be able to create a message. A new server, implementing the SendAs interface, has therefore been added, which allows applications with the correct capabilities to create and send messages. The new API allows any client application to create messages in the Drafts folder of the message store and to launch an appropriate message editor for a given message type. It supports two methods of sending messages - confirmed or unconfirmed send. A confirmed send requires a confirmation by the UI MTM; typically it would query the user. An unconfirmed send does not require confirmation by the UI MTM. The main client-side API is the RSendAs class, which the client application uses to connect to the SendAs server. The session object on the server-side is an instance of CSendAsSession. Client applications create messages using the RSendAsMessage API. Opening an RSendAsMessage object on a SendAs server session creates a CSendAsMessage object in the SendAs server. There is a one-to-one mapping between an RSendAsMessage object and a CSendAsMessage object. This design allows client applications to create multiple messages concurrently. 3.3. UI and Graphics APIs A number of enhancements have been made to the graphics and UI subsystems in Symbian OS v9.1. Animated user interfaces A new component in Symbian OS v9.1 provides animated graphics support. It allows the creation of animated System GUIs, including support for animated system and application icons. Two types of animation are supported: basic client side animations (CBasicAnimation) and animated sprites that run in the window server thread (CSpriteAnimation). Data is passed to the animation through a generic interface, implemented as a CAnimationDataProvider, to allow the re-use of generic animation code for different data formats. A concrete data provider, (CICLAnimationDataProvider) which animates data formats supported by the image converter library (ICL), for instance animated GIFs, has been implemented. Icons replaceable while application runs An application’s icon can now be replaced while the application is running. This allows the icons to be customised, perhaps as part of a UI theme
symbian Control text alignment Symbinwprovides the opt ofthemaximumihof aro which onyaffects on of nt cuons nave bee rols of th Contro and to align the text in a control with a known baseline,allowing a control to inform the caller of the position of its text. Screen orientation selection egcascaeegheaeapeecheeatoeaeeaeaaaeteu以 Applications can select the orientation of the screen when a vie screen mode switch hook,MCoeview:PrepareForviewActivation(),is available which allows application intervention when switching screen mode Text layout A font independent way to allow consistent layout of text on the screen (font metrics etc.)is ontally adjacent controls containing text,for instance a text label and a text Application language determination The new method RApaLsSession:ApplicationLanguage()returns the language used by the application to display its Ul. Task list dismissal The new method CEikonEnv:DismissTaskList()causes the task list,if displayed,to be closed. Application font change an attribute change such as the font size or it could be a completely different font. Transition effects veral changes have been made to support transition effects.where screen shrink.move.fade in or fade out.while the packaround remains unchanged.o instancemenu bar may appear to fade in gradually,changing from transparent to opaque Window transparency A new 16 million colour display mode EColor16MA has been added. 3.4.Calendar API ew The new calendar apl is not binary or source compatible with the existina apl the intention is to r eserve the Calendar APl in future release but to replace the underlying agenda model implementation with an entirely re-architected calendar component.It has the following features: Redundant classes and functions from the Agenda Model have been removed www.symbian.com
Control text alignment Symbian OS v9.1 now provides the concept of the “maximum width” of a control, which only affects the controls’ calculation of their minimum size. Functions have been added to the CCoeControl class to vertically align the text in multiple horizontally adjacent controls of different concrete types; and to align the text in a control with a known baseline, allowing a control to inform the caller of the position of its text. Screen orientation selection Applications can select the orientation of the screen when a view is switched to, so that individual applications can have a landscape view when the rest of the device is in portrait or vice versa. A screen mode switch hook, MCoeView::PrepareForViewActivation(), is available which allows application intervention when switching screen mode. Text layout A font independent way to allow consistent layout of text on the screen (font metrics etc.) is provided. It allows horizontally adjacent controls containing text, for instance a text label and a text editor, to be aligned with each other. Application language determination The new method RApaLsSession:: ApplicationLanguage() returns the language used by the application to display its UI. Task list dismissal The new method CEikonEnv::DismissTaskList() causes the task list, if displayed, to be closed. Application font change Symbian OS v9.1 provides a new method for changing the font currently being used by an application and notifying all necessary components that it has been changed. The change could be an attribute change such as the font size or it could be a completely different font. Transition effects Several changes have been made to support transition effects, where screen elements may grow, shrink, move, fade in or fade out, while the background remains unchanged. For instance, a menu bar may appear to fade in gradually, changing from transparent to opaque. Window transparency A new 16 million colour display mode EColor16MA has been added. 3.4. Calendar API A new version of the agenda model has been introduced (CalInterimAPI). It is implemented as a thin wrapper over the existing agenda model implementation, which is now internal to Symbian. The new API provides all of the existing agenda model's functionality, but also supports some additional properties to enable group scheduling behaviour and to support the iCalendar standard. The new Calendar API is not binary or source compatible with the existing API. The intention is to preserve the Calendar API in future releases, but to replace the underlying agenda model implementation with an entirely re-architected calendar component. It has the following features: • Redundant classes and functions from the Agenda Model have been removed