Mobile Information Device Profile
| Company type | Standard |
|---|---|
| Industry | Software, Mobile computing |
| Founded | September 19, 2000 |
| Founder | Java Community Process |
Area served | Embedded devices, mobile phones, PDAs |
| Products | Java ME framework component, APIs for mobile application development |
| Parent | Java Platform, Micro Edition (Java ME) |
Mobile Information Device Profile (MIDP) represents a standard designed to facilitate the use of Java on embedded devices such as mobile phones and PDAs. MIDP forms a component of the Java Platform, Micro Edition (Java ME) framework, which is constructed atop the Connected Limited Device Configuration (CLDC) that supplies foundational programming interfaces. Established through the Java Community Process, MIDP-compatible devices first appeared in the market in April 2001.
General APIs
The fundamental application programming interfaces are specified by the CLDC platform beneath MIDP.
javax.microedition.io
This package contains Java ME-specific classes dedicated to input/output operations.
javax.microedition.lcdui
Offers Java ME-tailored classes for managing the GUI.
The LCDUI framework operates on a screen-centric approach where only one Displayable element is active at any moment. It provides standard UI components including List, Alert, TextBox, Form, and Canvas. The visual presentation and layout of these components are determined by the device’s implementation. Canvas delivers granular control over graphics rendering, reserving certain areas for system UI elements. From MIDP 2.0 onward, Canvas supports full-screen mode, significantly improving graphical capabilities for applications such as games.
LCDUI incorporates an abstract command architecture where the positioning of commands is device-dependent. Developers assign commands types like BACK, EXIT, ITEM, and SCREEN to signify their function. This abstraction promotes application portability by enabling devices to map commands to appropriate hardware keys or buttons according to their unique user interface conventions.
LCDUI acronym
Within the JCP Expert Group, LCDUI originated as an internal jest. Although not explicitly defined in MIDP documentation, it stands for Limited Capability Device User Interface. The term gained recognition through the publication Programming Wireless Devices with the Java 2 Platform, Micro Edition.
Alternative expansions include "Liquid Crystal Display User Interface", reflecting common mobile hardware, despite the API’s independence from LCD technology. Additionally, it is sometimes called a "lowest common denominator" UI due to its straightforward design.
javax.microedition.rms
The Record Management System provides persistent data storage capabilities for Java ME applications, functioning similarly to a database on mobile devices.
javax.microedition.midlet
Contains foundational classes for Java ME applications and handles notifications related to application lifecycle states.
Optional JSRs
Additional Java Specification Requests extend MIDP’s core features but are not universally supported across all MIDP-enabled devices.
javax.microedition.messaging
Defines an API for wireless messaging services, including sending SMS and MMS messages.
javax.microedition.pim
Personal Information Management API granting access to device functionalities such as Address Book, To-do List, and Calendar.
javax.microedition.io.file
The File Connection Optional Package (FCOP), specified by JSR 75, enables access to local file systems on devices like PDAs. To address security concerns, MIDlets must declare necessary file access permissions within their JAD files under the MIDlet-Permission attribute.
Development tools
MIDP applications may be created using simple text editors or more sophisticated integrated development environments (IDEs) such as NetBeans, IntelliJ (with the Java ME plugin), or Eclipse (utilizing plugins like EclipseME). These IDEs provide graphical interfaces for form design along with advanced capabilities that improve development productivity.
Limitations of MIDP 1.0
- Absence of active rendering APIs
- Lack of direct access to image pixel data (RGB)
- No support for full screen display
- Audio functionality is not available
- Only mandates HTTP protocol support, not WAP
- Inability to directly detect key states (only key event handling is possible)
- Specification vagueness causing inconsistent vendor implementations
Certain restrictions can be mitigated by employing proprietary vendor APIs or upgrading to MIDP 2.0; however, this might impact the portability of applications.
History
The development of MIDP occurred within the framework of the Java Community Process.
- MIDP 1.0 (JSR 37) - Ratified on September 19, 2000
- MIDP 2.0 (JSR 118) - Ratified on November 20, 2002
- MIDP 3.0 (JSR 271) - Ratified on December 9, 2009
MIDP was eventually succeeded by the ME Embedded Profile included in Java ME 8.
See also
Bibliography
External links
- Mobile Information Device Profile (MIDP) (MIDP 2.0)
- JSR 271 collaboration page (MIDP 3.0)
- What's New in MIDP 2.0