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.
Autorentext
Tommi Mikkonen is a professor of software engineering at Tampere University of Technology. He has been the head of the Institute of Software Systems since 2002, and has been responsible for numerous research projects as well as supervised a number of thesis works. His research interests include DisCo, Practise, software evolution, mobile systems, distributed systems, software architectures, and aspect-oriented software development.
Klappentext
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.
Zusammenfassung
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.
Inhalt
Foreword by Jan Bosch xi
Foreword by Antero Taivalsaari xv
Preface xvii
Acknowledgments xxi
1 Introduction 1
1.1 Motivation 1
1.1.1 Leaking Abstractions 1
1.1.2 Allocation Responsibility 3
1.2 Commonly Used Hardware and Software 4
1.2.1 Computing Hardware 5
1.2.2 Low-Level Software Infrastructure 13
1.2.3 Run-Time Infrastructure 14
1.2.4 Software Stack 20
1.3 Development Process 21
1.4 Chapter Overview 23
1.5 Summary 25
1.6 Exercises 25
2 Memory Management 27
2.1 Overview 27
2.2 Strategies for Allocating Variables to Memory 27
2.2.1 Static Allocation 28
2.2.2 Stack 28
2.2.3 Heap 30
2.3 Design Patterns for Limited Memory 31
2.3.1 Linear Data Structures 31
2.3.2 Basic Design Decisions 32
2.3.3 Data Packing 34
2.3.4 Discussion 36
2.4 Memory Management in Mobile Java 37
2.4.1 Motivation 37
2.4.2 Rules of Thumb for Mobile Java 39
2.5 Symbian OS Memory Management 42
2.5.1 Naming Conventions 43
2.5.2 Descriptors 45
2.5.3 Exceptions 46
2.5.4 Combining Exceptions and Allocation 48
2.5.5 Cleanup Stack 49
2.5.6 Two-Phase Construction 52
2.5.7 Factory Methods for Two-Phase Construction 54
2.5.8 Using Symbian Conventions 55
2.6 Summary 57
2.7 Exercises 58
3 Applications 61