Transcript 1. dia

Java2 Platform
Micro Edition (ME)
Benedek Balázs
[email protected]
JAVA platform
JAVA platform
http://www.clib.dote.hu/javacska
Lego® Mindstorms™
Robotics Invention System™,
http://mindstorms.lego.com
A RIS egy Lego robot
építő csomag:
–
–
–
–
–
–
RCX kocka
USB IR torony
2 motor
2 érintés érzékelő
1 fény érzékelő
718 kocka
J2ME Platform
•
Because J2ME spans such a variety of devices, it wouldn't make sense to try to
create a one-size-fits-all solution. J2ME, therefore, is divided into configurations,
profiles, and optional packages.
•
Configurations are specifications that detail a virtual machine and a base set of APIs
that can be used with a certain class of device. A configuration, for example, might be
designed for devices that have less than 512 KB of memory and an intermittent
network connection. The virtual machine is either a full Java Virtual Machine (as
described in the specification) or some subset of the full JVM. The set of APIs is
customarily a subset of the J2SE APIs.
•
A profile builds on a configuration but adds more specific APIs to make a complete
environment for building applications. While a configuration describes a JVM and a
basic set of APIs, it does not by itself specify enough detail to enable you to build
complete applications. Profiles usually include APIs for application life cycle, user
interface, and persistent storage.
•
An optional package provides functionality that may not be associated with a
specific configuration or profile. One example of an optional package is the Bluetooth
API (JSR 82), which provides a standardized API for using Bluetooth networking. This
optional package could be implemented alongside virtually any combination of
configurations and profiles.
The J2ME Universe
Configurations, Profiles, Packages
Configurations
•
JSR 30 CLDC 1.0
Configuration
•
JSR 139 CLDC 1.1
Configuration 1.1
•
JSR 36 CDC
•
JSR 218 CDC 1.1
1.1
Profiles
•
JSR 37 MIDP 1.0
•
JSR 118 MIDP 2.0
2.0
•
JSR 75 PDAP
•
JSR 46 FP
•
JSR 219 FP 1.1
•
JSR 129 PBP
•
JSR 217 PBP 1.1
•
JSR 62 PP
•
JSR 215 PP 1.1
•
JSR 195 IMP
•
JSR 228 IMP-NG
Generation
Connected, Limited Device
Connected, Limited Device
Connected Device Configuration
Connected Device Configuration
Mobile Information Device Profile
Mobile Information Device Profile
PDA Profile
Foundation Profile
Foundation Profile 1.1
Personal Basis Profile
Personal Basis Profile 1.1
Personal Profile
Personal Profile 1.1
Information Module Profile
Information Module Profile - Next
Optional Packages
•
JSR 75 PDA Optional Packages for the J2ME Platform
•
JSR 82 Java APIs for Bluetooth
•
JSR 120 Wireless Messaging API
•
JSR 205 Wireless Messaging API 2.0
•
JSR 135 Mobile Media API
•
JSR 164 JAIN SIMPLE Presence
•
JSR 165 JAIN SIMPLE Instant Messaging
•
JSR 172 J2ME Web Services
•
JSR 177 Security and Trust Services API for J2ME
•
JSR 179 Location API for J2ME
•
JSR 180 SIPSIP API for J2ME
•
JSR 184 Mobile 3D Graphics API for J2ME
•
JSR 186 JAIN Presence
•
JSR 187 JAIN Instant Messaging
•
JSR 190 Event Tracking API for J2ME
•
JSR 209 Advanced Graphics and User Interface
•
JSR 211 Content Handling API
•
JSR 213 Micro WSCI Framework for J2ME
•
JSR 214 Micro BPSS for J2ME Devices
•
JSR 226 Scalable 2D Vector Graphics API
•
JSR 229 Payment API
•
JSR 230 Data Sync API
•
JSR 232 Mobile Operational Management
•
JSR 234 Advanced Multimedia Supplements
•
JSR 238 Mobile Internationalization API
•
JSR 239 Java Bindings for OpenGL ES
•
JSR 246 Device Management API
•
JSR 253 Mobile Telephony API (MTA)
Hello World!
High-Level MIDP GUI
Command
CommandListener interface
High-Level MIDP GUI
•
•
•
•
•
•
•
Alert
DateField
Form
Gauge
List
TextBox
TextField
http://developers.sun.com/techtopics/mobility/midp/articles/ui/
Low-Level MIDP GUI
•
•
•
•
Canvas
Raw input event
Command
CommandListener
http://developers.sun.com/techtopics/mobility/midp/articles/ui/
Low-Level MIDP GUI
http://developers.sun.com/techtopics/mobility/midp/articles/ui/
Over-The-Air (OTA) Deploying
Deploying – JAD file
File Extension
.JAD
.JAR
MIME Type
text/vnd.sun.j2me.app-descriptor
application/java-archive
MIDlet-1: WordLearner, WordLearner.png, Main
MIDlet-Data-Size: 40000
MIDlet-Install-Notify: http://wordlearner.com/dl/installed.php?ID=101
MIDlet-Jar-Size: 74932
MIDlet-Jar-URL: http://wordlearner.com/WordLearner.jar
MIDlet-Name: WordLearner
MIDlet-Vendor: UpSpring
MIDlet-Version: 0.32.11
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
MIDP Emulator Applicatons
http://developers.sun.com/techtopics/mobility/midp/articles/emulators/index.html
MIDP Emulator Applet
http://sourceforge.net/projects/microemulator/
Bibliográfia
• Jávácska portál
http://www.clib.dote.hu/javacska
• Wireless Development Tutorial Part I
http://developers.sun.com/techtopics/mobility/midp/articl
es/wtoolkit/
• MIDP Emulators
http://developers.sun.com/techtopics/mobility/midp/articl
es/emulators/index.html
• Obfuscating
http://developers.sun.com/techtopics/mobility/midp/ttips/
proguard/index.html
• Technical Articles and Tips
http://developers.sun.com/techtopics/mobility/midp/refere
nce/techart/
Overview of the Java 2 Platform
•
•
•
•
•
•
The Java programming language is syntactically similar to C++ but differs fundamentally. While
C++ uses unsafe pointers and programmers are responsible for allocating and freeing memory,
the Java programming language uses type safe object references, and unused memory is
reclaimed automatically. Furthermore, the Java programming language eschews multiple
inheritance (a likely source of confusion and ambiguity in C++) in favor of a cleaner construct,
interfaces.
A virtual machine forms the foundation of the Java platform. This architecture offers several
attractive features: The virtual machine can be implemented to run atop a variety of operating
systems and hardware, with binary-compatible Java applications operating consistently across
many implementations. In addition, the virtual machine provides tight control of executed binaries,
enabling safe execution of untrusted code.
Finally, an extensive set of standard application programming interfaces (APIs) rounds out the
Java platform. These support almost everything you might want your applications to do, from user
interface through cryptography, from CORBA connectivity through internationalization.
Java 2, Standard Edition (J2SE) is designed for desktop computers. Most often it runs on top of
OS X, Linux, Solaris, or Microsoft Windows.
Java 2, Enterprise Edition (J2EE) is a comprehensive platform for multiuser, enterprise-wide
applications. It is based on J2SE and adds APIs for server-side computing.
Java 2, Micro Edition (J2ME) is a set of technologies and specifications developed for small
devices like pagers, mobile phones, and set-top boxes. J2ME uses subsets of J2SE components,
such as smaller virtual machines and leaner APIs.