สถาปัตยกรรม AOSP

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

Android Open System Platform (AOSP) เป็นซอร์สโค้ด Android ที่เปิดเผยต่อสาธารณะและแก้ไขได้ ทุกคนสามารถดาวน์โหลดและแก้ไข AOSP สำหรับอุปกรณ์ของตนได้ AOSP ให้การใช้งานแพลตฟอร์มมือถือ Android ที่สมบูรณ์และใช้งานได้อย่างสมบูรณ์

มีความเข้ากันได้สองระดับสำหรับอุปกรณ์ที่ใช้ AOSP: ความเข้ากันได้ของ AOSP และความเข้ากันได้ของ Android อุปกรณ์ที่เข้ากันได้กับ AOSP จะต้องเป็นไปตามรายการข้อกำหนดใน Compatibility Definition Document (CDD) อุปกรณ์ที่เข้ากันได้กับ Android ต้องเป็นไปตามรายการข้อกำหนดใน CDD และข้อกำหนดซอฟต์แวร์ของผู้ขาย (VSR) และการทดสอบต่างๆ เช่น ที่อยู่ใน Vendor Test Suite (VTS) และ Compatability Test Suite (CTS) สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความเข้ากันได้ของ Android โปรดดูที่ โปรแกรมความเข้ากันได้ของ Android

สถาปัตยกรรม AOSP

กองซอฟต์แวร์สำหรับ AOSP ประกอบด้วยเลเยอร์ต่อไปนี้:

สถาปัตยกรรมสแตกซอฟต์แวร์ AOSP
รูปที่ 1 สถาปัตยกรรมสแต็กซอฟต์แวร์ AOSP
  • แอพแอนดรอยด์ แอปที่สร้างขึ้นโดยใช้ Android API ภายใน Android SDK เท่านั้น Google Play Store ใช้กันอย่างแพร่หลายในการค้นหาและดาวน์โหลดแอป Android แม้ว่าจะมีทางเลือกอื่นๆ มากมาย ในบางกรณี ผู้ผลิตอุปกรณ์อาจต้องการติดตั้งแอป Android ไว้ล่วงหน้าเพื่อรองรับการทำงานหลักของอุปกรณ์ หากคุณสนใจที่จะพัฒนาแอพ Android ให้ไปที่ Developers.android.com
  • แอพสิทธิพิเศษ แอปที่สร้างขึ้นโดยใช้การรวมกันของ Android และ API ของระบบ แอปเหล่านี้ต้องได้รับการติดตั้งไว้ล่วงหน้าเป็นแอปพิเศษบนอุปกรณ์
  • แอปผลิตอุปกรณ์ แอปที่สร้างขึ้นโดยใช้การรวมกันของ Android API, API ของระบบ และการเข้าถึงโดยตรงไปยังการติดตั้งเฟรมเวิร์ก Android เนื่องจากผู้ผลิตอุปกรณ์อาจเข้าถึง API ที่ไม่เสถียรได้โดยตรงภายในเฟรมเวิร์กของ Android จึงต้องติดตั้งแอปเหล่านี้ไว้ล่วงหน้าในอุปกรณ์และสามารถอัปเดตได้เมื่อมีการอัปเดตซอฟต์แวร์ระบบของอุปกรณ์เท่านั้น
  • เฟรมเวิร์กของแอนดรอยด์ กลุ่มของคลาส Java, ส่วนต่อประสาน และโค้ดที่คอมไพล์ล่วงหน้าอื่นๆ ที่แอปสร้างขึ้น บางส่วนของเฟรมเวิร์กสามารถเข้าถึงได้แบบสาธารณะผ่านการใช้ Android API ของ Android SDK ส่วนอื่นๆ ของเฟรมเวิร์กมีให้สำหรับ OEM เท่านั้นผ่านการใช้ API ระบบของ Android SDK รหัสเฟรมเวิร์กของ Android ทำงานภายในกระบวนการของแอพ
  • SDK ของแอนดรอยด์ ชุดพัฒนาซอฟต์แวร์สำหรับใช้ในการสร้างแอปที่โต้ตอบกับเฟรมเวิร์กของ Android Android SDK ประกอบด้วย Android API ที่พร้อมใช้งานสำหรับแอปทั้งหมด และ API ระบบที่พร้อมใช้งานสำหรับแอปพิเศษเท่านั้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Android API ของ Android SDK โปรดไปที่ Developers.android.com โปรดทราบว่ายังมี Android native development kit (NDK) ที่ให้คุณเขียนส่วนหนึ่งของแอพ 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 ให้คลิกชื่อเลเยอร์ในการนำทางด้านซ้ายและเริ่มด้วยภาพรวมของเลเยอร์นั้น