HOME

TheInfoList



OR:

Mobile Information Device Profile (MIDP) is a specification published for the use of
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
on
embedded device An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' as ...
s such as
mobile phone A mobile phone, cellular phone, cell phone, cellphone, handphone, hand phone or pocket phone, sometimes shortened to simply mobile, cell, or just phone, is a portable telephone that can make and receive calls over a radio frequency link wh ...
s and PDAs. MIDP is part of the
Java Platform, Micro Edition Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of portable code for embedded and mobile devices (micro-controllers, sensors, gateways, mobile phones, personal digital assistants, TV set-top ...
(Java ME) framework and sits on top of
Connected Limited Device Configuration The Connected Limited Device Configuration (CLDC) 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. The CLDC is combined with one ...
(CLDC), a set of lower level programming interfaces. MIDP was developed under the
Java Community Process The Java Community Process (JCP), established in 1998, is a formalized mechanism that allows interested parties to develop standard technical specifications for Java technology. Anyone can become a JCP Member by filling a form available at thJCP w ...
. The first MIDP devices were launched in April 2001.


General APIs

The core
application programming interface An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
s are defined by the underlying
Connected Limited Device Configuration The Connected Limited Device Configuration (CLDC) 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. The CLDC is combined with one ...
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 The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inst ...
. LCDUI has a simple screen based approach where a single Displayable is always active at anyone 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 across various mobile devices. 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.


LCDUI acronym

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 A liquid-crystal display (LCD) is a flat-panel display or other electronically modulated optical device that uses the light-modulating properties of liquid crystals combined with polarizers. Liquid crystals do not emit light directly but i ...
User Interface In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine ...
" would reflect the fact that mobile phones normally use LCDs; however, the
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
is not specifically tailored to this particular display technology. It is also said that "LCD UI" stands for "
lowest common denominator In mathematics, the lowest common denominator or least common denominator (abbreviated LCD) is the lowest common multiple of the denominators of a set of fractions. It simplifies adding, subtracting, and comparing fractions. Description The lo ...
" due to the fact the specific UI has the simplest possible design.


javax.microedition.rms

The Record Management System 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 Request The Java Community Process (JCP), established in 1998, is a formalized mechanism that allows interested parties to develop standard technical specifications for Java technology. Anyone can become a JCP Member by filling a form available at thJCP w ...
s 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 A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software (e.g. Windows Notepad). Text editors are provided with operating systems and software development packages, and can be us ...
, or one can use a more advanced IDE such as
NetBeans NetBeans is an integrated development environment (IDE) for Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Windows, macOS, Linux and Solaris. In addition to Java ...
,
IntelliJ IntelliJ IDEA is an integrated development environment (IDE) written in Java for developing computer software written in Java, Kotlin, Groovy, and other JVM-based languages. It is developed by JetBrains (formerly known as IntelliJ) and is a ...
(with bundled Java ME plugin), or
Eclipse An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
(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 The Java Community Process (JCP), established in 1998, is a formalized mechanism that allows interested parties to develop standard technical specifications for Java technology. Anyone can become a JCP Member by filling a form available at thJCP w ...
. *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 MIDP is now succeeded by MEEP as of Java ME 8.


See also

*
MIDlet A MIDlet is an application that uses the Mobile Information Device Profile (MIDP) of the Connected Limited Device Configuration (CLDC) for the Java ME environment. Typical applications include games running on mobile devices and cell phones which ...


Bibliography

*


External links


Mobile Information Device Profile (MIDP)
(MIDP 2.0)
JSR 271 collaboration page
(MIDP 3.0) - You can get the specification, reference implementation and TCK at here.
JSR 271
(MIDP 3.0)
JSR 118
(MIDP 2.0)
JSR 37
(MIDP 1.0)
MIDP 2.0 Authoring Tool


A worldwide list of MIDP enabled phones]{{Dead link, date=August 2018 , bot=InternetArchiveBot , fix-attempted=yes
What's New in MIDP 2.0

What is new in MIDP 3.0 – a quick summary

MIDP New Information
Java device platform Java specification requests