J2ME 25 July 2002. Overview  What is J2ME?  The CLDC and CDC configurations  MIDP and MIDlets  Development Tools  Demonstrations.

Slides:



Advertisements
Similar presentations
MIDP Mobile Information Device Profile Johnny Yau CIS 642 Prof. Insup Lee.
Advertisements

Pengantar Teknologi Mobile 12
Introduction of J2ME Mobile solutions. Overview What is J2ME. How does J2ME work? Java J2ME Carriers and Products. The Two Configuration of J2ME. Profiles.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Multimedia Network Communications Subject:T0934 / Multimedia Programming Foundation Session:13 Tahun:2009 Versi:1/0.
Lab Information Security Using Java (Review) Lab#0 Omaima Al-Matrafi.
Writing Your First MIDlet Running JAVA on a Cell Phone Jon A. Batcheller January 27, 2004.
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
The road to reliable, autonomous distributed systems
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 10 Java for MIDs Rob Pooley
Quality Assurance and Testing of J2ME Programs for Mobiles Phones.
Developing an Application with J2ME Technology Scott Palmer, Nat Panchee, Judy Sullivan, Karen Thabet, Sten Westgard.
J2ME RMI 1 Java 2 Platform, Micro Edition Implementation of J2ME RMI Application Farooq Sheikh.
Interactive Visual System By Arthur Evans, John Sikorski, and Patricia Thomas.
J2ME for Palm Speaker: Chen-Nien Tsai Adviser: Kai-Wei Ke.
Introduction to Mobility Java Technology Mobile and Wireless Networks.
Prepared By E.Musa Alyaman1 Chapter 2 The Java Overview.
J2ME Prepared by: - Gaery- Ronny - Alan- Andy. Why Technology for Mobile Devices? The nature of wireless devices is changing Old devices: All the software.
Presenting a Technical Paper. Outline Wireless Development – Introduction Wireless Development – Introduction Wireless Issues & Considerations Wireless.
PDA Programming Using J2ME Presenter :涂俊凱 Date : 2003/4/8.
Making Cell Phone Games An Overview Ray Ratelis Guild Software, Inc.
Introduction to Computer Programming CSC 1401: Introduction to Programming with Java Lecture 2 Wanda M. Kunkle.
Developing J2ME Applications Mobile and Wireless Networks.
The 21th century Repairman Agenda Introduction J2EE J2ME Demonstration.
Cosc 4730 Phone Programming in Java An Introduction.
Java 2 Micro Edition Mano Chen Senior Technical Consultant
Java Platform, Micro Edition (J2ME)
Java 2 Platform, Micro Edition (J2ME) By Xiaorong Wang.
SM3121 Software Technology Mark Green School of Creative Media.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
Topics on KVM Presented By Xiaozhou David Zhu. Topics covered Introduction Java2 Platform Micro Edition CLDC KVM.
Android Introduction Platform Overview.
J2ME Java for Mobile Environments Based on J2ME In A Nutshell, by Kim Topley, O’Reilly & Associates Inc., 2002, and Tetris by Alexei Patinov.
Introduction to Java CSIS 3701: Advanced Object Oriented Programming.
Java Security. Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security Manager.
Platforms and tools for Web Services and Mobile Applications J2ME based Applications Bent Thomsen Aalborg University 3rd and 4th of June 2004.
Michael Brockway Advanced Applications Development in Java J2ME -- Introduction l Introduction / Overview l Java 2 Micro Edition n CLDC n MIDP l Examples.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 11 J2ME and MIDlets Rob Pooley
Lecture 2 “Structure of computer” Informatics. Computer is  general purpose device that can be programmed to carry out a set of arithmetic or logical.
Framework and application bytecode size CLDC MIDP kXML parser Utility classes Graphics Logic (MIDlet) Application Data (XML file)
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Computer Science Wi-Fi App using J2ME and MVC Architecture Advisor : Dr. Chung-E Wang Department of Computer Science Sacramento State University Date:
J2ME Presented by May Sayed & Menna Hawash. Outline Introduction “Java Technology” Introduction “What is J2ME?” J2ME Architecture J2ME Core Concepts 
Java 2 Micro Edition (J2ME) and the world of java
1Basics of J2ME. 2 Objectives –Understand the different java API’s and how the mobile edition API’s fit in –Understand what a mobile configuration and.
Martin Schmidt / The Silent Revolution Mobile Java.
Java 2 security model Valentina Casola. Components of Java the development environment –development lifecycle –Java language features –class files and.
Programming of Handheld and Mobile Devices Lecture 2 What is a MID? Rob Pooley
Java 2 Micro Edition The Connected, Limited Device Configuration.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 18 Microsoft’s Approach 1 –.NET Mobile Framework part 2 Rob.
Java 2 Platform, Micro Edition (J2ME)
Mobile Programming Mobile Programming - Ordibehesht Ordibehesht 1390.
Introduction to Programming 1 1 2Introduction to Java.
Enhanced mobile services in Java enabled phones Björn Hjelt Sonera zed ltd Supervisor: Professor Jorma Jormakka.
Java & The Android Stack: A Security Analysis Pragati Ogal Rai Mobile Technology Evangelist PayPal, eBay Java.
Introduction to JAVA Programming
Advance Computer Programming Market for Java ME The Java ME Platform – Java 2 Micro Edition (J2ME) combines a resource- constrained JVM and a set of Java.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
1 Mobile Operating Systems BY:- Aashish Uppal CSE-1/7 th Sem (63/ )
The Java Platform Micro Edition Java ME
Java N Amanquah.
Part II Software When developing software there are several particularities to be aware of: Java is widespread used because of the platform independence.
Programming of Handheld and Mobile Devices
MOBILE DEVICE OPERATING SYSTEM
Wireless Instant Messaging Using J2ME
By Jeff Heaton An Overview of J2ME By Jeff Heaton
Introduction of J2ME Mobile solutions.
Java for Mobile Devices
Presentation transcript:

J2ME 25 July 2002

Overview  What is J2ME?  The CLDC and CDC configurations  MIDP and MIDlets  Development Tools  Demonstrations

What is J2ME?  Java implementation for devices that cannot support full Java 1.3 (J2SE)  Ironic: Java was initially developed for use in portable,embedded systems  Examples: PDA’s, mobile phones, very small servers (Tini), webpads  The family also includes J2EE for servers

Configurations  A configuration defines a class of devices in hardware terms: type and speed of processor, memory size, type of network connection  Consists of a virtual machine specification for the configuration and a set of java classes that the configuration supports

Configurations  Two configurations currently defined  CLDC = low-end consumer electronics device, 512K RAM, e.g. mobile phone (currently also PDA’s)  CDC = device with circa 2MB RAM (high end PDA’s, set-top boxes, 3G phones)

Configurations  Particular virtual machine is NOT part of the spec, but the reference designs tend to get used  For CLDC, the Kilobyte (KVM) virtual machine implements the configuration  CVM implements CDC specification for Linux and Wind River VxWorks  Other VM’s exist, eg. IBM J9 for CLDC

Profiles  A profile consists of a set of classes that extend a configuration to add particular functionality  There are profiles to extend CLDC, different profiles to extend CDC  Profile can depend on another profile for functionality, as well as on the configuration

CLDC Profiles  MIDP = mobile information device profile: display and storage for mobile phones, network connection based on http v1.1. Code for MIDP devices called “MIDlets”  PDAP = better screen and more memory (not implemented)

CDC Profiles  Foundation Profile = includes almost all core java 2 v1.3 classes.  Personal Basis Profile = basic user interface profile (written?)  Personal Profile = adds multi-window user interface functionality to personal basis profile (written?)  RMI profile, Game profile

CLDC Configuration CLDC MIDPPDAP

CDC Configuration CDC RMI gamegame foundation personal Personal basis

Other small Javas (all based on Java 1.1)  JavaCard (smartcard, e.g. GSM SIM card, French phone card, 16K RAM)  EmbeddedJava -- allows class-by-class definition of device capabilities  PersonalJava -- v1.1.8, devices such as iPaq, Nokia 92xx communicator, full feature JVM

The CLDC  Assumes 128KB of flash or battery backed persistent storage  32KB volatile storage  Assumes no display or input device  Assumes only that the OS can run the VM (e.g. KVM). Could be PalmOS, BREW, NOS,…

CLDC specifications  No floating point (NB there is no separate J2ME compiler)  No reflection  No finalization  Limited multithreading  Limited error reporting  No JNI

CLDC class loading  Class loading mechanism provided by the implementation and cannot be extended by application code  Must support compressed.jar files  Can convert to whatever internal format is needed (e.g..prc)

CLDC security  CLDC devices range from those on which no new code can be loaded at all by user to those in which code can be downloaded from untrusted sources  Not enough computational power for J2SE security model  Application code runs in a “sandbox”

CLDC sandbox  Application code cannot create its own class loaders  Application cannot substitute its own classes for core java or javax.microedition classes  No JNI, hence no native code except that installed with the VM  Preverification of class files on host before download, used to assist bytecode verification at runtime

MIDP and MIDlets  CLDC by itself is more limited than most handheld devices  MIDP extends CLDC to include a simple UI  Runs on KVM  PDAP intended for PDA’s, but currently MIDP being used for them (e.g. Palms)

MIDP requirements  128KB RAM (vs. 32KB for CLDC)  Additional 32KB for Java heap  8KB nonvolatile storage  96x54 pixel display  Input device that can enter 0-9, arrow keys, select  Support http 1.1 “in some way”

MIDP java platform  CLDC packages plus stuff in javax.microedition and timer in java.util  MIDlet more restricted than application  MIDlet cannot halt the VM  MIDlet does not enter at main()  Device must set microedition.locale property  Must also set microedition.profiles property

MIDlets  Must contain at least one class derived from javax.microedition.midlet.MIDlet  A number of methods must be implemented by the MIDlet so it will run in the sandbox  Must use only API’s from the MIDP specification for portability

MIDlet suite  Set of MIDlets installed/removed as a group that can access device resources in shared manner  All MIDlets in a suite run on same VM, share same instances of classes and resources (share data)  Usual java primitives for synchronization

MIDlet suite security  MIDlets in a suite can access persistent storage in a shared fashion -- no access across suites to persistent storage (security and namespace issues)  No authentication (SecurityManager) as in J2SE  Some protections against malicious MIDlets in the limited API

MIDlet execution  Must have default public constructor  3 states: paused, active, destroyed  Upon loading, constructor runs, and then MIDlet is paused  Upon becoming active, runs method startApp()  May later pause, then become active again, later be destroyed, etc. (pauseApp, destroyApp methods)