บทที่ 3 MIDP Programming
บทที่ 3 MIDP Programming
MIDlet
คือ...?
- โปรแกรม Java ที่ run บน MIDP
environment
- MIDlet เป็น class ที่อยู่ใน package
ของ java.microedition.midlet
- โปรแกรมที่พัฒนาขึ้นจาก MIDP และ
สืบทอดจาก MIDlet
- class ที่สืบทอดจาก MIDlet class
และ Implements (เรียกใช้) 3 method คือ startApp(), pauseApp() และ destroyApp()
ในความเป็นจริงแล้ว
การพัฒนา MIDlet จะเป็นในลักษณะเดียวกับการพัฒนา Java Applet คือ Java
Applet จะเป็นการสืบทอดจาก class Applet ส่วน MIDP จะเป็นการสืบทอด จาก
class MIDlet
MIDlet
's Life Cycle
รูปที่ 7 แสดงวงจรการทำงานของ MIDlet
เมื่อเราได้สร้าง class
ที่สืบทอดมาจาก MIDlet Package ที่ชื่อ javax.microedition.midlet.MIDlet
แล้ว, class ของเราจะมีวงจร การทำงานเริ่มจากการสร้าง หลังจากนั้นก็จะอยู่ในสถานะ
Paused(หยุด) เมื่อเรา ต้องการให้มีการทำงานเกิดขึ้น เราก็ต้องเรียกใช้
method ที่ชื่อ startApp() สถานะของคลาสก็เปลี่ยนไปเป็นสถานะ Active(ทำงาน)
ดังรูป, และหากต้องการให้ class หยุดการทำงาน สามารถทำได้โดย เรียกใช้
Method pauseApp(), สุดท้ายก็คือการ จบการทำงาน โดยเรียกใช้ Method destroyApp()
โปรแกรมก็จะเข้าสู่สถานะ Destroyed(ถูกทำลาย)
สถานะต่างๆของ MIDlet
,จากรูปที่ 7 จะเห็นได้ว่า MIDlet มีอยู่ 3 สถานะด้วยกัน คือ
- Paused
state (สถานะหยุดการทำงาน) จะเกิดขึ้น ตอนแรกที่เราทำการเรียก run
โดยการใช้ method startApp(), มีการเรียกใช้ method pauseApp() หรือ notifyPaused()
- Active
state (สถานะการทำงาน) จะเกิดขึ้น ตอนแรกที่เริ่มต้นโปรแกรม, มีการเรียกใช้
method startApp() หรือ มีการเรียกใช้ method resumeRequest() ในต้อนที่สถานะการกทำงานยังเป็น
pauseApp()
- Destroyed
state (สถานะถูกทำลาย) จะเกิดขึ้นหลังจากที่มีการใช้ method destroyApp
หรือ notifyDestroy()
จะเห็นได้ว่าในการเปลี่ยนสถานะ
(state) ของการทำงาน จะใช้ method 3 อันด้วยกัน คือ
- resumeRequest()
ใช้เพื่อ ให้กลับมาอยู่ในสถานะ Active state อีกครั้ง
- notifyPaused()
ใช้เพื่อ สั่งหยุดการทำงาน
- notifyDestroy()
ใช้เพื่อ สั่งทำลาย เพื่อจบการทำงาน
MIDlet suites
รูปที่ 8 แสดงองค์ประกอบของ MIDlet
suites
MIDlet suites เป็นที่รวบของ
class ของ MIDlet และ ไฟล์รูปภาพต่างๆ ที่เกี่ยวข้องกับการทำงาน, MIDlet
suites จะประกอบด้วย 2 ไฟล์หลักๆ คือ
- JAD File
เป็น Text file ที่ทำหน้าที่ Application Descriptor (บอกลักษณะ และคุณสมบัติของโปรแกรม)
จะเก็บ รายละเอียดของ MIDlet suite ต่างๆ ใช้สำหรับให้อุปกรณ์(เช่นมือถือ)ดาว์นโหลด
ไปทำการตรวจสอบ รายละเอียดของโปรแกรม ก่อนการติดตั้ง
- JAR File
เป็น File ที่เก็บ MIDlet ต่างๆเอาไว้ รวมทั้ง resource file ที่เกี่ยวข้อง
โดยมี Manifest file
ตัวอย่าง JAD File (HelloExamples.jad)
MIDlet-Name:
HelloExamples
MIDlet-Vendor: Nokia Pte Ltd
MIDlet-Version: 1.0
MIDlet-Jar-Size: 7808
MIDlet-Jar-URL: HelloExamples.jar |
ไฟล์ JAD ข้างต้นจะเป็นการบอกถึงรายละเอียดของ
MIDlet suite ว่ามีชื่อว่าอะไร, พัฒนาโดยบริษัทใด, เวอร์ชั่นไหน, ขนาดไฟล์เท่าไหร่,
และชื่อไฟล์ JAR ที่ใช้ในการติดตั้งชื่ออะไร (ตรงนี้สามารถใส่ url ที่คุณต้องการให้
download JAR File ได้)
ตัวอย่าง Manifest File
Manifest-Version:
1.0
MIDlet-Name: HelloExamples
MIDlet-Vendor: Nokia Pte Ltd
MIDlet-Version: 1.0
MicroEdition-Profile: MIDP-1.0
MicroEdition-Configuration: CLDC-1.0
MIDlet-1: BouncingTextMIDlet, , example.hello.BouncingTextMIDlet
MIDlet-2: HelloWorldMIDlet, , example.hello.HelloWorldMIDlet |
สำหรับ Manifest File
ข้างต้นจะบอกถึงรายละเอียดของ JAR File นั้นๆว่า เป็น Manifest เวอร์ชั่น
เท่าไหร่, ชื่อ MIDlet ว่าอะไร, พัฒนาโดยใคร, เวอร์ชั่นเท่าไหร่,ใช้ MIDP
และ Configuration เวอร์ชั่นอะไร สุดท้ายคือ ประกอบด้วย MIDlet อะไรบ้าง
MIDlet Development Steps
ขั้นตอนในการการพัฒนา
MIDlet จะมีขั้นตอนดังนี้
- ทำการสร้าง MIDlet และ ข้อมูลอื่นๆ
ที่ต้องใช้ในโปรแกรม เช่น ไฟล์รูปภาพ, ไอคอนต่างๆ
- สร้าง MIDlet Suite
- สร้าง JAD File
- ทดลอง run โปรแกรมผ่าน emulator
(โปรแกรมจำลอง)
- ทำการตรวจสอบแก้ไข หากมีข้อผิดพลาดให้กลับไปทำตั้งแต่
1-3 ใหม่อีกครั้ง
- สุดท้าย เป็นการทำตัวติดตั้ง สำหรับการติดตั้งเข้าสู่
มือถือ
ในการพัฒนา MIDlet หลังจากที่คุณได้ทำการเขียนโค้ดขึ้นมาแล้ว
คุณจะต้องทำการ Compile โค้ดนั้นด้วย Javac (Java Compiler) สิ่งที่ได้คือไฟล์
class ขั้นตอนต่อไปก็คือคุณต้อง นำไฟล์ class ของคุณไปทำการ Preverifier
อีกครั้ง ก่อนจะส่งไฟล์ ที่ได้ไปให้กับมือถือ ทดลอง run เพื่อตรวจสอบการทำงาน
ว่าถูกต้องอย่างที่ต้องการหรือไม่ (ดูรูปที่ 9 ประกอบ)
รูปที่ 9 แสดงขั้นตอนการ Compile และ
Verification
จะเห็นได้ว่าเป็นเรื่องที่ยุ่งยากมาก
ในการที่จะเขียน และพัฒนา MIDet ขึ้นมาสักตัว ด้วยเหตุนี้ จึงเกิดการพัฒนา
Tools ที่ใช้ในการพัฒนา MIDlet เพื่อให้ผู้พัฒนา มีความสะดวกใน สร้างและพัฒนา
MIDlet
MIDP Tools
เครื่องมือในการพัฒนา MIDlet ได้มีออกมาหลายค่ายด้วยกัน
มีทั้งต้องเสียเงิน และ ให้ Download ฟรี ตัวอย่างเช่น
- J2ME Wireless Toolkit
- Nokia Developer's Suit for J2ME
- MIDP for Palm
- Simplicity for Mobile Device
- Metroworks Code Warrior
- Motorola SDK
- IBM Visual Age for Java Micro edition
- Whiteboard from Zucotto Wireless
ซึ่งในเนื้อหาของเราจะใช้ J2ME Wireless
Toolkit ร่วมกับการใช้ Emulator ต่างๆของทาง Nokia
เป็นหลัก, สำหรับในขณะที่ผมเขียนหนังสือ เล่มนี้อยู่ Java ก็ได้ ออก J2ME
Wireless Toolkit 2.0 ซึ่งเป็น version ใหม่ ที่รองรับกับ MIDP 2.0 ,Wireless
Messaging 1.1และ Mobile Media 1.0 ซึ่งก็ยังไม่มี ถือถือ ของค่ายใด ที่รองรับกับ
MIDP 2.0 ออกมาจำหน่ายในท้องตลาด
รูปที่ 10 แสดงหน้าตาของโปรแกรม KToolbar
ที่อยู่ใน
J2ME Wireless Toolkit
รูปที่ 11 แสดงหน้าตาของ Emulator ที่อยู่ใน
J2ME Wireless Toolkit
Getting Start
หลังจากที่เราได้ให้ทฤษฎีกันก่อนการเริ่มต้น
การเขียนโปรแกรม ก็เพื่อว่าจะทำให้คุณเกิดความเข้าใจกันก่อน ว่าอะไรเป็นอะไร
ไม่เช่นแล้วคุณก็จะสงสัยว่า หลายสิ่งหลายอย่างจากโค้ดมาได้อย่างไร แต่ถ้าหากว่าในส่วนของทฤษฎีที่ผ่านมา
คุณไม่ค่อยเข้าใจ ก็ไม่เป็นไร ขอให้ทำตัวอย่างต่อไป และหวนกลับไปอ่านอีกครั้ง
ก็จะทำความเข้าใจได้ง่ายขึ้น
สิ่งที่จำเป็นในการพัฒนา MIDlet ก็คือ
MIDlet Tool ที่เราจะนำมาใช้ เพื่อความสะดวกในกาพัฒนา ทำให้คุณสามารถพัฒนา
MIDlet ได้อย่างรวดเร็ว อย่างที่คุณต้องการ สำหรับในบทเรียนนี้ เราจะมาเริ่มจาก
การติดตั้งโปรแกรม ที่มีความสำคัญต่อการพัฒนา รวมทั้งการติดตั้ง Nokia Emulator
ซึ่งเป็นโปรแกรมจำลองการทำงาน ของมือถือ รุ่นต่างๆ
การติดตั้งและใช้งาน J2ME Wireless Toolkits(WTK)
- ก่อนการติดตั้ง คุณจะต้องทำการ Download
Java 2 SDK, SE จาก http://java.sun.com/j2se/downloads.html
(ซึ่งในขณะที่ผมเขียน หนังสือเล่มนี้ เป็น vesion 1.4.2), แล้วทำการติดตั้ง
- การติดตั้งโปรแกรม J2ME Wireless
Toolkits(WTK),สามารถ Download โปรแกรมได้จาก http://java.sun.com/j2me/download.html
แล้วทำการติดตั้งโปรแกรม โปรแกรมที่ติดตั้งแล้ว จะอยู่ใน Path ของ C:\WTK20
ซึ่งในนี้จะมี Folder ที่เก็บทั้ง โค้ด และ library รวมทั้ง document ของ
การเขียน J2ME
- การเรียกใช้งานสามารถทำได้โดย เลือกที่เมนู
Start->Programs->J2ME Wireless Toolkit 2.0->Ktoolbar จะปรากฏหน้าต่าง
ดังรูป
รูปที่ 12 แสดงหน้าตาของโปรแกรม KToolbar
ที่อยู่ใน
J2ME Wireless Toolkit
- คลิกปุ่ม New Project จะปรากฏหน้าต่าง
ให้ป้อนค่า Project Name เป็น Example และ MIDlet Class Name เป็น HelloWorld,
ดังรูปที่ 13 แล้วคลิกปุ่ม Create Project
รูปที่ 13 แสดงหน้าต่าง สร้าง Project
ใหม่
เมื่อคุณ คลิก Create Project โปรแกรมจะทำการสร้าง
Folder ชื่อ Example ตามชื่อของ Project ที่เราตั้งขึ้น โดยจะอยู่ที่ Path
C:\WTK20\apps\ , พร้อมทั้งจะมี Folder ย่อยๆที่ทำหน้าที่เก็บข้อมูลต่างๆ
เช่น bin =เอาไว้เก็บไฟล์ ที่ผ่านการ complie หรือ make แล้ว, lib =เก็บ
library ,res =เก็บไฟล์ resource และ src =เก็บไฟล์โค้ด
- ทำการแก้ไข ค่าของ MicroEdition-Profile
เป็น MIDP-1.0 ดังแสดงในรูปที่ 14 แล้วคลิกปุ่ม OK
รูปที่ 14 แสดงหน้าต่าง Settings for
project
- ทำการสร้างไฟล์ HelloWorld.java
โดยมีโค้ดดังตารางด้านล่าง, แล้วบันทึกไว้ที่ Path C:\WTK20\apps\src
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class HelloWorld extends MIDlet
{
private Display display;
private TextBox t = null;
public HelloWorld(){}
public void startApp( )
{
display = Display.getDisplay(this);
t = new TextBox("Simple MIDlet","Hello World",256,0);
display.setCurrent(t);
}
protected void pauseApp( ){}
protected void destroyApp( boolean unconditional ){}
}
|
- ไปที่หน้าต่าง Ktoolbar แล้วคลิก
Run, MIDlet ที่เราเขียนก็จะแสดงให้เห็น บนตัวของ Emulator ดังรูปที่ 15
รูปที่ 15 แสดงหน้าต่าง เมื่อ run HelloWorld
การติดตั้งและใช้งาน
Sun ONE Studio 4 update 1, Mobile Edition
สำหรับ โปรแกรม Sun ONE Studio 4 update
1, Mobile Edition เป็น MIDlet Tool ที่สะดวกในการใช้งาน เพราะมี Editor
ที่ช่วยในการเขียนโปรแกรมได้เร็ว และเป็นระเบียบ รวมทั้งยังสามารถพัฒนาโปรแกรมในส่วนของ
Server ได้ เช่น การพัฒนา Servlet ให้ทำงานร่วมกับ MIDlet
- ก่อนการติดตั้ง คุณจะต้องทำการ Download
Java 2 SDK, SE จาก http://java.sun.com/j2se/downloads.html
(ซึ่งในขณะที่ผมเขียน หนังสือเล่มนี้ เป็น vesion 1.4.2), แล้วทำการติดตั้ง
- การติดตั้งโปรแกรม Sun
ONE Studio 4 update 1, Mobile Edition
,สามารถ Download โปรแกรมได้จาก http://wwws.sun.com/software/sundev/jde/index.html,แต่ก่อนที่จะ
Download ได้ คุณจะต้องลงทะเบียนกับทาง เว็บเค้าก่อน เมื่อได้ ไฟล์มาแล้วให้ทำการติดตั้ง
- การเรียกใช้งานสามารถทำได้โดย เลือกที่เมนู
Start->Programs->Sun Microsystems->Sun ONE Studio 4 ME->Sun
ONE Studio จะปรากฏหน้าต่าง ดังรูป ด้านล่าง ให้คุณทำการป้อน Path ของ Directory
ที่คุณต้องการเก็บไฟล์ Project ต่างๆของคุณ (ในที่นี้ผมใส่เป็น C:\J2ME)
รูปที่ 16 แสดงหน้าต่างรับค่า Path
เก็บ Project ของผู้ใช้
ต่อจากนั้น โปรแกรมก็จะให้คุณเลือก
แบบของ window mode ที่คุณต้องการใช้งาน ให้คุณเลือก แล้วคลิก Finish จะปรากฏหน้าต่าง
ทั้งหมดของโปรแกรม
รูปที่ 17 แสดงตำแหน่งของ MIDlet suite
และ Folder เก็บไฟล์ตัวอย่าง
- ขั้นตอนต่อไป เราก็จะมาเริ่มสร้าง
HelloWorld โดยใช้ Sun One Studio กัน, โดยเริ่มจาก ทำการขวาที่ Local Directory
แล้วเลือก New->MIDP->HelloMIDlet
รูปที่ 18 แสดงขั้นตอนการสร้าง HelloMIDlet
- จะปรากฎหน้าต่าง New Wizard, ให้ทำการป้อน
Name เป็น HelloWorld ดังรูปด้านล่าง, แล้วให้คลิกปุ่ม Finish
รูปที่ 19 แสดงหน้าต่างป้อนชื่อ MIDlet
- โปรแกรมจะทำการสร้างโค้ดให้คุณโดยอัตโนมัติ
ดังรูปที่ 20
รูปที่ 20 แสดงหน้าต่าง แสดงโค้ดที่ถูกสร้างขึ้น
- ขั้นตอนสุดท้ายให้คุณทดลอง run โปรแกรม
โดยกดปุ่ม F6, MIDlet ก็จะถูก run และแสดงผลออกทาง Emulator ดังรูปที่ 21
รูปที่ 21 แสดงผลการ run MIDlet
ในบทนี้ เราได้ให้ความรู้เกี่ยวกับ
ลักษณะการทำงานของ MIDlet และการใช้งาน MIDlet Tool ในการพัฒนา MIDlet สำหรับในเนื้อหาต่อไป
เราจะได้เริ่มกล่าวถึง ลักษณะ ของ GUI (Graphic User Interface) ของ MIDP
|