CIS 642 - Mobile Information Device profie

AbdurehmanDawud 16 views 30 slides Aug 12, 2024
Slide 1
Slide 1 of 30
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30

About This Presentation

Mobile


Slide Content

MIDP
Mobile Information
Device Profile
Johnny Yau
CIS 642
Prof. Insup Lee

Introduction
MIDP = Mobile Information Device
Profile
Spearheaded by Sun, Motorola, and
Nokia
Latest attempt by Sun to bring JAVA
into embedded systems, specifically
mobile phone

Motivation Behind MIDP
Heterogeneous development
platforms in mobile phone arena
Short product life cycles
MIDP attempts to solve that via
offering a standard environment for
application programmers

What is MIDP?
Set of JAVA APIs
Implements a MIDlet class
Addresses issues such as user
interface, persistent storage,
networking, and application model
Targeted towards mobile phones
Basically JAVA for mobile phones

Implementation
Stacked on top of Connected Limited
Device Configuration (CLDC) and
KVM

Implementation (cont)
Operates over existing network
protocols such as IrDA, Bluetooth,
IEEE 802.11, and wireless networks
Specifications are targeted towards
mobile phones
Other devices such as PDAs may find
more use in a super set of the MIDP
APIs

Service Model

Retrieval
Medium Verification
Figure out which communication device
to use (e.g. Bluetooth or IEEE 802.11)
Negotiations

Negotiations
Server and mobile device exchange
information about the MIDlet and
mobile device, respectively
Information such as device
capabilities (e.g. processing power,
volatile memory available), device
size, MIDlet requirements may be
exchanged

Negotiations (cont)
Crux of the useful capabilities
offered by MIDP
Especially important when it comes
to making things work over devices
with different sized screens and
different capabilities

Installation
Download
Security Verification
Check that the MIDlet does not violate
security issues
Transformation
Convert public representation to
internal representation

Launch
When selected by user application is
moved into KVM and run

Upgrade & Removal
Applications can be upgraded when
new versions become available
An application permanently stored
locally on device can be removed
from persistent storage when
selected for removal by user

Provided by Mobile Device
Classes and native code that
implements CLDC
JAVA Virtual Machine (KVM)
Native code for the MIDP

Provided by JVM & CLDC
Multi-threading
Locking
Synchronization
Execution of byte code
Method dispatching

MIDlet Class
All MIDP applications MUST inherit
from the MIDlet class
Does not have a main() function
Cannot call System.exit()
It triggers a SecurityException to be
thrown

JAVA Packages
java.lang.*
java.io.*
java.util.*
javax.microedition.io.*
javax.microedition.ui.*
javax.microedition.rms.*
javax.microedition.midlet.*

javax.microedition.io
StreamConnection
To open a basic connection that
reads/writes simple data.
ContentConnection
To open a connection that provides
content length, type, and encoding
information. This interface extends
from the StreamConnection interface.

javax.microedition.io
HttpConnection
To open a connection that provides
capabilities to interface through HTTP
including getting/setting headers and
HTTP-specific handling. This interface
extends from the
ContentConnectioninterface.

javax.microedition.ui
Offers two major choices in interface
design
Canvas
Used to construct a custom interface
using the Graphics object
Mainly used for multithreaded games or
non-traditional interfaces

javax.microedition.ui
Screen
For the construction of form based user
interfaces

javax.microedition.rms
Contains the classes needed to
implement a temporary storage
database on the device
Limited in capabilities because of the
restrictions imposed by mobile
phones

javax.microedition.midlet
MIDlet
Used to build MIDP applications

Hello World MIDlet
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMidlet extends MIDlet implements CommandListener
{
    // Initialize the Midlet Display variable
    private Display midletDisplay;
    // Initialize a variable for the doneCommand
    private Command doneCommand;
    public HelloMidlet()
    {
      // Retrieve the display from the static display object
      midletDisplay = Display.getDisplay(this);
        // Initialize the doneCommand
      doneCommand = new Command("DONE", Command.SCREEN, 1);
    }

     /**
     * Create the Hello Midlet World TextBox and associate
     * the exit command and listener.
     */
    public void startApp()
    {
        // Create the TextBox containing the "Hello Midlet World!!" message
        TextBox textBox = new TextBox("Hello Midlet", "Hello Midlet World!!", 256, 0);
        // Add the done Command to the TextBox
        textBox.addCommand(doneCommand);
        // Set the command listener for the textbox to the current midlet
        textBox.setCommandListener( (CommandListener) this);
        // Set the current display of the midlet to the textBox screen
        midletDisplay.setCurrent(textBox);
    }
    /**
     * PauseApp is used to suspend background activities and release
     * resources on the device when the midlet is not active.
     */
    public void pauseApp()
    {
    }
   

 /**
     * DestroyApp is used to stop background activities and release
     * resources on the device when the midlet is at the end of its
     * life cycle.
     */
    public void destroyApp(boolean unconditional)
    {
    }
    /*
     * The commandAction method is implemented by this midlet to
     * satisfy the CommandListener interface and handle the done action.
     */
    public void commandAction(Command command, Displayable screen)
    {
      // If the command is the doneCommand
      if (command == doneCommand)
      {
            // Call the destroyApp method
            destroyApp(false);
            // Notify the midlet platform that the midlet has completed
            notifyDestroyed();
      }
    }
}

Screenshot

Development Cycle
Write application using MIDP APIs
Compile
Pre-verify
Pre-processes the class for use in KVM
Test
Package classes into a .jar file
Test with Package

Hits
Simpler development
Runs on acceptably well on
heterogeneous platforms

Misses
Too bloated really for mobile phones
Not powerful enough for devices like
PDAs and Wireless Internet
Appliances that have more resources
available
Though a superset of the APIs may
work fine
Tags