This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Senin, 25 Juli 2011

J2ME Tutorial, Part 1: Menciptakan MIDlet

9 Februari 2005

{Cs.r.title}




Isi
Pendahuluan J2ME
Mendapatkan dan Instalasi J2ME Development Kit
Memahami Proses Penciptaan MIDlet - Tanpa Toolkit
Langkah 1: Desain
Langkah 2: Kode
Langkah 3: Kompilasi
Langkah 4: Preverify
Langkah 5: Paket
Langkah 6: Uji
Langkah 7: Deploy
Memahami Proses Penciptaan MIDlet - Menggunakan Toolkit
Siklus Hidup MIDlet

Java 2 Micro Edition (J2ME) menggabungkan sumber daya terbatas JVM dan satu set API Java untuk mengembangkan aplikasi untuk perangkat mobile. Artikel ini adalah yang pertama dalam seri. Kali ini, setelah pengenalan cepat untuk J2ME, saya akan memberikan panduan langkah-demi-langkah untuk membuat aplikasi J2ME, juga dikenal sebagai MIDlet, menggunakan contoh sederhana. Ini akan mencakup bagaimana untuk menguji dan menyebarkan MIDlets juga. Akhirnya, saya akan melengkapi angsuran ini dengan melihat siklus hidup MIDlet.

Pendahuluan J2ME

Apa itu J2ME? Memotong hype dan kelebihan lemak dan Anda yang tersisa dengan lain (set) Java API. Karena API ini tidak dapat dijalankan pada Virtual Machine tradisional Jawa (JVM), karena ukuran terbatas perangkat mobile dalam hal memori dan ketersediaan sumber daya, J2ME mendefinisikan versi terbatas dari JVM juga. Singkatnya:

J2ME menggabungkan sumber daya terbatas JVM dan satu set API Java untuk mengembangkan aplikasi untuk perangkat mobile.

Apakah Anda, sebagai pengembang, harus menginstal JVM dan API pada perangkat mobile? No produsen perangkat menginstal dan mengepak sebelumnya perangkat mereka dengan JVM (dan terkait API). Sebagai seorang pengembang, Anda hanya perlu untuk mengembangkan aplikasi penargetan perangkat ini dan menginstalnya. Lebih mudah diucapkan daripada dilakukan!

J2ME dapat dibagi menjadi tiga bagian, seperti yang ditunjukkan pada Gambar 1: konfigurasi, profil, dan paket opsional. Konfigurasi berisi JVM (tidak JVM tradisional, tetapi versi cut-down) dan beberapa perpustakaan kelas; profil dibangun di atas ini perpustakaan kelas dasar dengan menyediakan satu set API yang berguna, dan paket opsional, baik, opsional set API yang Anda mungkin atau mungkin tidak digunakan saat membuat aplikasi Anda. Paket Opsional secara tradisional tidak dikemas oleh produsen perangkat, dan Anda harus paket dan mendistribusikan dengan aplikasi Anda. Konfigurasi dan profil yang disediakan oleh produsen perangkat dan mereka tertanam dalam perangkat.

Gambar 1
Gambar 1. Tumpukan J2ME

Profil paling populer dan konfigurasi yang Sun menyediakan adalah Perangkat Mobile Information Profile (MIDP) dan Connected Device Configuration Terbatas (CLDC), masing-masing. Seperti namanya, CLDC adalah untuk perangkat dengan konfigurasi yang terbatas, misalnya, perangkat yang hanya memiliki 128 sampai 512KB memori yang tersedia untuk aplikasi Java. Akibatnya, JVM yang menyediakan sangat terbatas dan hanya mendukung sejumlah kecil kelas Java tradisional. (JVM ini terbatas sebenarnya disebut KVM.) Mitra Its, Konfigurasi Connected Device (CDC) adalah untuk perangkat dengan setidaknya 2MB memori yang tersedia dan mendukung lebih kaya fitur JVM (tapi masih tidak JVM standar).

Profil MID melengkapi konfigurasi CLDC sangat baik karena meminimalkan baik memori dan daya yang dibutuhkan untuk perangkat terbatas. Ini menyediakan API dasar yang digunakan untuk membuat aplikasi untuk perangkat ini. Misalnya, menyediakan javax.microedition.lcdui paket yang memungkinkan kita untuk menciptakan elemen GUI yang dapat ditampilkan pada perangkat (terbatas) menjalankan profil MID di atas konfigurasi CLDC. Perhatikan bahwa MIDP tidak dapat digunakan dengan perangkat CDC. Perangkat CDC mendapatkan set mereka sendiri profil, seperti Yayasan dan profil Personal. Namun, saya tidak akan menutupi profil atau CDC di sini, dan akan berkonsentrasi pada menggunakan MIDP dan CLDC saja.

Versi terbaru dari MIDP dan CLDC adalah 2,0 dan 1,1, masing-masing. Tidak banyak perangkat saat ini mendukung versi ini, tetapi daftar ini berkembang pesat. Sun memelihara daftar perangkat menurut versi .

Mendapatkan dan Instalasi J2ME Development Kit

Memulai dengan pengembangan aplikasi (selanjutnya disebut "MIDlet") untuk platform J2ME adalah mudah. Meskipun produsen perangkat menginstal dan mengepak sebelumnya perangkat mereka dengan JVM (dan terkait API), Anda masih perlu menginstal J2ME Wireless Toolkit 2.2 pada mesin pengembangan Anda. Sebelum itu, namun Anda juga harus memiliki Java Development Kit (JDK), versi 1.4.2 atau lebih, dipasang.

Peringatan: Saya punya masalah mendapatkan Wireless Toolkit untuk bekerja dengan baik dengan JDK 5.0. Jika Anda tidak memerlukan fitur terbaru dalam versi 5.0, yang terbaik adalah tetap berpegang pada versi 1.4.2. Saya telah menggunakan 1.4.2_05 untuk semua contoh dalam seri ini.

Anda perlu Toolkit ini karena berisi alat yang penting dalam menghasilkan MIDlets. Perangkat ini menyediakan lingkungan pengembangan untuk MIDP 2.0 dan CLDC 1.1 (dan untuk MIDP 1.0 dan CLDC 1.0, karena ini parameter yang kompatibel), dan menyediakan paket-paket opsional yang diperlukan untuk perpustakaan opsional, seperti aplikasi 3D dan Mobile Media. Terakhir, ia menyediakan kemampuan untuk menandatangani MIDlet Anda sehingga mereka dapat disahkan sebelum instalasi pada perangkat mobile remote.

Setelah Anda mendownload paket instalasi untuk Toolkit, instal di direktori pilihan Anda. Default, pada Windows, C: \ WTK22, dan ini akan menjadi direktori instalasi untuk contoh dalam seri ini juga. Saya tidak akan menjelaskan direktori yang dibuat di bawah folder ini sekarang. Sebelum aku melakukan itu, marilah kita mencoba dan memahami proses menghasilkan sebuah MIDlet dari awal.

Memahami Proses Penciptaan MIDlet - Tanpa Toolkit

Ada tujuh langkah dalam penciptaan MIDlet. Langkah-langkah ini: merancang, coding, kompilasi, preverification, kemasan, pengujian, dan penyebaran. Beberapa langkah ini tidak sepenuhnya MIDlet-sentris (misalnya, setiap aplikasi perlu dirancang, kode, dan dikompilasi), tetapi kita akan meliputi mereka di sini karena ada perbedaan MIDlet-sentris. Toolkit abstrak banyak langkah-langkah sehingga lebih mudah untuk Anda dalam skema keseluruhan hal. Ini bagus dan keren setelah Anda tahu proses, tetapi ketika Anda hanya memulai, Anda benar-benar harus coding dengan tangan, daripada menggunakan abstraksi berlapis gula.

Untuk memastikan bahwa kita mendapatkan pemahaman yang tangan-langkah ini, mari kita mengambil bantuan dari contoh sederhana. Kami akan menciptakan sebuah MIDlet yang, ketika dieksekusi, akan mencetak tanggal dan waktu pada perangkat mobile untuk waktu yang singkat. Seiring dengan ini dalam pikiran, menjaga Gambar 2 berguna untuk memahami urutan langkah-langkah. Juga, perhatikan bahwa saya akan menjelaskan siklus hidup MIDlets kemudian. Untuk saat ini, mari kita MIDlet sederhana dan berjalan, yang akan menggambarkan langkah-langkah.

Gambar 2
Gambar 2. Langkah-langkah untuk MIDlet penciptaan

Langkah 1: Desain

MIDlets berbeda dari aplikasi lain yang mungkin Anda buat, hanya karena MIDlet berjalan dalam sebuah lingkungan yang sangat berbeda. Ada beberapa isu, bukan hanya mereka yang paling terlihat (misalnya, interaktivitas dari MIDlet Anda dengan pengguna), tetapi yang lain yang berdampak kegunaan.

Untuk contoh aplikasi, Tanggal-Waktu MIDlet kita tidak perlu interaktivitas pengguna. Perlu untuk menampilkan tanggal dan waktu selama beberapa detik ketika pengguna menjalankan MIDlet. Untuk kasus sederhana seperti ini, mungkin cukup untuk meniru desain MIDlet dengan menggambar pada selembar kertas. Untuk desain yang lebih kompleks dengan beberapa layar, yang terbaik adalah untuk merancang layar profesional sebelum memulai proses pengkodean yang sebenarnya.

Langkah 2: Kode

Setiap MIDlet harus memperpanjang abstrak MIDlet kelas ditemukan di javax.microedition.midlet paket, seperti menciptakan applet dengan memperluas java.applet.Applet kelas. Minimal, Anda harus menimpa MIDlet tiga metode ini kelas abstrak, startApp() , pauseApp() , dan destroyApp(boolean unconditional) . Berikut adalah DateTimeApp kelas:

 package com.j2me.part1; import java.util.Date; import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.Display; import javax.microedition.midlet.MIDlet; public class DateTimeApp extends MIDlet { Alert timeAlert; public DateTimeApp() { timeAlert = new Alert("Alert!"); timeAlert.setString(new Date().toString()); } public void startApp() { Display.getDisplay(this).setCurrent(timeAlert); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } } 

Dalam contoh ini, DateTimeApp 's konstruktor menciptakan elemen yang diperlukan untuk menampilkan waktu pada layar perangkat dan startApp metode melakukan tugas yang sebenarnya menampilkan elemen ini. Jangan khawatir jika Anda tidak memahami bagaimana Alert elemen bekerja, atau ketika konstruktor atau metode lain yang disebut. Aku akan menutupi bekas di bagian berikutnya, ketika kita melihat elemen GUI dari MIDP 2.0, dan yang terakhir kemudian dalam artikel ini di bagian Siklus Hidup MIDlet.

Copy kode ini ke dalam file bernama DateTimeApp.java dan menyimpannya dalam folder yang meniru struktur kemasannya (com \ j2me \ part1). Anda dapat menyimpan di mana saja Anda inginkan pada mesin anda; sejauh artikel ini yang bersangkutan, kami akan menyimpannya di folder C: \ WTK22 \ artikel \ com \ j2me \ part1.

Langkah 3: Kompilasi

Dengan kode sederhana di tempat, sekarang Anda perlu tahu bagaimana untuk compile sehingga siap untuk perangkat mobile. Kompilasi MIDlet tidak terlalu jauh berbeda dari kompilasi Java aplikasi normal. Anda masih menggunakan javac sebagai compiler, kecuali Anda perlu mengubah boot CLASSPATH saat kompilasi MIDlet. Hal ini memiliki efek mengubah basis kelas Java yang menggunakan Java compiler untuk mengkompilasi MIDlet Anda terhadap, sehingga memastikan kompilasi yang ditargetkan terhadap yang sempit Jawa API untuk platform J2ME. Jadi, bukannya kompilasi terhadap java.lang.Date di Jawa "normal", Anda sebenarnya ingin kompilasi dilakukan untuk J2ME itu java.lang.Date . Hal ini dilakukan dengan menunjuk ke kelas CLDC dan MIDP untuk javac s ' -bootclasspath pilihan saat kompilasi. Hal ini ditunjukkan di bawah ini untuk kompilasi MIDlet DateTimeApp. Untuk melakukan kompilasi ini, pastikan bahwa Anda memasukkan perintah dengan menavigasi ke direktori C: \ WTK22 \ artikel melalui command prompt.

C:\WTK22\article>javac -bootclasspath ..\lib\cldcapi11.jar;..\lib\midpapi20.jar com\j2me\part1\DateTimeApp.java

Perhatikan bahwa saya telah melakukan kompilasi terhadap API CLDC 1.1 dan 2.0 yang MIDP API versi, masing-masing, dengan memasukkan perpustakaan ini di bootclasspath pilihan. Aku bisa melakukan kompilasi terhadap versi lain jika itu diperlukan, dengan hanya menunjuk ke perpustakaan masing-masing.

Langkah 4: Preverify

Sebelum Anda dapat menyebarkan kelas MIDlet Anda, perlu preverified. Verifikasi kode byte adalah langkah yang dilakukan oleh JVM sebelum menjalankan setiap file kelas untuk memastikan bahwa file kelas secara struktural dan konseptual yang benar sesuai spesifikasi JVM. Jika file kelas gagal cek ini, itu ditolak dan JVM menutup, menunjukkan baik keamanan atau pelanggaran integritas file kelas. Verifikasi ini dilakukan oleh semua JVMs, bahkan JVM kecil yang terkandung dalam konfigurasi CLDC untuk perangkat J2ME. Meskipun ini bukan masalah bagi "normal" aplikasi, verifikasi dalam perangkat J2ME adalah kendala sumber daya dan memori yang mereka tidak dapat menangani (atau tidak harus menangani). Oleh karena itu, kebutuhan untuk preverification.

Preverification adalah salah satu bagian dari proses dua-langkah verifikasi khusus, dirancang khusus untuk perangkat dibatasi, seperti yang menjalankan berbasis CLDC JVMs. Idenya adalah untuk membiarkan pengembang preverify kelas, yang membatasi jumlah pekerjaan yang harus dilakukan ketika kelas diverifikasi dalam perangkat. Proses preverification menambahkan informasi khusus untuk kelas-kelas yang mengidentifikasi mereka sebagai preverified dan membuat proses pada perangkat jauh lebih efisien.

Menjaga ini dalam pikiran, preverify Tanggal-Waktu MIDlet Anda. Wireless Toolkit dilengkapi dengan alat preverification dalam folder bin dari instalasi (C: \ WTK22 \ bin). Perintah berikut, ketika dijalankan dari C: \ Artikel WTK22 \, akan preverify the DateTimeApp.class dibuat pada langkah sebelumnya.

C:\WTK22\article>..\bin\preverify.exe -classpath ..\lib\cldcapi11.jar;..\lib\midpapi20.jar com.j2me.part1.DateTimeApp

Secara default, preverifier akan membuat versi preverified file DateTimeApp.class Anda dalam folder bernama output dalam direktori saat ini. Ini akan menjaga struktur paket, sehingga kelas preverified Anda sekarang akan berada di folder C: \ WTK22 \ artikel \ Output \ com \ j2me \ part1 \. Anda bisa, tentu saja, titik output ke folder lain, menggunakan -d pilihan untuk alat preverify, tapi untuk saat ini, gunakan folder output standar.

Langkah 5: Paket

Kemasan MIDlet Anda sehingga siap untuk pengujian dan penyebaran adalah proses yang cukup terlibat, dengan beberapa langkah. Meskipun setiap langkah sangat mudah, mereka harus diikuti dalam urutan yang tepat.

Langkah pertama adalah membuat file Manifest. Manifest file ini menjelaskan isi dari file Java Archive (JAR) yang kita akan menciptakan pada langkah berikutnya. Ada beberapa atribut yang dapat masuk dalam file ini, tapi untuk Tanggal-Waktu MIDlet Anda, tetap hanya orang-orang yang diperlukan. Isi file ini adalah ditampilkan di sini:

MIDlet-Name: DateTimeApp
MIDlet-Version: 1.0.0
MIDlet-Vendor: Vikram Goyal

Simpan file ini sebagai MANIFEST.MF di C: \ WTK22 \ artikel \ folder output. (Perhatikan newline setelah atribut terakhir, MIDlet-Vendor . Ini harus hadir, jika atribut ini tidak akan diakui.)

Selanjutnya, membuat file JAR yang paket sampai file DateTimeApp.class preverified dan file Manifest. Untuk membuat file ini JAR, arahkan ke C: \ WTK22 \ artikel \ keluaran direktori dan mengeluarkan perintah berikut:

C: \ WTK22 \ artikel \ keluaran> jar cvfm DateTimeApp.jar MANIFEST.MF \ com.

Ini akan membuat file DateTimeApp.jar dalam arus (C: \ WTK22 \ artikel \ output) folder.

Langkah kedua-untuk-terakhir adalah membuat file yang memiliki ekstensi. Jad. Java Application Descriptor Sebuah poin file (JAD) ke lokasi dari MIDlet itu menggambarkan sehingga perangkat J2ME dapat menginstalnya. Sekali lagi, file ini dapat berisi beberapa atribut untuk sebuah MIDlet tunggal (atau untuk beberapa MIDlet), tetapi untuk Tanggal-Waktu MIDlet Anda, Anda akan tetap dengan orang-orang yang diperlukan.

MIDlet-1: DateTimeApp, , com.j2me.part1.DateTimeApp
MIDlet-Name: DateTimeApp
MIDlet-Version: 1.0.0
MIDlet-Vendor: Vikram Goyal
MIDlet-Jar-URL: DateTimeApp.jar
MIDlet-Jar-Size:
MicroEdition-Profile: MIDP-2.0
MicroEdition-Configuration: CLDC-1.1

Simpan file ini sebagai DateTimeApp.jad dalam folder yang sama dengan file JAR (C: \ WTK22 \ artikel \ output). Saya akan menjelaskan atribut dalam file ini nanti, tetapi untuk sekarang, perhatikan bahwa nilai dari MIDlet-Jar-Size atribut hilang. Ini nilai yang hilang membawa Anda ke langkah terakhir dari langkah kemasan, di mana Anda menentukan ukuran dari file DateTimeApp.jar, dan menempatkan nilai yang dalam hal ini JAD file, dalam byte yang sebenarnya. Hal ini sangat penting untuk mendapatkan ini tepat, karena instalasi dari MIDlet ini akan gagal jika nilai ini berbeda dari ukuran sebenarnya. Pada mesin saya, nilai ini adalah 1469 byte, dan karenanya, ini adalah apa atribut ini tampak seperti pada mesin saya:

MIDlet-Jar-Size: 1469

Ini melengkapi bagian kemasan. Well, sebenarnya, ada beberapa langkah lain dalam kemasan yang saya dapat berbicara tentang (misalnya, penandatanganan dan kebingungan), tapi untuk menjaga hal-hal sederhana, saya akan meninggalkan langkah-langkah untuk diskusi nanti. Untuk sekarang, Anda akan berpindah ke pengujian MIDlet Anda.

Langkah 6: Uji

Sebelum menggelar MIDlets, mereka harus diuji dengan menggunakan perangkat emulator dasar umum yang meniru fungsi dari perangkat yang sebenarnya pada komputer Anda. Emulator ini adalah bagian dari Wireless Toolkit dan menyediakan fungsionalitas yang pasti untuk hadir di sebagian perangkat yang MIDlet ditargetkan. Emulator ini hadir dalam folder bin dari Toolkit.

Dari direktori keluaran dibuat dalam langkah preverify sebelumnya, dan dimana kita kini memiliki sebuah MIDlet dikemas dalam bentuk JAR dan file JAD, perintah berikut untuk menjalankan emulator dengan file JAD sebagai pilihan.

C:\WTK22\article\output>..\..\bin\emulator.exe -Xdescriptor DateTimeApp.jad

Anda harus melihat emulator muncul di layar Anda seperti ditunjukkan pada Gambar 3, dengan MIDlet DateTimeApp dipilih. Jika tidak, kesalahan yang paling mungkin pada titik ini akan JAR informasi ukuran yang salah. Pastikan Anda memiliki ukuran yang tepat yang tercantum dalam file JAD.

Gambar 3
Gambar 3. Pengujian DateTimeApp

Di sudut kanan bawah layar perangkat ditiru, Anda dapat melihat "Luncurkan" menu item yang terdaftar. Emulator telah terinstal MIDlet dan siap untuk memulai itu. Klik pada tombol ponsel persis di bawah item menu dan MIDlet harus menampilkan waktu tanggal saat ini untuk beberapa detik dan kemudian menghilang. Perhatikan bahwa MIDlet masih berjalan bahkan setelah tanggal dan waktu hilang, karena dalam kode, Anda tidak menghancurkannya.

Langkah 7: Deploy

Ini dia! Sekarang Anda telah mencapai tahap di mana Anda dapat menyebarkan MIDlet secara langsung pada perangkat mobile Anda. Ada dua cara untuk melakukan ini. Yang pertama adalah melalui koneksi jaringan antara komputer dan handset Anda. Ini bisa melalui kabel USB atau koneksi nirkabel Bluetooth, tergantung pada perangkat Anda. Kebanyakan perangkat yang mendukung Java akan memungkinkan Anda untuk menginstal aplikasi J2ME melalui koneksi ini.

Kedua, dan salah satu yang lebih menarik, karena membuka MIDlet Anda ke dunia luar, adalah melalui Internet. Setelah semua, apa gunanya MIDlet Anda jika seluruh dunia tidak bisa melihatnya? Tentu saja, ini berarti bahwa perangkat Anda harus dapat terhubung ke Internet menggunakan browser internal.

Sebelum Anda melangkah lebih jauh, ingat bahwa ketika Anda membuat file JAD, Anda masukkan dua atribut di dalamnya yang ditentukan versi CLDC (1.1) dan MIDP (2.0) yang MIDlet diciptakan. Sejak MIDlet DateTimeApp tidak menggunakan salah satu fitur dari versi ini, secara teoritis harus dijalankan pada perangkat yang mendukung versi lebih rendah dari atribut-atribut, juga. Oleh karena itu, MIDlet DateTimeApp harus dijalankan pada CLDC 1.0 dan MIDP 1.0, tapi karena file JAD membatasi versi ini dengan yang lebih baru, perangkat akan gagal untuk menginstal MIDlet ini jika mereka tidak mendukung versi baru ini. Jika hal ini terjadi dengan perangkat Anda, jangan takut! Seperti yang saya katakan sebelumnya, karena kita tidak menggunakan MIDP-2.0 atau CLDC-1.1-fitur khusus, Anda hanya dapat mengubah nomor versi ini di file JAD, dan ini akan cukup untuk menginstal perangkat ini pada semua perangkat yang mendukung Java . Jika hal ini terjadi dengan perangkat Anda, atau perangkat yang Anda akan menguji MIDlet ini pada, hanya mengubah nilai-nilai ini dalam file JAD dan Anda baik untuk pergi.

Untuk dapat menyebarkan MIDlet Anda melalui Internet, Anda perlu memiliki akses ke web server dengan alamat IP yang nyata-dunia atau nama domain. Anda juga perlu memiliki hak akses administratif untuk dapat memodifikasi file konfigurasi server web Anda untuk menambahkan beberapa Multipurpose Internet Mail Exchange (MIME) jenis untuk JAD dan JAR ekstensi. Jika Anda menggunakan Jakarta / Tomcat sebagai server web Anda, Anda tidak perlu melakukan ini, karena sudah memiliki jenis MIME. Untuk web server Apache, memodifikasi file mime.types dan menambahkan jenis ekstensi berikut.

text/vnd.sun.j2me.app-descriptor jad

application/java-archive jar

Dengan menambahkan jenis MIME, Anda memberitahu browser, atau klien setiap mengakses file-file dari server, bagaimana untuk menangani file-file ini ketika mereka di-download ke dalam perangkat.

Selanjutnya, membuat file HTML yang akan menjadi titik acuan. Ketat, hal ini tidak diperlukan, karena perangkat yang dapat mengakses halaman HTML juga dapat mengakses file JAD. Tapi halaman HTML menyediakan titik referensi, dan karena itu, mari kita membuat satu untuk Tanggal-Waktu MIDlet Anda. HTML tidak perlu mewah apa-apa. Jangan lupa bahwa pengguna akan mengakses halaman ini melalui perangkat mobile, sehingga adalah bijaksana untuk menjaga ukuran dari halaman ini ke minimum. Hal ini ditunjukkan pada Listing 2.

  Click here to download DateTimeApp MIDlet!  

Daftar 2. DateTimeApp.html halaman untuk mengakses MIDlet DateTimeApp

Halaman ini menyediakan link ke file JAD, dan file JAD menyediakan link ke file JAR yang terkait melalui MIDlet-Jar-URL: DateTimeApp.jar atribut. Namun, karena ini sekarang akan diakses melalui web server melalui Internet, disarankan untuk membuat link ini mutlak bukan relatif. (Perilaku URL relatif konsisten sejauh akses MIDlet yang bersangkutan.) Karena saya akan melayani MIDlet ini melalui situs web ( Craftbits.com ) saya mengelola, saya telah memodifikasi link ini ke URL absolut menggunakan situs web ini .

MIDlet-Jar-URL: http://www.craftbits.com/j2me/DateTimeApp.jar

Anda akan, tentu saja, perlu mengubah URL ini untuk domain Anda.

Akhirnya, upload file JAD dimodifikasi, file HTML yang baru dibuat, dan file JAR asli ke server web Anda ke lokasi direktori dimana Anda akan dapat menavigasi ke halaman HTML melalui browser perangkat mobile Anda. Kini, siapapun dengan perangkat mobile yang dapat mengakses Internet harus dapat menunjuk ke file DateTimeApp.html Anda dan download, menginstal, dan menjalankan MIDlet DateTimeApp.

Bagi mereka yang tidak memiliki akses ke web server, saya telah upload file-file ke server web saya. Cukup arahkan ke http://www.craftbits.com/j2me/DateTimeApp.html melalui perangkat Anda dan Anda akan dapat melihat MIDlet ini dalam aksi.

Itu saja! Anda telah menyelesaikan semua langkah yang diperlukan untuk secara manual membuat dan menyebarkan MIDlet. Proses ini telah membantu Anda untuk memahami apa yang terjadi di balik layar dan diberikan Anda keyakinan dalam semua langkah penciptaan MIDlet. Karena banyak langkah ini berulang, masuk akal untuk menggunakan alat otomatis. Ini adalah tempat Wireless Toolkit masuk, dan Anda akan menggunakannya untuk menciptakan sisa dari MIDLET pada seri artikel ini. Untuk saat ini, mari kita menciptakan MIDlet sama menggunakan Toolkit ini sehingga Anda bisa mendapatkan akrab dengan antarmuka.

Memahami Proses Penciptaan MIDlet - Menggunakan Toolkit

Pada bagian Mendapatkan dan Instalasi J2ME Development Kit di atas, Anda download Toolkit dan diinstal di folder C: \ WTK22 (sejauh ini seri artikel yang bersangkutan, Anda mungkin telah didownload dan diinstal dalam folder yang berbeda). Mari kita menjelajahi isi dari folder ini. Gambar 4 menunjukkan isi ini karena mereka sekarang harus terlihat pada mesin Anda.

Gambar 4
Gambar 4. Wireless Toolkit isi folder

Perhatikan bahwa instalasi default Toolkit tidak akan menciptakan folder artikel, dan bahwa Anda buat di bagian sebelumnya.

Sejauh sebagai MIDlet pengembang yang bersangkutan, folder yang paling penting adalah aplikasi dan folder bin, tapi di sini adalah ringkasan pendek dari masing-masing folder.

Nama folder Folder Deskripsi
appdb Direktori yang bertindak sebagai simulasi untuk sistem file perangkat mobile
aplikasi MIDlet dibuat menggunakan Toolkit ini berada di direktori ini
bin Berisi executable untuk berbagai alat, termasuk Toolkit sendiri, dan berbagai alat lainnya seperti preverifier dan emulator
docs Dokumentasi Wireless Toolkit termasuk dokumentasi API untuk MIDP 2.0 dan MIDP 1.1
lib Berisi file JAR untuk MIDP (baik 2.0 dan 1.1), CLDC (baik 1.1 dan 1.0) dan beberapa perpustakaan opsional lainnya
sesi Direktori dimana jaringan dan profil sesi dipertahankan
wtklib Berisi perpustakaan untuk Toolkit itu sendiri, termasuk sifat-sifat berbagai perangkat emulator

Folder aplikasi adalah direktori di mana semua MIDlets yang dibuat menggunakan Toolkit ini diinstal. Browse folder ini, dan Anda akan melihat beberapa contoh MIDlet disediakan dalam folder mereka sendiri. Ini memiliki direktori sendiri struktur yang memungkinkan pemisahan bersih dari kode sumber, perpustakaan, dan sisanya dari file yang terkait dengan proyek MIDlet.

Folder bin berisi executable untuk Toolkit ini. Yang paling penting adalah ktoolbar.exe (pada Windows), yang dimulai jendela antarmuka utama untuk Toolkit ini. Folder ini berisi executable lainnya juga, beberapa dari kami yang datang di awal (misalnya, preverify.exe dan emulator.exe ). Marilah kita, bagaimanapun, berkonsentrasi pada menggunakan Toolkit sekarang dengan menjalankan ktoolbar.exe dari folder bin. Toolkit ini akan mulai dan Anda akan mendapatkan jendela yang ditunjukkan pada Gambar 5.

Gambar 5
Gambar 5. Utama Toolkit jendela

Seperti pesan dalam jendela mengatakan, dari sini, Anda dapat membuat proyek baru atau membuka yang sudah ada. Ketika Anda klik pada tombol menu Proyek Buka, Anda akan disajikan dengan daftar proyek. Seperti Anda mungkin telah menebak, ini daftar proyek adalah daftar direktori dari folder aplikasi. Memilih proyek dari daftar ini akan membuka proyek dan memungkinkan Anda untuk mengubah pengaturannya, membangun itu (yang meliputi kompilasi, preverification, dan kemasan) dan menjalankannya. Langkah-langkah perancangan dan coding masih harus dilakukan di luar Toolkit ini.

Mari kita gunakan Toolkit untuk membuat MIDlet Date-Time dari bagian sebelumnya. Klik pada tombol menu New Project, dan memasukkan rincian di jendela yang muncul, seperti yang ditunjukkan pada Gambar 6.

Gambar 6
Gambar 6. Membuat proyek baru

Jendela berikutnya yang muncul akan memungkinkan Anda untuk mengubah pengaturan yang mengendalikan platform target dari MIDlet Anda. Dalam hal ini, Anda ingin menargetkan MIDlet ini terhadap MIDP 2.0 dan CLDC 1.1 platform dan karena itu, menjaga Platform Target JTWI, yang preselects Profile MIDP 2.0. Namun, Anda akan perlu mengubah konfigurasi untuk CLDC 1.1 dan hapus centang pada Opsional Mobile Media API perpustakaan, seperti yang ditunjukkan pada Gambar 7.

Gambar 7
Gambar 7. Mengubah pengaturan proyek

Anda dapat memeriksa sisa pengaturan dengan mengklik tab di bagian atas, tapi untuk saat ini, proyek Anda siap untuk dibuat. Melakukannya dengan mengklik tombol OK di bagian bawah. Proyek ini akan dibuat dengan informasi tentang di mana untuk menempatkan file proyek yang ditampilkan pada layar, seperti yang ditunjukkan pada Gambar 8. Anda dapat memverifikasi bahwa Toolkit telah menciptakan folder DateTimeApp bawah folder aplikasi dengan menavigasi untuk itu.

Gambar 8
Gambar 8. Proyek DateTimeApp dibuat

Anda telah menciptakan file src hanya diperlukan untuk ini MIDlet pada bagian sebelumnya. Salin file ini, DateTimeApp.java, dari folder C: \ WTK22 \ artikel \ com \ j2me \ part1 \ ke folder src yang memenuhi syarat (C: \ WTK22 \ apps \ DateTimeApp \ src \ com \ j2me \ part1). Perhatikan bahwa Toolkit ini menciptakan jalur yang memenuhi syarat berdasarkan nama paket, sehingga Anda tidak perlu. Setelah menyalin selesai, kembali ke Toolkit, dan tekan tombol menu Run. Toolkit ini akan mengkompilasi, preverify, dan paket, dan, semuanya berjalan OK disediakan, akan menjalankan DateTimeApp di emulator. Sepertinya cukup sederhana, bukan? Yang Anda harus lakukan adalah untuk membuat proyek baru, mengatur pengaturan, menulis kode, drop dalam direktori yang benar, dan tekan tombol Run. Toolkit merawat sisanya.

Sebelum Anda meninggalkan bagian ini, memeriksa sisa folder di bawah proyek DateTimeApp. Folder bin di bawah folder DateTimeApp berisi JAD dan file Manifest, sedangkan folder berisi kelas kelas disusun. Tapi di mana adalah file JAR MIDlet ini? Nah, file JAR tidak diciptakan dengan hanya berjalan (atau bangunan) aplikasi Anda dalam Toolkit. Untuk membuat file JAR, Anda akan perlu untuk memilih item menu Project, kemudian pilih salah satu opsi di bawah submenu Paket, seperti yang ditunjukkan pada Gambar 9.

Gambar 9
Gambar 9. Membuat file JAR MIDlet

Dengan membuat paket ini, file JAR akan dibuat, dengan informasi yang benar Manifest dalam file JAD. Anda bahkan dapat membuat file HTML yang kita buat di bagian menyebarkan sebelumnya, dengan mengklik Jalankan melalui OTA (Over The Air) menu. Hal ini tidak hanya akan memungkinkan Anda untuk mensimulasikan emulator menjalankan MIDlet ini melalui internet, tetapi juga membuat file HTML untuk Anda dalam folder bin. Sebelum Anda dapat menggunakan file HTML untuk menyebarkan di server Anda sendiri, bersama dengan JAD dan file JAR, Anda akan perlu untuk mengubah nama host, yang defaultnya adalah "localhost."

Anda sekarang tahu cara membuat sebuah MIDlet sederhana, baik menggunakan Toolkit, dan tanpa itu. Sekarang saatnya untuk melihat siklus hidup MIDlet untuk memahami apa yang sebenarnya terjadi ketika MIDlet Anda dikerahkan dan menjalankan.

Siklus Hidup MIDlet

Perangkat mobile, apakah emulator atau nyata, berinteraksi dengan sebuah MIDlet menggunakan perangkat lunak mereka sendiri, yang disebut Aplikasi Manajemen Perangkat Lunak (AMS). AMS bertanggung jawab untuk menginisialisasi, mulai, berhenti, melanjutkan, dan menghancurkan MIDlet. (Selain itu layanan ini, AMS mungkin bertanggung jawab untuk menginstal dan menghapus MIDlet, juga.) Untuk memfasilitasi manajemen ini, MIDlet dapat di salah satu dari tiga negara yang dikontrol melalui MIDlet metode kelas, bahwa setiap MIDlet meluas dan menimpa. Negara-negara yang aktif, berhenti dan hancur.

Gambar 10
Gambar 10. Kemungkinan negara dari MIDlet dan transisi di antara mereka

Seperti yang dapat Anda lihat dari Gambar 11, sebuah MIDlet terinstal adalah dimasukkan ke dalam keadaan berhenti di AMS menciptakan sebuah instance dari itu, dengan memanggil no-args konstruktor. Hal ini tentu saja, bukan satu-satunya cara yang MIDlet dapat dalam keadaan berhenti. Hal ini dapat memasuki negara ini ketika AMS memanggil pauseApp() method pada sebuah MIDlet aktif (dan metode kembali berhasil). Hal ini juga dapat memasuki negara ini ketika MIDlet berhenti sendiri dengan memanggil notifyPaused() metode, yang bertentangan dengan pauseApp() metode, yang disebut oleh AMS. Namun, apa yang sebenarnya terjadi dengan MIDlet di negara ditunda?

Dalam keadaan berhenti, MIDlet sedang menunggu kesempatan untuk masuk ke dalam keadaan aktif. Secara teoritis, di negara ini, tidak harus memegang atau menggunakan segala sumber daya perangkat dan harus pasif di alam. Setelah MIDlet dibuat, ini adalah negara berada dalam sebelum menjadi aktif. Juga, memasuki keadaan berhenti diperlukan bila perangkat membutuhkan untuk mengkonsumsi sumber daya lebih sedikit, karena sumber daya ini mungkin diperlukan untuk menangani fungsi perangkat lainnya, seperti penanganan panggilan masuk. Ini adalah ketika perangkat memanggil pauseApp() metode melalui AMS. Jika MIDlet harus menginformasikan AMS yang telah berhenti, itu harus memanggil notifyPaused() metode, yang memberitahu AMS bahwa MIDlet memang berhenti.

Salah satu cara terakhir di mana MIDlet bisa menjadi negara paused adalah ketika MIDlet startApp() metode, yang disebut ketika AMS memanggil untuk memulai MIDlet (baik pertama kalinya atau dari keadaan ditunda), melempar MIDletStateChangeException . Pada dasarnya, dalam kasus kesalahan, MIDlet mengambil jalan yang aman tinggal di negara berhenti.

Negara aktif di mana setiap MIDlet ingin menjadi! Ini adalah ketika MIDlet dapat melakukan fungsinya, memegang sumber daya perangkat dan umumnya, melakukan apa yang seharusnya dilakukan. Seperti dikatakan sebelumnya, MIDlet dalam keadaan aktif ketika AMS memanggil startApp() method pada MIDlet dijeda (sebenarnya, MIDlet memasuki keadaan aktif sebelum metode ini disebut oleh AMS). Sebuah MIDlet paused dapat meminta untuk pergi ke negara aktif dengan memanggil metode resumeRequest() , yang menginformasikan AMS bahwa MIDlet keinginan untuk menjadi aktif. AMS mungkin tentu saja, memilih untuk mengabaikan permintaan ini atau, alternatif, antrian jika ada MIDlet lain meminta yang sama.

Negara hancur yang dimasukkan ketika MIDlet destroyApp(boolean unconditional) metode ini disebut dan kembali berhasil, baik dari yang aktif atau dihentikan negara. Metode ini disebut oleh AMS ketika merasa bahwa tidak ada kebutuhan untuk MIDlet tetap berjalan dan merupakan tempat MIDlet dapat melakukan pembersihan dan kegiatan menit terakhir. MIDlet dapat memasuki negara itu sendiri, dengan memanggil notifyDestroyed() metode, yang menginformasikan AMS bahwa MIDlet telah dibersihkan sumber daya dan memenuhi syarat untuk kehancuran. Tentu saja, karena dalam kasus ini, destroyApp(boolean unconditional) metode ini tidak disebut oleh AMS, menit-menit terakhir kegiatan harus dilakukan sebelum metode ini dipanggil.

Apa yang terjadi jika AMS memanggil destroyApp(boolean unconditional) metode di tengah suatu langkah penting yang MIDlet mungkin melakukan, dan mungkin enggan untuk dihancurkan? Ini adalah tempat Boolean unconditional bendera datang ke dalam gambar. Jika bendera ini diset ke true, MIDlet akan dihancurkan, terlepas dari apa MIDlet lakukan. Namun, jika bendera ini adalah palsu, efektif, AMS memberitahu MIDlet yang ingin MIDlet untuk dihancurkan, tetapi jika MIDlet adalah melakukan sesuatu yang penting, dapat membesarkan MIDletStateChangeException , dan AMS tidak akan menghancurkannya dulu. Namun, perhatikan bahwa bahkan kemudian, tidak ada jaminan bahwa MIDlet tidak akan hancur, dan tetap sampai ke perangkat masing-masing untuk memutuskan bagaimana mereka harus menangani permintaan. Jika perangkat tidak menghormati permintaan MIDlet, mungkin mencoba dan memanggil destroyApp(boolean unconditional) pada tahap berikutnya.

Perhatikan bahwa sebuah negara menghancurkan berarti bahwa contoh MIDlet telah dihancurkan, tapi tidak dihapus dari perangkat. MIDlet tetap diinstal pada perangkat, dan contoh baru itu dapat dibuat kemudian.

Biarkan saya mengakhiri bagian ini, dan artikel ini, dengan flow chart dari urutan khas dari peristiwa saat menggunakan MIDlet DateTimeApp yang kita buat pada bagian sebelumnya, dan AMS yang sesuai tindakan dan MIDlet negara. Ini diagram alir ditunjukkan pada Gambar 11.

Gambar 11
Gambar 11. AMS tindakan dan negara MIDlet melalui urutan kejadian

Pada bagian berikutnya dari seri ini, Anda akan mulai membuat MIDlet berguna dengan memahami User Interface API MIDP 2.0. Ini akan memungkinkan Anda untuk membuat antarmuka pengguna yang kuat, persyaratan kunci untuk setiap MIDlet.