www.wikidata.de-de.nina.az
MIDP Mobile Information Device Profile war ein Profil der Java Micro Edition Java ME das speziell auf die Fahigkeiten kleiner Mobilgerate wie Mobiltelefon oder PDA ausgelegt war Es umfasste daher Funktionen zur Ansteuerung und Abfrage von ITU T Einhandtastaturen Miniaturbildschirmen fluchtigem und nicht fluchtigem Speicher im Kilobyte Bereich etc MIDP Applikationen heissen MIDlets MIDP ist ein Sandboxmodell was grosse Sicherheit gegenuber Computerviren oder Hackerangriffen gewahrleistete Der Benutzung von Netzwerkeinrichtungen geht eine Bestatigung vom Benutzer voraus der sie explizit fur jedes MIDlet bei erforderlichem Verbindungsaufbau erlauben muss Inhaltsverzeichnis 1 Hardwarevoraussetzungen 2 MIDP 2 0 3 MIDP APIs 3 1 Benutzeroberflache 3 1 1 High Level API 3 1 2 Low Level API 3 2 Record Management System RMS 4 Verteilen eines MIDlet 5 Siehe auch 6 Weblinks 7 EinzelnachweiseHardwarevoraussetzungen BearbeitenDie Spezifikation MIDP 2 0 stellt Forderungen fur die minimale Hardwareausstattung eines Gerates auf Unter anderem muss das Gerat eine Displayauflosung von 96 54 Pixeln 384 Kilobyte Arbeitsspeicher eine Internetverbindung sowie eine virtuelle Soundausgabe besitzen Da MIDP allerdings auf die CLDC Konfiguration aufsetzt sind viele Hardwarevoraussetzungen bereits dadurch bestimmt MIDP 2 0 BearbeitenGegenuber der Version 1 0 ist die derzeit verbreitete Version 2 0 mit der Variante 2 1 deutlich leistungsfahiger Es gibt eine Reihe von Features die den aktuellen Funktionsumfang von Java ME Anwendungen ausmachen Abspielen von Sound WAV MID MP3 Video Streaming benotigt zusatzlich Multimedia API Game API mit Sprites Layern etc Unterstutzung von HTTPS Sockets Serielle Schnittstelle Push Architektur Server kann MIDlets aktivieren OTA Provisioning Verbreitung uber Funknetz MIDP APIs BearbeitenBenutzeroberflache Bearbeiten MIDP APIs fur die Benutzeroberflache bieten dem Entwickler ein minimales Set aus User Interface Elementen UI um eine Interaktivitat zwischen Benutzer und MIDlet zu ermoglichen Es befindet sich im Paket javax microedition lcdui Man unterscheidet zwischen der Low und High Level API High Level API Bearbeiten nbsp Low und High Level API des MID ProfilsDie High Level API stellt Ein und Ausgabefelder wie z B Textfelder TextField oder Fortschrittsanzeigen Gauge zur Verfugung Sie sind der Elternklasse Item untergeordnet Objekte von Item konnen auf einem Formular platziert werden sind jedoch nur eingeschrankt positionierbar Formulare sind Objekte der Klasse Form Sie konnen an das aktuelle Display angehangt werden und verschiedene UI Elemente enthalten Das MIDlet kann Wechsel zwischen Formularen anfordern sowie wahrend der Laufzeit UI Elemente hinzufugen und auf Benutzereingaben reagieren Die wichtigsten UI Elemente sind Form Container fur andere UI Elemente Command Reprasentiert einen Menueintrag Mehrere Kommandos konnen in einem Menu zusammengefasst und an ein Formular angehangt werden Alert Pop up Nachrichten die den Benutzer uber Fehler Exceptions Warnungen oder uber sonstige Informationen benachrichtigen ChoiceGroup Implementiert eine Selektionsmoglichkeit zwischen mehreren Eintragen Die Auswahl ausschliesslich einzelner engl single choice oder auch mehrerer Eintrage engl multiple choice ist moglich TextField Einzeilige Eingabefelder in denen der Benutzer Text einfugen bzw editieren kann TextBox Ahnlich einem TextField allerdings mehrzeilig Gauge Fortschrittsanzeige a href Nachrichtenticker html title Nachrichtenticker Ticker a Anzeige von sich bewegendem Text Low Level API Bearbeiten Im Gegensatz hierzu arbeitet die Low Level API auf Pixelebene Die Klasse Canvas ist der Eingangspunkt fur grafische Darstellungen Sie selbst enthalt hierfur keine Methoden jedoch stellt sie die Callback Funktion paint bereit Sie wird immer dann aufgerufen wenn der Programmmanager entscheidet das Display neu zu zeichnen Ihr einziger Parameter ist ein Objekt Graphics welches samtliche Zeichnungsfunktionen wie beispielsweise drawLine zum Zeichnen einer Linie oder fillRect zum Ausfullen eines Rechtecks enthalt Grundsatzlich kann man zwischen reinen Hintergrundapplikationen und jenen unterscheiden die mit dem Benutzer interagieren Interaktive Applikationen konnen auf das Display uber ein Objekt Display zugreifen Man erhalt es als Ruckgabeobjekt der statischen Methode getDisplay mit dem MIDlet als Argument Die Methode setCurrent bestimmt welches Objekt Displayable den Inhalt eines Displays darstellen soll Displayable ist die Elternklasse von Screen und Canvas Ihr sind alle UI Klassen unterstellt Mit anderen Worten sie definiert samtliche Objekte die am Display angezeigt werden konnen Record Management System RMS Bearbeiten nbsp RMS StrukturMIDP stellt spezielle APIs fur die permanente Speicherung von Daten bereit die die Realisierung einfacher datenbankgestutzter Anwendungsprogramme erlaubt Die Speicherung von Daten innerhalb des Dateisystems ist aus Grunden der Portabilitat nicht in MIDP selbst enthalten sondern im JSR 75 1 spezifiziert MIDP stellt fur die persistente Speicherung von Daten eine eher rudimentare Alternative zur Verfugung das Record Management System RMS Persistent bedeutet hierbei die Erhaltung der Daten nach mehrmaligen Neustarts des MIDlets und des Mobilgerates selbst nach einem Batteriewechsel Das RMS befindet sich im Paket javax microedition rms nbsp RMS DatenbankstrukturEin MIDlet kann beliebig viele Datenbanken als Instanzen von RecordStore eroffnen MIDlets innerhalb einer Suite konnen auf die gleichen Datenbanken zugreifen MIDlets aus verschiedenen Suiten bleibt der Zugriff verwehrt Selbst wenn der Name der Datenbank zweier solcher MIDlets gleich ist existieren zwei getrennte Datenbanken Erst die MIDP 2 0 Spezifikation erlaubt einen geteilten Datenbankzugriff Eine RMS Datenbank befindet sich in einer plattformspezifischen Umgebung Um das Konzept der Plattformunabhangigkeit von Java zu erhalten implementiert das RMS intern mehrere auf das jeweilige System abgestimmte Routinen so dass nach aussen hin abstrakte Methoden fur Datenbankoperationen verfugbar sind Ein RecordStore besteht aus einer Sammlung von Bytearrays mit einer zugehorigen eindeutigen ID beginnend bei 1 Sie wird als Primarschlussel engl primary key genutzt IDs von geloschten Eintragen werden nicht wiederverwertet Wird ein neuer Eintrag hinzugefugt erhalt er die nachsthohere ID der grossten jemals vorgekommenen ID Ein RecordStore kann sich in vier Zustanden befinden nbsp Lebenszyklus einer RMS DatenbankZunachst wird ein RecordStore vom Zustand Not Exists mit openRecordStore und einer Bezeichnung max 32 Zeichen als Argument erstellt Besteht die Datenbank bereits erfolgt der Ubergang vom Zustand Closed Im darauffolgenden Zustand Open kann die Datenbank mit den Methoden addRecord setRecord und deleteRecord modifiziert werden wobei ein Zeitstempel engl timestamp den Zeitpunkt ihrer letzten Anderung markiert und ein Zahler nach jeder Anderung inkrementiert wird Mit getRecord werden Datensatze unter Angabe ihrer ID ausgelesen Greifen mehrere Threads auf ein RecordStore zu ist es Aufgabe des MIDlets diese Zugriffe zu koordinieren closeRecordStore schliesst die Datenbank und fuhrt sie in den Zustand Closed uber In diesem Zustand ist kein Zugriff auf die Datenbank moglich und fuhrt bei einem solchen Versuch zu einer RecordStoreNotOpenException deleteRecordStore loscht die Datenbank und der Zustand Not Exists wird erreicht RecordStore definiert die Methode enumerateRecords mit Hilfe derer Datensatze gefiltert oder sortiert werden konnen Sie liefert ein Objekt RecordEnumeration zuruck das einen flexiblen Umgang mit einer RMS Datenbank erlaubt Diese Schnittstelle weist grosse Ahnlichkeit zur Implementierung einer klassischen verketteten Liste auf Sie enthalt Methoden zum dynamischen Durchlaufen der Datensatze sowie Abfragen ob es ein nachstes oder vorheriges Element gibt etc Weitere Schnittstellen sind die Klassen RecordListener und RecordFilter RecordListener erlaubt das Abfangen von Ereignissen wie z B Modifikationen der Datenbank sodass entsprechende Reaktionen gesetzt werden konnen Mit RecordFilter konnen Datensatze auf bestimmte Kriterien uberpruft werden Verteilen eines MIDlet BearbeitenDie Verteilung von MIDlets also die Zusammenstellung zu einer Programmdatei erfolgt als Java Archive JAR Zusatzlich ist noch eine beschreibende Textdatei spezifiziert der Java Archive Descriptor JAD Viele Mobiltelefone verlangen heute aber keine JAD Datei mehr sondern entnehmen die notigen Informationen dem sog Manifest einer im JAR enthaltenen Textdatei mit ahnlichem Aufbau und Inhalt Ein JAR kann dabei mehrere MIDlets enthalten die man dann auch als Midlet Suite bezeichnet Naturlich sind im Archiv jeweils nur die kompilierten class Dateien und kein Quelltext enthalten Selbst diese werden meist noch mit einem Obfuscator behandelt Neben dem Programmcode enthalt das JAR oft auch die notwendigen Ressourcen wie Sounds Grafiken etc Im JAD bzw Manifest sind u a Informationen enthalten zu Name und Version der MIDlet Suite Name Icon und Programmdateien der MIDlets Anzahl der Bytes in der JAR Datei nur JAD Erforderliches Java ME Profil sowie erforderliche Konfiguration d h CLDC VersionZusatzlich haben einige Hersteller wie Nokia Erweiterungen spezifiziert Auch benutzerdefinierte Eintrage zur Konfiguration der Anwendung ahnlich wie Kommandozeilenparameter sind moglich Siehe auch BearbeitenConnected Device Configuration CLDCWeblinks BearbeitenMobile Information Device Profile MIDP JSR 118 bei Oracle Einfuhrung in die MIDP Anwendungsentwicklung mit dem Wireless Toolkit zdnet deEinzelnachweise Bearbeiten jcp org Abgerufen von https de wikipedia org w index php title MIDP amp oldid 231702544