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