Book description
Many problems encountered by engineers developing code for specialized Symbian subsystems boil down to a lack of understanding of the core Symbian programming concepts. Developing Software for Symbian OS remedies this problem as it provides a comprehensive coverage of all the key concepts. Numerous examples and descriptions are also included, which focus on the concepts the author has seen developers struggle with the most. The book covers development ranging from low-level system programming to end user GUI applications. It also covers the development and packaging tools, as well as providing some detailed reference and examples for key APIs. The new edition includes a completely new chapter on platform security.
The overall goal of the book is to provide introductory coverage of Symbian OS v9 and help developers with little or no knowledge of Symbian OS to develop as quickly as possible. There are few people with long Symbian development experience compared to demand, due to the rapid growth of Symbian in recent years, and developing software for new generation wireless devices requires knowledge and experience of OS concepts. This book will use many comparisons between Symbian OS and other OSes to help in that transition.
Get yourself ahead with the perfect introduction to developing software for Symbian OS.
Table of contents
- Copyright
- Foreword
- Foreword1
- Biography
- Author Acknowledgments
- Symbian Press Acknowledgments
- Symbian OS Code Conventions and Notations Used in the Book
-
1. Smartphones and Symbian OS
- 1.1. Notes on this New Edition
- 1.2. Smartphone Concepts
- 1.3. Smartphone Features
- 1.4. The Mobile OS
- 1.5. Symbian OS — A Little History
- 1.6. Symbian OS Smartphones
- 1.7. Other Smartphone Operating Systems
-
2. Symbian OS Quick Start
- 2.1. What Do You Need to Get Started?
- 2.2. Firing Up the Development Tools
- 2.3. Simple Example Application
- 2.4. Building and Executing on the Emulator
- 2.5. A Carbide.c++ Project
- 2.6. Building for the Smartphone
-
3. Symbian OS Architecture
- 3.1. Components in Symbian OS
- 3.2. Multitasking in Symbian OS
- 3.3. Shared Code: Libraries, DLLs, and Frameworks
- 3.4. Client–Server Model
- 3.5. Memory in Symbian OS
- 3.6. The Kernel
- 3.7. Active Objects and Asynchronous Functions
- 3.8. GUI Architecture
- 3.9. High-Performance Graphics
- 3.10. The Communication Architecture
- 3.11. Application Engines and Services
- 3.12. Platform Security
-
4. Symbian OS Programming Basics
- 4.1. Use of C++ in Symbian OS
- 4.2. Non-standard C++ Characteristics
- 4.3. Basic Data Types
- 4.4. Symbian OS Classes
-
4.5. Exception Error Handling and Cleanup
- 4.5.1. Error Handling via Return Codes
- 4.5.2. Leaves and TRAP Harnesses
- 4.5.3. The TRAP and TRAPD Macros
- 4.5.4. Leave Functions
- 4.5.5. What Does the 'L' Suffix Mean?
- 4.5.6. Cleanup Stack
- 4.5.7. Object Types and the Cleanup Stack
- 4.5.8. More Complex Cleanup
- 4.5.9. Other Cleanup Functions
- 4.5.10. LC Functions
- 4.5.11. Leaves when Creating Objects
- 4.5.12. Leaves in Constructors
- 4.5.13. Two-Phase Construction
- 4.5.14. Panics
- 4.5.15. Assert Macros
- 4.6. Libraries
- 4.7. Executable Files
- 4.8. Naming Conventions
- 4.9. Summary
-
5. Symbian OS Build Environment
- 5.1. SDK Directory Structure
- 5.2. Build System Overview
- 5.3. Basic Build Flow
- 5.4. Build Targets
- 5.5. What is a UID?
- 5.6. The Emulator
- 5.7. Building Shared Libraries
-
5.8. DLL Interface Freezing
-
5.8.1.
- 5.8.1.1. Why is DLL freezing important?
- 5.8.1.2. Disabling interface freezing
- 5.8.1.3. Enabling interface freezing
- 5.8.1.4. What does the abld freeze command do?
- 5.8.1.5. How is the DEF file used?
- 5.8.1.6. First build of a DLL
- 5.8.1.7. Sample DEF file
- 5.8.1.8. Inserting a new function
- 5.8.1.9. Interface violation
- 5.8.1.10. Unfreezing a DLL
-
5.8.1.
- 5.9. Installing Applications on the Smartphone
-
6. Strings, Buffers, and Data Collections
- 6.1. Introducing the Text Console
- 6.2. Descriptors for Strings and Binary Data
-
6.3. The Descriptor Classes
- 6.3.1.
- 6.3.2. Descriptor Base Classes
- 6.3.3. String Literals
- 6.3.4. Buffer Descriptors
- 6.3.5. Pointer Descriptors
-
6.3.6. Heap Descriptors
- 6.3.6.1. HBufC descriptor
- 6.3.6.2. Modifying HBufC data
- 6.3.6.3. Creating a HBufC descriptor from another descriptor
- 6.3.6.4. RBuf descriptor
- 6.3.6.5. Using RBuf::CleanupClosePushL()
- 6.3.6.6. Creating RBuf from another descriptor
- 6.3.6.7. Taking ownership of preallocated buffers
- 6.3.6.8. Multiple RBuf assignments
- 6.3.6.9. Resizing buffers
- 6.4. Descriptor Methods
- 6.5. Converting Between 8-Bit and 16-Bit Descriptors
- 6.6. Dynamic Buffers
- 6.7. Templates in Symbian OS
- 6.8. Arrays
- 6.9. Other Data Collection Classes
-
7. Platform Security and Symbian Signed
- 7.1. What is Platform Security?
- 7.2. What Platform Security is Not
- 7.3. What this Means to a Developer
- 7.4. Capabilities for API Security
- 7.5. Application Signing in Symbian
- 7.6. Getting Your Application Symbian Signed
- 7.7. Developer Certificates
-
8. Asynchronous Functions and Active Objects
- 8.1. Asynchronous Functions
- 8.2. Introducing Active Objects
- 8.3. The Active Scheduler
- 8.4. Active Scheduler Error Handling
- 8.5. Active Object Priorities
- 8.6. Canceling Outstanding Requests
- 8.7. Removing an Active Object
- 8.8. Active Object Example
- 8.9. Active Object Issues
- 8.10. Using Active Objects for Background Tasks
-
9. Processes, Threads, and Synchronization
-
9.1. Processes
- 9.1.1. An Example Process
- 9.1.2. Launching a Process
- 9.1.3. Setting and Retrieving Process Arguments
- 9.1.4. Communicating with Other Processes
- 9.1.5. Process Names
- 9.1.6. Querying the Phone's Running Processes
- 9.1.7. Process Priority
- 9.1.8. Terminating a Process
- 9.1.9. Checking the Status of a Process
- 9.1.10. Signaling when a Process Ends
- 9.1.11. Other Symbian OS Process Facts
- 9.2. Using Threads on Symbian OS
- 9.3. Sharing Memory Between Processes
- 9.4. Memory Chunks
- 9.5. Thread Synchronization
-
9.1. Processes
- 10. Client–Server Framework
-
11. Symbian OS TCP/IP Network Programming
- 11.1. Introduction to TCP/IP
- 11.2. Network Programming Using Sockets
- 11.3. Symbian OS Socket API
- 11.4. Example: Retrieving Weather Information
- 11.5. Making a Network Connection
- 12. GUI Application Programming
- References
Product information
- Title: Developing Software for Symbian OS: A Beginner's Guide to Creating Symbian OS v9 Smartphone Applications in C++
- Author(s):
- Release date: December 2007
- Publisher(s): Wiley
- ISBN: 9780470725702
You might also like
book
Windows XP for Starters: The Missing Manual
Windows XP powers millions of PCs and is without a doubt the most widely used operating …
book
Linux® and Windows® Interoperability Guide
Configuring, programming, and administering mixed Linux/Windows environments Practical Linux/Windows network design and implementation Covers all key …
book
Raspberry Pi Zero W Wireless Projects
Build DIY wireless projects using the Raspberry Pi Zero W board About This Book Explore the …
book
The Designer's Guide to the Cortex-M Processor Family, 2nd Edition
The Designer’s Guide to the Cortex-M Microcontrollers gives you an easy-to-understand introduction to the concepts required …