กูเกิลแอนดรอยด์ (Google Android)


กูเกิลแอนดรอยด์ (Google Android)


              แอนดรอยด์ (Android) เป็นซอฟต์แวร์ที่มีโครงสร้างแบบเรียงทับซ้อนหรือแบบสแต็ก (Stack) ซึ่งรวมเอาระบบปฏิบัติการ (Operating System), มิดเดิลแวร์ (Middleware) และแอพพลิเคชันที่สำคัญเข้าไว้ด้วยกัน เพื่อใช้สำหรับทำงานบนอุปกรณ์พกพาเคลื่อนที่ (Mobile Devices) เช่น โทรศัพท์มือถือ เป็นต้น  การทำงานของแอนดรอยด์มีพื้นฐานอยู่บนระบบลีนุกซ์ เคอร์เนล (Linux Kernel) ซึ่งใช้ Android SDK (Software Development Kit) เป็นเครื่องมือสำหรับการพัฒนาแอพพลิเคชันบนระบบปฏิบัติการ Android และใช้ภาษา Java ในการพัฒนา


ประเภทของระบบปฏิบัติการ android
            เนื่องจากแอนดรอยด์นั้นเปิดให้นักพัฒนาเข้าไปชมรหัสต้นฉบับได้ ทำให้มีผู้พัฒนาจากหลายฝ่ายนำเอารหัสต้นฉบับมาปรับแต่ง และสร้างแอนดรอยด์ในแบบฉบับของตนเองขึ้น เราจึงแบ่งประเภทของแอนดรอยด์ออกได้เป็น 3 ประเภท ดังต่อไปนี้
            1. Android Open Source Project (AOSP) เป็นแอนดรอยด์ประเภทแรกที่กูเกิลเปิดให้สามารถนำ “ต้นฉบับแบบเปิด” ไปติดตั้งและใช้งานในอุปกรณ์ต่าง ๆ ได้โดยไม่ต้องเสียค่าใช้จ่ายได ๆ
            2. Open Handset Mobile (OHM) เป็นแอนดรอยด์ที่ได้รับการพัฒนาร่วมกับกลุ่มบริษัทผู้ผลิตอุปกรณ์พกพา ที่เข้าร่วมกับกูเกิลในนาม Open Handset Alliances (OHA) ซึ่งบริษัทเหล่านี้จะพัฒนาแอนดรอยด์ในแบบฉบับของตนออกมา โดยรูปร่างหน้าตาการแสดงผล และฟังค์ชั่นการใช้งาน จะมีความเป็นเอกลักษณ์ และมีลิขสิทธิ์เป็นของตน พร้อมได้รับสิทธิ์ในการมีบริการเสริมต่าง ๆ จากกูเกิล ที่เรียกว่า Google Mobile Service (GMS) ซึ่งเป็นบริการเสริมที่ทำให้แอนดรอยด์มีประสิทธิภาพ เป็นไปตามจุดประสงค์ของแอนดรอยด์ แต่การจะได้มาซึ่ง GMS นั้น ผู้ผลิตจะต้องทำการทดสอบระบบ และขออนุญาตกับทางกูเกิลก่อน จึงจะนำเครื่องออกสู่ตลาดได้
   3. Cooking หรือ Customize เป็นแอนดรอยด์ที่นักพัฒนานำเอารหัสต้นฉบับจากแหล่งต่าง ๆ มาปรับแต่ง ในแบบฉบับของตนเอง โดยจะต้องทำการปลดล๊อคสิทธิ์การใช้งานอุปกรณ์ หรือ Unlock เครื่องก่อน จึงจะสามารถติดตั้งได้ โดยแอนดรอยด์ประเภทนี้ถือเป็นประเภทที่มีความสามารถมากที่สุด เท่าที่อุปกรณ์เครื่องนั้น ๆ จะรองรับได้ เนื่องจากได้รับการปรับแต่งให้เข้ากับอุปกรณ์นั้น ๆ จากผู้ใช้งานจริง

สถาปัตยกรรมของแอนดรอยด์ (ANDROID ARCHITECTURE)
             สถาปัตยกรรมของแอนดรอยด์ (Android Architecture) นั้นถูกแบ่งออกเป็นลำดับชั้น ออกเป็น 4 ชั้นหลัก ดังในรูปด้านล่าง



       1.ชั้นแอพพลิเคชัน (Application)
                   ชั้นนี้จะเป็นชั้นที่อยู่บนสุดของโครงสร้างสถาปัตยกรรม Android ซึ่งเป็นส่วนของแอพพลิเคชันที่พัฒนาขึ้นมาใช้งาน เช่น แอพพลิเคชันรับ/ส่งอีเมล์, SMS, ปฏิทิน, แผนที่, เว็บเบราเซอร์, รายชื่อผู้ติดต่อ เป็นต้น ซึ่งแอพพลิเคชันจะอยู่ในรูปแบบของไฟล์ .apk โดยทั่วไปแล้วจะอยู่ในไดเร็คทอรี data/app (รูปตัวอย่างของ application)
        2 ชั้นแอพพลิเคชันเฟรมเวิร์ค (Application Framework)
          ในชั้นนี้จะอนุญาติให้นักพัฒนาสามารถเข้าเรียกใช้งาน โดยผ่าน API (Application Programming Interface) ซึ่ง Android ได้ออกแบบไว้เพื่อลดความซ้ำซ้อนในการใช้งาน application component  โดยในชั้นนี้ประกอบด้วยแอพพลิเคชันเฟรมเวิร์คดังนี้
                   - View System เป็นส่วนที่ใช้ในการควบคุมการทำงานสำหรับการสร้างแอพพลิเคชัน เช่น lists, grids, text boxes, buttons และ embeddable web browser
                   - Location Manager เป็นส่วนที่จัดการเกี่ยวกับค่าต่ำแหน่งของเครื่องอุปกรณ์พกพาเคลื่อนที่
                   - Content Provider เป็นส่วนที่ใช้ควบคุมการเข้าถึงข้อมูลที่มีการใช้งานร่วมกัน (Share data) ระหว่างแอพพลิเคชันที่แตกต่างกัน เช่น ข้อมูลผู้ติดต่อ (Contact)
                   - Resource Manager เป็นส่วนที่จัดการข้อมูลต่างๆ ที่ไม่ใช่ส่วนของโค้ดโปรแกรม เช่น รูปภาพ, localized strings, layout ซึ่งจะอยู่ในไดเร็คทอรี res/
                   - Notification Manager เป็นส่วนที่ควบคุมอีเวนต์ (Event) ต่างๆ ที่แสดงบนแถบสถานะ (Status bar) เช่น ในกรณีที่ได้รับข้อความหรือสายที่ไม่ได้รับและการแจ้งเตือนอื่นๆ เป็นต้น
                   - Activity Manager เป็นส่วนควบคุม Life Cycle ของแอพพลิเคชั
3 ชั้นไลบรารี (Library)
         Android ได้รวบรวมกลุ่มของไลบรารีต่างๆ ที่สำคัญและมีความจำเป็นเอาไว้มากมาย เพื่ออำนวยความสะดวกให้กับนักพัฒนาและง่ายต่อการพัฒนาโปรแกรม โดยตัวอย่างของไลบรารีที่สำคัญเช่น
                  - System C library เป็นกลุ่มของไลบรารีมาตรฐานที่อยู่บนพื้นฐานของภาษา C ไลบรารี (libc) สำหรับ embedded system ที่มีพื้นฐานมาจาก Linux
                  - Media Libraries เป็นกลุ่มการทำงานมัลติมีเดีย เช่น MPEG4, H.264, MP3, AAC, AMR, JPG, และ PNG
                  - Surface Manager เป็นกลุ่มการจัดการรูปแบบหน้าจอ การวาดหน้าจอ 2D/3D library เป็นกลุ่มของกราฟิกแบบ 2 มิติ หรือ SGL (Scalable Graphics Library) และแบบ 3 มิติ หรือ OpenGL
                 - FreeType เป็นกลุ่มของบิตแมป (Bitmap) และเวคเตอร์ (Vector) สำหรับการเรนเดอร์ (Render) ภาพ
                 - SQLite เป็นกลุ่มของฐานข้อมูล โดยนักพัฒนาสามารถใช้ฐานข้อมูลนี้เก็บข้อมูลแอพพลิเคชันต่างๆ ได้
                 - Browser Engine เป็นกลุ่มของการแสดงผลบนเว็บเบราเซอร์โดยอยู่บนพื้นฐานของ Webkit ซึ่งจะมีลักษณะคล้ายกับ Google Chrome

         สำหรับการเรียกใช้แอพพลิเคชันต่างๆ ในชั้นไลบารี จะไม่สามารถเรียกใช้แอพพลิเคชันในตัวเองได้ โดยจะต้องเรียกใช้แอพพลิเคชั่นในชั้นที่สูงกว่าเท่านั้นจึงจะสามารถเรียกใช้ได้  นอกจากนี้ในชั้นไลบรารีนี้ Android ยังแบ่งเป็นชั้นย่อยที่เรียกว่า Android Runtime ซึ่งจะประกอบไปด้วย 2 ส่วน คือ Dalvik VM (Virtual Machine) และ Core Java Library
                  - Dalvik VM (Virtual Machine) ส่วนนี้ถูกเขียนด้วยภาษา Java เพื่อใช้เฉพาะการใช้งานในอุปกรณ์เคลื่อนที่ Dalvik VM จะแตกต่างจาก Java VM (Virtual Machine) คือ Dalvik VM จะรันไฟล์ .dex ที่คอมไพล์มาจากไฟล์ .class และ .jar โดยมี tool ที่ชื่อว่า dx ทำหน้าที่ในการบีบอัดคลาส Java ทั้งนี้ไฟล์ .dex จะมีขนาดกะทัดรัดและเหมาะสมกับอุปกรณ์เคลื่อนที่มากกว่า .class เพื่อต้องการใช้พลังงานจากแบตเตอรี่อย่างมีประสิทธิภาพสูงสุด
                   - Core Java Library ส่วนนี้เป็นไลบรารีมาตรฐาน แต่ก็มีความแตกต่าง

4. ชั้นลีนุกซ์เคอร์เนล (Linux Kernel)

           ระบบ Android นั้นถูกสร้างบนพื้นฐานของระบบปฏิบัติการ Linux โดยในชั้นนี้จะมีฟังก์ชันการทำงานหลายๆ ส่วน แต่โดยส่วนมากแล้วจะเกี่ยวข้องกับฮาร์ดแวร์โดยตรง เช่น การจัดการหน่วยความจำ (Memory Management) การจัดการโพรเซส (Process Management) การเชื่อมต่อเครือข่าย(Networking) เป็นต้




ส่วนประกอบของแอพพลิเคชั่น (Android applications component)

- Activity คือ ส่วนของหน้า User Interface หนึ่งหน้าของ Android ซึ่งรวมไปจนถึงการจัดการต่างๆ ภายในหน้านั้นๆ ระหว่าง User กับตัว Application เช่นการควบคุม Button หรือ View ต่างๆ ของหน้า User Interface ที่ได้กำหนดไว้ใน Activity โดย User Interface อาทิ เช่น หน้าโทรออก, หน้าแสดงเว็บไซต์, หน้าแสดง Contact List, และอื่นๆ
- Service คือส่วนการทำงานที่ไม่มีหน้าจอที่ติดต่อกับผู้ใช้ service นั้นจะทำงานอยู่ในส่วนของ background เช่น โปรแกรมเล่นเพลงต่างๆ ก็จะมีหน้าจอที่ติดต่อกับผู้ใช้ (นั้นคือส่วนของ activities) และเมื่อผู้ใช้เลือกเพลงเสร็จแล้วกดเล่น ไฟล์เพลงก็จะถูกเล่นโดยมีการทำงานแบบ services หลักจากผู้ใช้กด Back หรือ Home หน้าจอของเครื่องเล่นเพลง (activities) ก็จะถูกเก็บไป แต่ในส่วนของ services ที่เล่นเพลงนั้นก็ยังคงเล่นเพลงต่อไป
- Broadcast Receiver  คือส่วนที่จะรับเอา broadcast ต่างๆ มาทำงาน หรือส่ง broadcast นั้นต่อไป การ broadcast ที่ว่านี้ส่วนใหญ่จะเป็นของระบบเองที่ทำการ broadcast มา เช่น เมื่อเครื่องถูกชาร์จไฟ หรือมีการโทรเข้า หรือมีการรับข้อความ หรือจำนวนแบตตารี่ลดลง ถ้ามีเหตุการณ์ต่างๆ พวกนี้เกิดขึ้น ระบบก็จะทำการส่ง broadcast ไปให้รู้โดยทั่วกัน และถ้าในโปรแกรมเราต้องการนำค่าต่างๆ ที่ระบบ broadcast นั้นมาใช้งาน เราก็จะสร้าง Broadcast receivers นี่แหละขึ้นมารับเอาข้อมูลไปทำงาน หรือนอกจากนี้ก็ยังสามารถส่ง broadcast ที่สร้างขึ้นมาเอง ที่นอกเหนือจากที่ระบบมีไว้ก่อนหน้าและส่งไปได้ด้วย.
- Content Provider  เป็นส่วนของการจัดการข้อมูลต่างๆ ที่ถูกแชร์กันในระบบ ไม่ว่าข้อมูลนั้นจะอยู่ที่ไหนก็ตามจะเป็นไฟล์ของระบบ ใน database ที่อยู่ในระบบ หรือจะเป็นข้อมูลที่ถูกเก็บไว้ในเว็บ และสามารถที่จะแก้ไขข้อมูลต่างๆนั้นได้ ถ้า content provider นั้นให้สิทธิ ยกตัวอย่างเช่น ในระบบของ Android นั้นจะมี content providers ที่เห็นได้ชัดอยู่ตัวหนึ่งคือ content providers เพื่อจัดการข้อมูลของรายชื่อในโทรศัพท์ ทั้งนี้ก็เพื่อให้ app ที่เราเขียนขึ้นใช้งานข้อมูลดังกล่าวได้ผ่าน content provider นั้น นอกจากนี้ content provider ก็ยังสามารถจัดการข้อมูลที่ไม่ได้ทำการแชร์ไว้ แต่ในโปรแกรมเราเองได้อีกด้วย

Reference :
“Android (แอนดรอยด์) คืออะไร และ Google Android คืออะไร,” Android Developers Thai, 
[ออนไลน์]. Available: http://community.siamphone.com/viewtopic.php?t=287160. [เข้าถึง 28/11/2555].
“Ice Cream Sandwich – from source code release to software upgrade”, [ออนไลน์]. Available: http://developer-static.se-mc.com/wp-content/blogs.dir/1/files/2012/08/HAL.png [เข้าถึง 2/2/2556].
“Android Architecture diagram. Android Goes Beyond Google” ”, [ออนไลน์]. Available: http://www.rtcmagazine.com/articles/view/102586 .[เข้าถึง 2/2/2556].
“Hello World Application in android”, [ออนไลน์]. Available: http://javashine.wordpress.com/2012/03/24/hello-world-application-in-android/ .[เข้าถึง 2/2/2556].
“Android vocabulary”, [ออนไลน์]. Available: http://lookpat.wordpress.com/2012/01/19/android-vocabulary/ .[เข้าถึง 2/2/2556].

Comments

  1. กูเกิลแอนดรอยด์ (Google Android) >>>>> Download Now

    >>>>> Download Full

    กูเกิลแอนดรอยด์ (Google Android) >>>>> Download LINK

    >>>>> Download Now

    กูเกิลแอนดรอยด์ (Google Android) >>>>> Download Full

    >>>>> Download LINK Zg

    ReplyDelete

Post a Comment

Popular posts from this blog

interpreter กับ compiler ต่างกันยังไง?

[PSU] วิธีการขอ License Win 7,8,8.1,10 ของแท้ฟรี

Source file not compile Dev C++ win 8, win 8.1 , win10