วงจรชีวิตของ FCM

การเปิดตัวเฟรมเวิร์ก Android มี Framework Compatible Matrix (FCM) หลายรายการ โดยหนึ่งรายการสำหรับ Target FCM Version ที่อัปเกรดได้แต่ละเวอร์ชัน ซึ่งกำหนดว่าเฟรมเวิร์กอาจใช้อะไรและข้อกำหนดเวอร์ชัน Target FCM ในฐานะที่เป็นส่วนหนึ่งของวงจรการใช้งาน FCM นั้น Android จะเลิกใช้งานและนำ HIDL HAL ออก จากนั้นจึงแก้ไขไฟล์ FCM เพื่อให้สะท้อนถึงสถานะของ เวอร์ชัน HAL

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

คำศัพท์เฉพาะทาง

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

วงจรชีวิต FCM ใน Codebase

เอกสารนี้อธิบายวงจรชีวิต FCM ในบทคัดย่อ หากต้องการดูไฟล์ Manifest ที่สนับสนุนในปัจจุบัน โปรดดูที่ hardware/interfaces/compatibility_matrix.<FCM>.xml โดยที่ FCM สามารถพบได้ใน system/libvintf/include/vintf/Level.h

ตั้งแต่ Android 14 ระดับที่รองรับคือ:

เอฟซีเอ็ม เวอร์ชัน Android
4 ระบบปฏิบัติการ Android 10/คิว
5 ระบบปฏิบัติการ Android 11/R
6 ระบบปฏิบัติการ Android 12/S
7 ระบบปฏิบัติการ Android 13/T
8 ระบบปฏิบัติการ Android 14/U

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

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

เพื่อเริ่มพัฒนาใน FCM Version ใหม่ F :

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

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

ในระหว่างการพัฒนา เมื่อแนะนำ HAL ใหม่ (Wi-Fi, NFC ฯลฯ) ให้กับ Android บน FCM เวอร์ชัน F ปัจจุบัน ให้เพิ่ม HAL ลงใน compatibility_matrix.F.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.F.xml (ซึ่งเคยตั้งชื่อ compatibility_matrix.current.xml ชั่วคราวระหว่างการพัฒนารุ่นนั้น):

<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.F.xml ต้องระบุ x.(z+1) และ optional="false"
  • ไม่จำเป็นบนอุปกรณ์ที่เปิดตัวด้วย V = F compatibility_matrix.F.xml ต้องคัดลอก xy-z และตัวเลือกจาก 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.F.xml และแก้ไขดังต่อไปนี้:

<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.F.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 และเลิกใช้ 1.0 HAL เวอร์ชันเก่า 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.F.xml และแก้ไขดังต่อไปนี้:

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

ข้อ จำกัด:

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

เอฟซีเอ็ม เวอร์ชันใหม่

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

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

ตัวอย่างเช่น การทดสอบ VTS ช่วยให้มั่นใจได้ว่าอุปกรณ์ที่เปิดตัวด้วย Android 9 มีเวอร์ชัน Target 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 หมายความว่าอุปกรณ์ใดๆ ที่เปิดตัวด้วย Target FCM เวอร์ชัน V = F หรือใหม่กว่าจะต้องไม่ใช้ foo ในเวอร์ชัน xy หรือเวอร์ชันใดๆ ที่เก่ากว่า xy เฟรมเวิร์กสำหรับการอัพเกรดอุปกรณ์ยังคงรองรับเวอร์ชัน HAL ที่เลิกใช้งานแล้ว

เมื่อ FCM เวอร์ชัน F เปิดตัว HAL เวอร์ชัน foo@xy จะถือว่าเลิกใช้แล้ว หากเวอร์ชัน HAL เฉพาะไม่ได้ระบุไว้อย่างชัดเจนใน FCM ล่าสุดสำหรับ Target 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 และ ความเข้ากันได้_matrix.2.xml ดังนั้น health@1.0 จึงถือว่าเลิกใช้แล้ว

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

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

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

ตัวอย่างเช่น ใน Android 12 นั้น schedulerservice@1.0 เลิกใช้งานแล้ว แอตทริบิวต์ max-level ตั้งค่าเป็น 5 ซึ่งเป็นเวอร์ชัน FCM ที่เปิดตัวใน Android 11 ดูรายการ เฟรมเวิร์ก Android 12

การยกเลิกการรองรับเวอร์ชัน FCM เป้าหมาย

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

  1. การลบ compatibility_matrix.V.xml ออกจากกฎการบิลด์ (เพื่อไม่ให้ติดตั้งบนอิมเมจระบบ) และการลบโค้ดใดๆ ที่ใช้งานหรือขึ้นอยู่กับฟังก์ชันการทำงานที่ถูกลบออก

  2. การลบ HAL ของเฟรมเวิร์กที่มี max-level ต่ำกว่าหรือเท่ากับ V ออกจากรายการเฟรมเวิร์ก และการลบโค้ดใด ๆ ที่ใช้ HAL ของเฟรมเวิร์กที่ถูกลบออก

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

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

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

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

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

  • ในระหว่างการพัฒนา Android 9 health@2.0 HAL ถือเป็น HAL ที่ยังไม่เผยแพร่และมีอยู่ในความเข้ากัน compatibility_matrix.3.xml เท่านั้น
  • teleportation@1.0 HAL ไม่ได้อยู่ในเมทริกซ์ความเข้ากันได้ที่เผยแพร่ และยังถือเป็น HAL ที่ยังไม่เผยแพร่อีกด้วย

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

เผยแพร่และเป็นปัจจุบัน

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

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

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

เปิดตัวแต่เลิกใช้งานแล้ว

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

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

ตัวอย่าง:

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

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

ลบออก

สำหรับอุปกรณ์ HAL เวอร์ชัน HAL จะถูกลบออกก็ต่อเมื่อ:

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

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

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

  • มันถูกปล่อยออกมาก่อนหน้านี้
  • ไม่อยู่ใน Framework Manifest ของสาขาที่ออกล่าสุด

FCM เดิม

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

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

เปิดตัวเวอร์ชัน FCM

รายการเวอร์ชัน FCM ที่เผยแพร่สามารถดูได้ที่ hardware/interfaces/compatibility_matrices

หากต้องการค้นหาเวอร์ชัน FCM ที่ออกมาพร้อมกับ Android รุ่นใดรุ่นหนึ่ง โปรดดูที่ Level.h