Java 2 Micro Edition (J2ME) and the world of java

Slides:



Advertisements
Similar presentations
© OSGi, All Rights Reserved - Brussel Jan 22 Ertico/OSGi Tech Spec Overview: Introduction OSGi R3 and Remote Management Ertico/OSGi meeting Jan.
Advertisements

MIDP Mobile Information Device Profile Johnny Yau CIS 642 Prof. Insup Lee.
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.
Android architecture overview
Multimedia Network Communications Subject:T0934 / Multimedia Programming Foundation Session:13 Tahun:2009 Versi:1/0.
J2ME 25 July Overview  What is J2ME?  The CLDC and CDC configurations  MIDP and MIDlets  Development Tools  Demonstrations.
Writing Your First MIDlet Running JAVA on a Cell Phone Jon A. Batcheller January 27, 2004.
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
Bluetooth and java – a perfect match? Sean O Sullivan ceo Nordic Bluetooth, October 5th, 2001.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 10 Java for MIDs Rob Pooley
J2ME Web Services Specification.  With the promise to ease interoperability and allow for large scale software collaboration over the Internet by offering.
Developing an Application with J2ME Technology Scott Palmer, Nat Panchee, Judy Sullivan, Karen Thabet, Sten Westgard.
JAVA Technology. Java Technology Java technology is a portfolio of products that are based on the power of networks and the idea that the same software.
© 2009 Research In Motion Limited Advanced Java Application Development for the BlackBerry Smartphone Trainer name Date.
Interactive Visual System By Arthur Evans, John Sikorski, and Patricia Thomas.
J2ME Prepared by: - Gaery- Ronny - Alan- Andy. Why Technology for Mobile Devices? The nature of wireless devices is changing Old devices: All the software.
PDA Programming Using J2ME Presenter :涂俊凱 Date : 2003/4/8.
Making Cell Phone Games An Overview Ray Ratelis Guild Software, Inc.
Mobile Application Development
V0.01 © 2009 Research In Motion Limited Understanding Java APIs for Mobile Devices Trainer name Date.
Developing J2ME Applications Mobile and Wireless Networks.
Cosc 4730 Phone Programming in Java An Introduction.
Java 2 Platform, Micro Edition (J2ME) By Xiaorong Wang.
SM3121 Software Technology Mark Green School of Creative Media.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Java for embedded systems Felix G. Hamza-Lup. Outline Embedded systems characteristicsEmbedded systems characteristics Application domains Java characteristics.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
Introduction to Android Platform Overview
A Java Virtual Machine (JVM) enables a set of computer software programs and data structures to use a virtual machine model for the execution of other.
Topics on KVM Presented By Xiaozhou David Zhu. Topics covered Introduction Java2 Platform Micro Edition CLDC KVM.
Android Introduction Platform Overview.
EclipseME Java Micro Edition The Eclipse Way Craig Setera April 19, 2006.
Android Introduction Based on slides made by
Project By:. 2 Agenda Introduction Problem Definition Proposed Solution Block Diagram Flowchart Technical Implementation Hardware & Software Requirements.
Getting Started with JXTA for J2ME Advisor : Dr. Ching-Long Yeh Report : DI.2, 洪泰昌 ( ) Course: XML 文件管理.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Michael Brockway Advanced Applications Development in Java J2ME -- Introduction l Introduction / Overview l Java 2 Micro Edition n CLDC n MIDP l Examples.
Small Devices on DBGlobe System George Samaras Chara Skouteli.
Framework and application bytecode size CLDC MIDP kXML parser Utility classes Graphics Logic (MIDlet) Application Data (XML file)
Computer Science Wi-Fi App using J2ME and MVC Architecture Advisor : Dr. Chung-E Wang Department of Computer Science Sacramento State University Date:
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
J2ME Presented by May Sayed & Menna Hawash. Outline Introduction “Java Technology” Introduction “What is J2ME?” J2ME Architecture J2ME Core Concepts 
ANDROID 응용 프로그래밍 과정 – 목차 - 안드로이드란 - 안드로이드가 만들어지게 된배경 - 안드로이드의 철학 - 안드로이드 환경설정 ( SDK download, eclipse plug-in 설정, 간단한 프로그램 실행 ) - 안드로이드 동작원리 - 안드로이드 핵심.
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.
Other Popular Java Technologies Internationalization in Java Graphics Programming in Java Security Programming in Java Collections and Data Structures.
Created By. Jainik B Patel Prashant A Goswami Gujarat Vidyapith Computer Department Ahmedabad.
Java 2 Micro Edition The Connected, Limited Device Configuration.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 8 CDC andJ2ME Rob Pooley
CSCI1600: Embedded and Real Time Software Lecture 18: Real Time Languages Steven Reiss, Fall 2015.
Mobile Programming Mobile Programming - Ordibehesht Ordibehesht 1390.
1 Android Workshop Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
By Adam Reimel. Outline Introduction Platform Architecture Future Conclusion.
Enhanced mobile services in Java enabled phones Björn Hjelt Sonera zed ltd Supervisor: Professor Jorma Jormakka.
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.
1 Mobile Operating Systems BY:- Aashish Uppal CSE-1/7 th Sem (63/ )
The Java Platform Micro Edition Java ME
Object Oriented Programming in
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
Introduction to the CVM and the Timesys RI
MOBILE DEVICE OPERATING SYSTEM
Wireless Instant Messaging Using J2ME
CMPE419 Mobile Application Development
By Jeff Heaton An Overview of J2ME By Jeff Heaton
CMPE419 Mobile Application Development
Presentation transcript:

Java 2 Micro Edition (J2ME) and the world of java J2ME - Lecture 8 Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on consumer devices, such as mobile phones, PDAs, and TV set-top boxes, as well as a broad range of embedded devices. J2ME includes Java virtual machines and a set of standard Java APIs It includes flexible user interfaces, a robust security model, a broad range of built-in network protocols, and extensive support for networked and offline applications Programming Mobile and Handheld Devices

The J2ME Architecture The J2ME architecture comprises a variety of configurations, profiles, and optional packages that implementers and developers can choose from

J2ME Configurations and Profiles Even within J2ME one size does not fit all Configurations: Minimum libraries and JVM Profiles: libraries for specific devices or markets J2ME configurations CLDC CDC J2ME profiles MIDP Foundation, Bluetooth, Personal, ... Configurations and profiles defined by the Java Community ProcessSM

Configurations Configurations comprise J2ME - Lecture 8 Configurations Configurations comprise a virtual machine a minimal set of class libraries. They provide the base functionality for a particular range of devices that share similar characteristics, such as network connectivity and memory footprint. Currently, there are two J2ME configurations: the Connected Limited Device Configuration (CLDC) Established and widely used the Connected Device Configuration (CDC) Next generation configuration * * FUNCTION: PilotMain * DESCRIPTION: This is the main entry point for the application. * PARAMETERS: cmd - word value specifying the launch code. * cmdPB - pointer to a structure that is associated with the launch code. * launchFlags - word value providing extra information about the launch. * RETURNED: Result of launch As is usual in Palm applications, PilotMain calls AppStart, AppEventLoop and AppStop to do the work Programming Mobile and Handheld Devices

J2ME - Lecture 8 Profiles To provide a complete runtime environment for a specific device category a configuration must be combined with a profile This is a set of higher-level APIs that further define the application life-cycle model, the user interface, and access to device-specific properties. A profile supports a narrower category of devices within the framework of a chosen configuration. A widely adopted example is to combine CLDC with the Mobile Information Device Profile (MIDP) to provide a complete Java application environment for cell phones and other devices with similar capabilities Programming Mobile and Handheld Devices

J2ME - Lecture 8 Optional Packages The J2ME platform can be extended by adding various optional packages to a technology stack that includes either CLDC or CDC and an associated profile. Optional packages offer standard APIs for using both existing and emerging technologies such as database connectivity, wireless messaging, multimedia, Bluetooth, and web services. Because optional packages are modular, developers can avoid carrying the overhead of unnecessary functionality by including only the packages an application actually needs. Programming Mobile and Handheld Devices

J2ME - Lecture 8 Programming Mobile and Handheld Devices

Mobile Information Device Profile J2ME - Lecture 8 Mobile Information Device Profile The first J2ME profile Targets devices implementing CLDC Profile addresses: Display toolkit, user input methods Persistent data storage Messaging( SMS, email, etc), security and networking over wireless network connection Programming Mobile and Handheld Devices

Related Technologies: Java Card™ Technology J2ME - Lecture 8 Related Technologies: Java Card™ Technology Specifies minimized subset of Java technology for GSM SIM cards, smart cards, Java rings, and other extremely constrained devices Key benefits versus non-Java smart cards Multiple applications per card Post-issuance updates to apps on card Programming Mobile and Handheld Devices

Related Technologies: EmbeddedJava™ Technology J2ME - Lecture 8 Related Technologies: EmbeddedJava™ Technology EmbeddedJava. technology is a program from Sun supporting development of dedicated-function embedded devices for a wide range of end uses EmbeddedJava technology gives device manufacturers the ability to: Configure the Java platform to leave out unneeded classes and VM features Minimize resource requirements and cost for a deeply-embedded device Optimize for devices with no GUI and intermittent (at best) networking Keep APIs for their devices private Programming Mobile and Handheld Devices

J2ME™: Connected Device Configuration J2ME - Lecture 8 J2ME™: Connected Device Configuration Connected Device Configuration (CDC) Targeted for devices that have 2 MB or more total available memory Memory dedicated to J2ME environment More than 2MB ROM/Flash More than 512 KB RAM Network connectivity Full Java 2 Virtual Machine specification Programming Mobile and Handheld Devices

Example J2ME™ CDC Uses Wireless communicators High-end PDAs J2ME - Lecture 8 Example J2ME™ CDC Uses Wireless communicators High-end PDAs TV set-top boxes Gateways Automotive entertainment and navigation systems Telecomm/Networking Equipment Industrial Controllers Programming Mobile and Handheld Devices

What Is CVM? Basis for J2ME CDC and profiles J2ME - Lecture 8 What Is CVM? Basis for J2ME CDC and profiles Large VMs for desktops/servers don.t scale well to devices Static and dynamic memory footprint too big Not embeddable, ROMable, not portable Implicit assumption of virtual memory Native stack use, address range reservation Implicit assumption of process model Global variables, .system threads. Programming Mobile and Handheld Devices

CVM features CVM supports all Java 2 Platform, version 1.3, J2ME - Lecture 8 CVM features CVM supports all Java 2 Platform, version 1.3, VM features and libraries for security, weak references, JNI, RMI and JVMDI CVM allows devices to map Java threads directly to native threads. Can run Java classes out of ROM Contains a precise memory system with advanced Garbage Collection features: Small average GC pause times Pluggable Garbage Collectors Full separation of VM from memory system Good JVM features Device friendliness. Easily re-targetable Narrow porting interface Almost entirely in C (except dynamic compiler) ~256KB with JNI, reflection, verification,. Programming Mobile and Handheld Devices

J2ME Profiles Mobile Information Device Profile (MIDP) J2ME - Lecture 8 J2ME Profiles Mobile Information Device Profile (MIDP) Profile for wireless devices implementing CLDC J2ME Foundation Profile Profile for non-GUI networked devices implementing CDC J2ME Personal Basis, Personal, RMI Profiles Basic graphics, next generation PersonalJava environment, and RMI support for CDC & Foundation Profile based devices Programming Mobile and Handheld Devices

CDC APIs 􀀀 Defines minimum set of APIs for Java VM support J2ME - Lecture 8 CDC APIs 􀀀 Defines minimum set of APIs for Java VM support java.lang VM system classes (Object, Thread, etc.) java.util.Underlying utilities java.net.UDP Datagram and File URL java.io.File java.text.I18n support for Java VM error messages java.security.Fine grain security and encryption for object serialization Programming Mobile and Handheld Devices

CVM Sizes Today CVM only Natives only Porting layer only J2ME - Lecture 8 CVM Sizes Today CVM only Static ROM + RAM req.= 258 KB Natives only Static ROM + RAM req.= 124 KB Porting layer only Static ROM + RAM req.= 28 KB CVM+natives+porting_layer Static ROM + RAM req.= 410 KB Programming Mobile and Handheld Devices

Foundation Profile APIs J2ME - Lecture 8 Foundation Profile APIs Defines core set of Java platform functionality No GUI Subset of JDK 1.3 Completes full functionality from CDC java.lang.Rounds out full java.lang.*(Compiler, UnknownError) java.util.Adds full zip support, Timer, etc. java.net.Adds TCP Socket and HTTP java.io.Rounds out full java.io.* (Readers and Writers) java.text.Full I18n (Annotation, Collator, Iterators, etc.) java.security.Adds Code Signing and Certificates Programming Mobile and Handheld Devices

CVM Sizes with Foundation Profile APIs J2ME - Lecture 8 CVM Sizes with Foundation Profile APIs CDC Java libraries (ROMized) Static ROM + RAM req.= 1011 KB Foundation Java libraries (ROMized) Static ROM + RAM req.= 1564 KB CDC TOTAL (CVM+natives+porting+libraries) Static ROM + RAM req.= 1421 KB Java libraries + natives for Foundation Profile Static ROM + RAM req = 553 KB Foundation TOTAL (CVM+natives+porting+libraries) Static ROM + RAM req.= 1974 KB Programming Mobile and Handheld Devices