Jump to content

Mobile Information Device Profile

From Alfawiki
Mobile Information Device Profile (MIDP)
Company typeStandard
IndustrySoftware, Mobile computing
FoundedSeptember 19, 2000; 26 years ago (2000-09-19)
FounderJava Community Process
Area served
Embedded devices, mobile phones, PDAs
ProductsJava ME framework component, APIs for mobile application development
ParentJava 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