MIDlet-Technologie

von

Gerald Strauch

Java 2 – Die Editionen

J2SE (Standard Edition)

J2EE (Enterprise Edition)

J2ME (Mobile Edition)

- für Mobiltelefone, PDAs, Pager, Settop-Boxen

- auch hier: write once – run anywhere

J2ME - Hierarchie

Virtuelle Maschine (VM, →KVM)

Konfigurationen (CDC / CLDC)

= Connected (Limited) Device Configuration

Kriterium: Leistungsfähigkeit

Profile (PDA- / Game- / MID Profile)

= Mobile Information Device Profile - MIDP

Kriterium: Verwendungszweck

CLDC

CLDC/MIDP

MIDP

Bestandteile des J2ME

java.io

java.lang

java.util

javax.microedition.io

javax.microedition.midlet

javax.microedition.lcdui

javax.microedition.lcdui.game

javax.microedition.pki

javax.microedition.rms

javax.microedition.media

Entstehung im JCP

Auch J2ME Ergebnis des JCP

Java Specification Request (JSR)

Standards unter Mitarbeit von Geräte-Herstellern und Service-Providern → JTWI

Hersteller:

Kompatibilisierung

Standards

Unterstützte Features

Provider

Grundlagen für Branding (Look & Feel)

Weiterentwicklung im Verbund

MIDlet-Entwicklung

...mit vielen gängigen IDEs

freeware z.B.:

Sun ONE Studio

netBeans mit Mobility Package

→ Tests im Emulator (mit Handy-Skins!)

Erzeugung einer „MIDlet Suite“

Bestandteile:

MIDlet(s)

Manifest

Bilder (optional)

Suite als .jar-file

kompiliert

preverified

Beschränkungen und Sicherheitsaspekte

MIDP-typische Einschränkungen

Leistungs- und Display-bezogen

Java-typische Einschränkungen

Sandbox-System

Extra Sicherheitsaspekte

Keine fremden Klassenlader

Keine Nicht-Java-Klassen

Keine native Schnittstelle

Überladen/Ersetzen nicht möglich

→ Stopfen von Schlupflöchern aus der Sandbox

Kein Zugriff auf Ressourcen parallel laufender MIDlets

Voraussetzungen des Gerätes

Für KVM

Speicher: 128 KB fest, 32 KB RAM

Für CLDC und MIDP

Display von 96 * 54 Bildpunkten

1 Bit Farbtiefe (?)

Input-/Speichermöglichkeiten

Kernel

Netzwerkanbindung

Timer

MIDlet Lifecycle

Erzeugung mit new() (→ paused-Status)

startApp()

Besorgen von Ressourcen

Start der Ausführung

pauseApp()

Unterbrechen der Ausführung

Freigabe von Ressourcen

destroyApp()

Beenden

Freigabe aller Ressourcen

notifyDestroyed()

dem AMS Bescheid sagen

Übliche Anwendungen

Telefonieren nicht!

Aber z.B.:

SMS-Management

(Multi-)Media

Gaming

Netzwerkzugang

Organizer-Funktion (mit Timer-Tasks)

Zusatzpakete und Ausblick

MMAPI (Mobile Media)

Video Messaging

Online Gaming

Digitalfotogtafie

Video-Streaming und -konferenzen

WMAPI (Wireless Messaging)

TextMessage

BinaryMessage

Ausblick

Gute Chancen wegen breiter Unterstützung

Portierbarkeit ist Trumpf

Java auch sonst überall etabliert

Gerald Strauch

2005-03-22T00:15:29