วงจรชีวิต FCM

การเผยแพร่เฟรมเวิร์กของ Android มี Framework Compatibility Matrixes (FCM) หลายรายการ—หนึ่งรายการสำหรับแต่ละเวอร์ชัน Target FCM ที่อัปเกรดได้—ซึ่งกำหนดสิ่งที่เฟรมเวิร์กอาจใช้และข้อกำหนดเวอร์ชัน Target FCM ในฐานะที่เป็นส่วนหนึ่งของวงจรชีวิต FCM ที่ Android deprecates และลบ HIDL HALs แล้วปรับเปลี่ยน FCM ไฟล์ที่จะสะท้อนให้เห็นถึงสถานะของ HAL รุ่น

ในการเปิดใช้งาน OTA เฉพาะเฟรมเวิร์กในระบบนิเวศของตนเอง พันธมิตรที่ขยายอินเทอร์เฟซผู้ขายควรเลิกใช้งานและลบ HIDL HAL โดยใช้วิธีการเดียวกัน

คำศัพท์

เมทริกซ์ความเข้ากันได้ของกรอบงาน (FCM) ไฟล์ XML ที่ระบุข้อกำหนดของกรอบงานในการปรับใช้ผู้จัดจำหน่ายที่สอดคล้อง เมทริกซ์ความเข้ากันได้มีการกำหนดเวอร์ชัน และเวอร์ชันใหม่จะถูกระงับสำหรับการเผยแพร่เฟรมเวิร์กแต่ละเวอร์ชัน การเผยแพร่เฟรมเวิร์กแต่ละรายการมี FCM หลายรายการ
รุ่นแพลตฟอร์ม FCM (S F) ชุดของเวอร์ชัน FCM ทั้งหมดในการเผยแพร่เฟรมเวิร์ก กรอบงานสามารถทำงานร่วมกับการใช้งานของผู้ขายที่ตรงกับหนึ่งใน FCM เหล่านี้
เวอร์ชัน FCM (F) เวอร์ชันสูงสุดในบรรดา FCM ทั้งหมดในเฟรมเวิร์กรีลีส
เวอร์ชัน FCM เป้าหมาย (V) เป้าหมาย FCM รุ่น (จาก S F) ประกาศอย่างชัดเจนในที่ประจักษ์อุปกรณ์ที่ตอบสนองการใช้งานของผู้ขาย ต้องสร้างการใช้งานของผู้จำหน่ายโดยเทียบกับ FCM ที่เผยแพร่ แม้ว่าอาจประกาศเวอร์ชัน HAL ที่ใหม่กว่าใน Device Manifest
เวอร์ชัน HAL HAL ที่รุ่นมีรูปแบบ foo@xy ที่ foo เป็นชื่อ HAL และ xy เป็นรุ่นที่เฉพาะเจาะจง; เช่น nfc@1.0 , keymaster@3.0 (คำนำหน้ารากเช่น android.hardware , ถูกละไว้ตลอดเอกสารนี้.)
รายการอุปกรณ์ ไฟล์ XML ที่ระบุเวอร์ชัน HAL ที่ด้านอุปกรณ์ของอินเทอร์เฟซผู้ขาย รวมถึงผู้ขายและอิมเมจ ODM มีให้ เนื้อหาของรายการอุปกรณ์ถูกจำกัดโดยรุ่น Target FCM ของอุปกรณ์ แต่สามารถแสดงรายการ HAL ที่ใหม่กว่าอย่างเคร่งครัดเมื่อเทียบกับ FCM ที่สอดคล้องกับ V
อุปกรณ์ HALs HAL ที่แสดงรายการ (มีให้) ในรายการอุปกรณ์และแสดงรายการ (จำเป็นหรือเป็นทางเลือก) ในเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์ก (FCM)
เมทริกซ์ความเข้ากันได้ของอุปกรณ์ (DCM) ไฟล์ XML ที่ระบุข้อกำหนดของผู้จัดจำหน่ายในการใช้งานเฟรมเวิร์กที่สอดคล้อง อุปกรณ์แต่ละเครื่องมี DCM หนึ่งเครื่อง
ประกาศกรอบงาน ไฟล์ XML ที่ระบุเวอร์ชัน HAL ด้านเฟรมเวิร์กของอินเทอร์เฟซผู้ขาย ซึ่งรวมถึงระบบ, system_ext และอิมเมจผลิตภัณฑ์ HAL ในรายการเฟรมเวิร์กถูกปิดใช้งานแบบไดนามิกตามเวอร์ชัน Target FCM ของอุปกรณ์
กรอบงาน HALs HAL ที่ระบุไว้ตามที่ระบุไว้ในไฟล์ Manifest ของเฟรมเวิร์ก และแสดงรายการเป็นข้อกำหนดที่จำเป็นหรือเป็นทางเลือกในเมทริกซ์ความเข้ากันได้ของอุปกรณ์ (DCM)

กำลังพัฒนาในเวอร์ชัน FCM ใหม่

Android เพิ่ม FCM Version สำหรับแต่ละเฟรมเวิร์กรีลีส (เช่น Android 8, 8.1 เป็นต้น) ในระหว่างการพัฒนาใหม่ compatibility_matrix.current.xml ถูกสร้างขึ้น ( F ) และที่มีอยู่ compatibility_matrix.f.xml (ที่ f < F ) มีการเปลี่ยนแปลงไม่ได้

ในการเริ่มต้นในการพัฒนาใหม่ FCM รุ่น F :

  1. คัดลอกล่าสุด compatibility_matrix.<F-1>.xml เพื่อ compatibility_matrix.current.xml
  2. อัพเดท level แอตทริบิวต์ในไฟล์เพื่อ F
  3. เพิ่มกฎการสร้างที่เกี่ยวข้องเพื่อติดตั้งเมทริกซ์ความเข้ากันได้นี้ลงในอุปกรณ์

ขอแนะนำ HAL . ใหม่

ในระหว่างการพัฒนาเมื่อแนะนำ HAL ใหม่ (Wi-Fi, NFC, ฯลฯ ) เพื่อ Android บนปัจจุบัน FCM รุ่น F เพิ่ม HAL เพื่อ compatibility_matrix.current.xml มีดังต่อไป optional การตั้งค่า:

  • optional="false" ถ้าอุปกรณ์ที่มาพร้อมกับ V = F ต้องเปิดตัวพร้อมกับ HAL นี้

    หรือ
  • optional="true" ถ้าอุปกรณ์ที่มาพร้อมกับ V = F สามารถเปิดได้โดยไม่ต้อง HAL นี้

ยกตัวอย่างเช่น Android 8.1 แนะนำ cas@1.0 เป็น HAL ตัวเลือก อุปกรณ์ที่เปิดตัวพร้อมกับ Android 8.1 ไม่จำเป็นต้องใช้ระบบ HAL นี้เพื่อให้รายการต่อไปนี้ถูกบันทึกอยู่ใน compatibility_matrix.current.xml (เปลี่ยนชื่อเป็น compatibility_matrix.2.xml หลังจากที่ Android 8.1 ปล่อยตัว):

<hal format="hidl" optional="true">
    <name>android.hardware.cas</name>
    <version>1.0</version>
    <interface>
        <name>IMediaCasService</name>
        <instance>default</instance>
    </interface>
</hal>

การอัพเกรด HAL (เล็กน้อย)

ในระหว่างการพัฒนาเมื่อ HAL มีการปรับรุ่นรองลงมาจากรุ่น xz ไป x.(z+1) ที่ปัจจุบัน FCM รุ่น F ถ้ารุ่นที่:

  • จำเป็นต้องใช้บนอุปกรณ์เปิดตัวกับ V = F ที่ compatibility_matrix.current.xml ต้องรัฐ x.(z+1) และ optional="false"
  • ไม่จำเป็นต้องใช้บนอุปกรณ์ที่เปิดตัวกับ V = F ที่ compatibility_matrix.current.xml ต้องคัดลอก xy-z และ optionality จาก compatibility_matrix.<F-1>.xml และการเปลี่ยนแปลงรุ่นที่จะ xw-(z+1) (ที่ w >= y )

ยกตัวอย่างเช่น Android 8.1 แนะนำ broadcastradio@1.1 เป็นอัพเกรดรุ่นรอง 1.0 HAL รุ่นเก่า broadcastradio@1.0 , เป็นตัวเลือกสำหรับอุปกรณ์ที่เปิดตัวพร้อมกับ Android 8.0 ในขณะที่รุ่นใหม่ broadcastradio@1.1 , เป็นตัวเลือกสำหรับอุปกรณ์ที่เปิดตัวพร้อมกับ Android 8.1 ใน compatibility_matrix.1.xml :

<hal format="hidl" optional="true">
    <name>android.hardware.broadcastradio</name>
    <version>1.0</version>
    <interface>
        <name>IBroadcastRadioFactory</name>
        <instance>default</instance>
    </interface>
</hal>

รายการนี้ถูกคัดลอกไปยัง compatibility_matrix.current.xml (เปลี่ยนชื่อเป็น compatibility_matrix.2.xml หลังจากที่ Android 8.1 ปล่อยตัว) และการแก้ไขดังต่อไปนี้:

<hal format="hidl" optional="true">
    <name>android.hardware.broadcastradio</name>
    <version>1.0-1</version>
    <interface>
        <name>IBroadcastRadioFactory</name>
        <instance>default</instance>
    </interface>
</hal>

การอัพเกรด HAL (วิชาเอก)

ในระหว่างการพัฒนาเมื่อ HAL มีรุ่นใหญ่รุ่นที่ปัจจุบัน FCM รุ่น F ใหม่ที่สำคัญรุ่น x.0 จะถูกเพิ่ม compatibility_matrix.current.xml มีดังต่อไป optional การตั้งค่า:

  • optional="false" กับรุ่นเท่านั้น x.0 ถ้าอุปกรณ์ที่มาพร้อมกับ V = F ต้องเปิดตัวพร้อมกับ x.0
  • optional="false" แต่พร้อมกับรุ่นใหญ่สูงอายุในเดียวกัน <hal> แท็กถ้าอุปกรณ์ที่มาพร้อมกับ V = F ต้องเปิดตัวพร้อมกับ HAL นี้ แต่สามารถเปิดกับรุ่นเก่าที่สำคัญ
  • optional="true" ถ้าอุปกรณ์ที่มาพร้อมกับ V = F ไม่ได้มีการเปิดตัวระบบ HAL

ยกตัวอย่างเช่น Android 9 แนะนำ health@2.0 เป็นรุ่นใหญ่รุ่นของ 1.0 HAL และ deprecates ฮาล 1.0 รุ่นเก่า health@1.0 , เป็นตัวเลือกสำหรับอุปกรณ์ที่เปิดตัวพร้อมกับ Android 8.0 และ Android 8.1 อุปกรณ์ที่เปิดตัวด้วย Android 9 จะต้องไม่มี 1.0 HAL ที่เลิกใช้แล้ว และต้องจัดหาเวอร์ชัน 2.0 ใหม่แทน ใน compatibility_matrix.legacy.xml , compatibility_matrix.1.xml และ compatibility_matrix.2.xml :

<hal format="hidl" optional="true">
    <name>android.hardware.health</name>
    <version>1.0</version>
    <interface>
        <name>IHealth</name>
        <instance>default</instance>
    </interface>
</hal>

รายการนี้ถูกคัดลอกไป compatibility_matrix.current.xml (เปลี่ยนชื่อเป็น compatibility_matrix.3.xml กับ Android 9 ปล่อย) และการแก้ไขดังต่อไปนี้:

<hal format="hidl" optional="false">
    <name>android.hardware.health</name>
    <version>2.0</version>
    <interface>
        <name>IHealth</name>
        <instance>default</instance>
    </interface>
</hal>

ข้อ จำกัด:

  • เพราะ HAL 2.0 อยู่ใน compatibility_matrix.3.xml กับ optional="false" อุปกรณ์ที่เปิดตัวพร้อมกับ Android 9 ต้องมาพร้อมกับ 2.0 HAL
  • เพราะ 1.0 HAL ไม่ได้อยู่ใน compatibility_matrix.3.xml , อุปกรณ์ที่เปิดตัวพร้อมกับ Android 9 จะต้องไม่ให้ HAL 1.0 (เป็น HAL นี้ถือว่าเลิกใช้แล้ว)
  • เนื่องจาก 1.0 HAL มีอยู่ใน Legacy/1/2.xml (เวอร์ชัน FCM ที่เก่ากว่าที่ Android 9 สามารถใช้ได้) เป็น HAL ที่เป็นตัวเลือก เฟรมเวิร์ก Android 9 จึงสามารถทำงานกับ 1.0 HAL ได้ (ซึ่งไม่ถือว่าเป็นเวอร์ชัน HAL ที่ถูกลบ ).

เวอร์ชัน FCM ใหม่

กระบวนการเผยแพร่เวอร์ชัน FCM บนพาร์ติชันระบบนั้นดำเนินการโดย Google แต่เพียงผู้เดียว โดยเป็นส่วนหนึ่งของการเผยแพร่ AOSP และรวมถึงขั้นตอนต่อไปนี้:

  1. เปลี่ยนชื่อ compatibility_matrix.current.xml เพื่อ compatibility_matrix.F.xml
  2. ตรวจสอบให้แน่ใจไฟล์มีแอตทริบิวต์ level="F"
  3. แก้ไขที่สอดคล้องกัน ในการสร้างกฎระเบียบ ที่จะสะท้อนให้เห็นถึงการเปลี่ยนชื่อไฟล์
  4. ตรวจสอบให้แน่ใจว่าอุปกรณ์ทั้งหมดสร้างและบู๊ต
  5. ปรับปรุง VTS ทดสอบ เพื่อให้แน่ใจว่าอุปกรณ์ที่เปิดตัวกับกรอบล่าสุด (ขึ้นอยู่กับระดับการจัดส่งสินค้า API) มีเป้าหมาย FCM รุ่น V >= F
  6. เผยแพร่ไฟล์ไปยัง AOSP

ไฟล์นี้ไม่สามารถเปลี่ยนแปลงได้เมื่อเปลี่ยนชื่อและเผยแพร่ ตัวอย่างเช่นในระหว่างการพัฒนา Android 9 ไฟล์ต่อไปนี้ถูก สร้างขึ้น สำหรับ hardware/interfaces/compatibility_matrices/ :

  • compatibility_matrix.legacy.xml
  • compatibility_matrix.1.xml
  • compatibility_matrix.2.xml
  • compatibility_matrix.current.xml

เมื่อ 9 Android จะถูกปล่อยออก compatibility_matrix.current.xml ถูกเปลี่ยนชื่อเป็น compatibility_matrix.3.xml และไฟล์ดังต่อไปนี้ถูกสร้างขึ้นสำหรับ hardware/interfaces/compatibility_matrices/ :

  • compatibility_matrix.legacy.xml
  • compatibility_matrix.1.xml
  • compatibility_matrix.2.xml
  • compatibility_matrix.3.xml

การทดสอบ VTS ให้มั่นใจว่าอุปกรณ์ที่เปิดตัวพร้อมกับ Android 9 มี FCM เป้าหมายเวอร์ชัน> = 3

นอกจากนี้ ผลิตภัณฑ์และ system_ext FCM อาจแสดงรายการข้อกำหนดสำหรับแต่ละเวอร์ชันของแพลตฟอร์ม FCM การเปิดตัวเวอร์ชัน FCM บนผลิตภัณฑ์และพาร์ติชัน system_ext ดำเนินการโดยเจ้าของอิมเมจเหล่านี้ตามลำดับ หมายเลขเวอร์ชันของ FCM บนพาร์ติชันผลิตภัณฑ์และ system_ext ต้องตรงกับหมายเลขเวอร์ชันบนพาร์ติชันระบบ เช่นเดียวกับเวอร์ชัน FCM บนพาร์ติชันระบบ เมทริกซ์ความเข้ากันได้ที่ FCM เวอร์ชัน F ในผลิตภัณฑ์และพาร์ติชัน system_ext สะท้อนถึงข้อกำหนดบนอุปกรณ์ที่มีเป้าหมาย FCM เวอร์ชัน F

การเลิกใช้งานเวอร์ชัน HAL

การเลิกใช้งานเวอร์ชัน HAL เป็นการตัดสินใจของนักพัฒนา (เช่น สำหรับ AOSP HAL Google จะเป็นผู้ตัดสินใจ) อาจเกิดขึ้นเมื่อมีการเผยแพร่เวอร์ชัน HAL ที่สูงกว่า (ไม่ว่าจะรุ่นรองหรือรุ่นหลัก)

เลิกใช้งานอุปกรณ์HAL

เมื่อ HAL อุปกรณ์ที่กำหนด foo@xy จะเลิกที่ FCM รุ่น F ก็หมายความว่าการเปิดตัวอุปกรณ์ใด ๆ กับเป้าหมาย FCM รุ่น V = F หรือหลังจากนั้นจะต้องไม่ใช้ foo ที่รุ่น xy หรือรุ่นใด ๆ ที่มีอายุมากกว่า xy เวอร์ชัน HAL ที่เลิกใช้แล้วยังคงได้รับการสนับสนุนโดยเฟรมเวิร์กสำหรับการอัปเกรดอุปกรณ์

เมื่อ FCM รุ่น F จะถูกปล่อยออก HAL ที่เวอร์ชัน foo@xy ถือว่าเลิกถ้าเฉพาะ HAL รุ่นไม่ได้ระบุไว้อย่างชัดเจนใน FCM ล่าสุดเป้าหมาย FCM รุ่น V = F สำหรับอุปกรณ์ที่เปิดตัวกับ V = F ซึ่งเป็นหนึ่งในเงื่อนไขต่อไปนี้เป็นจริง:

  • เฟรมเวิร์กต้องการเวอร์ชันที่สูงกว่า (หลักหรือรอง)
  • กรอบงานไม่ต้องการ HAL อีกต่อไป

ยกตัวอย่างเช่นใน Android 9 health@2.0 ถูกนำมาใช้เป็นอัพเกรดรุ่นใหญ่ 1.0 HAL health@1.0 ถูกลบออกจาก compatibility_matrix.3.xml แต่มีอยู่ใน compatibility_matrix.legacy.xml , compatibility_matrix.1.xml และ compatibility_matrix.2.xml ดังนั้น health@1.0 ถือว่าเลิก

เลิกใช้เฟรมเวิร์ก HAL

เมื่อกรอบ HAL รับ foo@xy จะเลิกที่ FCM รุ่น F ก็หมายความว่าการเปิดตัวอุปกรณ์ใด ๆ กับเป้าหมาย FCM รุ่น V = F หรือหลังจากนั้นจะต้องไม่คาดว่ากรอบการทำงานเพื่อให้ foo ที่รุ่น xy หรือรุ่นใด ๆ ที่มีอายุมากกว่า xy เวอร์ชัน HAL ที่เลิกใช้แล้วยังคงมีอยู่ในเฟรมเวิร์กสำหรับการอัปเกรดอุปกรณ์

เมื่อ FCM รุ่น F จะถูกปล่อยออก HAL ที่เวอร์ชัน foo@xy ถือว่าเลิกถ้ากรอบระบุอย่างชัดแจ้ง max-level=" F - 1 " สำหรับ foo@xy สำหรับอุปกรณ์ที่เปิดตัวกับ V = F กรอบไม่ได้ให้ HAL foo@xy เมทริกซ์เข้ากับอุปกรณ์บนอุปกรณ์ที่เปิดตัวกับ V = F ต้องไม่รายการ HALs กรอบด้วย max-level < V

ยกตัวอย่างเช่นใน Android 12 schedulerservice@1.0 จะเลิก ใช้ max-level แอตทริบิวต์ถูกตั้งค่าเป็น 5 รุ่น FCM นำมาใช้ใน Android 11. ดู Android 12 กรอบอย่างชัดแจ้ง

การยกเลิกการสนับสนุน Target FCM Versions

เมื่ออุปกรณ์ที่ใช้งานของบางเป้าหมาย FCM รุ่น V ลดลงต่ำกว่าเกณฑ์ที่กำหนดที่ FCM เป้าหมายเวอร์ชันจะถูกลบออกจากชุด S F ของการปล่อยกรอบถัดไป ทำได้โดยทั้งสองขั้นตอนต่อไปนี้:

  • ถอด compatibility_matrix.V.xml จากการสร้างกฎ (เพื่อที่จะไม่ได้ติดตั้งระบบภาพ) และลบรหัสใด ๆ ที่นำมาใช้หรือขึ้นอยู่กับการทำงานที่ถูกลบ
  • ถอด HALs กรอบด้วย max-level ต่ำกว่าหรือเท่ากับ V จากประจักษ์กรอบและการลบรหัสใด ๆ ที่ดำเนิน HALs กรอบที่ถูกลบ

อุปกรณ์ที่มีเป้าหมาย FCM เวอร์ชันนอก S F สำหรับการเปิดตัวกรอบที่กำหนดไม่สามารถปรับรุ่นที่จะปล่อยว่า

สถานะเวอร์ชัน HAL

ส่วนต่อไปนี้อธิบาย (ตามลำดับเวลา) สถานะที่เป็นไปได้ของเวอร์ชัน HAL

ยังไม่เผยแพร่

สำหรับ HAL ของอุปกรณ์ หากเวอร์ชัน HAL ไม่อยู่ในเมทริกซ์ความเข้ากันได้แบบสาธารณะและแบบหยุดนิ่ง จะถือว่ายังไม่เผยแพร่และอาจอยู่ในระหว่างการพัฒนา ซึ่งรวมถึงรุ่น HAL ที่มีเฉพาะใน compatibility_matrix.current.xml ตัวอย่าง:

  • ในระหว่างการพัฒนา Android 9 (ก่อน compatibiility_matrix.current.xml ถูกเปลี่ยนชื่อเป็น compatibility_matrix.3.xml ) ที่ health@2.0 HAL ได้รับการพิจารณา HAL อาคิโอะ
  • teleportation@1.0 HAL ไม่ได้อยู่ใน matrixes ความเข้ากันได้รับการปล่อยตัวและยังถือว่าเป็นอาคิโอะฮาล

สำหรับเฟรมเวิร์ก HAL หากเวอร์ชัน HAL อยู่ในรายการเฟรมเวิร์กของสาขาการพัฒนาที่ไม่เกี่ยวข้องเท่านั้น จะถือว่ายังไม่ได้เผยแพร่

เปิดตัวและปัจจุบัน

สำหรับ HAL ของอุปกรณ์ หากเวอร์ชัน HAL อยู่ในเมทริกซ์ความเข้ากันได้แบบสาธารณะและแบบหยุดนิ่ง เวอร์ชันนั้นจะถูกปล่อยออกมา ตัวอย่างเช่นหลังจาก FCM 3 รุ่นคือแช่แข็ง (เมื่อ compatibiility_matrix.current.xml ถูกเปลี่ยนชื่อเป็น compatibility_matrix.3.xml ) และเผยแพร่ไปยัง AOSP ที่ health@2.0 HAL ถือว่าเป็นปล่อยออกมาและปัจจุบัน HAL รุ่น

ถ้า HAL รุ่นที่อยู่ในภาครัฐและแช่แข็งเมทริกซ์การทำงานร่วมกันที่มีสูงสุด FCM รุ่น (ไม่รวม compatibility_matrix.current.xml ), รุ่น HAL เป็นปัจจุบัน (เช่นไม่เลิก) ตัวอย่างเช่นมีอยู่รุ่น HAL (เช่น nfc@1.0 แนะนำใน compatibility_matrix.legacy.xml ) ที่ยังคงมีอยู่ใน compatibility_matrix.3.xml จะถือว่ายังปล่อยออกมาในปัจจุบันและรุ่น HAL

สำหรับ HALs กรอบถ้ารุ่น HAL อยู่ในที่ประจักษ์กรอบของสาขาล่าสุดเปิดตัวโดยไม่ต้อง max-level แอตทริบิวต์หรือ (ผิดปกติ) ก max-level เท่ากับหรือสูงกว่ารุ่น FCM ที่ปล่อยออกมาในสาขานี้ก็ถือว่าได้รับการปล่อยตัว และรุ่น HAL ปัจจุบัน ยกตัวอย่างเช่น displayservice HAL ถูกปล่อยออกมาและในปัจจุบันใน Android ที่ 12 ตามที่ระบุโดย Android 12framework manifest

ออกแต่เลิกใช้แล้ว

สำหรับ HAL ของอุปกรณ์ เวอร์ชัน HAL จะถูกยกเลิกหากตรงตามเงื่อนไขทั้งหมดต่อไปนี้:

  • มันถูกปล่อยออกมา
  • ไม่อยู่ในเมทริกซ์ความเข้ากันได้แบบสาธารณะและแบบแช่แข็งที่มีเวอร์ชัน FCM สูงสุด
  • มันอยู่ในเมทริกซ์ความเข้ากันได้สาธารณะและแช่แข็งที่เฟรมเวิร์กยังคงสนับสนุน

ตัวอย่าง:

ดังนั้น power@1.0 เป็นปัจจุบัน แต่ไม่เลิกใน Android 9

สำหรับ HALs กรอบถ้ารุ่น HAL อยู่ในกรอบอย่างชัดแจ้งของสาขาล่าสุดเปิดตัวด้วย max-level แอตทริบิวต์ลดกว่ารุ่น FCM ที่ปล่อยออกมาในสาขานี้ก็ถือว่าได้รับการปล่อยตัว แต่เลิกรุ่น HAL ยกตัวอย่างเช่น schedulerservice HAL จะถูกปล่อยออก แต่คัดค้านใน Android ที่ 12 ตามที่ระบุโดย Android 12framework manifest

ลบออก

สำหรับ HAL ของอุปกรณ์ เวอร์ชัน HAL จะถูกลบออกหากสิ่งต่อไปนี้เป็นจริงเท่านั้น:

  • มันถูกปล่อยออกมาก่อนหน้านี้
  • ไม่อยู่ในเมทริกซ์ความเข้ากันได้แบบสาธารณะและแบบแช่แข็งที่เฟรมเวิร์กรองรับ

เมทริกซ์ความเข้ากันได้ที่เป็นสาธารณะ หยุดนิ่ง แต่เฟรมเวิร์กไม่ได้รับการสนับสนุนจะถูกเก็บไว้ในฐานโค้ดเพื่อกำหนดชุดเวอร์ชัน HAL ที่ถูกลบออก เพื่อให้สามารถเขียนการทดสอบ VTS เพื่อให้แน่ใจว่า HAL ที่ลบออกจะไม่อยู่ในอุปกรณ์ใหม่

สำหรับเฟรมเวิร์ก HAL เวอร์ชัน HAL จะถูกลบออกหากตรงตามเงื่อนไขต่อไปนี้เท่านั้น:

  • มันถูกปล่อยออกมาก่อนหน้านี้
  • ไม่อยู่ในรายการเฟรมเวิร์กของสาขาที่เผยแพร่ล่าสุด

FCMs ดั้งเดิม

มรดกเวอร์ชัน FCM เป้าหมายเป็นค่าพิเศษสำหรับอุปกรณ์ที่ไม่ใช่เสียงแหลมทั้งหมด FCM เดิม compatibility_matrix.legacy.xml รายการความต้องการของกรอบการทำงานบนอุปกรณ์รุ่นเก่าที่ (อุปกรณ์เช่นการเปิดตัวก่อนที่จะมี Android 8.0)

ถ้าแฟ้มนี้มีอยู่สำหรับ FCM กับรุ่น F , อุปกรณ์ที่ไม่ใช่เสียงแหลมใด ๆ สามารถอัพเกรด F จัดเตรียมรายการของอุปกรณ์เข้ากันได้กับไฟล์นี้ การนำออกเป็นไปตามขั้นตอนเดียวกับ FCM สำหรับ Target FCM เวอร์ชันอื่น (ถูกนำออกหลังจากจำนวนอุปกรณ์ก่อน 8.0 ที่ใช้งานอยู่ลดลงต่ำกว่าเกณฑ์ที่กำหนด)

เวอร์ชัน FCM ที่วางจำหน่าย

รายการการปล่อยตัวรุ่น FCM สามารถพบได้ภายใต้ hardware/interfaces/compatibility_matrices

เมื่อต้องการค้นหารุ่น FCM ที่ปล่อยออกมาด้วยโดยเฉพาะการปล่อย Android ดู Level.h