สถาปัตยกรรมโครงสร้างของ J2ME

Download Report

Transcript สถาปัตยกรรมโครงสร้างของ J2ME

Introduction to Java2 Micro Edition
อ.วิวฒ
ั น์ ชิน
นาทศิรก
ิ ล
ุ
JAVA Overview
`
Java Technology
Enabled Device
Java Technology
Enabled Desktop
Workgroup Server
and High-End Server
Micro Edition
Standard Edition
Enterprise Edition
สถาปั ตยกรรมโครงสร ้างของ
Java 2
สถาปั ตยกรรมโครงสร ้างของ
สถาปัตยกรรมของ J2ME แบ่งออกเป็ น 2 ส่วน คือ
J2ME


Configuration และ Profiles ถือเป็ นส่วนหลัก
สาคัญของ J2ME
้ เพือที
่ จะให
่
จุดประสงค ์ของการกาหนดสองส่วนนี ก็
้ได ้
Virtual machines และคลาส libraries ที่
เหมาะสมสาหร ับdevices แต่ละกลุม
่ ประเภท
1. Configuration
- CLDC (Connected Limit Device
Configuration)
- CDC (Connect Device Configuration)
2. Profile
- MIDP
J2ME คืออะไร


่ อไว ้สาหร ับพัฒนาโปรแกรม ทีท
่ างาน
J2ME เป็ นเครืองมื
่ Kilo Virtual
บนอุปกรณ์ขนาดเล็กทีมี
Machine(KVM) อยู่ เช่น โทรศัพท ์มือถือ(Mobile),
คอมพิวเตอร ์มือถือ(Palm) และ เพจเจอร ์(pager) เป็ น
ต ้น
้ ลก
่ ๆ แต่
J2ME นี มี
ั ษณะคล ้ายกับJava Edition อืน
่ ว Virtual Machine กับชุดคาสัง(API)
่
ต่างกันทีตั
อย่างไรก็ตาม J2ME ก็ยงั คงยึดหลักการ "Write once
run anywhere" ตามแบบฉบับของ Java อยู่
สถาปั ตยกรรมโครงสร ้างของ
J2ME
Profiles
CLDC Libraries
Java Virtual Machine
Host Operating System
•Connected Limited Device
่ ใช ้กัน
Configuration (CLDC) ซึงมี
มากใน โทรศัพท ์มือถือ เพจเจอร ์ พีด ี
เอ เป็ นต ้น
•Connected Device
Configuration (CDC)
ใช ้กันในอุปกรณ์ โทรศัพท ์
อินเตอร ์เน็ ต เป็ นต ้น
Host Operating System

Host Operating System คือระบบปฏิบต
ั ก
ิ ารที่
้
ขึนอยู
่กน
ั อุปกรณ์ เช่น โทรศัพท ์มือถือ Nokia 7650 มี
Symbian Operating System เป็ นระบบปฏิบต
ั ก
ิ าร
่ Palm มี Palm Operating System เป็ น
เครือง
ระบบปฏิบต
ั ก
ิ ารของระบบ เป็ นต ้น
Java Virtual Machines

Java Virtual Machines จะเป็ นส่วนของระบบ
่
จัดการทีคอยควบคุ
มการทางานร่วมกันระหว่าง ตัว Java
กับ Host Operating System ให ้สามารถทางาน
ร่วมกันได ้
Connected Limited Device Configuration
(CLDC)



Connected Limited Device Configuration
(CLDC) อุปกรณ์ตา่ งชนิ ดกันก็มต
ี วั โปรแกรมขับ
(driver) ต่างรูปแบบ ต่างฟังก ์ช ันกันด ้วยเหตุผลนี ้
้ นเพื
้ อจั
่ ดให ้ API สามารถ
J2ME จึงจัดทาตัวติดตังขึ
ทางานได ้บนอุปกรณ์ทก
ุ ประเภท
้
่ ง โดย CLDC นี เหมาะ
้
CLDC เป็ นตัวติดตังประเภทหนึ
กับอุปกรณ์ทใช
ี่ ้พลังงานแบตเตอร ์รีต่ ่า เช่น
โทรศัพท ์มือถือ เพจเจอร ์ เป็ นต ้น
Profile

ในการทางาน J2ME ได ้จัด Profile ไว ้ หลายประเภท
่ ้กับ CLDC คือ Mobile
ซึง่ Profile ทีให
่ น
Information Device Profile (MIDP) ซึงเป็
่ การจัดการพวก user
กลุม
่ ของ Java API ทีมี
่
อ ไว ้
interface การเก็บหน่ วยความจา และ การเชือมต่
้
โดยตัว Profile นี จะเป็
นตัวกลางระหว่างแอพพลิเคช ัน
กับ ตัว J2ME

Mobile Information Device Profile (MIDP)
่
่ างานกับ CLDC
MIDP คือชุดคาสังของ
Java API ทีท
่ นก็เป็ น profile ตัวหนึ่ ง ใน MIDP มี package ที่
ซึงมั
เราสามารถใช ้งานได ้ดังต่อไปนี ้
 javax.microedition.midlet
 javax.microedtiion.lcdui
 javax.microedition.rms
ความสัมพันร์ ะหว่าง J2SE กับ CDC และ
CLDC
CDC
J2SE
CLDC
CDC VS CLDC
• Communicator
• NC
• Set-Top Box
• IP Phone
• PDA
• POS
• Pager
• PDA
• Smart phone
• Cell Phone
Package ต่างๆ ของ
แพ็คเกจต่าง ๆ ของ CLDC ให ้การสนับสนุ น
CLDC
่ ข ้อจากัดในการเชือมโยงในระบบ
่
อุปกรณ์ตา่ งๆทีมี

ระดับสูงและแพ็คเกจต่าง ๆ ของเครือข่าย คลาส
่ ้ใน CLDC ได ้แก่
ต่างๆจะมี 2 ประเภททีใช
่ นส่วนหนึ่ งของคลาสใน J2SE
• คลาสต่าง ๆ ทีเป็
เช่น อยู่ในแพ็คเกจ
java.lang, java.util เป็ นต ้น
่ ยวข
่
่
่
• คลาสต่าง ๆ ทีเกี
้องกับการเชือมโยงทั
วไปของ
่ ่ในแพ็คเกจ
CLDC ซึงอยู
่ นคุณ
java.io, java.net และคลาสต่างๆทีเป็
ลักษณะเฉพาะของ CLDC อยู่ในแพ็คเกจ
ประเภทข้อมู ลต่างๆ ของ
CLDC
่ นส่วน
CLDC ให ้การสนับสนุ นประเภทข ้อมูลเดิมทีเป็


หนึ่ งของ J2SE ได ้แก่ byte, short, int, long,
char และ Boolean
ข ้อมูลประเภท float และ doubleจะไม่ให ้การ
สนับสนุ น เนื่ องจาก อุปกรณ์หลักของ CLDC ไม่มี
ฮาร ์ดแวร ์สาหร ับใช ้เลขทศนิ ยม และ
ค่าใช ้จ่ายในการใช ้เลขทศนิ ยมในซอร ์ฟแวร ์มีราคา
สูงเกินไปสาหร ับอุปกรณ์ของ CLDC
Package ต่างๆ ของ MIDP
ให ้การสนับสนุ นภารกิจของอุปกรณ์ที่
มีคณ
ุ ลักษณะเฉพาะ ภารกิจนี ้ ได ้รวมการจัดการ
่ั
แอพพลิเคชน
ต่าง ๆ บนอุปกรณ์
่
 การเชือมโยงกั
บผู้ใช ้ทางกราฟิ ก
 อุปกรณ์จด
ั เก็บสารสนเทศ
 ขยายความสามารถของเครือข่าย
API ของ MIDP


javax.microedition.midlet เป็ นแพ็คเคจ
่ ั จะบรรจุสองคลาส
สาหร ับการจัดการแอพพลิเคชน
ต่อไปนี ้ MIDlet และMIDletStateChangException
้
่
ทังสองดั
งกล่าวจะช่วยตอบสนองการเปลียนแปลง
่ ใ้ ช ้โต ้ตอบกับแอพพลิเคชนต่
่ ั าง ๆ ของ
สถานะต่าง ๆ ทีผู
MIDlet ภายใต ้สภาวะแวดล ้อมของการพัฒนา
MIDlet สามารถรายงานปัญหาต่าง ๆ ระหว่างการ
่
เปลียนแปลงสถานะโดยการ
โยน
MIDletStateChangException
้
่ ข ้อผิดพลาดเกิดขึน้
ทิงไปเมื
อมี


javax.microedition.lcdui
่
่ ้เชือมโยงติ
่
ซึงจะมี
คลาสต่าง ๆ ทีใช
ดต่อกับผูใ้ ช ้
โดยเฉพาะคลาส Canvas และคลาส Graphics ซึง่
เป็ นคลาสหลักใน API ให ้การสนับสนุ นเขียน
่ ั ยวกั
่
ภาพกราฟิ กบนจอภาพ แอพพลิเคชนเกี
บเกมส ์
้
ทังหมด
จะใช ้คลาสต่าง ๆของ GUI (Graphical
User Interface) ใน API
นอกจากนั้นยังมีอน
ิ เทอร ์เฟสต่าง ๆ ในแพ็คเคจนี ้
่
่
เพือสนั
บสนุ นงานเกียวกั
บการจัดการจอภาพ การ
แสดงภาพของ PNG และการสร ้างภาพกราฟิ กต่าง
ๆ บนจอภาพ


สาหร ับไฟล ์ฟอร ์แมต PNG เป็ นการนาเอา
คุณสมบัตท
ิ ดี
ี่ เด่นของไฟล ์แบบ GIF + JPG มา
รวมกัน นั่นคือสนับสนุ นสีได ้มากกว่า 256 สีแบบ
JPG แต่เทคโนโลยีการบีบอัดภาพให ้ขนาดเล็กลง
ใช ้แบบ GIF มีการแสดงผลแบบ Interlace และ
แน่ นอน
ไฟล ์ฟอร ์แมต PNG สามารถทาภาพแบบโปร่งใส
่ ยมใช ้กันมีอยู่ 2 แบบคือ PNG-8, PNGได ้ ทีนิ
24ต่างกันทีจ่ านวนบิตสีทจั
ี่ ดเก็บ

javax.microedition.rms
จะให ้การสนับสนุ นกลไกของแหล่งจัดเก็บข ้อมูลของ
่ ยกว่า
J2ME ทีเรี
่
่ ั าง ๆ
RecordStore ซึงจะอนุ
ญาตแอพพลิเคชนต่
่ ลบ และ
สามารถเพิม
ปร ับปรุงเรคอร ์ดของข ้อมูลให ้แหล่งจัดเก็บข ้อมูลของ
J2ME
GUI ของ MIDP

GUI หรือ Graphical User Interface ของ MIDP คือ
่ ดต่อกับผู้ใช ้ ไม่วา่ จะเป็ นการแสดงผล การร ับ
ส่วนทีติ
ข ้อมูลหรือการตรวจสอบเหตุการณ์ตา่ ง ๆ ของอุปกรณ์ที่
่ อยู่ 2 แบบคือ
กาลังร ัน MIDlet ซึงมี


High-level API
Low-level API
้
โดย API ทังสองอยู
่ในแพ็คเคจ
javax.microedition.lcdui
High-level API



เป็ นอินเทอร ์เฟสสาหร ับการร ับและแสดงผลข ้อมูล
ตัวอย่างเช่น
กรอบร ับข ้อความ ( Textbox ) รายการตัวเลือก
(List หรือ ChoiceGroup) เป็ นต ้น
แนวคิดของ High-level API คือสามารถสร ้างและใช ้
่ ยมไว้ให้) อย่างอิสระโดยไม่ขนกั
อินเทอร ์เฟส (ทีเตรี
ึ้ บ
ฮาร ์ดแวร ์หรือคุณสมบัตข
ิ องอุปกรณ์ทจะร
ี่ ัน MIDlet
่
MIDlet ทีจะใช
้ High-level API จึงมักจะเป็ น
่ างานทางด ้านการร ับข ้อมูล ตัวเลข หรือ
MIDlet ทีท
่
เงือนไขต่
าง ๆ แล ้วนามาคานวณหรือประมวลผล
บางอย่าง
Low - level API


่ ้องการแสดงหรือ
ถูกออกแบบมาสาหร ับ MIDlet ทีต
่
จัดการเกียวกั
บกราฟิ กโดยตรง เช่น แสดงข ้อความ
วาดเส ้นตรง วงกลม หรือแสดงรูปกราฟิ ก รวมถึง
ตรวจสอบเหตุการณ์ตา่ ง ๆ ในระดับต่า เช่น การกดปุ่ ม
้
Low - level API นี เหมาะส
าหร ับใช้สร ้าง MIDlet
่ นเกมกราฟิ ก โดยคลาสของ Low - level API
ทีเป็
่
สืบทอดมาจากคลาส Canvas ซึงหาก
่ ้ไปร ันในอุปกรณ์ตา่ งกัน ก็อาจจะ
นา MIDlet ทีได
่
ได ้ผลการทางานทีแตกต่
างกันหรืออาจจะใช ้งานไม่ได ้
เลย


่ั
้น สาหร ับ J2ME แล ้ว
การพัฒนาแอพพลิเคชนจาวานั
่ ั ได
่ ้ออกมา จะเรียกว่า MIDlet ซึงจะ
่
แอพพลิเคชนที
่ บสนุ นเทคโนโลยี J2ME
นาไปร ันบนอุปกรณ์ตา่ งๆทีสนั
่ ฒนาขึนจะประกอบด
้
MIDlet ทีพั
้วยไฟล ์ 2 ไฟล ์ คือ
ไฟล ์นามสกุล .jar และไฟล ์นามสกุล .jad



่ บคลาสไฟล ์ต่าง ๆ (นามสกุล .class )
ไฟล ์ .jar นั้นเป็ นทีเก็
ของ MIDlet นั้น
ไฟล ์ .jad (Java Description) เป็ นไฟล ์ข ้อความธรรมดา
่ ้บรรยายหรืออธิบายไฟล ์ .jar ว่ามีชออะไร
ทีใช
ื่
หรือมีขนาด
ไฟล ์เท่าไหร่ เป็ นต ้น
่ ่ใน Package ของ
MIDlet ยังเป็ น class ทีอยู
java.microedition.midlet และเป็ นโปรแกรมที่
้
พัฒนาขึนจาก
MIDP และสืบทอดจาก MIDlet
MIDlet's Life Cycle


สถานะต าง ๆ ของ MIDlet มีอยู 3 สถานะ คือ
้ อท
่ า
Paused State: สถานะหยุดการทางาน จะเกิดขึนเมื
การเรียกใช
เมธอด pauseApp()


Active State:
้ อท
่ าการเรียก
สถานการทางาน จะเกิดขึนเมื
ใช เมธอด startApp()
้
่
Destroyed State: สถานะถูกทาลาย จะเกิดขึนหลั
งจากทีมี
การเรียกใช เมธอด destroyApp()
MIDlet's Life Cycle


่ ้สร ้างคลาสทีสื
่ บทอดมาจาก MIDlet Package ที่
เมือได
ชือ่
javax.microedition.midlet.MIDlet แล ้ว
่
การทางานของคลาสจะเริมจากการสร
้าง หลังจากนั้นจะ
่ ้องการให ้มีการ
อยู่ในสถานะ Paused (หยุด) และเมือต
ทางานเกิดขึน้ ก็จะต ้องเรียกใช ้เมธอด startApp() จะทาให ้
่
สถานะของคลาสก็จะเปลียนเป็
นสถานะ Active (ทางาน)
และหากต ้องการให ้คลาสหยุดการทางาน ก็สามารถทา
ได ้ โดยการเรียกใช ้เมธอด pauseApp() หากต ้องการจบ
การทางาน ก็ให ้เรียกใช ้เมธอด destroyApp() โปรแกรมก็จะ
เข ้าสูส
่ ถานะ Destroyed (ถูกทาลาย)
MIDlet's Life Cycle
การใช้โปรแกรม Netbeans เขียน J2ME


เป็ น Open Source สามารถใช ้เขียนภาษา Java ,
C , C++ , php ได ้
่ บไซต ์
ดาวน์โหลดโปรแกรม มาใช ้งานทีเว็
Netbeans
http://netbeans.org
IDE ของ Netbeans
้
ขันตอนการสร
้างไฟล ์ MIDlet
1. คลิกเมนู
File -> New Project
่ าต่าง New Project ช่อง Categories เลือก Java ME
2. ทีหน้
ช่อง Project เลือก Mobile Application คลิกปุ่ ม Next
้ อ่ Project ทีช่
่ อง Project Name กาหนดตาแหน่ งจัดเก็บทีช่
่ อง
3. ตังชื
่
่ อง  Create Hello MIDlet
Project Location เครืองหมาย
 ทีช่
ออก แล ้วคลิก Next
4. เลือก รูปแบบของ
Emulator Configuration และ Profile
แล ้วคลิกปุ่ ม Fin
่ อ่ Project คลิกเมาส ์ขวา เลือกราย
5. สร ้างไฟล ์ MIDlet นาเมาส ์ชีที้ ชื
new คลิกรายการ MIDlet
6.
่ อง MIDlet Name ตังชื
้ อ่ MIDlet จากนั้นคลิกปุ่ ม Finish
ทีช่
7.
่ ้ป้ อนคาสังลงไป
่
จะปรากฏหน้าต่าง Editor เพือให
ตัวอย่าง โปรแกรมแสดงข ้อความด ้วย Form
ผลการร ันโปรแกรม
่
่
ตัวอย่าง โปรแกรมวาดภาพสีเหลี
ยมและ
วงกลม
ผลการร ันโปรแกรม
แบบฝึ กปฏิบต
ั ิ

้ อ่ MIDlet ว่า
ให ้นักศึกษา สร ้าง MIDlet ใน Project เดิมตังชื
่ การร ันโปร
MyProfile จากนั้นให ้นาไฟล ์มาดัดแปลง เมือมี
แกรให ้หน้าจอมือถือแสดงข ้อมูลของนักศึกษา ไดแ้ ก่
่
รหัสนักศึกษา ชือนามสกุ
ล โปรแกรมวิชา คณะวิชา ดัง
ภาพ
ให ้นักศึกษา ส่งไฟล ์ทางหน้าเว็บอาจารย
กาหนดส่งวันนี ้ ภายใน 12.00 น.
่
ในไฟล ์ให ้ Comment ชือไฟล
์
่
ชือสกุ
ลผูเ้ ขียน เลขที่