Java 2 Mobile Edition
Java 2 Mobile Edition
Application development
with J2ME
Enrico Rukzio
1
Enrico Rukzio
SLIDE 3/42 Enrico.Rukzio@ifi.lmu.de
Outline
Enrico Rukzio
SLIDE 4/42 Enrico.Rukzio@ifi.lmu.de
2
Enrico Rukzio
SLIDE 5/42 Enrico.Rukzio@ifi.lmu.de
Enrico Rukzio
SLIDE 6/42 Enrico.Rukzio@ifi.lmu.de
3
Enrico Rukzio
SLIDE 7/42 Enrico.Rukzio@ifi.lmu.de
J2ME: Basics
Stack
Configuration + profile + optional APIs
Enrico Rukzio
SLIDE 8/42 Enrico.Rukzio@ifi.lmu.de
J2ME: Basics
Profile: more specific than configuration
based on a configuration
adds APIs for user interface, persistent storage,
etc.
4
Enrico Rukzio
SLIDE 9/42 Enrico.Rukzio@ifi.lmu.de
Car
Mobile Internet Set-Top
Pagers PDAs Navigation
Phones Appliances Boxes
Systems
Personal Profile
MIDP PDAP
(Mobile (Personal
Personal Basis Profile
Information Digital Assistant
Device Profile) Profile)
Foundation Profile
CLDC CDC
(Connected, Limited Device (Connected Device
Configuration) Configuration)
J2ME
(Java 2, Micro Edition)
Enrico Rukzio
SLIDE 10/42 Enrico.Rukzio@ifi.lmu.de
5
Enrico Rukzio
SLIDE 11/42 Enrico.Rukzio@ifi.lmu.de
Enrico Rukzio
SLIDE 12/42 Enrico.Rukzio@ifi.lmu.de
CLDC 1.1
java.lang APIs are restricted
java.lang.ref when compared with
java.io J2SE
java.util
java.microedition.io
6
Enrico Rukzio
SLIDE 13/42 Enrico.Rukzio@ifi.lmu.de
Enrico Rukzio
SLIDE 14/42 Enrico.Rukzio@ifi.lmu.de
7
Enrico Rukzio
SLIDE 15/42 Enrico.Rukzio@ifi.lmu.de
MIDlet
Enrico Rukzio
SLIDE 16/42 Enrico.Rukzio@ifi.lmu.de
8
Enrico Rukzio
SLIDE 17/42 Enrico.Rukzio@ifi.lmu.de
Enrico Rukzio
SLIDE 18/42 Enrico.Rukzio@ifi.lmu.de
9
Enrico Rukzio
SLIDE 19/42 Enrico.Rukzio@ifi.lmu.de
Enrico Rukzio
SLIDE 20/42 Enrico.Rukzio@ifi.lmu.de
Contents of MidletSuite.jar
MidletSuite.jar
MANIFEST.MF
10
Enrico Rukzio
SLIDE 21/42 Enrico.Rukzio@ifi.lmu.de
Enrico Rukzio
SLIDE 22/42 Enrico.Rukzio@ifi.lmu.de
11
Enrico Rukzio
SLIDE 23/42 Enrico.Rukzio@ifi.lmu.de
Display: easel
Displayable: canvas Screen Canvas
on easel
Canvas: Discovery
Screen: Abstraction Alert Textbox
List Form
Enrico Rukzio
SLIDE 24/42 Enrico.Rukzio@ifi.lmu.de
12
Enrico Rukzio
SLIDE 25/42 Enrico.Rukzio@ifi.lmu.de
Display.getDisplay(this).setCurrent(d);
}
Enrico Rukzio
SLIDE 26/42 Enrico.Rukzio@ifi.lmu.de
13
Enrico Rukzio
SLIDE 27/42 Enrico.Rukzio@ifi.lmu.de
Enrico Rukzio
SLIDE 28/42 Enrico.Rukzio@ifi.lmu.de
14
Enrico Rukzio
SLIDE 29/42 Enrico.Rukzio@ifi.lmu.de
PREFETCHED
STARED DataSource
CLOSED (MIME-Type)
Player
Control (Volume,
Tone)
Enrico Rukzio
SLIDE 30/42 Enrico.Rukzio@ifi.lmu.de
Further APIs
Wireless Messaging API (JSR-120)
Mobile Media API (JSR-135)
Bluetooth API (JSR-82 no OBEX)
FileConnection and PIM API (JSR-75)
Mobile 3D Graphics API (JSR-184)
Location API (JSR-179)
Web Services API (JSR-172)
Advanced Multimedia Supplements (JSR-234)
15
Enrico Rukzio
SLIDE 31/42 Enrico.Rukzio@ifi.lmu.de
Material
Jonathan B. Knudsen, Sing Li. Beginning J2ME: From Novice to
Professional. ISBN: 1590594797. 2005.
Java.Sun.Com (Documentation, Code samples & Articles, FAQs,
white papers, technical articles, etc.)
http://java.sun.com/products/cldc/
Forum.nokia.com (Documents, Code & examples, tools, forum)
http://www.forum.nokia.com
Links to documentations and tutorials at hcilab.org
http://www.hcilab.org/documents/tutorials/DocuTuto/index.
html
Sun Wireless Toolkit: JavaDoc
Enrico Rukzio
SLIDE 32/42 Enrico.Rukzio@ifi.lmu.de
16
Enrico Rukzio
SLIDE 33/42 Enrico.Rukzio@ifi.lmu.de
Netbeans 4.1
Enrico Rukzio
SLIDE 34/42 Enrico.Rukzio@ifi.lmu.de
New Project
17
Enrico Rukzio
SLIDE 35/42 Enrico.Rukzio@ifi.lmu.de
Enrico Rukzio
SLIDE 36/42 Enrico.Rukzio@ifi.lmu.de
18
Enrico Rukzio
SLIDE 37/42 Enrico.Rukzio@ifi.lmu.de
IDE
Enrico Rukzio
SLIDE 38/42 Enrico.Rukzio@ifi.lmu.de
IDE: Source
19
Enrico Rukzio
SLIDE 39/42 Enrico.Rukzio@ifi.lmu.de
Enrico Rukzio
SLIDE 40/42 Enrico.Rukzio@ifi.lmu.de
20
Enrico Rukzio
SLIDE 41/42 Enrico.Rukzio@ifi.lmu.de
Experiences
Enrico Rukzio
SLIDE 42/42 Enrico.Rukzio@ifi.lmu.de
Experiences
21
Enrico Rukzio
SLIDE 43/42 Enrico.Rukzio@ifi.lmu.de
Experiences
Enrico Rukzio
SLIDE 44/42 Enrico.Rukzio@ifi.lmu.de
Quality of service
Uncertain behavior when recording (quality, encoding)
and playing (Which player?) media
22
Enrico Rukzio
SLIDE 45/42 Enrico.Rukzio@ifi.lmu.de
Market
Mobile devices
are an exploding market
because of increasing processing power,
available memory and internet connectivity Æ
attractive platform
Enrico Rukzio
SLIDE 46/42 Enrico.Rukzio@ifi.lmu.de
References
[1] Jonathan B. Knudsen. Wireless Java: Developing with J2ME. Second Edition. ISBN: 1590590775.
[2] Stephen Neal. Overview of J2ME and Nokia
APIs. Sun Tech Days.
http://www.nokia.co.jp/forum/publish/documents/Tech_Days_Yokohama_Workshop_Session.pdf
[3] J2ME datasheet
http://java.sun.com/j2me/j2me-ds.pdf
[4] Heise Newsticker
http://www.heise.de/newsticker/
[5] CDC Data Sheet.
http://java.sun.com/j2me/docs/j2me_cdc.pdf
[6] What's in MIDP 2.0: A Guide for Java Developers
http://www.forum.nokia.com/ndsCookieBuilder?fileParamID=3632
[7] MIDP 2.0: An Introduction
http://www.forum.nokia.com/ndsCookieBuilder?fileParamID=3231
[8] Understanding the Record Management System
http://developers.sun.com/techtopics/mobility/midp/articles/databaserms/
[9] Jonathan B. Knudsen, Sing Li. Beginning J2ME: From Novice to Professional. ISBN: 1590594797.
[10] Sun Takes Java App Server Open Source- http://www.itjungle.com/tlb/tlb062805-story04.html
23
Enrico Rukzio
SLIDE 47/42 Enrico.Rukzio@ifi.lmu.de
Deleted Slides
Enrico Rukzio
SLIDE 48/42 Enrico.Rukzio@ifi.lmu.de
24