Mobile Software Development Framework - PowerPoint PPT Presentation

1 / 53
About This Presentation
Title:

Mobile Software Development Framework

Description:

Mobile Software Development Framework 4/14/2009 Richard Yang * – PowerPoint PPT presentation

Number of Views:149
Avg rating:3.0/5.0
Slides: 54
Provided by: YangR53
Category:

less

Transcript and Presenter's Notes

Title: Mobile Software Development Framework


1
Mobile Software Development Framework
4/14/2009 Richard Yang
2
Admin.
  • Homework 4

3
Recap
  • What are the major considerations in developing a
    software environment and application framework
    for mobile wireless applications?
  • Handle heterogeneous devices/configurations
  • Efficient (memory, battery, )
  • Easy programming for event-driven programming

4
Overview
  • Software framework for mobile applications is a
    quite large topic, we will see three
    representative examples
  • TinyOS
  • J2ME
  • Android

5
TinyOS
http//www.tinyos.net/tinyos-1.x/doc/tutorial/
6
Hardware
  • Assembled from off-the-shelf components
  • 4Mhz, 8bit MCU (ATMEL)
  • 512 bytes RAM, 8KB ROM
  • Devices
  • serial Port
  • temperature sensor light sensor
  • 900Mhz Radio (RF monolithics)
  • 10-100 ft. range
  • LED outputs

1.5 x 1.5
7
Schematic Diagram of a Mote
8
Sample Application Environment Monitoring
  • Environment monitoring, e.g.,
  • measure temperature, lighting values/events
  • periodically transmit measurements/events to a
    base station
  • forward data for other nodes that are out of
    range of the base station

9
Requirements on Software Dev. Framework
  • Small foot print
  • devices have limited memory and power resources
  • Support one application at a time but flexible
    reprogramming
  • Flexible configuration of attached devices

10
TinyOS Application Dev. Framework
  • Basic principle Generate customized OS
    application for each given scenario
  • We say each generated scenario generates a tinyOS

11
Schematic Diagram
12
TinyOS Software Components
  • A tinyOS consists of one or more components
    linked together
  • software components motivated by hardware
    component
  • Each component specifies that
  • it provides some interfaces
  • allows other components to control it
  • also uses some interfaces
  • control other components

13
Interface
  • An interface
  • declares a set of functions called commands that
    provider must implement and
  • another set of functions called events that the
    interface user must implement

A uses interfaces I1 and I2
I2
I1
commands
events
commands
events
B provides I1
C provides I2
C provides I3
14
Interface Examples
StdControl.nc interface StdControl   command
result_t init()  command result_t start() 
command result_t stop()
Timer.nc interface Timer command result_t
start( char type, uint32_t interval) 
command result_t stop()  event result_t
fired()
ADC.nc interface ADC async command result_t
getdata()  async command result_t
getContinuousData()  event result_t
dataReady(uint 16_t data)
15
TinyOS Component Implementation
  • Component contains
  • commands and event handlers
  • can invoke lower level commands, but cannot block
  • event handler can signal higher level signals
    while command cannot
  • frame (storage)
  • statically allocated, fixed sized to know memory
    requirement and avoid overhead of dynamic
    allocation

Component
Internal State
Commands
Events
16
Linking Components
  • Two types of components
  • modules individual components
  • configurations assemble components together,
    connecting interfaces (objects) used by
    components to interfaces (objects) provided by
    others

17
Example Application
  • A simple TinyOS application which periodically
    reads in the light intensity value, computes a
    moving average, displays it on the LED

See SenseTaskM.ncSenseTask.nc
18
TinyOS Execution Model
  • Concurrency model only two threads
  • long running tasks that can be interrupted by
    hardware event handlers
  • Tasks perform the primary computation work
  • commands and event handlers post tasks
  • call lower level commands
  • signal higher level events
  • schedule other tasks within a component
  • Each task is atomic with respect to other tasks
  • run to completion, but can be preempted by events
  • the task scheduler is a simple FIFO scheduler

19
Running tinyOS Program
  • make mica
  • ncc -o main.exe -targetmica SenseTask.nc
  • avr-objcopy --output-targetsrec main.exe
    main.srec
  • Use uisp to install

20
A More Complete Sample Application
  • Sensor network monitoring
  • monitor temperature and light conditions
  • periodically transmit measurements to a base
    station
  • sensors can forward data for other sensors that
    are out of range of the base station
  • dynamically determine the correct routing
    topology for the network

21
Internal Component Graph
22
Message Send Transition
  • Total propagation delay up the 5 layer radio
    communication stack is about 80 instructions

23
Evaluation Storage
Component Name Code Size (bytes) Data Size (bytes)
Routing AM_dispatch AM_temperature AM_light AM RADIO_packet RADIO_byte RFM Light Temp UART UART_packet I2C 88 40 78 146 356 334 810 310 84 64 196 314 198 0 0 32 8 40 40 8 1 1 1 1 40 8
Processor_init TinyOS scheduler C runtime 172 178 82 30 16 0
Total 3450 226
  • Scheduler only occupies 178 bytes
  • Complete application only requires 3 KB of
    instruction memory and 226 bytes of data (less
    than 50 of the 512 bytes available)
  • Only processor_init, TinyOS scheduler, and C
    runtime are required

24
Evaluation Timing
Operations Cost (cycles) Time (µs) Normalized to byte copy
Byte copy 8 2 1
Post an Event Call a Command Post a task to scheduler Context switch overhead 10 10 46 51 2.5 2.5 11.5 12.75 1.25 1.25 6 6
Interrupt (hardware cost) 9 2.25 1
Interrupt (software cost) 71 17.75 9
25
Discussion
  • What would we need to extend to tinyOS if we were
    to use it for writing mobile applications for
    mobile phones and PDAs?

26
Java2 Micro Edition (J2ME)
27
Java Platforms
  • Java2 is divided into three platforms
  • J2EE (Java2 Enterprise Edition)
  • business applications
  • J2SE (Java2 Standard Edition)
  • general applications
  • J2ME (Java2 Micro Edition)
  • small devices such as mobile phone, PDA, car
    navigation

28
J2ME
  • Based on Java
  • Uses versioning to avoid using lowest common
    denominator
  • Uses java virtual machines to mask device
    heterogeneity

29
J2ME Versioning
  • To accommodate heterogeneous mobile devices,
    define configurations and profiles
  • A configuration provides fundamental services for
    a broad category of devices (e.g., lang, io,
    util)
  • A profile supports higher-level services common
    to a more specific class of devices or market
    (e.g., life cycle, GUI)
  • An optional package adds specialized services
    that are useful on devices of many kinds, but not
    necessary on all of them

http//developers.sun.com/techtopics/mobility/gets
tart/articles/survey/
30
J2ME
128-512K mem 16-32 bit proc
Upto 2M mem 32 bit proc
31
Two Available J2ME Configurations
  • Connected Limited Device Configuration (CLDC)
  • 160 KB to 512 KB of total memory available
  • 16-bit or 32-bit processor
  • low power consumption and often operating with
    battery power
  • connectivity with limited bandwidth
  • many Java features deleted, e.g., floating point,
    finalize
  • examples cell phones, certain PDAs
  • Connected Device Configuration (CDC)
  • 2 MB or more memory for Java platform
  • 32-bit processor
  • high bandwidth network connection, most often
    using TCP/IP
  • examples set-top boxes, certain PDAs

32
Available J2ME Profiles
  • Mobile Information Device Profile (MIDP)
  • delivers an enhanced user interface, multimedia
    and game functionality, end-to-end security, and
    greater networked connectivity to mobile phones
    and entry level PDAs
  • Foundation Profile
  • set of Java APIs that support resource-constrained
    devices without a standards-based GUI system
  • Personal Profile
  • Together with CDC and Foundation Profile,
    Personal Profile provides a complete application
    environment for the high-end PDA market. Personal
    Profile contains the full set of AWT APIs,
    including support for applets and Xlets
  • Personal Basis Profile
  • provides a J2ME application environment for
    network-connected devices supporting a basic
    level of graphical presentation

33
Mobile Phone Framework
34
Typical J2ME Technology Stack
35
CLDC Available Packages
  • java.lang
  • java.util
  • java.io
  • javax.microedition.io

36
CLDC Classes
  • Boolean
  • Byte
  • Character
  • Class
  • Integer
  • Long
  • Math
  • Object
  • Runnable
  • Runtime
  • Short
  • String
  • StringBuffer
  • System
  • Thread
  • Throwable
  • ByteArrayOutputStream
  • ByteArrayInputStream
  • DataOuput
  • DataInput
  • DataInputStream
  • DataOutputStream
  • InputStream
  • InputStreamReader
  • OutputStream
  • OutputStreamWriter
  • PrintStream
  • Reader
  • Writer
  • Calendar
  • Date
  • Enumeration
  • Hashtable
  • Random
  • Stack
  • TimeZone
  • Vector

java.lang
java.util
java.io
37
Networking Connection
  • Based on a framework called the Generic
    Connection Framework (GCF)
  • GCF consists of
  • an interface hierarchy that is extensible
  • a connection factory, and
  • uses Standard Uniform Resource Locators (URLs) to
    indicate the connection types to create
  • scheme//userpassword_at_hostport/url-pathparamete
    rs
  • e.g.socket//www.j2medeveloper.com80file///myR
    esourceFile.resdatagram//www.j2medeveloper.com7
    001sms//12034326400

http//developers.sun.com/techtopics/mobility/midp
/articles/genericframework/
38
MIDP Hardware
  • Memory (added to CLDC memory)
  • 128 KB non-volatile for MIDP components
  • 8 KB non-volatile for application persistent data
  • 32 KB volatile for KVM
  • Display
  • screen 96x54
  • display depth 1-bit
  • pixel shape (aspect ratio) 11

39
MIDP Hardware
  • Input (one or more)
  • one-handed keyboard (ITU-T phone keypad)
  • two-handed keyboard (QWERTY keyboard)
  • or touch screen
  • Networking
  • two-way
  • wireless
  • possibly intermittent
  • limited bandwidth

40
MIDP Packages
  • javax.microedition.lcdui.game
  • javax.microedition.media
  • javax.microedition.media.control
  • javax.microedition.pki
  • java.io
  • java.lang
  • java.util
  • javax.microedition.io
  • javax.microedition.lcdui
  • javax.microedition.rms
  • javax.microedition.midlet

addition in version 2.0
version 1.0
41
MIDP Application Model
  • An MIDP application is called a MIDlet
  • similar to the J2SE applet
  • GUI based
  • MIDlet suites for applications that share
    resources or data

42
MIDP Application Lifecycle
  • MIDlets move from state to state in the
    lifecycle, as indicated
  • start acquire resources and start executing
  • pause release resources and become quiescent
    (wait)
  • destroy release all resources, destroy threads,
    and end all activity

pauseApp
startApp
destroyApp
destroyApp
43
HelloWorldMIDlet.java
import javax.microedition.midlet. import
javax.microedition.lcdui. public class
HelloWorldMIDlet extends MIDlet implemen
ts CommandListener private Command
exitCommand private Display display private
TextBox t public HelloWorldMIDlet()
display Display.getDisplay(this) exitCom
mand new Command("Exit", Command.EXIT, 2) t
new TextBox(CS434", "Hello World!", 256,
0) t.addCommand(exitCommand) t.setCommandL
istener(this) public void startApp()
display.setCurrent(t) public void pauseApp()
public void destroyApp(boolean
unconditional) public void
commandAction(Command c, Displayable s) if
(c exitCommand) destroyApp(false) no
tifyDestroyed()
44
Developing J2ME Applications
  • Identify the devices
  • Identify the profiles supported by devices
  • using the MID profile, the application will
    target cell phones and pagers
  • Develop application
  • install jdk, a package supporting the wireless
    target (e.g., Sun Wireless Toolkit for CLDC)
  • debug using a simulator
  • for deployment, preverify by pre-generating
    stack map

45
Deploying Two-Phase Class File Verification
Process
Stack map attribute increases the size of a
classfile by appro. 5 but substantially reduces
device mem and CPU usage
46
Deploying
  • Generate deployment files two files
  • Java Application Description file (.jad)
  • Java archive file (.jar)
  • Upload .jad and .jar to the device or a server
    where the device can download the application

47
Over-The-Air Application Loading Process
48
Summary J2ME
  • Scale down a popular programming environment to
    ease learning
  • Use virtual machines to mask (some) device
    heterogeneity
  • Use versioning to avoid using lowest common
    denominator

49
Windows .NET Compact Framework
  • Similar to J2ME
  • Scales down a popular programming environment to
    ease learning
  • the .NET CF is a subset of the full .NET
    framework with some additions
  • designed for resource constrained devices
  • 1,400 classes for .NET CF vs. 8,000 for full
  • 27 UI controls for .NET CF vs. 52 for full
  • 1.5 MB for .NET CF vs. 30 MB for full
  • Uses versioning to avoid using lowest common
    denominator
  • pocket PC
  • pocket PC phone version
  • smart phone version
  • Uses virtual machines to mask device
    heterogeneity
  • programming languages compile to MSIL
  • MSIL is JIT compiled on the device
  • MSIL code is smaller than native executables
  • MSIL allows your code to be processor independent

50
Andriod
51
Andriod
52
Andriod Features
  • Linux kernel as foundation
  • Java based framework (J2SE not J2ME)
  • Dalvik Virtual machine

53
Application Framework Key Concepts
  • Activity
  • Visible screen
  • Service
  • Background services
  • Content provider
  • Shared data
  • Broadcast receivers
  • Receive and react to broadcast events
  • Intent
  • Activating component
Write a Comment
User Comments (0)
About PowerShow.com