The Symbian OS (779886), страница 31
Текст из файла (страница 31)
That model was firstpublished for a wider audience in [Harrison 2004].Since then, a revision of the model has been published for each releaseof the operating system. Since Symbian OS v9, the model has been usedin the broader design and specification processes that are part of alloperating system releases, providing a design base for each release andsupplying the build definition to the software build system.6The UI Framework Layer6.1 IntroductionThe UI Framework layer is the topmost layer of Symbian OS (seeFigure 6.1) and the immediate interface to the ‘variant’ user interfacesupplied by the manufacturer on a phone.Symbian OS is delivered to licensees in a ‘headless’ configuration, witha minimal test user interface which is neither complete nor of productionquality. (Known as TechView, it is considered to be a test and validationUIFrameworkUI FrameworkApplicationServicesOSServicesBaseServicesKernelServices &HardwareInterfaceFigure 6.1 UI Framework layer in the system model122THE UI FRAMEWORK LAYERtool and is not, therefore, part of the operating system proper, althoughin the past it has been exposed to developers through ‘preview’ SDKs.)Mobile phone manufacturers who license Symbian OS either replacethe test user interface with a production quality user interface of theirown, or license a suitable variant user interface.
Typically in the lattercase, the user interface is pre-integrated and pre-tested with Symbian OS,to simplify the task of bringing a device to market.Currently two user interfaces are available for licensing: S60 (fromNokia) and UIQ (from UIQ Technology AB). Another important userinterface is the MOAP user interface developed in Japan by DoCoMo’sFOMA consortium of handset vendors, and used by consortium vendorson FOMA phones.• S60 is developed and licensed by Nokia. It ships on Nokia phonesbased on Symbian OS. Lenovo, LG and Samsung, among others,license and ship S60 phones based on Symbian OS. Licensees havealso included Panasonic, Sendo and Siemens.• UIQ is developed and licensed by UIQ Technology AB (until recentlya fully-owned, Swedish-based Symbian subsidiary, now acquired bySony Ericsson).
Sony Ericsson, Motorola and Arima license and shipUIQ phones based on Symbian OS.• MOAP is developed by the FOMA consortium in Japan as part of theDoCoMo common software platform for 3G FOMA handsets. FOMAmembers, including Fujitsu, Mitsubishi, Sony Ericsson and Sharp, shipMOAP phones based on Symbian OS.• Series 80 and Series 90 were developed by Nokia but are notlicensed to other phone vendors. Series 80 was found on the NokiaCommunicator family of devices based on Symbian OS. Series 90 canstill be found on the Nokia 7710 phone, but has been merged withS60 for future devices.16.2 PurposeThe UI Framework layer is the foundation for building customized userinterfaces on top of Symbian OS and is the immediate interface betweenSymbian OS and the variant UI layer.The UI Framework layer provides the frameworks which custom userinterfaces extend, the class hierarchies from which controls specific to1Interestingly, Series 90 began life as the Hildon user interface, developed by Londonbased Mobile Innovation, now part of Macromedia.
Hildon has since been ported as awidget set to the GNU GTK+ user interface toolkit, in which form it appears on Nokia’sLinux-based 770 Internet Tablet.OVERVIEW123the user interface are derived, and additional supporting componentsused primarily by user interfaces. It provides some specialist genericframeworks, for example animation, which are used by user interfacesbut which are also available directly to applications.The basic graphical and behavioral user interface abstractions areencapsulated in UI Framework layer components such as the controlhierarchy, window interactions and graphics contexts, which determinebasic application behavior.The UI Framework layer is also used by the Java implementation,although Java also makes quite heavy direct use of some lower-levelgraphics frameworks.
(Any such dependencies are transparent to Javaapplications, which see only Java APIs.)6.3 Design GoalsThe UI Framework layer is intended to enable user interface differentiationwithout fragmentation. This requires balancing the sometimes conflicting goals of providing a common, consistent functional and behavioralcore to all user interface variants in order to provide a consistent development target for application writers while also providing the greatestpossible flexibility and customizability to enable maximum user-interfacedifferentiation for phone vendorsThe design goals are that:• the system should be a platform• the different user interfaces should be distinct platforms.6.4 OverviewConceptually, the UI Framework layer has become thinner (functionalityhas migrated upwards) as the user interfaces built on top of it have becomelarger and richer; rich user-interface functionality is overwhelmingly inthe user-interface variants.However, important core user-interface functionality is retained in theframework base classes, from which the user interface variants derive.The framework approach means that many of the key user-interfacedesign decisions (the basic user-interface architecture and broad divisionof responsibilities, managing input methods, the way user interfacesare customized, the basic control hierarchies, and some of the basicGUI application architecture and behavior) are encapsulated in theframeworks, which ‘plumb in’ the underlying operating system support forevent handling (including all input–output events), window managementand drawing, font and graphics support, and so on.124THE UI FRAMEWORK LAYER• The Uikon framework provides abstracted (i.e.
high level or generic),customizable control of the overall GUI look and feel and encapsulates the main classes used to create applications. The underlyingimplementation of the generic application architecture is provided bylower-level frameworks, such as the Application Services layer.• The Control Environment hierarchy (widely known as CONE) providesgeneric screen controls (‘widgets’) that are free of a look and feel andpolicies.• FEP Base, the front-end processor framework, provides input-eventcapture (by key, pen or voice) and support for language preprocessingengines, for example, for handwriting recognition and exotic scriptinput.Supporting components provide additional graphical and other utilities(font, color and drawing support for user interfaces, including graphicseffects such as fading and animation), as well as some useful frameworksthat are used by both user interfaces and applications:• The UI Graphic Utilities and Graphics Effects components containcommon, general-purpose utilities used by user interfaces, for exampledrawing window borders and fading effects.• The Animation and BMP Animation components provide frameworksfor window animation and bitmap-based and sprite-based animationincluding animated clocks and animated user-interface elements.• The Grid framework is a legacy framework specifically supportingcell-like (spreadsheet-style) layout.Additional support for user-interface customization is included as partof the toolkit delivery (outside the scope of this book), which providescomponents that customizers may choose to re-implement as part of thevariant user interface.6.5 ArchitectureUikon and Control Environment (CONE) are the two most significantcomponents in the UI Framework layer from an architectural point ofview, since they determine the overall user interface architecture.
Bothalso provide essential application support.For most purposes, applications do not use Uikon directly, but insteaduse a Uikon-derived custom framework specific to the user interface(for example, Avkon in S60 and Qikon in UIQ). However, there areARCHITECTURE125exceptions in which applications directly use Uikon; for example, applications directly use the many useful static methods of the user interfaceEnvironment object of class CEikonEnv.The Control Environment is used both directly and indirectly by applications. Frequently the main application view is derived directly (fromCCoeControl or MCoeView), bringing all the flexibility of the genericuser interface control framework directly to it. Indirectly, applications usethe Control Environment through the custom framework or the customcontrol set of the user interface variant.UikonUikon can be thought of as the common core on top of which are builtthe variant user interfaces that actually appear on phones.Uikon provides a framework for creating user interfaces includingthe base classes which interface to lower-level system services such asapplication launching; key mapping and command handling; alarms andnotifications; and graphics services.Uikon supplies the base classes from which user interface variantsderive essential application classes (Application, Document and AppUI)and encapsulates the relationships between them.Uikon supplies the factory classes used by the user interface variantto create the hierarchy of custom concrete user interface control classes,including list boxes, scroll bars, buttons, dialogs and popups.
(Basicmenus are not controls but windows.)Uikon loads a static library implementation (interface defined by theUI Look and Feel component) of the core library look-and-feel (LAF)component, which is supplied by the user interface variant. The UILook and Feel component defines a standard set of methods which thevariant user interface implements to define the concrete behavior of userinterface elements, for example, layout and behavior of windows; choiceof fonts and bitmaps; default location of resource files; system font andtext rendering defaults; and the look and feel of toolbar, dialog, buttonand button container classes.