Skip to main content

กูเกิลแอนดรอยด์ (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

Popular posts from this blog

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

เห็นใครหลายๆลง  Dev-C++ บน Windows 8,8.1,10 แล้วมันเกิดปัญหาขึ้นคือ พอเขียนโค๊ดโปรแรมเสร็จ แล้วกด Compile ปรากฏว่า โปรแกรมขึ้นแจ้งเตือน "Source file not compile" จึงหันไปลง X-Code กันเพื่อแก้ปัญหา  ผมก็อยากลองดูว่าจริงหรือเปล่า และพอจะแก้ได้ไหม เพราะว่า รุ่นน้องที่ลงแลปวิชาภาษา C ในมหาลัยผม จะสอนใช้ Text-Editor+Compiler ตัวนี้ ก็เลยไปโหลดมาติดตั้ง ปรากฏว่าเป็นจริงๆ TT ( ผมโหลดเจ้าตัว Dev-C++ 5.0 beta 9.2 (4.9.9.2) with Mingw/GCC 3.4.2มาลอง) ก็เลยลงมือแก้หาสาเหตุดู ปรากฏว่า เจอปัญหาที่ gcc ของ MinGW ใน Packet ของ DevC++ ยังเป็นรุ่นเก่า พออัพเดทใหม่แล้วได้ เลยคิดว่า สาเหตุน่าจะเกิดปัญหามาจากตัวนี้ ก็เลยเอาวิธีมาแชร์ๆกัน


Update 11/10/2014 --------------
เนื่องจาก MinGW (Minimalist GNU for Windows) ได้เปลี่ยน UI ใหม่ บางท่านอาจงง



Dev-C++ 5.0 beta 9.2 (4.9.9.2) with Mingw/GCC 3.4.2
วิธีการแก้ง่ายนิดเดียวครับ!!
ก็คือ ลง MinGW ใหม่ โหลดตามลิ้งนี้เลย  เมื่อโหลดเสร็จจากนั้นก็ทำการติดตั้งตามปกติ







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

[บทความนี้ใช้งานได้เฉพาะ น.ศ.หรือบุคลากร ม.อ.]       
       ช่วงนี้เห็นกระแสเริ่มขอ License แท้เริ่มบูมขึ้นมา ปกติจะไม่ค่อยมีใครสนใจซักเท่าไหร่ หรืออาจเป็นเพราะ เบื่อที่ต้อง Crack Windows ให้เป็นของแท้ ไม่ก็กลัวอะไรหลายๆอย่างที่เราไม่รู้ ...ก็...เป็น...ได้
        ผมว่าใคร Crack Windows เนี่ย น่ากลัวมากน่ะ เพราะโปรแกรมที่เอามา Crack เป็นของใครก็ไม่รู้ทำไว้ ยิ่งตอนติดตั้ง คุณต้องรันสิทธิเป็น Admin อีก ไม่อย่างนั้นโปรแกรมจะไม่ทำงาน คราวนี้แหล่ะฮ๊าฟโปรแกรมมันก็จะสามารถที่จะทำทุกอย่างบนเครื่องเราได้เลย โดยที่เราไม่รู้ ถ้าโชคร้ายได้ตัว Crack มาจาก Programer ไม่ประสงค์ดี ตอนติดตั้งเขาอาจใส่โปรแกรมบางอย่างมาติดตั้งในเครื่องเรา ซึ่งเราไม่รู้ (เพราะเห็นแต่หน้า UI อันสวยหรูของโปรแกรมแค่นั้น ใครจะคิดล่ะว่าหน้าตาสวยหรู จะมีสิ่งร้ายๆตามมา)  เพื่อดักข้อมูลสำคัญของเรา ยิ่งใครใช้ Internet Banking ก็งานเข้าล่ะครับพี่น้องเอ้ยย ไม่ต้องพูด แถมบางตัวไป Block Update Windows คราวนี้ซวยเลย ช่องโหว่ Windows ก็ไม่ได้ปิด  Hacker ก็เข้ามาได้ง่าย ถ้าผมจะ  Hack น่ะ ถ้าเข้าได้แล้วเม่ง จะลบข้อมูลให้หมด ทำให้วินโด้เ…

โลจิสโพสต์ ส่งรถจักรยานยนต์ หรือของใหญ่ๆ ผ่านไปรษณีย์ไทย.. ง่ายนิดเดียว

พอดีผมกำลังจะให้เพื่อนส่งจักรยานยนต์ขึ้นมากรุงเทพ ซึ่งตัวเลือกที่หาได้ก็มีแค่ไปรษณีย์ไทย รถไฟ ตอนแรกจะส่งผ่านมากับรถไฟเพราะจากการหาข้อมูล ค่าบริการถูกกว่าครึ่งนึง ก็เลยลองโทรถามเพื่อความชัวร์ ปรากกฏว่าตอนนี้รถไฟไทย เปลี่ยนกฏการให้บริการคือ ต้องมีผู้โดยสารไปกับรถด้วย (ผู้โดยสารจองไปปกติ และซื้อค่าวางสัมภาระสำหรับรถเพิ่ม) ก็เฟลไป เลยสุดท้ายมาจบที่ไปรษณีย์ไทย ราคาโหดพอควร

ซึ่งบริการของไปรณีย์ไทยที่เราจะใช้ ชื่อว่า  โลจิสโพสต์ (Logispost) รับฝากสิ่งของขนาดใหญ่ หรือมีรูปร่างพิเศษเหมาะกับการขนส่งสินค้า ซึ่งมีน้ำหนักมากหรือมีบรรจุภัณฑ์ขนาดใหญ่ เช่น จักรยานยนต์ ตู้เย็น  ทีวี เครื่องซักผ้า โดยสามารถฝากส่งและรอจ่าย ณ ที่ทำการไปรษณีย์ที่ผู้รับสะดวก และยังส่งไปต่างประเทศได้อีกด้วย โดยปกติจะใช้ระยะเวลา 5-7 วันทำการ แต่ถ้าหากต้องการความรวดเร็ว ก็ยังมีบริการ Logispost Plus ส่งด้วยภายใน 3 วัน และยังส่งถึงหน้าบ้าน!!


เริ่มเลยครับ ..

อย่างแรก เอกสารที่ต้องใช้ เตรียมถ่ายไว้เลยจะได้สะดวก ผมว่าให้ถ่ายไปสองชุดเพื่อความชัวร์
1. สำเนาทะเบียนรถที่จะส่ง (พาตัวจริงไปด้วยก็ดี เผื่อเจ้าหน้าขอดู)
2. สำเนาบัตรประชาช…