© 2009 Research In Motion Limited Data structures and memory management on mobile devices.

41
© 2009 Research In Motion Limited Data structures and memory management on mobile devices
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    215
  • download

    0

Transcript of © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

Page 1: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data structures and memory management on mobile devices

Page 2: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Agenda

This course covers the following topics:

– Introduction to developing applications for mobile devices

– Methods of application development for mobile devices

– Introduction to GPS and Wi-Fi® technology on BlackBerry® smartphones

GPS Global Positioning System

Page 3: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Agenda

– Introduction to push technology

– Data structures and memory management on mobile devices

– User interface design for mobile devices

– BlackBerry themes and animated graphics

– Security considerations for developing applications for mobile devices

Page 4: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data structures and memory management on mobile devices

Objectives:

– Explain why memory management is important for mobile devices.

– Identify techniques to minimize memory usage.

– Identify data structures that minimize memory consumption.

Page 5: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data structures and memory management on mobile devices

Objectives:

– Identify and describe the purpose of BlackBerry persistence model; MIDP record store; runtime store; File Connection API, and SQLite.

– Describe how to back up and synchronize data.

API application programming interface

MIDP Mobile Information Device Profile

Page 6: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Memory management

Page 7: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Memory management

BlackBerry® Java® Virtual Machine:

– Manages memory usage on the BlackBerry smartphone

– Shares available memory between the BlackBerry smartphone applications and the BlackBerry® Java® Application

Page 8: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Memory management

Low memory issues:

– Java garbage collection automatically reclaims memory that the operating system no longer uses, and combines free memory into large blocks.

– If the BlackBerry smartphone runs out of SRAM space, the BlackBerry Java Virtual Machine swaps memory out to the flash memory.

– If flash memory is also full, then the BlackBerry Java Virtual Machine cannot perform this task effectively.

SRAM static random access memory

Page 9: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Memory management

Disadvantages of the BlackBerry® Java® Development Environment:

– It requires a more advanced skill set.

– Java applications reside on the mobile device itself.

Page 10: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Memory management

Some techniques to minimize memory use:

– Use primitive data types.

– Do not depend entirely on the garbage collector.

– Avoid creating many objects quickly.

– Set object references to null when you are finished .

– Reuse objects.

– Move heavy processing to the server.

Page 11: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Memory management

The low memory manager:

– Handles memory resources on the BlackBerry smartphone when the available memory resources fall below a certain threshold

– Frees memory to provide more available memory on the BlackBerry smartphone

Page 12: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Memory management

Data structure selection defines how many object handles and how much flash memory a BlackBerry Java Application consumes.

Considerations:

– Ensure that the data structure consists of the minimum possible number of objects.

– Use primitive data types instead of objects.

– String objects are as efficient as byte arrays.

Page 13: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Memory management

Object consolidation:

– The amount of flash memory on the BlackBerry smartphone determines the fixed number of persistent object handles that are available in the system.

– The data structure selection determines the rate at which the stored records exhaust the number of persistent object handles.

– A persistent object consumes a persistent object handle and an object handle.

– A transient object consumes only an object handle.

Page 14: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Memory management

To consolidate the object handles into one group:

– Use the net.rim.device.api.system.ObjectGroup class.

– The consolidated object handle is read-only.

– To change the object, first ungroup it.

Page 15: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Memory management

The garbage collector determines whether an object is reachable.

The garbage collection system reclaims and reuses resources as it identifies and discards objects that a program no longer needs.

Two types:

– RAM garbage collection

– Full garbage collectionRAM random access memory

Page 16: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Memory management

RAM garbage collection:

– Removes unreferenced objects from RAM

– Initiates only when the BlackBerry Java Virtual Machine cannot allocate an object because of a lack of space in RAM

– Takes 500 to 600 milliseconds to execute

Page 17: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Memory management

Full garbage collection:

– Performs a RAM garbage collection operation

– Marks objects in flash memory that are no longer referenced or persistent

– Releases nonpersistent object handles in RAM and flash memory

Page 18: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Memory management

Full garbage collection is initiated when:

– The BlackBerry Java Virtual Machine cannot allocate an object because of a lack of available space in RAM

– A process is about to exceed its currently allocated heap size

– The BlackBerry Java Virtual Machine cannot allocate a new object because the object handles are not available

– The BlackBerry smartphone is idle

Page 19: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Memory management

Idle garbage collection:

– Occurs only when the system calculates that a garbage collection operation is beneficial for optimal system performance and maximized battery performance

– Improves performance without affecting the BlackBerry smartphone user experience

Page 20: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

Page 21: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

Data can be stored on a BlackBerry smartphone by:

– BlackBerry persistence model

– MIDP record store

– Runtime store

– File Connection API

– SQLite

Page 22: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

Access to memory:

– It inhibits applications from causing problems accidentally or maliciously in other applications or on the BlackBerry smartphone.

– Applications can write to the BlackBerry smartphone memory that the BlackBerry Java Virtual Machine uses.

– Custom applications can only access persistent storage or user data, or communicate with other applications through specific APIs.

Page 23: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

File systems and paths:

– BlackBerry smartphones include the following types of on-board memory:

• Internal flash (///store/home/user)

• Internal SD card (///system)

• microSD memory card (///SDCard)

Page 24: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

Persistent data storage:

– Persistable objects include String and Integer.

– The application that creates the data lets you share data between applications.

– Packages

• net.rim.device.api.system.PersistentStore

• net.rim.device.api.system.PersistentObject

• net.rim.device.api.util.Persistable

Page 25: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

Persistent data storage:

– To save an object, use a unique ID to add it to the persistent store.

– To be persistable, a data class needs to implement the Persistable interface.

– Each PersistentObject has a unique long key.

ID identification

Page 26: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

Persistent data storage tasks:

– Create a persistent data store

– Store persistent data

– Retrieve persistent data

– Remove persistent data

Page 27: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

MIDP record storage:

– MIDP allows you to port an application across multiple BlackBerry smartphones that are compatible with Java® ME.

– Persistent data is stored as records in RecordStore objects.

– Each RecordStore object belongs to a single MIDlet suite.

Page 28: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

MIDP record storage tasks:

– Create an MIDP record store

– Add a record to a record store

– Retrieve a record from a record store

– Retrieve all records from a record store

Page 29: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

Runtime storage:

– BlackBerry smartphones use a runtime store as a central location in which BlackBerry Java Applications can share runtime objects.

– The runtime store is not persistent.

– When you restart the BlackBerry smartphone, the data in the runtime store is cleared.

Page 30: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

Runtime storage tasks:

– Retrieve the runtime store

– Add an object in the runtime store

– Replace an object in the runtime store

– Retrieve a registered runtime object

– Retrieve an unregistered runtime object

Page 31: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

Data storage

SQLite:

– BlackBerry devices that run BlackBerry Device Software version 5.0 or later have the SQLite library integrated into the operating system and virtual machine.

– The SQLite API enables you to develop applications that use the integrated SQLite database.

– The net.rim.device.api.database package includes classes that enable you to work with SQLite.

– Each SQLite database is stored in a single file.

Page 32: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

Data storage

SQLite best practices:

– Use a SQLite database browser with the BlackBerry Smartphone Simulator.

– Reduce the database size by using the vaccuum command.

– Optimize SQLite database performance.

Page 33: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

Data management:

– The BlackBerry API set allows an application to persist data in multiple ways.

– BlackBerry Persistent Store APIs and MIDP RMS APIs ( JSR 37 and JSR 118) are available on all Java®-based BlackBerry smartphones.

– Stores data persistently to flash memory.

– Data persists even if the battery is removed.

Page 34: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

File connection APIs provide a traditional file system and support for saving data directly to the file system on the BlackBerry smartphone or to a microSD card.

– File package to access the file system for the microSD media card: javax.microedition.io.file

– File package to define the File Connection APIs: javax.microedition.io.file (two interfaces and three classes)

Page 35: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

Persistent store APIs:

– Designed to provide a flexible and robust data storage interface

– Save entire Java objects to memory without having to serialize the data first

– Retrieve the Java object from memory and process the information

– No size limit exists on a persistent store

– Do not provide a relational database model

Page 36: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

MIDP record management system APIs:

– Provide a simple record management system that lets you create a data store object and retain a series of records within that object

– First serialize data into a byte array format before storing it locally

– Do not provide inherent indexing or relationships between records

RMS record management system

Page 37: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

Data storage

MIDP record management system APIs:

– The size limit for a single RMS data store varies, based on the device software version; limits range from 64KB to 512KB.

– An application can create multiple RMS data stores.

– RMS APIs are part of the standard MIDP specification, so all BlackBerry smartphones that support MIDP also support the RMS APIs.

Page 38: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited

Data storage

Backing up and synchronizing data:

– The BlackBerry® Desktop Manager backs up and restores the application database at the same time as other BlackBerry smartphone databases.

– To synchronize data to remote data sources, build the synchronization logic into the BlackBerry Java Application.

– A BlackBerry Java Application connects to a computer-based application to send the data over a USB connection using the BlackBerry Desktop Synchronization APIs and the BlackBerry Desktop Manager. USB universal serial bus

Page 39: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

Data storage

Backing up and synchronizing data:

– The BlackBerry® Enterprise Server includes functions for back up, restore, and synchronization

– The implementation is the same as the BlackBerry Desktop Manager, but is wireless

– The process saves BlackBerry Java Application data with the user account settings and the other BlackBerry device data that backs up

Page 40: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

Data storage

Backing up and synchronizing data:

– The Synchronization Server SDK provides third-party developers the ability to develop custom data source connectors for the wireless synchronization between a BlackBerry smartphone and data repository.

– The connectors ensure that when data records are updated on the server, the corresponding changes are pushed out to the local information stored on the BlackBerry smartphone.

– The Synchronization Server SDK includes a dynamic link library that provides a connector for backup and restore functions.

Page 41: © 2009 Research In Motion Limited Data structures and memory management on mobile devices.

© 2009 Research In Motion Limited