MIDP
Download
1 / 30

MIDP - PowerPoint PPT Presentation


  • 333 Views
  • 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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
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

MIDP

Mobile Information

Device Profile

Johnny Yau

CIS 642

Prof. Insup Lee


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

  • 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
Retrieval

  • Medium Verification

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

  • Negotiations


Negotiations l.jpg
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 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
Installation

  • Download

  • Security Verification

    • Check that the MIDlet does not violate security issues

  • Transformation

    • Convert public representation to internal representation


Launch l.jpg
Launch

  • 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
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 io19 l.jpg
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 l.jpg
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 ui21 l.jpg
javax.microedition.ui

  • Screen

    • For the construction of form based user interfaces


Javax microedition rms l.jpg
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 l.jpg
javax.microedition.midlet

  • 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
Hits

  • Simpler development

  • Runs on acceptably well on heterogeneous platforms


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