หน้าแรก
 การบ้าน
  C/C++ new
  Java new
  Windows Phone
  แจ้งเรื่องที่ต้องการ
 บทความ
  .NET
  Android
  Blackberry
  C++Builder
  Delphi
  Java
  Mobile
  Open Source
  Pocket PC
  Visual Basic
  Web
  Windows Phone
  Others
 แบบเรียนฟรี
  ASP
  ASP.NET Webmatrix
  C++
  eVB
  J2ME
  Java
  PHP
 ซอร์สโค้ด
  Android
  ASP
  C++
  VC++
  CGI-Perl
  Delphi
  Java
  jQuery
  PHP
  Visual Basic
  .NET
 บริการจากเรา
  เปิดท้าย... ขายโค้ด
  Freeware
  อัตราค่าโฆษณา
  รายชื่อลูกค้า
  สถิติผู้เข้าเว็บ
 ดาว์นโหลด
 ค้นหาข้อมูล
 กระดานสนทนา
  .NET
  C/C++
  Delphi
  Java
  Palm/PocketPC
  Visual Basic
  Web
  อื่นๆ
 กระดานงาน
 ลิงค์เว็บ
 เกี่ยวกับผม
 อัตราค่าโฆษณา
Social Network

Facebook  Twitter  YouTube
 New Article
 Webboard
 Freelanceboard
Freeware
โปรแกรมเบอร์ดี (BerDee)
โปรแกรมเบอร์ดี (Android)
เกมส์เป่ายิ้งฉุบ
เกมส์เป่ายิ้งฉุบ(Android)
WebcamMonitor
WebcamMonitor(Windows)
scSendMail
scSendMail(Windows)
MSN Caption
MSN Caption(Windows)
  Freelance comment
  ติดต่อสอบถามมาได้ตลอดนะ...
2015-07-29 13:35:58
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:33:54
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:32:51
  ติดต่อสอบถามเข้ามาได้นะ...
2014-01-06 12:47:38
  ถ้ายังหาคนสอนไม่ได้ ก็ลอ...
2013-07-06 01:04:37
  สนใจส่งขอบเขตมาคุยราคาก...
2013-03-24 18:54:20
  ถ้ายังไม่มีคนรับงานติดต...
2012-12-16 19:18:14
  สนใจคะ ติดต่อ 0905076277...
2012-11-12 11:07:46
  รับทำโปรเจ็คนักศึกษาหรื...
2012-10-29 03:10:46
  sukit_te34@hotmail.com...
2012-10-29 03:09:36
  Webboard comment
  เขียนโปรแกรมภาษาจาวา
1.โ...

2023-09-12 11:40:28
  ต้องลอง debug ดูเองครับ
ไล่...

2023-06-08 18:03:06
  ร้านค้าแห่งหนึ่ง จะต้องน...
2021-09-21 08:47:08
  จงเขียนโปรแกรมดำเนินการ...
2021-05-07 15:06:11
  จงเขียนโปรแกรมสำหรับคำน...
2021-03-09 14:21:45
  ขอดู...
2021-01-04 23:56:45
  ขอโค้ดเพื่อทำการเรียนกา...
2020-12-09 23:02:09
  แล้ว ?...
2020-12-09 10:56:34
  จ้า...
2020-10-18 16:53:21
  พอดีผมเหลื่อแค่ตัดสต๊อก...
2020-05-31 21:49:43
  Homework comment
  เขียนโปรแกรมเพื่อรับค่า...
2022-02-24 10:45:17
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  โจทย์การบ้าน c++ เขียนรูปแ...
2020-04-06 11:01:33
  แบบนี้ขอเป็น ภาษา php หน่อย...
2019-09-18 14:36:34
  ผมไม่อยากให้คุณได้คะแนน...
2019-04-27 01:29:07
  อาจารย์เขาบอกแนวข้อสอบม...
2019-04-27 00:44:29
  ขอสอบถามการเขียน c++ ครับ เ...
2018-04-02 12:19:21
  โค้ดตัวอย่างศึกษาให้เข้...
2017-11-26 14:50:05
  คำนวณค่าน้ำโดยรับค่ามิเ...
2017-11-20 23:15:26
  Article comment
  เท่าที่อ่าน error คือพื้นที่...
2022-03-23 13:56:48
  เรียน สอบถามปัญหา กับ อ.คร...
2022-01-24 17:39:49
  ต้องการ ให้เขียน โปรแกรม ...
2019-12-09 11:39:58
  รับเขียน arx จาก vc++ 2017 ล็อคโปร...
2019-09-19 09:48:09
  ทำการ register ไฟล์ที่ชื่อ mswinsck.oc...
2019-09-17 14:05:56
  ใน vb 6 ไม่มี component winsock เลยค่ะ ส...
2019-09-03 10:31:02
  รบกวนขอสอบถามหน่อยนะครั...
2019-03-04 05:31:04
  สามารถนำตัวหนังสือจากภา...
2018-12-25 08:54:32
  มีcode ของ VB ไหมค่ะ ถ้ามีรบกว...
2017-09-28 16:50:02
  น่าจะได้ครับ ไม่เคยลอง
...

2017-07-11 09:59:35
  9Mcode comment

Link Exchange

อัตราค่าโฆษณา
 
 J2ME (Java Micro Edition) Tutorial  

- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -

 J2ME (Java Micro Edition)
 
 

บทที่ 2 Introduction to J2ME

 

บทที่ 2 Introduction to J2ME

 

แนะนำ plateform ของ J2ME

J2ME (Java 2 Platform, Micro Edition) เป็นเทคโนโลยี ของ Java ที่ถูกใช้และ พัฒนาบนอุปกรณ์ ที่มีหน่วยความจำ ความสามารถ ที่จำกัด อาทิเช่น มือถือ, Palm, Pagers และพวกอุปกรณ์พวก set-top boxes ดังแสดงตัวอย่าง ของ plateform ต่างๆของ Java

Java 2 Platform, Micro Edition
รูปที่ 2 โครงสร้างของ Java Technology

จากรูปข้างต้นจะเห็นได้ว่า เทคโนโลยีของ Java จะแบ่งออกเป็น 3 กลุ่ม ก็คือ J2EE, J2SE และ J2ME ดังที่เคยกล่าวไป ใน บทที่ 1 แต่สำหรับในบทเรียนนี้ เราจะเน้น เฉพาะ J2ME ซึ่งจากรูปทำให้เรารู้ได้ว่า J2ME ถูกแบ่ง ย่อย ออกเป็น อีก 2 กลุ่ม คือ

  • High-end devices กลุ่มของอุปกรณ์ ที่มีหน่วยความจำ และหน่วยประมวลผล ที่ดี เช่น มือถือ(บางรุ่น), PDA, Screen-phone, set-top box, net TV (อุปกรณ์บางตัว ยังไม่มีใน หประเทศไทย เลยครับ)
  • Low-end devices กลุ่มของอุปกรณ์ ที่มีหน่วยความจำ และหน่วยประมวลผล ค่อนข้างน้อย เช่น Mobile, Pager, Organizer

J2ME Architectures

J2ME Architectures
รูปที่ 3 J2ME Architectures

ลักษณะโครงสร้างของ สถาปฏิยกรรม J2ME จะแบ่งออกเป็นชั้น โดยมีรายละเอียดดังนี้

  • Host Operating System จะเป็นส่วนของระบบปฏิบัติการ เช่นเดียวกับบนเครื่อง Desktop หรือ Laptop ที่มี Windows เป็นระบบปฏิบัติการ บนโทรศัพท์มือก็มีด้วยเช่นกัน อาทิ Nokia 7650, 3650 จะมี Symbian OS เป็นระบบปฏิบัติการ, เครื่อง Palm จะมี Palm OS เป็นระบบปฏิบัติการ
  • Java Virtual Machines (JVM) จะเป็นส่วนของระบบจัดการ ที่ควบคุม และทำงาน ให้สามารถทำงานร่วมกันได้ ระหว่าง Java กับ Host Operating System โดยมากจะเป็นการแปลงจาก code Java ไปเป็นคำสั่ง ที่ Host Operating System เข้าใจ และทำงานร่วมกันได้
  • Configuration เป็นกลุ่มของ Class Library (คลัง Class) ที่ครอบคลุม ถึงอุปกรณ์ต่างๆ ที่อยู่ในกลุ่ม
  • Profiles เป็นกลุ่มของ คำสั่ง,API (Application Programming Interface) ที่ใช้สำหรับอุปกรณ์ แต่ละประเภทโดยเฉพาะ

J2ME Platform

J2ME Platform
รูปที่ 4 J2ME Platform

คราวนี้เราจะดูถึงแต่ละส่วนของ Platform ของ J2ME เพื่อความเข้าใจ ซึ่งจะช่วยให้เราเข้าใจการทำงาน และช่วยเราในการเขียนโปรแกรมให้ง่ายยิ่งขึ้น

- Virtual Machine มีอยู่ด้วยกัน 2 ชนิด คือ CVM (Compact Virtual Machine) สำหรับเครื่องที่เป็น High-end devices และ KVM (Kilo Virtual Machine) สำหรับเครื่องที่เป็น Low-end devices

- Configurations มีอยู่ด้วยกัน 2 ชนิด คือ CDC (Connected Device Configuration) สำหรับเครื่องที่เป็น High-end devices และ CLDC (Connected Limited Device Configuration) สำหรับเครื่องที่เป็น Low-end devices โดยจะมีรายละเอียดดังตาราง

CDC CLDC
ทุกๆส่วนของ features และ APIs ของ Java บางส่วนของ features และ APIs ของ Java
สำหรับอุปกรณ์ ในกลุ่ม High-end devices สำหรับอุปกรณ์ ในกลุ่ม Low-end devices
หน่วยประมวลผล 32 bit หน่วยประมวลผล 16 และ 32 bit
หน่วยความจำเครื่อง อย่างน้อย 2 MB หน่วยความจำเครื่อง 160-512 KB
ใช้ CVM (Compact Virtual Machine) ใช้ KVM (Kilo Virtual Machine)

ตารางเปรียบเทียบ ระหว่าง CDC และ CLDC

Configurations
รูปที่ 5 แสดงความสัมพันธ์ ระหว่าง J2SE, CDC และ CLDC

จากรูปที่ 5 จะเห็นว่า ทั้งส่วนของ API หรือ Class บางตัวของ CDC และ CLDC สามารถใช้ได้เช่นเดียวกับ J2SE แต่ทั้ง CDC และ CLDC เอง ก็มีส่วนที่ อยู่นอกเหนือจากที่ J2SE มี และอีกอย่างทีสำคัญคือ CLDC จะเป็นแค่เพียงส่วนหนึ่ง ของ CDC เท่านั้น ที่เป็นอย่างนี้ก็เพราะว่า CDC รองรับกับเครื่องที่ อยู่ในระดับ High-end devices ทำให้มีความสามารถมากกว่า ส่วน CLDC รองรับกับเครื่องที่อยู่ในระดับ Low-end devices ทำให้มีข้อจำกัดที่มากกว่า CDC

- Profiles เป็นส่วนของ API และ Class ที่ใช้งานได้บนตัวของอุปกรณ์ แต่ละประเภท ซึ่งเป็นการขยายความสามารถของ CDC หรือ CLDC ให้มากขึ้น และมีส่วนของการทำงานที่เป็น ลักษณะเฉพาะของอุปกรณ์นั้นๆ ตัวอย่างของ Profile ที่ใช้งานการพัฒนา เช่น

  • MIDP (Mobile Information Device Profile) เป็น Profile สำหรับอุปกรณ์ประเภทมือถือ (ซึ่งในบทต่อๆไป เราจะมาเน้นถึง การเขียน MIDP นี่หละครับ)
  • PDA Profile (Personal Digital Assistant Profile) สำหรับอุปกรณ์ประเภท Organizer เช่น เครื่อง Palm
  • Foundation Profile สำหรับอุปกรณ์ในกลุ่มของ High-end device, เป็นส่วนขยายเพิ่มเติมเฉพาะด้านให้กับ CDC ซึ่งจะประกอบด้วย API และ Function พื้นฐาน
  • Personal Profile สำหรับอุปกรณ์ในกลุ่มของ High-end device, เป็นส่วนขยายเพิ่มเติมเฉพาะด้านให้กับ Foundation Profile ซึ่งจะประกอบด้วย การจัดการด้าน GUI
  • RMI Profile สำหรับอุปกรณ์ในกลุ่มของ High-end device, เป็นส่วนขยายเพิ่มเติมเฉพาะด้านให้กับ Foundation Profile ซึ่งจะประกอบด้วย การจัดการด้าน RMI (Remote Method Invocation)

ตารางด้านล่าง จะเป็นการแสดงถึง Profiles ต่างๆ พร้อมทั้ง Configuration ของ Profiles แต่ละตัว

Profile Config
MID CLDC
Foundation CDC
Personal CDC
PDA CLDC
Bluetooth CLDC
RMI CDC
ตารางแสดง Profile และ Configuration

 

CLDC

CLDC and MIDP Package
รูปที่ 6 แสดง Package ของ CLDC และ MIDP

จากรูปที่ 6 จะเห็นได้ว่า CLDC จะมี Package อยู่ 4 Packages โดยมีรายละเอียดคือ

- Package ที่สืบทอดจาก J2SE จะมีอยู่ 3 Packages ได้แก่

- java.lang
- java.io
- java.util

- Package ที่เป็นของ CLDC เอง

- javax.microedition.io

CLDC Libraries : java.lang.*
Object Class
Runtime System
Thread Runanable
String StringBuffer
Throwable Math
Boolean Byte
Short Integer
Long Character
CLDC Libraries : java.io.*
InputStream OutputStream
DataInput DataOutput
Reader Writer
ByteArrayInputStream ByteArrayOutputStream
DataInputStream DataOutputStream
InputStreamReader OutputStreamWriter
PrintStream
CLDC Libraries : java.util.*
Calendar Date
TimeZone Vector
Stack Hashtable
Enumeration Random
ตารางแสดง CLDC Libraries

ในเรื่องของ CLDC Networking and I/O จะมีอยู่ในรายละเอียดของ Generic Connection Frameworks (GCF) ซึ่งจะได้นำเสนอในบทต่อๆไป

สำหรับเรื่องของข้อจำกัดของ CLDC ซึ่งได้แก่เรื่องของ ไม่รองรับกับ Floating-Point และข้อมูลแบบ Double, ไม่สามารถเรียกใช้ Finalizion Method และมีข้อจำกัดในเรื่อง การทำ Error Handling ที่เป็นอย่างนี้ ก็เพราะว่า CLDC จะต้องมีการทำงานที่อยู่บน เครื่องหรืออุปกรณ์ ที่มีข้อจำกัดทางด้านหน่วยความจำ และ หน่วยประมวลผล จึงจำเป็นจะต้องตัดในส่วน ที่ต้องใช้งานหน่วยความจำ มากๆ ออกไป

MIDP

MIDP (Mobile Information Device Profile) ได้จัดเตรียมเกี่ยวกับ

  • User Interface จัดการเกี่ยวกับ การแสดงผล
  • Persistent storage จัดการเกี่ยวกับ การเก็บข้อมูล และฐานข้อมูล
  • Networks จัดการเกี่ยวกับ การเชื่อมต่อ เน็ตเวิร์ค
  • Application life-cycle จัดการเกี่ยวกับ ลำดับขั้นตอนการทำงาน
  • Event handling จัดการเกี่ยวกับ อีเวนต์ต่างๆ

MIDP Packages จะมีอยู่ 3 Packages คือ

  • javax.microedition.midlet ,เป็น API ในการสร้างโปรแกรมหลัก
  • javax.microedition.lcdui ,เป็น API ในการจัดการ User Interface
  • javax.microedition.rms ,RMS (Record Management System) เป็นส่วนของการเก็บข้อมูล เช่นเดียวกับฐานข้อมูล

ในบทนี้ เราได้ให้ความรู้เกี่ยวกับ CLDC และ MIDP เป็นหลัก เพื่อทำให้คุณเข้าใจถึงความเป็นมา ทำให้คุณสามารถที่จะพัฒนาในส่วนของ J2ME ตัวอื่นๆ ได้เช่นกัน สำหรับในบทต่อไป เราจะได้เริ่มกล่าวถึง กระบวนการ ของ MIDP Programming

 

BACK

คลิปสอนเขียนโปรแกรม
เรียนเขียนโปรแกรมดอทเน็ต
เรียนเขียนโปรแกรมแอนดรอยด์
เรียนเขียนโปรแกรมเบล็คเบอร์รี่
เรียนเขียนโปรแกรมซี ซีพลัสพลัส
เรียนเขียนโปรแกรมจาวา
เรียนการใช้งานลินุกส์
เรียนการเขียนโปรแกรมวินโดว์โฟน
เรียนการเขียนโปรแกรมพีเฮชพี มายเอสคิวเอล
อัตราค่าโฆษณา
 
Tutorial
eVB Tutorial
ASP.NET Webmatrix Tutorial
J2ME Tutorial
C++  Tutorial
Java  Tutorial
PHP Tutorial
ASP Tutorial
 
แบบสำรวจ

Home - Article - Tutorial - Sourcecode - Dev Handbook - Search - WebBoard - Links - About Us

สงวนลิขสิทธิ์ ห้ามคัดลอก ทำซ้ำ แก้ไข ดัดแปลง ไม่ว่าในรูปแบบใด โดยไม่ได้รับอนุญาตเป็นลายลักษณ์อักษร
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์จากกระทรวงพาณิชย์: 7100503002000
Copyright 2001 SourceCode.in.th