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

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

มีความเข้ากันได้สองระดับสำหรับอุปกรณ์ที่ใช้ AOSP: ความเข้ากันได้ของ AOSP และความเข้ากันได้ของ Android อุปกรณ์ที่เข้ากันได้กับ AOSP จะต้องเป็นไปตามรายการข้อกำหนดใน เอกสารข้อกำหนดความเข้ากันได้ (CDD) อุปกรณ์ที่รองรับ Android จะต้องเป็นไปตามรายการข้อกำหนดใน CDD และข้อกำหนดซอฟต์แวร์ของผู้จำหน่าย (VSR) และการทดสอบเช่นที่อยู่ใน Vendor Test Suite (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, API ระบบ และการเข้าถึงโดยตรงไปยังการนำเฟรมเวิร์ก Android ไปใช้ เนื่องจากผู้ผลิตอุปกรณ์อาจเข้าถึง API ที่ไม่เสถียรภายในเฟรมเวิร์ก Android ได้โดยตรง แอปเหล่านี้จึงต้องติดตั้งไว้ล่วงหน้าบนอุปกรณ์และสามารถอัปเดตได้เมื่อมีการอัปเดตซอฟต์แวร์ระบบของอุปกรณ์เท่านั้น
เอพีไอของระบบ
System API แสดงถึง Android API ที่ใช้ได้เฉพาะกับคู่ค้าและ OEM เพื่อรวมไว้ในแอปพลิเคชันที่รวมกลุ่ม API เหล่านี้ถูกทำเครื่องหมายเป็น @SystemApi ในซอร์สโค้ด
แอนดรอยด์ เอพีไอ
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
ภูตและไลบรารีดั้งเดิม

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

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

เคอร์เนล

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

อะไรต่อไป?

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