You are previewing Programming Mobile Devices: An Introduction for Practitioners.
O'Reilly logo
Programming Mobile Devices: An Introduction for Practitioners

Book Description

With forewords by Jan Bosch, Nokia and Antero Taivalsaari, Sun Microsystems.

Learn how to programme the mobile devices of the future!

The importance of mobile systems programming has emerged over the recent years as a new domain in software development. The design of software that runs in a mobile device requires that developers combine the rules applicable in embedded environment; memory-awareness, limited performance, security, and limited resources with features that are needed in workstation environment; modifiability, run-time extensions, and rapid application development.

Programming Mobile Devices is a comprehensive, practical introduction to programming mobile systems. The book is a platform independent approach to programming mobile devices: it does not focus on specific technologies, and devices, instead it evaluates the component areas and issues that are common to all mobile software platforms. This text will enable the designer to programme mobile devices by mastering both hardware-aware and application-level software, as well as the main principles that guide their design.

Programming Mobile Devices:

  • Provides a complete and authoritative overview of programming mobile systems.

  • Discusses the major issues surrounding mobile systems programming; such as understanding of embedded systems and workstation programming.

  • Covers memory management, the concepts of applications, dynamically linked libraries, concurrency, handling local resources, networking and mobile devices as well as security features.

  • Uses generic examples from JavaTM and Symbian OS to illustrate the principles of mobile device programming.

Programming Mobile Devices is essential reading for graduate and advanced undergraduate students, academic and industrial researchers in the field as well as software developers, and programmers.

Table of Contents

  1. Cover Page
  2. Title Page
  3. Copyright
  4. Contents
  5. Foreword by Jan Bosch
  6. Foreword by Antero Taivalsaari
  7. Preface
  8. Acknowledgments
  9. 1: Introduction
    1. 1.1 Motivation
    2. 1.2 Commonly Used Hardware and Software
    3. 1.3 Development Process
    4. 1.4 Chapter Overview
    5. 1.5 Summary
    6. 1.6 Exercises
  10. 2: Memory Management
    1. 2.1 Overview
    2. 2.2 Strategies for Allocating Variables to Memory
    3. 2.3 Design Patterns for Limited Memory
    4. 2.4 Memory Management in Mobile Java
    5. 2.5 Symbian OS Memory Management
    6. 2.6 Summary
    7. 2.7 Exercises
  11. 3: Applications
    1. 3.1 What Constitutes an Application?
    2. 3.2 Workflow for Application Development
    3. 3.3 Techniques for Composing Applications
    4. 3.4 Application Models in Mobile Java
    5. 3.5 Symbian OS Application Infrastructure
    6. 3.6 Summary
    7. 3.7 Exercises
  12. 4: Dynamic Linking
    1. 4.1 Overview
    2. 4.2 Implementation Techniques
    3. 4.3 Implementing Plugins
    4. 4.4 Managing Memory Consumption Related to Dynamically Linked Libraries
    5. 4.5 Rules of Thumb for Using Dynamically Loaded Libraries
    6. 4.6 Mobile Java and Dynamic Linking
    7. 4.7 Symbian OS Dynamic Libraries
    8. 4.8 Summary
    9. 4.9 Exercises
  13. 5: Concurrency
    1. 5.1 Motivation
    2. 5.2 Infrastructure for Concurrent Programming
    3. 5.3 Faking Concurrency
    4. 5.4 MIDP Java and Concurrency
    5. 5.5 Symbian OS and Concurrency
    6. 5.6 Summary
    7. 5.7 Exercises
  14. 6: Managing Resources
    1. 6.1 Resource-Related Concerns in Mobile Devices
    2. 6.2 Common Concerns
    3. 6.3 MIDP Java
    4. 6.4 Symbian OS
    5. 6.5 Summary
    6. 6.6 Exercises
  15. 7: Networking
    1. 7.1 Introduction
    2. 7.2 Design Patterns for Networking Environment
    3. 7.3 Problems with Networking Facilities and Implementations
    4. 7.4 MIDP Java and Web Services
    5. 7.5 Symbian OS and Bluetooth Facilities
    6. 7.6 Summary
    7. 7.7 Exercises
  16. 8: Security
    1. 8.1 Overview
    2. 8.2 Secure Coding and Design
    3. 8.3 Infrastructure for Enabling Secured Execution
    4. 8.4 Security Features in MIDP Java
    5. 8.5 Symbian OS Security Features
    6. 8.6 Summary
    7. 8.7 Exercises
  17. References
  18. Index