Contents

Foreword by Jan Bosch

Foreword by Antero Taivalsaari

Preface

Acknowledgments

1 Introduction

1.1 Motivation

1.1.1 Leaking Abstractions

1.1.2 Allocation Responsibility

1.2 Commonly Used Hardware and Software

1.2.1 Computing Hardware

1.2.2 Low-Level Software Infrastructure

1.2.3 Run-Time Infrastructure

1.2.4 Software Stack

1.3 Development Process

1.4 Chapter Overview

1.5 Summary

1.6 Exercises

2 Memory Management

2.1 Overview

2.2 Strategies for Allocating Variables to Memory

2.2.1 Static Allocation

2.2.2 Stack

2.2.3 Heap

2.3 Design Patterns for Limited Memory

2.3.1 Linear Data Structures

2.3.2 Basic Design Decisions

2.3.3 Data Packing

2.3.4 Discussion

2.4 Memory Management in Mobile Java

2.4.1 Motivation

2.4.2 Rules of Thumb for Mobile Java

2.5 Symbian OS Memory Management

2.5.1 Naming Conventions

2.5.2 Descriptors

2.5.3 Exceptions

2.5.4 Combining Exceptions and Allocation

2.5.5 Cleanup Stack

2.5.6 Two-Phase Construction

2.5.7 Factory Methods for Two-Phase Construction

2.5.8 Using Symbian Conventions

2.6 Summary

2.7 Exercises

3 Applications

3.1 What Constitutes an Application?

3.2 Workflow for Application Development

3.2.1 Scoping

3.2.2 Performance Considerations

3.2.3 User Interface Design

3.2.4 Data Model and Memory Concerns

3.2.5 Communications and I/O

3.3 Techniques for Composing Applications

3.3.1 Event-Based Programming

3.3.2 Model-View-Controller as the Application Architecture

3.3.3 Auxiliary Files

3.3.4 Managing Applications

3.3.5 Practicalities

3.4 Application Models ...

Get Programming Mobile Devices: An Introduction for Practitioners now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.