Symbian OS: Essentials and Systems Programming
| Language : | C++ |
|---|
| Level : | Introductory |
|---|
Upcoming Dates & Locations : (next six months) | 12/09/2008 (5 days) - Boston, United States : $1800
|
|---|
An Introduction to Symbian OS for Systems Programmers
This course is a 5 day combination of the Symbian OS Essentials course and the Symbian OS Application Engine Development course.
This is a “hands on” course aimed at developers new to C++ programming for the Symbian OS. It covers a substantial part of the Symbian OS Essentials and Application Engines courses but is pitched at an introductory level.
The course explores programming techniques required by both Symbian OS Systems Programmers (those developing and/or extending the operating system services) and developers working on application engines (services/functionality specific to an application).
Objective
To gain a wide understanding of the Symbian platform and practical experience of essential Symbian OS programming issues relevant to Systems Programmers.
Upon completing this course, participants will be able to:
- Develop simple programs for emulated environments and target devices
- Use Symbian OS development tools competently
- Debug and test Symbian OS code
- Understand the functionality of the fundamental components of the OS
- Use the Symbian OS memory management model
- Use descriptors, arrays and stream stores
- Implement and use active objects in a range of scenarios
Implement and uses Symbian OS services (e.g. libraries and servers)
- Recognize some aspects of good system design
Pre-requisites
The course is designed for new Symbian OS developers who have a reasonable understanding of OO and C++ in particular. Whilst the basic uses of Metrowerk’s CodeWarrior integrated development environment are covered on the course, previous familiarity is beneficial.
Style
The course consists of approximately 50% practical work and 50% lectures.
Course Content
Introduction to the Symbian platform
Key features
Key platform components and their organisation
Application structure: Engines and UIs
Overview of Symbian OS Development – DevKits, CustKits and SDKs: what they’re used for.
- EPOC Development Tools
DevKit, CustKit, SDK installation, usage and documentation
Basic CodeWarrior commands
Symbian platform build tools
Unique Identifiers
Differences between target and emulated platforms
- Application Development
Building programs: GUI vs. console apps
Using simple programs as templates
Debugging and testing techniques
Special Symbian OS coding conventions
- System Structure
Architecture and implications
Kernel mode v user mode operation
Types of function call (user, executive and server requests)
- Resource Management
Overview of memory leaks
Detecting memory leaks using the memory leak and alloc failure tools
Two phase construction pattern
Exception handling using TRAPD
Using the cleanup stack for resource management
- Descriptors
Motivation for Descriptors (c.f. C Strings)
Descriptor Classes and their key features
- Arrays
Dynamic array overview
Use of Segmented vs. Flat arrays
Arrays for fixed/variable sized elements
- Active Objects Introduction
Why AOs
Life cycle of AOs
CActive and CActiveScheduler classes
Implementing simple AOs
- Using Servers
Client Server Architecture overview
Sessions and sub-sessions
Associated cleanup issues
- File Server and Stream Store
Using file server sessions
Basic direct stream store functionality
Overview of different stream stores
- Application/Component Structure
High-level application/system design issues.
UI-Engine and MVC application models
- Building and Testing
Types of Binary
Writing DLLs
Using RTest and test harnesses
- Active objects
Use cases
Alternatives to active objects
- Implementing Servers
When and how to write a server.
Design issues.
Implementing simple servers.
- Binary Compatibility
Maintaining BC
When to break it!
Further Information
If you require further information about this training course, please contact us via the details below: