Mobile Information Device Profile
Encyclopedia
Mobile Information Device Profile (MIDP) is a specification published for the use of Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 on embedded devices such as mobile phone
Mobile phone
A mobile phone is a device which can make and receive telephone calls over a radio link whilst moving around a wide geographic area. It does so by connecting to a cellular network provided by a mobile network operator...

s and PDAs
Personal digital assistant
A personal digital assistant , also known as a palmtop computer, or personal data assistant, is a mobile device that functions as a personal information manager. Current PDAs often have the ability to connect to the Internet...

. MIDP is part of the Java Platform, Micro Edition
Java Platform, Micro Edition
Java Platform, Micro Edition, or Java ME, is a Java platform designed for embedded systems . Target devices range from industrial controls to mobile phones and set-top boxes...

 (Java ME) framework
Software framework
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software...

 and sits on top of Connected Limited Device Configuration
Connected Limited Device Configuration
The Connected Limited Device Configuration is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation...

 (CLDC), a set of lower level programming interfaces. MIDP was developed under the Java Community Process
Java Community Process
The Java Community Process or JCP, established in 1998, is a formalized process that allows interested parties to get involved in the definition of future versions and features of the Java platform....

. The first MIDP devices were launched in April 2001.

General APIs

The core application programming interface
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

s are defined by the underlying Connected Limited Device Configuration
Connected Limited Device Configuration
The Connected Limited Device Configuration is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation...

 system.

javax.microedition.io
Contains the Java ME-specific classes used for I/O operations.

javax.microedition.lcdui
Contains the Java ME-specific classes used for the GUI
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

.

LCDUI has a simple screen based approach where a single Displayable is always active at a time in the application user interface. LCDUI API provides a small set of displayables common in mobile device user interfaces: List, Alert, TextBox, Form and Canvas. For all displayables the device MIDP implementation has control over the presentation and layout of the displayable. Canvas is a low-level graphics surface for which an application has full control over what is rendered to it, although normally some space is reserved for system areas like screen title and indicators common in mobile device UIs. Since MIDP 2.0, Canvas also supports a full-screen mode that allows use of full screen graphics, which is especially useful for games.

LCDUI also has a quite unique approach of abstract operations, called Commands. The placement of commands added to a displayable is completely up to the device implementation of this toolkit. The application programmer uses API specified command types to indicate the usage or purpose of the command in an application user interface. Common types are BACK, EXIT, ITEM, SCREEN. The idea of the command abstraction is to make applications more portable between various mobile device. Application developers should use the command types properly to indicate the purpose of an operation, and device implementation then places the operation to the common location for a given type in a device's specific user interface style. This may be e.g. a specific key, like "a back navigation key" for BACK commands or a button on screen.

The acronym LCDUI was actually an in-house joke within the JCP Expert Group. Though undefined in the MIDP specifications, it denotes Limited Capability Device User Interface. (The joke was that no-one else really knew what it stood for). Later, the book Programming Wireless Devices with the Java 2 Platform, Micro Edition gave this as the definition.

Other common pseudo-definitions have appeared. "Liquid Crystal Display
Liquid crystal display
A liquid crystal display is a flat panel display, electronic visual display, or video display that uses the light modulating properties of liquid crystals . LCs do not emit light directly....

 User Interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...

" would reflect the fact that mobile phones normally use LCDs; however, the API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 is not specifically tailored to this particular display technology. It is also said that "LCD UI" stands for "lowest common denominator" due to the fact the specific UI has the simplest possible design.

javax.microedition.rms

Provides a form of persistent storage for Java ME; a database for the mobile device.

javax.microedition.midlet
Contains the base classes for Java ME applications, and allows applications to be notified of changes to their state.

Optional JSRs

The following Java Specification Requests are a selection of the optional JSRs which can be added on top of a MIDP implementation to add extra functionalities. As optional JSRs there is no guarantee that a MIDP handset will implement such APIs.

javax.microedition.messaging
Wireless messaging API (optional), for sending SMS and MMS messages.

javax.microedition.pim
Personal information management API (optional), access the device's Address Book, to-do List, Calendar.

javax.microedition.io.file
The File Connection Optional Package (FCOP) is one of two optional packages defined by JSR 75 through the Java Community Process.
The FileConnection API specified in JSR 75 gives access to the local file systems on devices like PDA. In order to overcome security issues MIDlet needs to include requested file permission in its JAD file under MIDLet-Permission property.

Development tools

There are several different ways to create MIDP applications: code can be written in a plain text editor
Text editor
A text editor is a type of program used for editing plain text files.Text editors are often provided with operating systems or software development packages, and can be used to change configuration files and programming language source code....

, or one can use a more advanced IDE
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 such as NetBeans
NetBeans
NetBeans refers to both a platform framework for Java desktop applications, and an integrated development environment for developing with Java, JavaScript, PHP, Python, Groovy, C, C++, Scala, Clojure, and others...

, IntelliJ
IntelliJ IDEA
IntelliJ IDEA is a commercial Java IDE by JetBrains. It is often simply referred to as "IDEA" or "IntelliJ."-History:The first version of IntelliJ IDEA was released in January 2001, and at the time was the only available Java IDE with advanced code navigation and code refactoring capabilities...

 (with bundled Java ME plugin), or Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

 (with plugins such as EclipseME) which has a user interface for graphically laying out any forms you create, as well as providing many other advanced features not available in a simple text editor.

Limitations of MIDP 1.0

  • MIDP 1.0 has no active rendering APIs
  • MIDP 1.0 has no support for direct access to image pixels (RGB data)
  • MIDP 1.0 has no support for full screen mode
  • MIDP 1.0 has no support for audio.
  • MIDP 1.0 requires only HTTP support.
  • MIDP 1.0 cannot query key status (although key events are supported)
  • The specifications are not always clear, leading to differences in implementations.


Some limitations may be avoided by using a vendor-specific API or MIDP 2.0, which obviously reduces the portability of the application.

History

MIDP was developed under the Java Community Process
Java Community Process
The Java Community Process or JCP, established in 1998, is a formalized process that allows interested parties to get involved in the definition of future versions and features of the Java platform....

.
  • MIDP 1.0 (JSR 37) - Approved on September 19, 2000
  • MIDP 2.0 (JSR 118) - Approved on November 20, 2002
  • MIDP 3.0 (JSR 271) - Approved on December 9, 2009

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK