1 / 30

MIDP - PowerPoint PPT Presentation

  • Updated On :

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.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'MIDP' - Mia_John

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Slide1 l.jpg


Mobile Information

Device Profile

Johnny Yau

CIS 642

Prof. Insup Lee

Introduction l.jpg

  • 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 l.jpg
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 l.jpg
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 l.jpg

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

Implementation cont l.jpg
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

Retrieval l.jpg

  • Medium Verification

    • Figure out which communication device to use (e.g. Bluetooth or IEEE 802.11)

  • Negotiations

Negotiations l.jpg

  • 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 l.jpg
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 l.jpg

  • Download

  • Security Verification

    • Check that the MIDlet does not violate security issues

  • Transformation

    • Convert public representation to internal representation

Launch l.jpg

  • When selected by user application is moved into KVM and run

Upgrade removal l.jpg
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 l.jpg
Provided by Mobile Device

  • Classes and native code that implements CLDC

  • JAVA Virtual Machine (KVM)

  • Native code for the MIDP

Provided by jvm cldc l.jpg
Provided by JVM & CLDC

  • Multi-threading

  • Locking

  • Synchronization

  • Execution of byte code

  • Method dispatching

Midlet class l.jpg
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 l.jpg
JAVA Packages

  • java.lang.*

  • java.io.*

  • java.util.*

  • javax.microedition.io.*

  • javax.microedition.ui.*

  • javax.microedition.rms.*

  • javax.microedition.midlet.*

Javax microedition io l.jpg

  • 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 io19 l.jpg

  • 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 l.jpg

  • 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 ui21 l.jpg

  • Screen

    • For the construction of form based user interfaces

Javax microedition rms l.jpg

  • 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 l.jpg

  • MIDlet

    • Used to build MIDP applications

Hello world midlet l.jpg
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);     }

Slide25 l.jpg

     /**      * 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()     {     }

Slide26 l.jpg

 /**      * 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();       }     } }

Development cycle l.jpg
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

Slide29 l.jpg

  • Simpler development

  • Runs on acceptably well on heterogeneous platforms

Misses l.jpg

  • 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