บทความ


ประวัติความเป็นมา

เริ่มต้นระบบปฏิบัติการแอนดรอยด์ ถูกพัฒนามาจากบริษัท แอนดรอยด์ (Android Inc.) เมื่อปี พ.ศ 2546 โดยมีนาย แอนดี้ รูบิน (Andy Rubin) ผู้ให้กำเนิดระบบปฏิบัติการนี้ และถูกบริษัท กูเกิ้ล ซื้อกิจการเมื่อ เดือนสิงหาคม ปี พ.ศ 2548 โดยบริษัทแอนดรอยด์ ได้กลายเป็นมาบริษัทลูก ของบริษัทกูเกิ้ล และยังมีนาย แอนดี้ รูบิน ดำเนินงานอยู่ในทีมพัฒนาระบบปฏิบัติการต่อไป
ระบบปฏิบัติการแอนดรอยด์ เป็นระบบปฏิบัติการที่พัฒนามาจากการนำเอา แกนกลางของระบบปฏิบัติการลินุกซ์ (Linux Kernel) ซึ่งเป็นระบบปฏิบัติการที่ออกแบบมาเพื่อทำงานเป็นเครื่องให้บริการ (Server) มาพัฒนาต่อ เพื่อให้กลายเป็นระบบปฏิบัติการบนอุปกรณ์พกพา (Mobile Operating System)
ต่อมาเมื่อเดือน พฤศจิกายน ปี พ.ศ 2550 บริษัทกูเกิ้ล ได้ทำการก่อตั้งสมาคม OHA (Open Handset Alliance, http://www.openhandsetalliance.com) เพื่อเป็นหน่วยงานกลางในการกำหนดมาตรฐานกลาง ของอุปกรณ์พกพาและระบบปฏิบัติการแอนดรอยด์ โดยมีสมาชิกในช่วงก่อนตั้งจำนวน 34 รายเข้าร่วม ซึ่งประกอบไปด้วยบริษัทชั้นนำที่ดำเนินธุรกิจด้าการสื่อสาร เช่น โรงงานผลิตอุปกรณ์พกพา, บริษัทพัฒนาโปรแกรม, ผู้ให้บริการสื่อสาร และผู้ผลิตอะไหล่อุปกรณ์ด้านสื่อสาร
[[รูป 1-3 : สมาคม OHA (Open Handset Alliance)]]
สมาคม OHA (Open Handset Allianceหลังจากนั้น เมื่อเดือนตุลาคม ปี พ.ศ 2551 บริษัท กูเกิ้ล ได้เปิดตัวมือถือตัวแรกที่ใช้ระบบปฏิบัติการแอนดรอยด์ ที่ชื่อ T-Mobile G1 หรืออีกชื่อนึงคือ HTC Dream โดยใช้แอนดรอยด์รุ่น 1.1 และหลังจากนั้น ได้มีการปรับพัฒนาระบบปฏิบัติการเป็นรุ่นใหม่ มาเป็นลำดับ
[[รูป 1-4 : T-Mobile G1/HTC Dream]] [[01-04-01.bmp]]
T-Mobile G1/HTC Dreamช่วงต่อมาได้มีการออกผลิตภัณฑ์จากบริษัทต่างๆ ออกมาหลากหลายรุ่น หลากหลายยี่ห้อ ตามการพัฒนาระบบปฏิบัติการแอนดรอยด์ ที่มีอยู่อย่างต่อเนื่อง ทำให้สินค้าของแอนดรอยด์ มีให้เลือกอยู่อย่างมากมาย
[[รูป 1-5 : Android Device]]
Samsung: Nexus SHTC: EVO 4GMotorola: Droid2
Samsung: Nexus SHTC: EVO 4GMotorola: Droid2
Motorola: XOOMHTC: Flyer
Motorola: XOOMHTC: Flyer

โครงสร้างของแอนดรอยด์

การทำความเข้าใจโครงสร้างของระบบปฏิบัติการแอนดรอยด์ ถือว่าเป็นสิ่งสำคัญเพราะถ้านักพัฒนาโปรแกรม สามารถมองภาพโดยรวมของระบบได้ทั้งหมด จะให้สามารถเข้าใจถึงกระบวนการทำงานได้ดียิ่งขึ้น และสามารถนำไปช่วยในการออกแบบโปรแกรมที่ต้องการพัฒนา เพื่อให้เกิดประสิทธิภาพในการทำงาน
[[รูป 1-6 : Android Architecture]]
Android Architectureจากโครงสร้างของระบบปฏิบัติการแอนดรอยด์ จะสังเกตุได้ว่า มีการแบ่งออกมาเป็นส่วนๆ ที่มีความเกี่ยวเนื่องกัน โดยส่วนบนสุดจะเป็นส่วนที่ผู้ใช้งานทำการติดต่อโดยตรงซึ่งก็คือส่วนของ (Applications) จากนั้นก็จะลำดับลงมาเป็นองค์ประกอบอื่นๆตามลำดับ และสุดท้ายจะเป็นส่วนที่ติดต่อกับอุปกรณ์โดยผ่านทาง Linux Kernel โครงสร้างของแอนดรอยด์ พอที่จะอธิบายเป็นส่วนๆได้ดังนี้
  • Applications ส่วน Application หรือส่วนของโปรแกรมที่มีมากับระบบปฏิบัติการ หรือเป็นกลุ่มของโปรแกรมที่ผู้ใช้งานได้ทำการติดตั้งไว้ โดยผู้ใช้งานสามารถเรียกใช้โปรแกรมต่างๆได้โดยตรง ซึ่งการทำงานของแต่ละโปรแกรมจะเป็นไปตามที่ผู้พัฒนาโปรแกรมได้ออกแบบและเขียนโค้ดโปรแกรมเอาไว้
  • Application Frameworkเป็นส่วนที่มีการพัฒนาขึ้นเพื่อให้นักพัฒนาสามารถพัฒนาโปรแกรมได้สะดวก และมีประสิทธิภาพมากยิ่งขึ้น โดยนักพัฒนาไม่จำเป็นต้องพัฒนาในส่วนที่มีความยุ่งยากมากๆ เพียงแค่ทำการศึกษาถึงวิธีการเรียกใช้งาน Application Framework ในส่วนที่ต้องการใช้งาน แล้วนำมาใช้งาน ซึ่งมีหลายกลุ่มด้วยกัน ตัวอย่างเช่น
    • Activities Manager  เป็นกลุ่มของชุดคำสั่งที่จัดการเกี่ยวกับวงจรการทำงานของหน้าต่างโปรแกรม(Activity)
    • Content Providers เป็นกลุ่มของชุดคำสั่ง ที่ใช้ในการเข้าถึงข้อมูลของโปรแกรมอื่น และสามารถแบ่งปันข้อมูลให้โปรแกรมอื่นเข้าถึงได้
    • View System เป็นกลุ่มของชุดคำสั่งที่เกี่ยวกับการจัดการโครงสร้างของหน้าจอที่แสดงผลในส่วนที่ติดต่อกับผู้ใช้งาน (User Interface)
    • Telephony Manager เป็นกลุ่มของชุดคำสั่งที่ใช้ในการเข้าถึงข้อมูลด้านโทรศัพท์ เช่นหมายเลขโทรศัพท์ เป็นต้น
    • Resource Manager เป็นกลุ่มของชุดคำสั่งในการเข้าถึงข้อมูลที่เป็น ข้อความ, รูปภาพ
    • Location Manager เป็นกลุ่มของชุดคำสั่งที่เกี่ยวกับตำแหน่งทางภูมิศาตร์ ที่ระบบปฏิบัติการได้รับค่าจากอุปกรณ์
    • Notification Manager เป็นกลุ่มของชุดคำสั่งที่จะถูกเรียกใช้เมื่อโปรแกรม ต้องการแสดงผลให้กับผู้ใช้งาน ผ่านทางแถบสถานะ(Status Bar) ของหน้าจอ
  • Libraries เป็นส่วนของชุดคำสั่งที่พัฒนาด้วย C/C++ โดยแบ่งชุดคำสั่งออกเป็นกลุ่มตามวัตถุประสงค์ของการใช้งาน เช่น Surface Manage จัดการเกี่ยวกับการแสดงผล, Media Framework จัดการเกี่ยวกับการการแสดงภาพและเสียง, Open GL | ES และ SGL จัดการเกี่ยวกับภาพ 3มิติ และ 2มิติ, SQLlite จัดการเกี่ยวกับระบบฐานข้อมูล เป็นต้น
  • Android Runtime จะมี Darvik Virtual Machine ที่ถูกออกแบบมา เพื่อให้ทำงานบนอุปกรณ์ที่มี หน่วยความจำ(Memmory), หน่วยประมวลผลกลาง(CPU) และพลังงาน(Battery)ที่จำกัด ซึ่งการทำงานของ Darvik Virtual Machine จะทำการแปลงไฟล์ที่ต้องการทำงาน ไปเป็นไฟล์ .DEX ก่อนการทำงาน เหตุผลก็เพื่อให้มีประสิทธิภาพเพิ่มขึ้นเมื่อใช้งานกับ หน่วยประมวลผลกลางที่มีความเร็วไม่มาก ส่วนต่อมาคือ Core Libraries ที่เป็นส่วนรวบรวมคำสั่งและชุดคำสั่งสำคัญ โดยถูกเขียนด้วยภาษาจาวา (Java Language)
  • Linux Kernel เป็นส่วนที่ทำหน้าที่หัวใจสำคัญ ในจัดการกับบริการหลักของระบบปฏิบัติการ เช่น เรื่องหน่วยความจำ พลังงาน ติดต่อกับอุปกรณ์ต่างๆ ความปลอดภัย เครือข่าย โดยแอนดรอยด์ได้นำเอาส่วนนี้มาจากระบบปฏิบัติการลินุกซ์ รุ่น 2.6 (Linux 26. Kernel) ซึ่งได้มีการออกแบบมาเป็นอย่างดี

รุ่นต่างๆ ของแอนดรอยด์

หลังจากที่บริษัท กูเกิ้ล ได้ซื้อบริษัท แอนดรอยด์ และได้มีการก่อตั้งสมาคม สมาคม OHA (Open Handset Alliance) เป็นที่เรียบร้อย ทางกูเกิ้ลก็ได้มีการพัฒนาระบบปฏิบัติการแอนดรอยด์ ขึ้นมาเป็นลำดับ โดยพอสังเขป ได้ดังนี้
  • รุ่น 1.0 , 23 กันยายน 2551
  • รุ่น 1.5 (Cupcake), 30 เมษายน 2552
  • รุ่น 1.6 (Donut), 15 กันยายน 2552
  • รุ่น 2.0 (Éclair), 26 ตุลาคม 2552
  • รุ่น 2.2 (Froyo), 20 พฤษภาคม 2553
  • รุ่น 2.3 (Gingerbread), 6 ธันวาคม 2553
  • รุ่น 3.0 (Honeycomb), 22 กุมภาพันธ์ 2554
[[รูป 1-7 : Android Logo]]
V1.5 CupcakeV1.6 DonutV2.0 Eclari
V1.5 CupcakeV1.6 DonutV2.0 Eclari
V2.2 FroyoV2.3 GingerbreadV3.0 Honeycomb
V2.2 FroyoV2.3 GingerbreadV3.0 Honeycomb
และภายในปี พ.ศ 2554 นี้ ทางบริษัทกูเกิ้ล มีแผนจะออกรุ่นใหม่อีก 1 รุ่น นับว่าเป็นการพัฒนาการ ของแอนดรอยด์ที่มีอยู่อย่างต่อเนื่อง แต่หากมองในส่วนของจำนวนผู้ใช้ต่อรุ่นแล้วนั้น จากการเก็บรวบรวมข้อมูลจาก Android Market จะพบได้ว่า รุ่นที่มีการใช้งานมากที่สุด (ข้อมูล ณ 15 มีนาคม 2554) จะเป็นรุ่น 2.2 (Froyo)
[[รูป 1-8 : Current Distribution]] [[01-08-01.bmp]]
Current Distribution

ข้อเด่นของแอนดรอยด์

เนื่องจากระบบปฏิบัตการแอนดรอยด์มีการเจริญเติบโตอย่างรวดเร็ว และมีส่วนแบ่งตลาดของอุปกรณ์ด้านนี้ ขึ้นทุกขณะ ทำให้กลุ่มผู้ใช้งาน และกลุ่มนักพัฒนาโปรแกรม ให้ความสำคัญกับระบบปฏิบัติการแอนดรอยด์เพิ่มมากขึ้น
เมื่อมองในด้านของกลุ่มผลิตภัณฑ์ บริษัทที่มีการพัฒนาผลิตภัณฑ์รุ่นใหม่ ได้มีการนำเอาระบบปฏิบัติการแอนดรอยด์ไปใช้ในสินค้าของตนเอง พร้อมทั้งยังมีการปรับแต่งให้ระบบปฏิบัติการมีความสามารถ การจัดวาง โปรแกรม และลูกเล่นใหม่ๆ ที่แตกต่างจากคู่แข่งในท้องตลาด โดยเฉพาะอย่างยิ่ง กลุ่มสินค้าที่เป็น มือถือรุ่นใหม่ (SmartPhone) และอุปกรณ์จอสัมผัส (Touch Screen) โดยมีคุณลักษณะแตกต่างกันไป เช่นขนาดหน้าจอ ระบบโทรศัพท์ ความเร็วของหน่วยประมวลผล ปริมาณหน่วยความจำ แม้กระทั่งอุปกรณ์ตรวจจับต่างๆ(Sensor)
หากมองในด้านของการพัฒนาโปรแกรม ทางบริษัท กูเกิ้ล ได้มีการพัฒนา Application Framework ไว้สำหรับนักพัฒนาใช้งาน ได้อย่างสะดวก และไม่เกิดปัญหาเมื่อนำชุดโปรแกรมที่พัฒนาขึ้นมา ไปใช้กับอุปกรณ์ที่มีคุณลักษณะต่างกัน เช่นขนาดจออุปกรณ์ ไม่เท่ากัน ก็ยังสามารถใช้งานโปรแกรมได้เหมือนกัน เป็นต้น
การพัฒนาแอปพลิเคชั่นบน Android
http://img.spacethai.net/images/helloandro.png
เริ่มต้นด้วยการสร้างโปรเจค Android ใน Eclipse
1. เปิดโปรแกรม Eclipse ขึ้นมา จากนั้นเลือกที่ File > New > Project
ในหน้าต่าง New Project ภายใต้ Android เลือก Andrild project ดังรูป หลังจากนั้นให้กด Next
http://img.spacethai.net/images/helloakqk.png
2. เมื่อเสร็จจากขั้นตอนแรกแล้วจะได้ดังรูปนี้ โดยกรอกข้อมูลต่อไปนี้
Project Name: HelloWorld
Build Target : Android 2.2
Application Name: HelloWorld
Package Name: com.example.hello
Create Activity: HelloWorld
Min SDK Version: 8
จากนั้นคลิกที่ Finish
http://img.spacethai.net/images/helloavov.png
นี่คือคำอธิบายของแต่ละฟิลด์:
Project Name : นี้คือชื่อโปรเจกของ Eclipse – ชื่อของไดเรกทอรีที่จะมีไฟล์โปรเจกอยู่
Build Target : ได้เลือกใช้ Android 2.2 platform ซึ่งหมายความว่าแอปพลิเคชันของคุณจะถูก compiled กับ Android 2.2 platform library
Application Name : นี้เป็นชื่อสำหรับแอปพลิเคชันของคุณ – ชื่อที่จะปรากฏในอุปกรณ์ Android
Package name : นี้คือ namespace แพคเกจ (ตามกฎเดียวกันกับสำหรับแพคเกจในภาษา Java) ถ้าจะเปรียบเทียบให้ง่ายๆก็เหมือนเป็นโฟลเดอร์ที่ทำหน้าที่จัดเก็บ Class ต่างๆ ไว้ให้เป็นหมวดหมู่
Create Activity : นี้คือชื่อสำหรับ class stub ที่จะสร้างโดยปลั๊กอินนี้ ซึ่งจะเป็น subclass ของ Android’s Activity class
Min SDK Version : ค่านี้ระบุ API ระดับต่ำสุดที่จำเป็นสำหรับแอปพลิเคชันของคุณ
3. ตอนนี้โปรเจก Android ของคุณพร้อมแล้ว คุณจะมองเห็นใน Package Explorer อยู่ด้านซ้าย คลิกเปิดไฟล์HelloWorld.java (HelloAndroid > src > com.example.helloworld) ซึ่งควรมีลักษณะเช่นนี้:
package com.example.helloworld;

import android.app.Activity;
import android.os.Bundle;

public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
ลังจากสร้างโปรเจกเรียบร้อยแล้ว ขึ้นตอนต่อมาคือการรันแอปพลิเคชัน
1. คลิกเลือกที่ Run > Run
2. เลือก “Android Application”
หลังจากนั้นโปรแกรมจะทำการเปิด Emulator ของ Android SDK 2.2 ที่เราเคยสร้างไว้ขึ้นมาอย่างอัตโนมัติ กดที่ Manu เพื่อปลดล็อกเครื่อง
ซึ่งคุณจะเห็น Hello World ดังรูป
http://img.spacethai.net/images/helloakhk.png
ขอขอบคุณ http://www.openplus.org/content/development/application-android-sdk-16-hello-world

ไม่มีความคิดเห็น:

แสดงความคิดเห็น