420 likes | 567 Views
Introduction to Java2 Micro Edition. อ.วิวัฒน์ ชินนาทศิริกุล. JAVA Overview. สถาปัตยกรรมโครงสร้างของ Java 2. สถาปัตยกรรมโครงสร้างของ J2ME. สถาปัตยกรรมของ J2ME แบ่งออกเป็น 2 ส่วน คือ Configuration และ Profiles ถือเป็นส่วนหลักสำคัญของ J2ME
E N D
Introduction to Java2 Micro Edition อ.วิวัฒน์ ชินนาทศิริกุล
สถาปัตยกรรมโครงสร้างของ Java 2
สถาปัตยกรรมโครงสร้างของ J2ME • สถาปัตยกรรมของ J2ME แบ่งออกเป็น 2 ส่วน คือ 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 • 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)ต่างรูปแบบ ต่างฟังก์ชันกันด้วยเหตุผลนี้ • J2ME จึงจัดทำตัวติดตั้งขึ้นเพื่อจัดให้ API สามารถทำงานได้บนอุปกรณ์ทุกประเภท • CLDC เป็นตัวติดตั้งประเภทหนึ่ง โดย CLDC นี้เหมาะกับอุปกรณ์ที่ใช้พลังงานแบตเตอร์รี่ต่ำ เช่น โทรศัพท์มือถือ เพจเจอร์ เป็นต้น
Profile • ในการทำงาน J2ME ได้จัด Profile ไว้ หลายประเภท ซึ่ง Profile ที่ให้กับ CLDC คือ Mobile Information Device Profile (MIDP)ซึ่งเป็นกลุ่มของ Java API ที่มีการจัดการพวก user interface การเก็บหน่วยความจำ และ การเชื่อมต่อ ไว้ โดยตัว Profile นี้จะเป็นตัวกลางระหว่างแอพพลิเคชัน กับ ตัว J2ME
Mobile Information Device Profile(MIDP) MIDP คือชุดคำสั่งของ Java API ที่ทำงานกับ CLDC ซึ่งมันก็เป็น profile ตัวหนึ่ง ใน MIDP มี package ที่เราสามารถใช้งานได้ดังต่อไปนี้ • javax.microedition.midlet • javax.microedtiion.lcdui • javax.microedition.rms
ความสัมพัน์ระหว่าง J2SEกับ CDCและ CLDC CDC J2SE CLDC
CDC VS CLDC • POS • Pager • PDA • Smart phone • Cell Phone • Communicator • NC • Set-Top Box • IP Phone • PDA
Package ต่างๆ ของ CLDC • แพ็คเกจต่าง ๆ ของ CLDC ให้การสนับสนุนอุปกรณ์ต่างๆที่มีข้อจำกัดในการเชื่อมโยงในระบบระดับสูงและแพ็คเกจต่าง ๆ ของเครือข่าย คลาสต่างๆจะมี 2 ประเภทที่ใช้ใน CLDC ได้แก่ •คลาสต่าง ๆ ที่เป็นส่วนหนึ่งของคลาสใน J2SE เช่น อยู่ในแพ็คเกจ java.lang, java.util เป็นต้น • คลาสต่าง ๆ ที่เกี่ยวข้องกับการเชื่อมโยงทั่วไปของ CLDC ซึ่งอยู่ในแพ็คเกจjava.io, java.net และคลาสต่างๆที่เป็นคุณลักษณะเฉพาะของ CLDC อยู่ในแพ็คเกจ javax.microedition.io.* เป็นต้น
ประเภทข้อมูลต่างๆ ของ 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 คือ ส่วนที่ติดต่อกับผู้ใช้ ไม่ว่าจะเป็นการแสดงผล การรับข้อมูลหรือการตรวจสอบเหตุการณ์ต่าง ๆ ของอุปกรณ์ที่กำลังรัน MIDlet ซึ่งมีอยู่ 2 แบบคือ • 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 • ไฟล์ .jar นั้นเป็นที่เก็บคลาสไฟล์ต่าง ๆ (นามสกุล .class ) ของ MIDlet นั้น • ไฟล์ .jad (Java Description) เป็นไฟล์ข้อความธรรมดาที่ใช้บรรยายหรืออธิบายไฟล์ .jar ว่ามีชื่ออะไร หรือมีขนาดไฟล์เท่าไหร่ เป็นต้น • MIDlet ยังเป็น class ที่อยู่ใน Package ของ 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 (ถูกทำลาย)
การใช้โปรแกรม Netbeans เขียน J2ME • Netbeansเป็น Open Sourceสามารถใช้เขียนภาษา Java , C , C++ , phpได้ • ดาวน์โหลดโปรแกรม มาใช้งานที่เว็บไซต์http://netbeans.org
ขั้นตอนการสร้างไฟล์ MIDlet 1. คลิกเมนู File -> New Project
2. ที่หน้าต่าง New Project ช่อง Categoriesเลือก Java MEช่อง Projectเลือก Mobile Applicationคลิกปุ่มNext
3. ตั้งชื่อ Projectที่ช่อง Project Nameกำหนดตำแหน่งจัดเก็บที่ช่อง Project Location เครื่องหมาย ที่ช่อง Create Hello MIDlet ออกแล้วคลิกNext
4. เลือก รูปแบบของEmulator Configuration และProfile แล้วคลิกปุ่มFinish
5. สร้างไฟล์ MIDletนำเมาส์ชี้ที่ชื่อ Projectคลิกเมาส์ขวา เลือกรายการ newคลิกรายการ MIDlet
6.ที่ช่อง MIDlet Nameตั้งชื่อ MIDletจากนั้นคลิกปุ่ม Finish
7.จะปรากฏหน้าต่าง Editor เพื่อให้ป้อนคำสั่งลงไป
ตัวอย่าง โปรแกรมแสดงข้อความด้วย Form
ตัวอย่าง โปรแกรมวาดภาพสี่เหลี่ยมและวงกลม
แบบฝึกปฏิบัติ • ให้นักศึกษา สร้าง MIDletใน Projectเดิมตั้งชื่อ MIDletว่า MyProfileจากนั้นให้นำไฟล์มาดัดแปลง เมื่อมีการรันโปรแกรให้หน้าจอมือถือแสดงข้อมูลของนักศึกษา ได้แก่ รหัสนักศึกษา ชื่อนามสกุล โปรแกรมวิชา คณะวิชา ดังภาพ ให้นักศึกษา ส่งไฟล์ทางหน้าเว็บอาจารย์ กำหนดส่งวันนี้ ภายใน 12.00 น. ในไฟล์ให้ Comment ชื่อไฟล์ ชื่อสกุลผู้เขียน เลขที่