Transcript Mobile Information Device Profile
MIDP (MIDlet) dan Tools
Mobile Computing
MIDP
Saat ini versi 2.0
Package-package: javax.
microedition.lcdui
javax.
microedition.lcdui.game
javax.
microedition.midet
javax.
microedition.media
javax.
microedition.media.control
javax.
microedition.rms
javax.
microedition.pki
Marsel Willem Aipassa, S. Kom.
MIDP (2)
MIDP 2.0 menambahkan fasilitas-fasilitas yang telah ada pada MIDP 1.0
Pada MIDP 1.0 API terdapat application management, HTTP network connectivity, user interface dan persistent storage MIDlet merupakan suatu aplikasi yang menggunakan MIDP
Marsel Willem Aipassa, S. Kom.
MIDlet Lifecycle
3 state : Active Paused Destroyed
Marsel Willem Aipassa, S. Kom.
Struktur dasar MIDlet
import javax.microedition.midlet.*; public class
extends
MIDlet
{ public
{} public void
startApp()
} { public void
pauseApp()
} { public void
destroyApp(boolean unconditional)
} { }
Marsel Willem Aipassa, S. Kom.
Package javax.microedition.midlet
Terdapat 2 kelas (1 kelas untuk exception)
Kelas
MIDlet Kelas yang mendefenisikan metode lifecycle dari MIDlet (aplikasi MIDP)
Eksepsi
MIDletStateChangeException Eksepsi untuk menangani error perubahan state pada suatu MIDlet
Marsel Willem Aipassa, S. Kom.
Kelas MIDlet
Konstruktor protected MIDlet() Metode-metode dari kelas dapat dilihat sebagai berikut:
Marsel Willem Aipassa, S. Kom.
Metode-metode kelas MIDlet
Metode
public final int checkPermission(String permission)
Deskripsi
Metode ini digunakan untuk memperoleh status dari permission tertentu. Akan mengembalikan 0 jika permission denied, 1 jika permission allowed, dan -1 jika permission unknown protected abstract void destroyApp(boolean unconditional) throws MIDletStateChangeException Metode ini digunakan untuk mengakhiri aplikasi. Jika parameter unconditional adalah true, maka MIDlet harus berhenti dan membebaskan semua resource yang digunakan (cleanup). Jika bernilai false, maka MIDlet dapat melemparkan eksepsi MIDletStateChangeException untuk menandakan bahwa MIDlet tersebut tidak dapat dihentikan saat ini karena masih ada rutin yang harus dikerjakan
Marsel Willem Aipassa, S. Kom.
Metode-metode kelas MIDlet (2)
Metode
public final String getAppProperty(String key) throws MIDletStateChangeException public final void notifyDestroyed()
Deskripsi
Metode ini digunakan untuk mengambil property dari file .JAD dan .JAR
public final void notifyPaused protected abstract void pauseApp() public final boolean platformRequest(String URL) throws ConnectionNotFoundException Metode ini digunakan oleh MIDlet untuk menginformasikan kepada AMS bahwa MIDlet tersebut telah memasuki state Destroyed Metode ini digunakan oleh MIDlet untuk menginformasikan kepada AMS bahwa MIDlet tersebut telah memasuki state Paused Metode ini digunakan untuk pause MIDlet Meminta Device untuk menangani URL
Marsel Willem Aipassa, S. Kom.
Metode-metode kelas MIDlet (3)
Metode
public final void resumeRequest() protected abstract void startApp()
Deskripsi
Metode ini digunakan oleh MIDlet untuk kembali ke status Active dari status Paused Metode ini digunakan untuk memulai aplikasi
Marsel Willem Aipassa, S. Kom.
Kelas MIDletStateChangeException
Konstruktor MIDletStateChangeException() MIDletStateChangeException(String s), s adalah pesan eksepsi
Marsel Willem Aipassa, S. Kom.
Software Requirement
Java Environment (Java SDK) Platform emulator (Sun Java (TM) Wireless Toolkit 2.5.2 for CLDC) IDE (Netbeans 6.7.1)
Marsel Willem Aipassa, S. Kom.
Pilih File, New Project…
Marsel Willem Aipassa, S. Kom.
Pilih Kategori Java ME
Marsel Willem Aipassa, S. Kom.
Pada Projects, pilih Mobile Application
Marsel Willem Aipassa, S. Kom.
Beri nama dan hilangkan centang pada ‘Create Hello MIDlet’
Marsel Willem Aipassa, S. Kom.
Pilih jenis konfigurasi dan profile (disesuaikan dengan device yang dituju)
Marsel Willem Aipassa, S. Kom.
Membuat MIDlet baru
Marsel Willem Aipassa, S. Kom.
Beri nama MIDlet lalu Finish
Marsel Willem Aipassa, S. Kom.
Contoh MIDlet Sederhana
import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class HelloMIDlet extends MIDlet implements CommandListener{ private Form formMain; public HelloMIDlet() { formMain = new Form("Judul Form"); formMain.append(new StringItem("Label: ", “Hello MIDP World")); formMain.addCommand(new Command("Exit", Command.EXIT, 0)); formMain.setCommandListener(this); }
Marsel Willem Aipassa, S. Kom.
Contoh MIDlet Sederhana (2)
{ } public void startApp() { Display.getDisplay(this).setCurrent(formMain); public void pauseApp() {} public void destroyApp(boolean unconditional) {} public void commandAction(Command c, Displayable d) if(c.getCommandType() == Command.EXIT){ destroyApp(true); notifyDestroyed(); } } }
Marsel Willem Aipassa, S. Kom.
Run Aplikasi (F6)
Marsel Willem Aipassa, S. Kom.
MIDlet Suite
Beberapa MIDlet dapat ditempatkan ke dalam satu MIDlet suite Contoh MIDlet yang pertama adalah HelloMIDlet yang sebelumnya
Marsel Willem Aipassa, S. Kom.
MIDlet Suite
Aplikasi kedua
import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class Welcome extends MIDlet implements CommandListener{ private Display disp; private TextBox txtBox; private Command cmdExit; public Welcome() { cmdExit = new Command("Exit", Command.EXIT, 0); txtBox = new TextBox("Welcome", "Mobile Computing", 50, 0); txtBox.addCommand(cmdExit); txtBox.setCommandListener(this); }
Marsel Willem Aipassa, S. Kom.
MIDlet Suite
{ public void startApp() { disp = Display.getDisplay(this); disp.setCurrent(txtBox); } public void pauseApp() {} public void destroyApp(boolean unconditional) {} public void commandAction(Command c, Displayable d) if(c == cmdExit){ destroyApp(true); notifyDestroyed(); } } }
Marsel Willem Aipassa, S. Kom.
MIDlet Suite
Dengan dibuatnya MIDlet Welcome, maka telah ada sebuah MIDlet Suite yang berisi dua buah MIDlet yaitu ‘HelloMidlet’ dan ‘Welcome’ Dalam Netbeans, MIDlet baru otomatis ditambahkan ke dalam MIDlet Suite
Marsel Willem Aipassa, S. Kom.
Run MIDlet Suite
Marsel Willem Aipassa, S. Kom.
MIDlet Suite
Setting dari MIDlet Suite dapat diatur melalui tab Application Descriptor pada Properties project
Marsel Willem Aipassa, S. Kom.
MIDlet Suite
Selain itu, setting MIDlet suite juga dapat diatur/dilihat dari file manifest.mf dan file
File manifest.mf berada di dalam folder ‘build’ dari direktori project File
Marsel Willem Aipassa, S. Kom.
File : manifest.mf
MIDlet-2: Welcome, , WelcomeMIDlet-1: HelloMIDlet, , HelloMIDletMIDlet-Vendor: VendorMIDlet-Name: CobaMobileAppMIDlet-Version: 1.0MicroEdition Configuration: CLDC-1.1MicroEdition-Profile: MIDP-2.1
Marsel Willem Aipassa, S. Kom.
File : .jad
MIDlet-1: HelloMIDlet, , HelloMIDlet MIDlet-2: Welcome, , Welcome MIDlet-Jar-Size: 2277 MIDlet-Jar-URL: CobaMobileApp.jar
MIDlet-Name: CobaMobileApp MIDlet-Vendor: Vendor MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.1
Marsel Willem Aipassa, S. Kom.
File Archive (.JAR)
Satu atau lebih MIDlet dapat dipaketkan ke dalam satu file JAR yang berisi: File manifest (.MF) yang mendeskripsikan content dari file JAR Kelas dari MIDlet-MIDlet yang ada di dalam MIDlet suite serta kelas-kelas lain yang digunakan oleh MIDlet yang berada di dalam MIDlet Suite File resource (image, sound) yang digunakan oleh MIDlet dalam MIDlet suite
Marsel Willem Aipassa, S. Kom.
File Manifest (.MF)
File manifest (.MF) mendefenisikan atribut-atribut dari MIDlet. Atribut-atribut nantinya digunakan oleh Application Management Software (AMS) pada device untuk mengidentifikasikan, menginstall dan menjalankan MIDlet. Atribut-atribut yang digunakan dapat dilihat pada tabel berikut
Marsel Willem Aipassa, S. Kom.
MIDlet Attribute
Nama Atribut
MIDlet-Name MIDlet-Version MIDlet-Vendor MIDlet-Icon MIDlet-Description MIDlet-Info-URL MIDlet-
Deskripsi
Nama dari MIDlet Versi dari MIDlet Vendor dari MIDlet Icon dari MIDlet Deskripsi singkat mengenai MIDlet URL yang memberikan informasi lebih lanjut mengenai MIDlet Nama, Icon dan Kelas dari MIDlet ke-n pada file JAR (dipisahkan dengan tanda koma) URL di mana file JAR dapat diakses
Marsel Willem Aipassa, S. Kom.
MIDlet Attribute
Nama Atribut
MIDlet-Jar-Size MIDlet-Data-Size MicroEdition-Profile MicroEdition-Configuration MIDlet-Permissions MIDlet-Permissions-Opt MIDlet-Push-
Deskripsi
Jumlah minimum (dalam byte) yang dibutuhkan untuk persistent data pada MIDlet Profile dari MIDlet Configuration dari MIDlet Daftar Permissions untuk fungi-fungsi critical yang digunakan oleh MIDlet Daftar Permissions untuk fungi-fungsi non critical yang digunakan oleh MIDlet Daftar inbound connection yang di register ke MIDlet
Marsel Willem Aipassa, S. Kom.
MIDlet Attribute
Nama Atribut
MIDlet-Install-Notify MIDlet-Delete-Notify MIDlet-Delete-Confirm
Deskripsi
Notifikasi saat penginstallan MIDlet Notifikasi saat penghapusan MIDlet Notifikasi konfirmasi saat penghapusan MIDlet
Marsel Willem Aipassa, S. Kom.
File Descriptor (.JAD)
Setiap file .JAR mempunyai file pendamping, yaitu file .JAD (Java Application Descriptor). File .JAD dan .JAR dipergunakan oleh AMS untuk mengatur MIDlet Aturan untuk file descriptor: Ekstensi dari file adalah .jad
MIME type dari descriptor adalah: text/vnd.sun.j2me.app-descriptor
Marsel Willem Aipassa, S. Kom.
File Descriptor (.JAD)
Atribut-atribut yang harus ada di dalam descriptor antara lain: MIDlet-Name MIDlet-Version MIDlet-Vendor MIDlet-Jar-URL MIDlet-Jar-Size
Marsel Willem Aipassa, S. Kom.
CLDC
CLDC 1.0, CLDC 1.1 (mendukung floating point) Merupakan subset dari CDC dan Java SE Package-package pada CLDC java.lang
java.lang.ref (CLDC 1.1) java.util
java.io
javax.microedition.io
Marsel Willem Aipassa, S. Kom.
CLDC Property
CLDC menyediakan cara untuk mengakses properti dari sistem Properti dari sistem dapat diakses dengan menggunakan metode System.getProperty(String key) Contoh : System.getProperty(“microedition.platform”);
Marsel Willem Aipassa, S. Kom.
CLDC Property (2)
Key
microedition.platform
microedition.encoding
microedition.configuration
microedition.profiles
Deskripsi
Nama host atau device Defatult character encoding (ISO 8859-1) Nama dan versi dari configuration Nama dan versi dari profile
Marsel Willem Aipassa, S. Kom.
Menginstal MIDlet ke device
Build Project
Marsel Willem Aipassa, S. Kom.
Menginstal MIDlet ke device (2)
Buka direktori project, lalu copy file .jad dan .jar yang berada di dalam folder dist ke perangkat
Marsel Willem Aipassa, S. Kom.
Menginstal MIDlet ke device (3)
Di perangat mobile, browse kedua file tadi lalu install
Marsel Willem Aipassa, S. Kom.
Terima Kasih
Marsel Willem Aipassa, S. Kom.
Kuis
Apa itu AMS?Apa fungsinya? (20 poin) Apa itu MIDlet? (20 poin) Sebutkan dan jelaskan fungsi dari 2 file yang berada di dalam MIDlet Suite! (20 poin) Sebutkan versi CLDC dan MIDP terbaru! (20 poin) Sebutkan nama asisten kelas ini! (20 poin)
Marsel Willem Aipassa, S. Kom.
Tugas
Per kelompok Install platform emulator lain untuk J2ME di Netbeans, sertakan screenshot Buat aplikasi MIDP sederhana dan install di perangkat mobile Kumpulkan hari Senin jam 12 (softcopy screenshot dan source code aplikasi) di ruangan pak Ramos
Marsel Willem Aipassa, S. Kom.