Programming Mobile Devices: An Introduction for Practitioners
Format: PDF / Kindle (mobi) / ePub
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.
stored in ROM, ﬂash, or disk, if such a facility is available in the device. When a program is run, it is usually loaded from its location in the storage to RAM for execution. This enables the use of updates for ﬁxing bugs as well as the use of user-installed applications. Figure 1.9 demonstrates one way to allocate program and associated data in different memory locations. For ROM-based programs, in-place execution can be used. This saves RAM, as there is no need to create an additional copy of
graphics and sound, for instance. Secondly, also expectations on wireless facilities have been increasing. Therefore, including data ﬁles for improved look and feel takes more memory than used to be the case. 3.3.4 Managing Applications Like all applications, also applications in mobile devices need to be managed. This implies a number of operations as well as a format that is used to host applications before their installation. In this section, we address these issues. A number of management
an MMS using an SMS even if it would make more sense to send a textual response only. 4.4 Managing Memory Consumption Related to Dynamically Linked Libraries As already discussed in Chapter 2, memory consumption forms a major concern in the design of software for mobile devices. At the same time, a dynamically linked library is often the smallest unit of software that can be realistically managed when developing software for mobile devices. Therefore, in this section we introduce some patterns
introduced by Noble and Weir (2001) for managing memory consumption at DLL level. One particular detail that should be considered is that when managing memory consumption, some of the available memory will necessarily be allocated for implementing management routines. 4.4.1 Memory Limit Setting explicit limits regarding memory usage for all parts of the system is one way to manifest the importance of controlling memory usage. Therefore, make all dynamically linked libraries (and other
process resides in ROM. 4.7.1 Standard Structure of Dynamically Linked Libraries The general structure of dynamically linked libraries in the Symbian environment is based on static offset-based linking, and the export interface table is referred to as ordinal. There are several key concepts that are related to the topic, including the library structure, applied implementation techniques, and binary compatibility. We will address these topics in more detail in the following. Structure of