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