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

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

อุปกรณ์ที่รองรับ AOSP มี 2 ระดับ ได้แก่ ความเข้ากันได้กับ AOSP และความเข้ากันได้ของ Android อุปกรณ์ที่เข้ากันได้กับ 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 ของระบบ แอปเหล่านี้ต้องติดตั้งไว้ล่วงหน้าเป็นแอปที่มีสิทธิ์ในอุปกรณ์
แอปผู้ผลิตอุปกรณ์
แอปที่สร้างโดยใช้ Android API, System API และการเข้าถึงโดยตรงในการใช้งานเฟรมเวิร์ก Android เนื่องจากผู้ผลิตอุปกรณ์อาจเข้าถึง API ที่ไม่เสถียรภายในเฟรมเวิร์ก Android โดยตรง แอปเหล่านี้จึงต้องติดตั้งไว้ในอุปกรณ์ล่วงหน้าและจะอัปเดตได้ก็ต่อเมื่ออัปเดตซอฟต์แวร์ระบบของอุปกรณ์เท่านั้น
API ระบบ
System API แสดงถึง API ของ Android ที่มีให้เฉพาะพาร์ทเนอร์และ OEM เท่านั้นเพื่อรวมไว้ในแอปพลิเคชันที่รวมไว้ด้วยกัน API เหล่านี้จะมีเครื่องหมายเป็น @SystemApi ในซอร์สโค้ด
API ของ Android
Android API เป็น API ที่เผยแพร่ต่อสาธารณะสำหรับนักพัฒนาแอป Android บุคคลที่สาม ดูข้อมูลเกี่ยวกับ Android API ได้ที่เอกสารอ้างอิง Android API
เฟรมเวิร์ก Android
กลุ่มคลาส Java, อินเทอร์เฟซ และโค้ดอื่นๆ ที่คอมไพล์ไว้ล่วงหน้าซึ่งใช้สร้างแอป เฟรมเวิร์กบางส่วนเข้าถึงได้แบบสาธารณะผ่านการใช้ Android API ส่วนอื่นๆ ของเฟรมเวิร์กมีไว้สำหรับ OEM เท่านั้นผ่านการใช้ API ของระบบ โค้ดเฟรมเวิร์ก Android จะทํางานภายในกระบวนการของแอป
บริการของระบบ
บริการของระบบคือคอมโพเนนต์แบบโมดูลที่มุ่งเน้น เช่น system_server, SurfaceFlinger และ MediaService ฟังก์ชันการทำงานที่แสดงโดย API เฟรมเวิร์ก Android สื่อสารกับบริการของระบบเพื่อเข้าถึงฮาร์ดแวร์พื้นฐาน
รันไทม์ Android (ART)
สภาพแวดล้อมรันไทม์ของ Java มาจาก AOSP ART จะดำเนินการแปลไบต์โค้ดของแอปเป็นคำสั่งเฉพาะสำหรับโปรเซสเซอร์ซึ่งรันไทม์ของอุปกรณ์จะดำเนินการ
ระดับชั้นการจัดการฮาร์ดแวร์โดยตรง (HAL)
HAL เป็นเลเยอร์การจัดการฮาร์ดแวร์โดยตรงที่มีอินเทอร์เฟซมาตรฐานสำหรับผู้ให้บริการฮาร์ดแวร์เพื่อนำไปใช้งาน HAL ทำให้ Android ไม่จำเป็นต้องสนใจการนำไดรเวอร์ระดับล่างมาใช้ การใช้ HAL ช่วยให้คุณใช้ฟังก์ชันการทำงานได้โดยไม่ส่งผลต่อหรือแก้ไขระบบในระดับที่สูงขึ้น ดูข้อมูลเพิ่มเติมได้ที่ภาพรวม HAL
เดมอนและไลบรารีแบบเนทีฟ

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

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

เคอร์เนล

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

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

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