ภาพรวมสถาปัตยกรรม

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

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

สถาปัตยกรรม AOSP

Software Stack สำหรับ AOSP มีเลเยอร์ต่อไปนี้

สถาปัตยกรรมสแต็กซอฟต์แวร์ AOSP

รูปที่ 1 สถาปัตยกรรมสแต็กซอฟต์แวร์ AOSP

คำจำกัดความของคำที่ใช้ในรูปที่ 1 มีดังนี้

แอป Android
แอปที่สร้างขึ้นโดยใช้ Android API เพียงอย่างเดียว ผู้คนนิยมใช้ Google Play Store เพื่อค้นหาและดาวน์โหลดแอป Android แม้ว่าจะมีตัวเลือกอื่นๆ อีกมากมายก็ตาม ในบางกรณี ผู้ผลิตอุปกรณ์อาจต้องการ ติดตั้งแอป Android ไว้ล่วงหน้าเพื่อรองรับฟังก์ชันหลักของอุปกรณ์ หากคุณสนใจพัฒนาแอป Android โปรดไปที่ developers.android.com
แอปที่มีสิทธิ์พิเศษ
แอปที่สร้างขึ้นโดยใช้ API ของ Android และระบบร่วมกัน แอปเหล่านี้ ต้องติดตั้งไว้ล่วงหน้าเป็นแอปที่มีสิทธิ์ในอุปกรณ์
แอปของผู้ผลิตอุปกรณ์
แอปที่สร้างขึ้นโดยใช้การผสมผสานระหว่าง Android API, System API และการเข้าถึงโดยตรง การติดตั้งใช้งานเฟรมเวิร์ก Android เนื่องจากผู้ผลิตอุปกรณ์ อาจเข้าถึง API ที่ไม่เสถียรภายในเฟรมเวิร์ก Android โดยตรง แอปเหล่านี้ จึงต้องได้รับการติดตั้งล่วงหน้าในอุปกรณ์ และจะอัปเดตได้ก็ต่อเมื่อมีการอัปเดตซอฟต์แวร์ระบบของอุปกรณ์
System API
System API แสดงถึง Android API ที่พร้อมให้บริการแก่พาร์ทเนอร์และ OEM เท่านั้นเพื่อรวมไว้ในแอปพลิเคชันที่มาพร้อมกับอุปกรณ์ API เหล่านี้จะมีการทำเครื่องหมายเป็น @SystemApi ในซอร์สโค้ด
Android API
Android API เป็น API ที่เผยแพร่ต่อสาธารณะสำหรับนักพัฒนาแอป Android ของบุคคลที่สาม ดูข้อมูลเกี่ยวกับ Android API ได้ที่ เอกสารอ้างอิง Android API
เฟรมเวิร์ก Android
กลุ่มของคลาส อินเทอร์เฟซ และโค้ดอื่นๆ ที่คอมไพล์ล่วงหน้าใน Java ซึ่งใช้สร้างแอป ส่วนต่างๆ ของเฟรมเวิร์กสามารถเข้าถึงได้แบบสาธารณะผ่านการ ใช้ Android API ส่วนอื่นๆ ของเฟรมเวิร์กจะ พร้อมใช้งานสำหรับ OEM เท่านั้นผ่านการใช้ System API โค้ดเฟรมเวิร์ก Android ทำงานภายในกระบวนการของแอป
บริการของระบบ
บริการของระบบเป็นคอมโพเนนต์แบบแยกส่วนที่มุ่งเน้น เช่น system_server, SurfaceFlinger และ MediaService ฟังก์ชันการทำงานที่ API ของเฟรมเวิร์ก Android แสดงจะสื่อสารกับบริการของระบบเพื่อเข้าถึงฮาร์ดแวร์พื้นฐาน
รันไทม์ของ Android (ART)
สภาพแวดล้อมรันไทม์ Java ที่จัดทำโดย AOSP ART จะ แปลไบต์โค้ดของแอปเป็นคำสั่งเฉพาะของโปรเซสเซอร์ ซึ่งสภาพแวดล้อมรันไทม์ของอุปกรณ์จะเรียกใช้
ชั้นการจัดการฮาร์ดแวร์โดยตรง (HAL)
HAL คือเลเยอร์การแยกส่วนที่มีอินเทอร์เฟซมาตรฐานสำหรับผู้จำหน่ายฮาร์ดแวร์ เพื่อนำไปใช้ HAL ช่วยให้ Android ไม่ต้องสนใจการติดตั้งใช้งานไดรเวอร์ระดับล่าง การใช้ HAL ช่วยให้คุณสามารถใช้ฟังก์ชันการทำงานได้โดยไม่ส่งผลกระทบหรือแก้ไขระบบระดับที่สูงกว่า ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมของ HAL
Daemon และไลบรารีที่มาพร้อมเครื่อง

Daemon ดั้งเดิมในเลเยอร์นี้ ได้แก่ init, healthd, logd และ storaged โดย Daemon เหล่านี้จะโต้ตอบกับเคอร์เนลหรืออินเทอร์เฟซอื่นๆ โดยตรง และไม่ขึ้นอยู่กับการใช้งาน HAL ที่อิงตามพื้นที่ผู้ใช้

ไลบรารีที่มาพร้อมเครื่องในเลเยอร์นี้ ได้แก่ libc, liblog, libutils, libbinder และ libselinux ไลบรารีเนทีฟเหล่านี้โต้ตอบกับเคอร์เนลหรืออินเทอร์เฟซอื่นๆ โดยตรง และไม่ได้ขึ้นอยู่กับการใช้งาน HAL ที่อิงตามพื้นที่ผู้ใช้

เคอร์เนล

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

สิ่งต่อไปที่ควรทำ

  • หากคุณเพิ่งเริ่มใช้ AOSP และต้องการเริ่มต้นพัฒนา โปรดดูส่วนเริ่มต้นใช้งาน
  • หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับเลเยอร์ที่เฉพาะเจาะจงของ AOSP ให้คลิกชื่อส่วนในการนำทางด้านซ้าย แล้วเริ่มด้วยภาพรวมของส่วนนั้น