slide1 l.
Skip this Video
Loading SlideShow in 5 Seconds..
MIDP PowerPoint Presentation
Download Presentation

Loading in 2 Seconds...

play fullscreen
1 / 30

MIDP - PowerPoint PPT Presentation

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


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


Mobile Information

Device Profile

Johnny Yau

CIS 642

Prof. Insup Lee

  • 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
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
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
  • Stacked on top of Connected Limited Device Configuration (CLDC) and KVM
implementation cont
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
  • Medium Verification
    • Figure out which communication device to use (e.g. Bluetooth or IEEE 802.11)
  • 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
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
  • Download
  • Security Verification
    • Check that the MIDlet does not violate security issues
  • Transformation
    • Convert public representation to internal representation
  • When selected by user application is moved into KVM and run
upgrade removal
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
Provided by Mobile Device
  • Classes and native code that implements CLDC
  • JAVA Virtual Machine (KVM)
  • Native code for the MIDP
provided by jvm cldc
Provided by JVM & CLDC
  • Multi-threading
  • Locking
  • Synchronization
  • Execution of byte code
  • Method dispatching
midlet class
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 Packages
  • java.lang.*
  • java.util.*
  • 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 io19
  • 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 ui21
  • 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
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();       }     } }
development cycle
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
  • Simpler development
  • Runs on acceptably well on heterogeneous platforms
  • 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