Android Open System Platform (AOSP) เป็นซอร์สโค้ด Android ที่เปิดเผยต่อสาธารณะและแก้ไขได้ ทุกคนสามารถดาวน์โหลดและแก้ไข AOSP สำหรับอุปกรณ์ของตนได้ AOSP ให้การใช้งานแพลตฟอร์มมือถือ Android ที่สมบูรณ์และใช้งานได้อย่างสมบูรณ์
มีความเข้ากันได้สองระดับสำหรับอุปกรณ์ที่ใช้ AOSP: ความเข้ากันได้ของ AOSP และความเข้ากันได้ของ Android อุปกรณ์ที่เข้ากันได้กับ AOSP จะต้องเป็นไปตามรายการข้อกำหนดใน Compatibility Definition Document (CDD) อุปกรณ์ที่เข้ากันได้กับ Android ต้องเป็นไปตามรายการข้อกำหนดใน CDD และข้อกำหนดซอฟต์แวร์ของผู้ขาย (VSR) และการทดสอบต่างๆ เช่น ที่อยู่ใน Vendor Test Suite (VTS) และ Compatibility Test Suite (CTS) สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความเข้ากันได้ของ Android โปรดดูที่ โปรแกรมความเข้ากันได้ของ Android
สถาปัตยกรรม AOSP
กองซอฟต์แวร์สำหรับ AOSP ประกอบด้วยเลเยอร์ต่อไปนี้:
รูปที่ 1 สถาปัตยกรรมสแต็กซอฟต์แวร์ AOSP
ต่อไปนี้เป็นรายการคำจำกัดความของคำที่ใช้ในรูปที่ 1:
- แอพแอนดรอยด์
- แอปที่สร้างขึ้นโดยใช้ Android API เท่านั้น Google Play Store ใช้กันอย่างแพร่หลายในการค้นหาและดาวน์โหลดแอป Android แม้ว่าจะมีทางเลือกอื่นๆ มากมาย ในบางกรณี ผู้ผลิตอุปกรณ์อาจต้องการติดตั้งแอป Android ไว้ล่วงหน้าเพื่อรองรับการทำงานหลักของอุปกรณ์ หากคุณสนใจในการพัฒนาแอพ Android โปรดดูที่ developer.android.com
- แอพสิทธิพิเศษ
- แอปที่สร้างขึ้นโดยใช้การรวมกันของ Android และ API ของระบบ แอปเหล่านี้ต้องได้รับการติดตั้งไว้ล่วงหน้าเป็นแอปพิเศษในอุปกรณ์
- แอปผู้ผลิตอุปกรณ์
- แอปที่สร้างขึ้นโดยใช้การรวมกันของ Android API, API ของระบบ และการเข้าถึงโดยตรงไปยังการติดตั้งเฟรมเวิร์ก Android เนื่องจากผู้ผลิตอุปกรณ์อาจเข้าถึง API ที่ไม่เสถียรได้โดยตรงภายในเฟรมเวิร์กของ Android จึงต้องติดตั้งแอปเหล่านี้ไว้ล่วงหน้าในอุปกรณ์และสามารถอัปเดตได้เมื่อมีการอัปเดตซอฟต์แวร์ระบบของอุปกรณ์เท่านั้น
- API ระบบ
- System API แสดงถึง Android API ที่มีให้สำหรับคู่ค้าและ OEM เท่านั้นที่รวมไว้ในแอปพลิเคชันแบบรวม API เหล่านี้ถูกทำเครื่องหมายเป็น @SystemApi ในซอร์สโค้ด
- แอนดรอยด์เอพีไอ
- Android API เป็น API ที่เผยแพร่ต่อสาธารณะสำหรับนักพัฒนาแอป Android บุคคลที่สาม สำหรับข้อมูลเกี่ยวกับ Android API โปรดดูการอ้างอิง Android API
- เฟรมเวิร์กของแอนดรอยด์
- กลุ่มของคลาส 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
daemons เหล่านี้โต้ตอบโดยตรงกับเคอร์เนลหรืออินเทอร์เฟซอื่น ๆ และไม่ขึ้นอยู่กับการใช้งาน HAL ตาม userspaceไลบรารีเนทีฟในเลเยอร์นี้ประกอบด้วย
libc
,liblog
,libutils
,libbinder
และlibselinux
ไลบรารีแบบเนทีฟเหล่านี้โต้ตอบโดยตรงกับเคอร์เนลหรืออินเทอร์เฟซอื่นๆ และไม่ได้ขึ้นอยู่กับการใช้งาน HAL ที่อิงตามพื้นที่ของผู้ใช้- เคอร์เนล
เคอร์เนลเป็นส่วนสำคัญของระบบปฏิบัติการและพูดคุยกับฮาร์ดแวร์พื้นฐานบนอุปกรณ์ หากเป็นไปได้ เคอร์เนล AOSP จะถูกแบ่งออกเป็นโมดูลที่ไม่เชื่อเรื่องฮาร์ดแวร์และโมดูลเฉพาะของผู้จำหน่าย สำหรับคำอธิบาย รวมถึงคำจำกัดความของส่วนประกอบเคอร์เนล AOSP โปรดดู ภาพรวมเคอร์เนล
อะไรต่อไป?
- หากคุณเพิ่งเริ่มใช้ AOSP และต้องการเริ่มต้นการพัฒนา โปรดดู ส่วนเริ่มต้นใช้ งาน
- หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับเลเยอร์เฉพาะของ AOSP ให้คลิกชื่อส่วนในการนำทางด้านซ้ายและเริ่มด้วยภาพรวมสำหรับส่วนนั้น