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