J2ME Presented by May Sayed & Menna Hawash
Outline • Introduction “Java Technology” • Introduction “What is J2ME?” • J2ME Architecture • J2ME Core Concepts • Configurations • Profiles • Optional Packages • CLDC • MIDP and MIDlet • CDC • The Foundation Profile • Developing Tools • Demo
Introduction “Java Technology” • J2EE – Enterprise environment • J2SE- desktop development and low-end business • J2ME- embedded devices and resource constrained devices
Introduction • What is J2ME ? • Java Platform, Micro Edition is a runtime and collection of Java APIs for the development of software for resource constrained devices such as PDAs, cell phones and other consumer appliances.
J2ME Server and Enterprise Computers Servers and Personal Computers Embedded devices Mobile Phones Smart Cards
Core Concepts: Configurations • A Configuration is a complete Java runtime environment consisting of : • Java Virtual Machine to execute Java byte code • Native Code to interface to the underlying system • A set of core Java runtime classes • There are currently two J2ME Configuration: • Connected Limited Device Configurations (CLDC) • Connected Device Configurations (CDC)
Core Concepts: Profiles • A Profile is combined with a Configuration to provide a complete runtime environment for a specific device category. • Adds domain-specific classes to Configurations. • Define user interface classes.
Core Concepts: Profiles • The first Profile released was Mobile Information Device Profile (MIDP). • Another CLDC Profile extending MIDP is Personal Digital Assistant Profile (PDAP), which offers additional classes and features for more powerful handheld devices.
Core Concepts: Profiles (Cont.) • For CDC based Profiles, Foundation Profile (FP) extends CDC with additional J2SE classes. • The Personal Basis Profile extends FP.
Core Concepts: Optional Packages • It is a set of APIs in support of additional, common behaviors that don’t belong in one specific Configuration or Profile. • For example: • The RMI Optional Package. • Java APIs for Bluetooth. • And many others.
CLDC • Connected, Limited Device Configuration • Serves devices with 512 KB or less memory, limited power supply, limited internet connectivity and simple user interface • Such devices as cell phones, pagers and PDAs.
CLDC Packages • java.io • System input and output • java.lang • Classes fundamental to the Java programming language • java.util • Collections, date and time support, miscellaneous utility classes • javax.microedition • Generic connections
MIDP and MIDlet • MIDP is a set of J2ME APIs that define how software applications interface with cellular phones and two-way pagers. It adds to the functionally of CLDC. • Using these APIs, a developer creates a program called a MIDlet, that can be deployed on any of the supported devices (PDAs, cell phone…etc)
CDC • Connected Device Configuration. • Devices that have 2MB or more memory and can support a complete implementation of the standard Java virtual machine. • Best for creating application for TV set top boxes, entertainment systems, embedded devices and other devices of such scale.
The Foundation Profile • Defined for CDC • Extends all APIs provided by CDC, but doesn’t provide user interface ones. • Must be augmented with another profiles that provide user interface such as: • Personal Basis Profile • Personal Profile
J2ME CDC CLDC
Relation of J2ME to J2SE J2SE CDC CLDC
Developing Tools • Developing tools: http://www.netbeans.info/downloads/download.php Download : NetBeans IDE 5.0 Installer NetBeans Mobility Pack 5.0 Installer
References • J2ME grows up, IBM http://www-128.ibm.com/developerworks/java/library/j-j2me/ • Java 2 Platform, Micro Edition (J2ME) ,Sun Microsystems http://java.sun.com/j2me/ • Java 2 Platform, Micro Edition (J2ME) ; JSR 86 Overview http://java.sun.com/j2me/overview.html
References • Java Platform, Micro Edition, Wikipedia http://en.wikipedia.org/wiki/J2ME • White Paper J2ME Programming in a mobile world http://www.openpsa.net/archive/wisdom_white_paper_j2me.pdf • J2ME Core Concepts http://www.developer.com/java/j2me/article.php/1378971