Android - สถาปัตยกรรม

ระบบปฏิบัติการ Android เป็นชุดของส่วนประกอบซอฟต์แวร์ซึ่งแบ่งออกเป็น 5 ส่วนคร่าวๆและ 4 เลเยอร์หลักดังที่แสดงด้านล่างในแผนภาพสถาปัตยกรรม

เคอร์เนลลินุกซ์

ที่ด้านล่างของเลเยอร์คือ Linux - Linux 3.6 พร้อมด้วยแพตช์ 115 ประมาณ สิ่งนี้ให้ระดับของนามธรรมระหว่างฮาร์ดแวร์ของอุปกรณ์และประกอบด้วยไดรเวอร์ฮาร์ดแวร์ที่จำเป็นทั้งหมดเช่นกล้องปุ่มกดจอแสดงผล ฯลฯ นอกจากนี้เคอร์เนลยังจัดการทุกสิ่งที่ Linux ทำได้ดีมากเช่นระบบเครือข่ายและไดรเวอร์อุปกรณ์มากมาย ซึ่งช่วยลดความเจ็บปวดจากการเชื่อมต่อกับฮาร์ดแวร์อุปกรณ์ต่อพ่วง

ห้องสมุด

ด้านบนของเคอร์เนล Linux มีชุดของไลบรารีรวมถึง WebKit เอ็นจิ้นเว็บเบราว์เซอร์แบบโอเพนซอร์ส WebKit ไลบรารีที่รู้จักกันดีฐานข้อมูล SQLite ซึ่งเป็นที่เก็บที่มีประโยชน์สำหรับการจัดเก็บและแบ่งปันข้อมูลแอปพลิเคชันไลบรารีสำหรับเล่นและบันทึกเสียงและวิดีโอ ห้องสมุดที่รับผิดชอบด้านความปลอดภัยอินเทอร์เน็ตเป็นต้น

ไลบรารี Android

หมวดหมู่นี้ครอบคลุมไลบรารีที่ใช้ Java ซึ่งเฉพาะสำหรับการพัฒนา Android ตัวอย่างของไลบรารีในหมวดหมู่นี้ ได้แก่ ไลบรารีเฟรมเวิร์กของแอปพลิเคชันนอกเหนือจากไลบรารีที่อำนวยความสะดวกในการสร้างส่วนติดต่อผู้ใช้การวาดภาพกราฟิกและการเข้าถึงฐานข้อมูล สรุปไลบรารีหลักของ Android ที่มีให้สำหรับนักพัฒนา Android มีดังนี้ -

  • android.app - ให้การเข้าถึงรูปแบบแอปพลิเคชันและเป็นรากฐานที่สำคัญของแอปพลิเคชัน Android ทั้งหมด

  • android.content - อำนวยความสะดวกในการเข้าถึงเนื้อหาการเผยแพร่และการส่งข้อความระหว่างแอปพลิเคชันและส่วนประกอบของแอปพลิเคชัน

  • android.database - ใช้เพื่อเข้าถึงข้อมูลที่เผยแพร่โดยผู้ให้บริการเนื้อหาและรวมถึงคลาสการจัดการฐานข้อมูล SQLite

  • android.opengl - อินเทอร์เฟซ Java กับ API การเรนเดอร์กราฟิก OpenGL ES 3D

  • android.os - จัดเตรียมแอปพลิเคชันที่สามารถเข้าถึงบริการระบบปฏิบัติการมาตรฐานรวมถึงข้อความบริการระบบและการสื่อสารระหว่างกระบวนการ

  • android.text - ใช้ในการแสดงผลและจัดการข้อความบนหน้าจออุปกรณ์

  • android.view - โครงสร้างพื้นฐานของส่วนต่อประสานผู้ใช้แอปพลิเคชัน

  • android.widget - ชุดส่วนประกอบอินเทอร์เฟซผู้ใช้ที่สร้างไว้ล่วงหน้ามากมายเช่นปุ่มป้ายกำกับมุมมองรายการตัวจัดการเค้าโครงปุ่มตัวเลือก ฯลฯ

  • android.webkit - ชุดชั้นเรียนที่มีจุดมุ่งหมายเพื่อให้สามารถสร้างความสามารถในการท่องเว็บในแอปพลิเคชัน

เมื่อครอบคลุมไลบรารีหลักที่ใช้ Java ในรันไทม์ของ Android แล้วตอนนี้ถึงเวลาที่เราจะหันมาสนใจไลบรารีที่ใช้ C / C ++ ที่อยู่ในเลเยอร์ของซอฟต์แวร์ Android นี้

รันไทม์ของ Android

นี่คือส่วนที่สามของสถาปัตยกรรมและมีอยู่ในเลเยอร์ที่สองจากด้านล่าง ส่วนนี้มีส่วนประกอบหลักที่เรียกว่าDalvik Virtual Machine ซึ่งเป็น Java Virtual Machine ชนิดหนึ่งที่ออกแบบและปรับแต่งมาสำหรับ Android โดยเฉพาะ

Dalvik VM ใช้ประโยชน์จากคุณสมบัติหลักของ Linux เช่นการจัดการหน่วยความจำและมัลติเธรดซึ่งเป็นภาษา Java Dalvik VM ช่วยให้แอปพลิเคชัน Android ทุกตัวทำงานในกระบวนการของตัวเองด้วยอินสแตนซ์ของเครื่องเสมือน Dalvik

รันไทม์ของ Android ยังมีชุดของไลบรารีหลักซึ่งช่วยให้นักพัฒนาแอปพลิเคชัน Android สามารถเขียนแอปพลิเคชัน Android โดยใช้ภาษาโปรแกรม Java มาตรฐาน

กรอบการใช้งาน

เลเยอร์ Application Framework ให้บริการระดับสูงขึ้นมากมายสำหรับแอ็พพลิเคชันในรูปแบบของคลาส Java นักพัฒนาแอปพลิเคชันได้รับอนุญาตให้ใช้บริการเหล่านี้ในแอปพลิเคชันของตน

เฟรมเวิร์กของ Android ประกอบด้วยบริการหลักดังต่อไปนี้ -

  • Activity Manager - ควบคุมทุกด้านของวงจรชีวิตของแอปพลิเคชันและกองกิจกรรม

  • Content Providers - อนุญาตให้แอปพลิเคชันเผยแพร่และแบ่งปันข้อมูลกับแอปพลิเคชันอื่น ๆ

  • Resource Manager - ให้การเข้าถึงทรัพยากรที่ไม่ได้ฝังโค้ดเช่นสตริงการตั้งค่าสีและรูปแบบส่วนต่อประสานผู้ใช้

  • Notifications Manager - อนุญาตให้แอปพลิเคชันแสดงการแจ้งเตือนและการแจ้งเตือนแก่ผู้ใช้

  • View System - ชุดมุมมองที่ขยายได้ที่ใช้ในการสร้างส่วนต่อประสานผู้ใช้ของแอปพลิเคชัน

การใช้งาน

คุณจะพบแอปพลิเคชัน Android ทั้งหมดที่ชั้นบนสุด คุณจะเขียนแอปพลิเคชันของคุณเพื่อติดตั้งบนเลเยอร์นี้เท่านั้น ตัวอย่างแอปพลิเคชันดังกล่าว ได้แก่ สมุดติดต่อเบราว์เซอร์เกมเป็นต้น