โครงการโอเพนซอร์ส Android (AOSP) เป็นซอร์สโค้ด Android ที่พร้อมใช้งานแบบสาธารณะและแก้ไขได้ ทุกคนสามารถดาวน์โหลดและแก้ไข AOSP สำหรับอุปกรณ์ของตนเองได้ AOSP มีการติดตั้งใช้งานแพลตฟอร์มมือถือ Android ที่สมบูรณ์และทำงานได้อย่างเต็มที่
อุปกรณ์ที่ติดตั้งใช้งาน AOSP มีความเข้ากันได้ 2 ระดับ ได้แก่ ความเข้ากันได้กับ AOSP และความเข้ากันได้กับ Android An อุปกรณ์ที่เข้ากันได้กับ AOSP ต้องเป็นไปตามรายการข้อกำหนดในเอกสารนิยามความเข้ากันได้ (CDD) อุปกรณ์ที่เข้ากันได้กับ Android ต้องเป็นไปตามรายการข้อกำหนดใน CDD และข้อกำหนดด้านซอฟต์แวร์ของผู้ให้บริการ (VSR) รวมถึงการทดสอบต่างๆ เช่น การทดสอบใน ชุดเครื่องมือทดสอบของผู้ให้บริการ (VTS) และ ชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) ดูข้อมูลเพิ่มเติมเกี่ยวกับความเข้ากันได้กับ Android ได้ที่ โปรแกรมความเข้ากันได้กับ Android
สถาปัตยกรรม 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และstoragedDaemon เหล่านี้โต้ตอบกับเคอร์เนลหรืออินเทอร์เฟซอื่นๆ โดยตรง และไม่ขึ้นอยู่กับการติดตั้งใช้งาน HAL ที่อิงตามพื้นที่ผู้ใช้ไลบรารีแบบเนทีฟในเลเยอร์นี้ ได้แก่
libc,liblog,libutils,libbinderและlibselinuxไลบรารีแบบเนทีฟเหล่านี้โต้ตอบกับเคอร์เนลหรืออินเทอร์เฟซอื่นๆ โดยตรง และไม่ขึ้นอยู่กับการติดตั้งใช้งาน HAL ที่อิงตามพื้นที่ผู้ใช้- เคอร์เนล
เคอร์เนลเป็นส่วนกลางของระบบปฏิบัติการใดๆ และสื่อสารกับฮาร์ดแวร์พื้นฐานในอุปกรณ์ เคอร์เนล AOSP จะแยกออกเป็นโมดูลที่ไม่ขึ้นอยู่กับฮาร์ดแวร์และโมดูลเฉพาะของผู้ให้บริการ (หากเป็นไปได้) ดูคำอธิบาย รวมถึงคำจำกัดความของคอมโพเนนต์เคอร์เนล AOSP ได้ที่ ภาพรวมเคอร์เนล
ต้องทำอะไรต่อ
- หากคุณเพิ่งเริ่มใช้ AOSP และต้องการเริ่มต้นพัฒนา โปรดดู ส่วนเริ่มต้นใช้งาน
- หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับเลเยอร์ที่เฉพาะเจาะจงของ AOSP ให้คลิกชื่อส่วนในแถบนำทางด้านซ้าย แล้วเริ่มจากภาพรวมของส่วนนั้น