Download PDF Symbian OS Explained Effective C++ Programming for Smartphones by Jo Stichbury


Sinopsis
 
It’s with you all the time, ready to send and receive phone calls or messages, play alarms to wake you, connect to the phone network or other devices, organize your personal information or play games. Whatever you want to do, you want access to your phone to be instant. It should be ready without the long boot-up you expect from a PC. It should react to user input from the moment you pick it up. And it should be reliable. As a mobile phone owner, how many of your contacts’ phone numbers do you know? Your phone keeps your personal data for you and it’s essential that it doesn’t lose it.
 
Let’s examine the consequences of these features on the design of a mobile operating system, such as Symbian OS. The phone may be small and light, but, as users, we still demand it to have a reasonable battery life. This places huge importance on efficient power management. The operating system cannot drain  the battery and must allow the processorto power parts of the system down where possible, although it cannot ever power off completely because it must handle incoming calls and messages, and signal alarms.
 
The user expects the phone to be responsive, not sluggish to respond to each key press; the operating system and hardware must carefully balance demands for good performance speed with the consumption requirements of power-hungry processors. Costs are also important: they limit the processor and amount of memory in a mobile device. The operating system must be efficient, to make best use of the limited
processor and memory resources available, whilst using the least power.
 
Besides being efficient, the operating system must be robust when the limited resources are exhausted. It must be engineered to cope with low memory conditions, loss of power or when a communications link is unavailable. Memory management is key. The operating system must track precious system resources accurately and free them when they are not required. It’s not acceptable for memory to slowly leak away, resulting in disintegration in performance and usability until the user is forced to reboot. The operating system should make it easy for software engineers to write code that runs without memory leaks and can handle out-of-memory conditions when they occur.
 
The mobile phone market is a mass market, with many millions of units shipped. It’s difficult, if not impossible, to recall them or require the user to upgrade through service packs. So when a phone is shipped, it’s shipped. It must not have any serious defects. Not only must the platform on which a phone is based be well-engineered, it must also provide the means for developers to build, debug and test robust code.
 
 
Content
 
  1. Class Name Conventions on Symbian OS
  2. Leaves: Symbian OS Exceptions
  3. The Cleanup Stack
  4. Two-Phase Construction
  5. Descriptors: Symbian OS Strings
  6. Good Descriptor Style
  7. Dynamic Arrays and Buffers
  8. Event-Driven Multitasking Using Active Objects
  9. Active Objects under the Hood
  10. Symbian OS Threads and Processes
  11. The Client–Server Framework in Theory
  12. The Client–Server Framework in Practice
  13. Binary Types
  14. ECOM
  15. Panics
  16. Bug Detection Using Assertions
  17. Debug Macros and Test Classes
  18. Compatibility
  19. Thin Templates
  20. Expose a Comprehensive and Comprehensible API
  21. Good Code Style
 
 

Download PDF Programming Java 2 Micro Edition on Symbian OS A developer’s guide to MIDP 2.0 by Martin de Jode


Sinopsis


The success of an open operating system for smartphones is closely linked to the degree to which the functionality of lower levels of software and hardware can be accessed, modified, and augmented by add-on software and hardware. Java MIDP 1.0 allowed only modest access to underlying Symbian OS functionality. Java MIDP 2.0 exploits it much more fully and this book brings you the most up-to-date information available for programming Java MIDP 2.0 for Symbian OS. As Java MIDP 2.0 smartphones begin to ship in volume in 2004, we are witnessing the coming of a third wave of mobile phones.
 
The first wave was voice-centric mobile phones. Mobile phone manufacturers have performed wonders of optimization on the core feature of these phones – their ability to provide great mobile voice communications. Successive generations of products improved their portability, battery life, reliability, signal handling, voice quality, ergonomics, price, and usability. In the process, mobile phones became the most successful consumer electronics product in history.
 
The second wave was rich-experience mobile phones. Instead of just conveying voice conversations between mouth and ear, these phones provided a much richer sensory experience than their predecessors. High-resolution color screens conveyed data vividly and graphically. High-fidelity audio systems played quality music through such things as ringtones and audio files. These phones combined multimedia with information and communications, to dramatic effect.
 
But the best was still to come. The primary characteristic of the third wave of mobile phones is their openness. Openness is an abstract concept, but one with huge and tangible consequences for developers. The key driver is that the growing on-board intelligence in modern phones – the smartness of the hardware and software – can now be readily accessed by add-on hardware and software. The range of applications and services that can be used on a phone is not fixed at the time of manufacture, meaning new applications and services can be added afterwards. The phone can be tailored by an operator to suit its customers and these customers can then add further customizations, reflecting specific needs or interests.



Content

  1. J2ME and MIDP
  2. Introduction to J2ME
  3. Getting Started
  4. MIDP 2.0 and the JTWI
  5. Java APIs for Bluetooth Wireless Technology
  6. MIDP 2.0 Case Studies
  7. Writing Quality Code for Smartphones
  8. Making Java Code Portable
  9. Writing Optimized Code
  10. The Evolution of the Wireless Java Market
  11. The Market, the Opportunities and Symbian’s Plans