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

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

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

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

สแต็กซอฟต์แวร์สำหรับ AOSP มีเลเยอร์ต่อไปนี้

สถาปัตยกรรมของชุดซอฟต์แวร์ AOSP

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

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

แอป Android
แอปที่สร้างขึ้นโดยใช้ Android API เพียงอย่างเดียว Google Play Store เป็นที่นิยมใช้ในการค้นหาและดาวน์โหลดแอป Android แม้ว่าจะมีตัวเลือกอื่นๆ อีกมากมาย ในบางกรณี ผู้ผลิตอุปกรณ์อาจต้องการติดตั้งแอป Android ไว้ล่วงหน้าเพื่อรองรับฟังก์ชันหลักของอุปกรณ์ หากคุณสนใจพัฒนาแอป Android โปรดดูที่ developers.android.com.
แอปที่มีสิทธิ์
แอปที่สร้างขึ้นโดยใช้ Android API และ System API ร่วมกัน แอปเหล่านี้ต้องติดตั้งไว้ล่วงหน้าเป็นแอปที่มีสิทธิ์ในอุปกรณ์
แอปของผู้ผลิตอุปกรณ์
แอปที่สร้างขึ้นโดยใช้ 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 ให้คลิกชื่อส่วนในแถบนำทางด้านซ้าย แล้วเริ่มจากภาพรวมของส่วนนั้น