270 likes | 456 Views
Qt/Embedded/Qtopia Platform. By Martin Jones Senior Software Engineer. Qt/Embedded Provides. Windowing System Device Input Graphics General Purpose Widgets Utility Classes Containers Networking IPC (QCop). Qt/Embedded What’s Missing?. Application/system configuration
E N D
Qt/Embedded/Qtopia Platform By Martin Jones Senior Software Engineer
Qt/EmbeddedProvides • Windowing System • Device Input • Graphics • General Purpose Widgets • Utility Classes • Containers • Networking • IPC (QCop)
Qt/EmbeddedWhat’s Missing? • Application/system configuration • Shared data access • Application launching • Syncing • High-level APIs • Specialized widgets • Hardware abstraction • Document handling
Qtopia Platform • Basic Features • Application Behaviour • Utility Functions • High Level Widgets • PIM Data Access • Services • Data Linking • Hardware Abstraction • Launching • Syncing • Developers Application Qtopia Platform Qt/Embedded Linux Hardware
Qtopia PlatformBasic Features • Standard directory structure • Documents, settings, application data • 3rd party application installation • Shared resources • Plugin system • Widget styles • Font renderers • Image formats, text codecs • Input methods • Application – media formats, applets, etc.
Qtopia PlatformBasic Features (cont) • Categories • Items are placed in categories rather than using hierarchies • An item can belong to multiple categories • Document based model • Documents associated with applications via mimetypes • Selecting document launches appropriate application
Qtopia PlatformApplication Behaviour • QPEApplication • Appearance • Widget Style • Colors • Window Borders • Fonts • Window management • Language translations • System-wide notifications • Time change, volume change, etc.
Qtopia PlatformUtility Functions • Configuration (Config class) • XML Reader (XmlHandler class) • Resource loading (Resource class) • Pixmaps, Icons, Sounds • Applications/Documents • Mimetypes (MimeType class) • Properties (AppLnk, DocLnk classes) • Time management • Locale aware time strings (TimeString class) • Time zone management (TimeZone class) • IR sending and receiving
Qtopia PlatformHigh Level Widgets • Date/time selection • QPETimeEdit, QPEDateEdit, QPEDateTimeEdit • Category selection/editing • CategorySelect, CategoryDialog • Document selection/properties • FileSelector • DocPropertiesDialog • Image selection • ImageSelector
Qtopia PlatformPIM Data Access • Safe APIs for accessing Qtopia PIM data • Contacts, Tasks, Events • Hides underlying data format • Allows safe access to data by multiple processes • Helper functions, e.g. find the next event • Stays in sync with PIM applications • Data will be synced with Qtopia Desktop
Qtopia PlatformServices • Allows applications to invoke functions of other applications • User can specify which application provides each service • Allows 3rd party applications to replace shipped application • Trolltech defines standard services • Opening/Viewing documents • Write Email • Browse Web • Play media • Add/Edit/Show contacts, events, tasks
Qtopia PlatformData Linking • Allows applications to link to other applications’ data • Data is not copied - only links are maintained • Selecting linked data in a view launches source application to display • New in Qtopia 2.0 • Example: Linking to contacts in an appointment
Qtopia PlatformHardware Abstraction • Button mapping • Mapping soft buttons or Yes/No buttons to message boxes • Allow user to specify role of programmable buttons • Sound • Button click • Alarms • Screen lighting • Setting brightness • Dim after inactivity • Storage • External storage devices – SD cards
Qtopia PlatformLaunching • QCopEnvelope • QPE/Application/application channel will start application if necessary to deliver QCop message (guaranteed delivery) • Quicklaunching • Applications built as plugins • Maintains a running Stub application ready for next invocation • Stub links with qtopia libraries – less relocations • Stub initializes qtopia data structures • Fast Load • Leaves applications running in background • Costs memory
Qtopia PlatformSyncing • Qtopia syncs with Qtopia Desktop • Syncs contacts, events, tasks • Allows document transfer • Data backup • Application installation • Interfaces with Outlook • Plugins for other PIMs can be written • Qtopia Desktop platforms • Windows • MacOSX • Linux
Qtopia PlatformDevelopers • Qtopia SDK • Develop on the desktop using the virtual framebuffer • Recompile for target devices • Creates packages in standard ipgk format for distribution • Java • Based on Qt/AWT • Several Java Virtual Machines available for Qtopia • Jeode • IBM
Qtopia Phone Platform • Qt/Embedded Keypad Mode • Button Mapping • Widgets • Phone API • Home Screen • Dialer
Qtopia Phone PlatformQt/Embedded Keypad • Qt widget navigation • Minimal set of buttons • Arrow buttons • Select button • Back/No button • Modal Editing • Up/Down to shift focus • Select to modify or begin editing • Compatible with touch screen
Qtopia Phone PlatformButton Mapping • Two phone types supported • Soft Buttons • Displays a context bar • Requires a Menu button • Soft key may be mapped to Menu • Hard Buttons • No context bar • Requires Menu button, Yes button, No button • Keypad input methods • T9 • Multitap
Qtopia Phone PlatformWidgets • Supports the same widgets as Qtopia PDA Edition • Suitable for small screens • 176x208 • 176x220 • 240x320 • ContextBar class • Provides API for setting the soft button labels. • ContextMenu class • Provides a convenient popup menu bound to the menu button
Qtopia Phone PlatformPhone API • Internally • AT commands interface with GSM phone module • API hides low level implementation • Voice call management • Outgoing calls • Incoming calls • On hold • Conferencing • DTMF tones • Recent/missed calls
Qtopia Phone PlatformPhone API (cont) • SMS sending and receiving • Low level handling • High level handling by Messaging Client • Composing • Inbox, drafts, etc. • SIM card storage • Phone configuration • Signal strength • Preferred network operator • Vibrate mode, etc.
Qtopia Phone PlatformHome Screen • Displays • Missed calls • New messages • Cell info • Phone settings • Call divert • Vibration, Quiet mode (profiles) • Provides simple application launching menus • Documents list • Dialer hotkeys
Qtopia Phone PlatformDialer • Basic dialing • Searching address book • Recent calls • Missed calls • Hold • Call information
Qtopia PlatformFuture • SQL Backend for PIMs • Faster application startup • Lower memory requirements • Faster queries • Sandboxing • Run applications as a different user • Restricted file access • Restricted QCop • Watchdog
Qtopia PlatformSummary • Provides a high-level API for application developers • Provides a consistent environment and user interface • Provides data abstraction • Provides a syncing framework • Provides hardware abstraction • Provides development environment for 3rd party applications
Qtopia Phone PlatformSummary • Provides simple button navigation, with optional touch screen • Provides an abstraction of the low level GSM details • Provides a home screen with status information and quick access to dialer • Provides phone dialing/answering • Provides management of recent/missed calls