15
1 รายงาน เรื่อง Google Android เสนอ อาจารย ธนิต เกตุแกว จัดทําโดย นาย ปยะณัฐ แยบคาย รหัส 50523206013-5 นาย ศุภรักษ สมศรี รหัส 50523206025-9 วศ.บ.คพ. 3 รายงานนี้เปนสวนหนึ่งของรายวิชา Operation System (04-720-302) คณะวิชา วิศวกรรมศาสตร สาขาวิชา วิศวกรรมคอมพิวเตอร มหาวิทยาลัยเทคโนโลยีราชมงคลลานนา เขตพื้นที่ภาคพายัพ เชียงใหม ประจําภาคเรียนที2 ปการศึกษา 2552

รายงาน Google Android - Know2Pro.com

Embed Size (px)

DESCRIPTION

รายงาน Google Android ประกอบวิชา Operating System เนื้อหาจะเน้นไปที่ดครงสรา้งสถาปัตยกรรมและ KernelKnow2Pro.com

Citation preview

Page 1: รายงาน Google Android - Know2Pro.com

1

รายงาน

เร่ือง Google Android

เสนอ

อาจารย ธนิต เกตุแกว

จัดทําโดย

นาย ปยะณัฐ แยบคาย รหัส 50523206013-5 นาย ศุภรักษ สมศรี รหัส 50523206025-9

วศ.บ.คพ. 3

รายงานน้ีเปนสวนหน่ึงของรายวิชา Operation System (04-720-302) คณะวิชา วศิวกรรมศาสตร สาขาวิชา วิศวกรรมคอมพิวเตอร

มหาวิทยาลัยเทคโนโลยีราชมงคลลานนา เขตพื้นท่ีภาคพายัพ เชียงใหม ประจําภาคเรียนท่ี 2 ปการศึกษา 2552

Page 2: รายงาน Google Android - Know2Pro.com

2

คํานํา

ในปจจุบันระบบปฏิบัติการไมไดมีจํากัดเพียงแคเคร่ืองคอมพิวเตอรเทานั้น แตยังรวมไปถึงอุปกรณในหลายๆประเภทเชน โทรศัพทมือถือ ซึ่งกําลังไดรับความนิยมเพิ่มมากข้ึน โดยในโทรศัพทมือถือไดมีการพัฒนาความสามารถใหมๆเขาไปอยางมากมาย เชน กลองดิจิตอล ระบบ Touchscreen นั่นเปนเหตุผลวาทําไม จึงไดมีการสรางระบบปฎิบัติการข้ึน นั่นก็เพราะเม่ือมีอุปกรณและความสามารถที่เพิ่มมากข้ึน ก็จําเปนตองมีระบบเขามาบริหารจัดการเพื่อเพื่อประสิทธิภาพในการใชงาน

อยางไรก็ตาม ระบบปฎิบัติการในโทรศัพทไดมีการพัฒนาข้ึนมาจากหลายๆบริษัท เชน Symbian ,Windows Phone แตที่กําลังไดรับความสนใจมากคือ Google Android เพราะเปน OpenSource ที่แจกจายได สามารถนําไปพัฒนาแกไขได บริษัทชั้นนําตางๆก็ไดเร่ิมผลิตและจําหนายโทรศัพท Android กันมาบางแลว นั่นก็เพราะไมตองเสียคาลิขสิทธิ์และยังสามารถนํามาพัฒนาใหอยูในรูปแบบที่ตองการไดดวย

ดังนั้น การศึกษาระบบ Android นั้นจึงเปนส่ิงสําคัญ เพื่อใหทราบถึงขอมูลตางๆที่เปนประโยชน ทั้งการนําไปพัฒนาหรือเพื่อรับทราบขาวสารใหทันตอเทคโนโลยีที่จะเกิดข้ึนตอไปในอนาคต

ผูจัดทํา นาย ปยะณัฐ แยบคาย นาย ศุภรักษ สมศรี

Page 3: รายงาน Google Android - Know2Pro.com

3

สารบัญ หนา

Google Android คํานํา 1 สารบัญ 2 รูจักกับ Android 4 ลักษณะพิเศษของ Android 6 คุณสมบัติท่ัวไปของ Android 7 สถาปตยกรรมบน Android 8 - Application 8 - Application Framework 9 - Libraries 9 - Android Runtime 10 - Linux Kernel 10 Android เวอรชั่นตางๆ 13 เอกสารอางอิง 15

Page 4: รายงาน Google Android - Know2Pro.com

4

รูจักกับ Android

Android คือแพลตฟอรมใหมสําหรับโทรศัพทมือถือและอุปกรณพกพา ซึ่งประกอบดวยระบบปฏิบัติการ ไลบรารี เฟรมเวิรค และซอฟตแวรอ่ืนๆ ที่จําเปนในการพัฒนา มันเทียบเทากับ Windows Mobile, Palm OS, Symbian, OpenMoko และ Maemo ของโนเกีย โดยจับตลาดมือถือรุนใหมๆ ความสามารถสูงๆ (ซึ่งเกิดจากการกระตุนตลาดของ iPhone) ถึงจะเปนแพลตฟอรมใหม แต Android ก็ใชองคประกอบที่เปนโอเพนซอรสหลายอยาง เชน Linux Kernel, SSL, OpenGL, FreeType, SQLite, WebKit และเขียนไลบรารี+เฟรมเวิรคของตัวเองเพิ่มเติม ซึ่งทั้งหมดจะเปนโอเพนซอรส (ใช Apache License) Google Android พัฒนาโดยบริษัทกูเกิล และ Open Handset Alliance ทางกูเกิลไดเปดใหนักพัฒนาสมามารถแกใขโคตตางๆ ดวยภาษาจาวา และควบคุมอุปกรณผานทางชุด Java libraries ที่กูเกิลพัฒนาข้ึน แอนดรอยดไดเปนที่รูจักตอสาธารณชนเม่ือวันที่ 5 พฤศจิกายน พ.ศ. 2550 โดยทางกูเกิลไดประกาศกอตั้ง Open Handset Alliance กลุมบริษัทฮารดแวร, ซอฟตแวร และการส่ือสาร 48 แหง ที่รวมมือกันเพื่อพัฒนา มาตราฐานเปด สําหรับอุปกรณมือถือ ลิขสิทธิ์ของโคดแอนดรอยดนี้จะใชในลักษณะของซอฟตแวรเสรี

Page 5: รายงาน Google Android - Know2Pro.com

5

รูปแสดงโทรศัพทมือถือ HTC Hero ที่ใช Android

จุดเดนของ Android นั้นอยูที่การออกแบบระบบปฏิบัติการมาใหมีความสามารถไดใกลเคียงกับคอมพิวเตอรพกพาขนาดยอมที่ทํางานไดบนโทรศัพทมือถือ โดยยังคงเร่ืองความคลองตัวในการใชงานที่คอนขางมาก นอกจากนี ้Google Android นั้นเปนแบบระบบเปด คือ เปดโอกาสใหบริษัทและนักพัฒนาสามารถมีสวนรวมในการสรางระบบปฏิบัติการได ดวย และยังไมจํากัดการใชงานเฉพาะบนโทรศัพทมือถือจากคายใดคายหนึ่ง นั่นทําใหเราจะไดเห็น Androidจากผูผลิตโทรศัพทมือถือเกือบทุกราย ตางจาก Apple iPhone หรือ BlackBerry ที่ใชระบบปด ทําใหมีโทรศัพทมือถือออกมาจากคายใดคายหนึ่งเพียงคายเดียว

รูปแสดง Android Emulator ในหนา home screen. ซึ่งอยูในชุด SDK

Page 6: รายงาน Google Android - Know2Pro.com

6

ลักษณะพิเศษของ Android 1. Open Android SDK เปดโอกาสใหนักพัฒนาสามารถเขาถึง Core Function ในการใชงานโทรศัพทไดอยางเต็มรูปแบบเชน การโทรออก, สง SMS, หรือใชงานกลอง Android นั้น Run บน Virtual Machine ที่มีชื่อวา Dalvik สวน runtime จริง ๆ ก็คือ Linux Kernel ที่สําคัญ Android เปน Open Source ซึ่งอาจจะทําใหเกิดความเปล่ียนแปลงใน Technology ของโทรศัพทมือถือข้ึนได 2. All applications are created equal จากเหตุผลขางตนทําให Core Application ของโทรศัพท หรือพวก 3rd Party App จะสามารถใชงานไดไมตางกัน เนื่องจาก SDK ที่ 'Open' ใหเขียนโปรแกรมเรียกการทํางาน Core Function ได ในมุมมอง User ก็จะได ผลประโยชนมากข้ึน ยกตัวอยางเชน User สามารถใช 3rd Party Application ในการ call แต Application นั้นมี Interface สวยงาม สามารถเลือก wallpaper ไดตามใจชอบได ซึ่งตางจาก Core Application ที่อาจจะซ้ําซากจําเจ นาเบื่อ เปนตน 3. Breaking down application boundaries Android ไดทลายกําแพงในการพัฒนา Software ซึ่งกอใหเกิดนวัตกรรมใหม ๆ ในการพัฒนา Software เชน Developer สามารถเขียน Program ดึงรายชื่อ Contract ใน Web, MSN มารวมกับใน Contract List ของโทรศัพทได หรือจะใชโทรศัพทในการดูตําแหนงที่เพื่อน ๆอยูได 4. Fast & easy application development Android ไดเตรียม lib & tool ในการพัฒนา Application ไวอยางมากมายยกตัวอยางเชน การ Connect กับอีกเคร่ืองนึงแบบ peer-to-peer ซึ่งส่ิงตาง ๆเหลานี้ทําใหการพัฒนา Application บน Android สามารถทําไดงายและรวดเร็ว

Page 7: รายงาน Google Android - Know2Pro.com

7

คุณสมบัตทิั่วไปของ Android ประเภท : Free and open source software แพลตฟอรมที่สนับสนุน : - ARM (Advanced RISC Machine) เปน หนวยประมวลผล 32 bit แบบ RISC ถูกนําไปใชบนอุปกรณพกพาเชน โทรศัพทมือถือ PDA SmartPhone ผลิตโดย ARM Limited - MIPS (Microprocessor without Interlocked Pipeline Stages) เปน หนวยประมวลผล 32 bit แบบ RISC ผลิตโดย MIPS Computer Systems (ปจจุบันคือ MIPS Technologies) - Power Architecture เปน หนวยประมวลผล 32 bit แบบ RISC ผลิตรวมโดย IBM, Freescale, AMCC, Tundra และ P.A. Semi ซ่ึงเปนผูผลิต PowerPC - x86 เปน หนวยประมวลผล 32 bit แบบ CISC เปนสถาปตยกรรมท่ีไดรับความนิยมมากท่ีสุดในตลาดคอมพิวเตอรเดสกท็อป,โนตบุคและเซิรฟเวอรขนาดเล็ก ซ่ึงก็คือ CPU จาก Intel, AMD, VIA และอ่ืนๆ เว็บบราวเซอร :ใช WebKit application framework. ซ่ึงเปน OpenSource การแสดงผล : ใชงานระบบ VGA, 2D graphics library สวน 3D graphic Library ใช OpenGL ES 1.0 การจัดเก็บขอมูล : SQLite สําหรับเก็บขอมูล การสนับสนุน Java : Software จะเขียนดวยภาษา Java และถูกคอมไพลดวย Dalvik virtual machine ระบบ Media : รองรับไฟล เพลง, วิดิโอ, หรือ ภาพนิ่ง เชน H.263, H.264 (ใน 3GP หรือ MP4 container), MPEG-4 SP, AMR, AMR-WB (ใน 3GP container), AAC, HE-AAC (ใน MP4 หรือ 3GP container), MP3, MIDI, OGG Vorbis, WAV, JPEG, PNG, GIF, BMP การเชื่อมตอ : รองรับระบบ GSM/EDGE, CDMA, EV-DO, UMTS, Bluetooth, และ Wi-Fi. ขอความ : รองรับ SMS และ MMS และระบบอ่ืนๆท่ีเกี่ยวของกับการสงขอความ Hardware อื่นๆที่สนับสนุน : กลองวิดีโอ,กลองภาพนิ่ง, Touchscreens,GPS, accelerometers,magnetometers,accelerated 2D bitblits (with hardware orientation,scaling,pixel format conversion) และ accelerated 3D graphics. คุณสมบัติอื่นๆ : มีระบบ Device Emulator สําหรับนักพัฒนา ,Plugin สําหรับ Elipse IDE

Page 8: รายงาน Google Android - Know2Pro.com

8

สถาปตยกรรมของ Android จากรูป Android จะประกอบดวย องคประกอบหลักอยู 5 สวน ดังนี ้

รูปแสดงสถาปตยกรรม Android

1. ซอฟแวรทั่วไป (Applications)

อุปกรณพกพาท่ีติดตั้ง Android จะมาพรอมโปรแกรมหลักท่ีไวใชงานท่ัวไป เชน โปรแกรมรับสงอีเมล, SMS, ปฏิทิน, แผนท่ี, Browser (ใช WebKit เปน Engine) เครื่องมือจัดการสมุดโทรศัพท และโปรแกรมหลักอ่ืนๆ

Page 9: รายงาน Google Android - Know2Pro.com

9

2. เฟรมเวิรค (Application Framework)

นักพัฒนาสามารถพัฒนาโปรแกรมบน Android โดยใชภาษา Java ผานทาง API (Application Programming Interface) โดยสามารถเขาถึงระบบและขอมูลตางๆ ท่ีอยูบน Android ดังนี้

- Views ประกอบดวย UI ชนิดตางๆ ท่ีใชในการพัฒนาโปรแกรม เชน lists, grids, text boxes, buttons รวมไปถึง Event และเว็บบราวเซอร

- Content Provider โปรแกรมท่ีพัฒนาบน Android จะสามารถสงขอมูลถึงกันผานทาง Content Provider เชน เราสามารถพัฒนาโปรแกรมเพ่ือไปดึงขอมูลรายช่ือท่ีอยูใน Contacts ได

- Resource Manager เปนตัวจัดการเรื่องรูปภาพ, Localized strings และขอมูลอ่ืนๆ ท่ีนอกเหนือจาก Code ของโปรแกรม

- Activity Manager นักพัฒนาสามารถสราง Custom Alert และสงไปแสดงผลท่ี Status Bar โดยผาน Activity Manager ท้ังหมดนั้นทําใหนักพัฒนาโปรแกรมมีสิทธิอยางเต็มท่ีในการเขาถึง Application Framework และทําใหสามารถใชประโยชนจากการประมวลผลและความสามารถอ่ืนๆ เพ่ือสราง Android Application ท่ีมีความหลากหลายมากขึ้นได 3. ชุดพัฒนา (Libraries)

Android Libraries ประกอบดวยชุดพัฒนาของ C/C++ อ่ืนๆ ท่ีสามารถใชงานผานทาง API ของเฟรมเวิรคท่ี Android ไดจัดไวให (API เปนภาษา Java)

- System C Library ไลบรารีมาตรฐานของ C (C system library) ปรับปรุงพิเศษสําหรับอุปกรณท่ีรันบน Linux

Page 10: รายงาน Google Android - Know2Pro.com

10

- Media Library โดย Android สรับสนุนการใชงานไฟลฟอรแมตตางๆ เชน MPEG4, H.264, MP3, AAC, AMR, JPG และ JPG

- Surface Manager เปนตัวจัดการระบบแสดงผล และควบคุมบนจอภาพ Libraries อ่ืนๆ เชน 3D Acceleration Library ท่ีใชในการควบคุมอุปกรณท่ีมี Accelerometer เปนตน

4. รันไทม (Android Runtime)

ถึงแมวาโปรแกรมบน Android จะพัฒนาโดยใชภาษา Java แต Google กลับไมเลือกท่ีใช Java Virtual Machine ของ Sun Microsystem ในการรันโปรแกรม แตกลับพัฒนา Dalvik Virtual Machine ท่ีมีพ้ืนฐานจาก Apache Harmony ขึ้นมาใชเอง โดย Google อางวา Dalvik ไดรับการปรับปรุงในเรื่อง Memory เพ่ือใหเหมาะกับการใชงานบนโทรศัพทมือถือ และอนุญาติให VM หลายๆ ตัวรันพรอมกันไดเพ่ือใหโปรแกรมทํางานไดอยางมีประสิทธิภาพดียิ่งขึ้น โปรแกรมท่ีถูกพัฒนา เม่ือ Compile เปนไบโคด (.class) แลว จําเปนตองผานการแปลงใหเปนไฟล (.dex) ดวยตัวแปลง "dx" เพ่ือให สามารถรันบน Dalvik Virtual Machie ได 5. ลินุกสเคอรแนล (Linux Kernel)

Android พัฒนาบน Linux Kernel 2.6 ซ่ึงเปนสวนท่ีสําคัญของระบบ Android และเปนแกนหลักของการทํางานท้ังหมด โดยภายในเคอรเนล จะประกอบไปดวยโมดูล (Module) ตางๆ และบางครั้งเราอาจจะเรียกโมดูลเหลานี้วา ไดรเวอร (Driver) ซ่ึงมีหนาท่ีเปนตัวกลางในการติดตอกันระหวางแอพพลิเคชันหรือ ระบบปฏิบัติการกับอุปกรณฮารดแวรท้ังหมด ท้ังภายในและนอก อีกท้ังยังจัดการ ประสานงานกับระบบตางๆ เชนระบบความปลอดภัย (Security), ระบบการ

Page 11: รายงาน Google Android - Know2Pro.com

11

จัดการ Memory, ระบบการจัดการ process , ระบบเนตเวิรค (network stack) อยางมีประสิทธิภาพ ใน Linux Kernel ท่ีใชใน Android จะประกอบไปดวย

- Display Driver - Camera Driver - Flash Memory Driver - Binder (IPC) Driver - Keypad Driver - WiFi Driver - Audio Driver - Power management

จะสังเกตไดวาภายใน Kernel นั้นจะมี Driver ท่ีใชในการควบคุมการทํางานของอุปกรณตางๆ โดยท่ีสามารถทํางานไดกับอุปกรณหลายรุน หลายผูผลิต

Page 12: รายงาน Google Android - Know2Pro.com

12

สําหรับ Linux Kernel ท่ีใชเปนชนิด Monolithic Kernel

Monolithic Kernel เปนสถาปตยกรรมท่ีระบบปฏิบัติการจะทํางานภายใน Kernel Space (พ้ืนท่ีสงวนท่ีใชรันคําส่ังของ Kernel มีไวเพ่ือให Kernel สามารถทํางานไดอยางตอเนื่อง) และทํางานบน Supervisor mode Monolithic Kernel แตกตางจากสถาปตยกรรมอ่ืนๆ คือ Monolithic Kernel จะกําหนด Virtual Interface ระดับสูงซ่ึงสูงกวาอุปกรณคอมพิวเตอรกับ system calls (โปรแกรมยอยทําหนาท่ีในการติดตอระหวางระบบปฏิบัติการกับการโปรแกรมของผูใชหรือกระบวนการท่ีเกิดขึ้น) เพ่ือใหใช Service ท้ังหมดของระบบปฏิบัติการ เชน Process Management(ระบบจัดการโพรเซส), Concurrency(ประมวลผลหลายๆงานไปไดพรอมกัน), Memory Management(ระบบจัดการหนวยความจํา) ดวยตัวเองและหนึ่งหรือหลายๆ ก็คือ Module สถาปตยกรรม Monolithic Kernel ถูกใชใน Linux, Unix(BSD,Solaris,Slaxware), DOS,Windows 9x-ME, MacOS 8.6

Page 13: รายงาน Google Android - Know2Pro.com

13

Android เวอรช่ันตาง ๆ

1.5 (Cupcake)

On 30 April 2009, the official 1.5 (Cupcake) update for Android was released. There are several new features and UI updates included in the 1.5 update:

Ability to record and watch videos with the camcorder mode Uploading videos to YouTube and pictures to Picasa

directly from the phone A new soft keyboard with an "Autocomplete" feature Ability to automatically connect to a Bluetooth headset

within a certain distance New widgets and folders that can populate the desktop Animations between screens Expanded ability of Copy and paste to include web pages

1.6 (Doughnut)

On 15 September 2009, the 1.6 (Donut) SDK was released. Included in the update are:

An improved Android Market experience. An integrated camera, camcorder, and gallery interface. Gallery now enables users to select multiple photos for

deletion. Updated Voice Search, with faster response and deeper

integration with native applications, including the ability to dial contacts.

Updated search experience to allow searching bookmarks,

Page 14: รายงาน Google Android - Know2Pro.com

14

history, contacts, and the web from the home screen. Updated Technology support for CDMA/EVDO, 802.1x VPN,

Gestures, and a Text-to-speech engine Speed improvements for searching, the camera

2.0 (Eclair)

On 26 October 2009 the 2.0 (Eclair) SDK was released. Among the changes are:

Optimized hardware speed "Car Home" app Support for more screen sizes and resolutions Revamped UI New browser UI New contact lists Better white/black ratio for backgrounds Improved Google Maps 3.1.2 Microsoft Exchange support Built in flash support for Camera Digital Zoom Improved virtual keyboard Bluetooth 2.1

Page 15: รายงาน Google Android - Know2Pro.com

15

เอกสารอางอิง

ยินดีตอนรับสู ThaiAndroidClub.com http://www.thaiandroidclub.com/ Thailand Android Community : สังคมชาว Android http://www.siamandroid.com/forum/ DroidSans :: Thailand Android Developer Community http://www.droidsans.com/ รูจักกับ Google Android http://www.siamandroid.com/forum/index.php?topic=19.0 Android (operating system) http://en.wikipedia.org/wiki/Android_%28operating_system%29 รูจักกับ Android http://siamdepot.com/index.php?option=com_content&view=article&id=22:what-is-android&catid=10:android-toturial&Itemid=90