Mobile Information Device Profile

Download Report

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 .jad

 File manifest.mf berada di dalam folder ‘build’ dari direktori project  File .jad berada di dalam folder ‘dist’ dari direktori project  Isi dari kedua file tersebut dapat dilihat sebagai berikut:

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- MIDlet-Jar-URL

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- Ukuran file JAR

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.