วงจรชีวิต FCM

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

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

คำศัพท์

เมทริกซ์ความเข้ากันได้ของกรอบงาน (FCM) ไฟล์ XML ที่ระบุข้อกำหนดของกรอบงานในการปรับใช้ผู้จัดจำหน่ายที่สอดคล้อง เมทริกซ์ความเข้ากันได้มีการกำหนดเวอร์ชัน และเวอร์ชันใหม่จะถูกระงับสำหรับการเผยแพร่เฟรมเวิร์กแต่ละเวอร์ชัน การเผยแพร่เฟรมเวิร์กแต่ละรายการมี FCM หลายรายการ
เวอร์ชันของแพลตฟอร์ม FCM ( SF ) ชุดของเวอร์ชัน 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 สำหรับแต่ละเฟรมเวิร์กรีลีส (เช่น 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.2.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.current.xml ต้องระบุ x.(z+1) และ optional="false"
  • ไม่จำเป็นในอุปกรณ์ที่เปิดใช้ V = F , compatibility_matrix.current.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.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 และเลิกใช้ 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.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>

ข้อ จำกัด:

  • เนื่องจาก 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 ใหม่

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

  1. เปลี่ยนชื่อ compatibility_matrix.current.xml เป็น compatibility_matrix.F.xml
  2. ตรวจสอบให้แน่ใจว่าไฟล์มีแอตทริบิวต์ level="F"
  3. แก้ไข กฎการสร้าง ที่เกี่ยวข้องเพื่อแสดงการเปลี่ยนชื่อไฟล์
  4. ตรวจสอบให้แน่ใจว่าอุปกรณ์ทั้งหมดสร้างและบู๊ต
  5. อัปเดตการทดสอบ VTS เพื่อให้แน่ใจว่าอุปกรณ์ที่เปิดตัวด้วยเฟรมเวิร์กล่าสุด (ตามระดับ Shipping API) มี Target 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

เมื่อ Android 9 ออก 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 มี Target FCM Version >= 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 และ compatibility_matrix.2.xml ดังนั้น health@1.0 ถือว่าเลิกใช้แล้ว

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

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

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

ยกเลิกการรองรับ Target FCM Versions

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

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

อุปกรณ์ที่มีเวอร์ชัน FCM เป้าหมายนอก SF สำหรับการเผยแพร่เฟรมเวิร์กที่กำหนดไม่สามารถอัพเกรดเป็นรีลีสนั้นได้

สถานะเวอร์ชัน 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 ไม่อยู่ในเมทริกซ์ความเข้ากันได้ที่ปล่อยออกมา และถือเป็น HAL ที่ยังไม่เผยแพร่

สำหรับเฟรมเวิร์ก 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 _matrix.current.xml ) เวอร์ชัน HAL จะเป็นเวอร์ชันปัจจุบัน (เช่น ไม่ได้เลิกใช้งาน) ตัวอย่างเช่น เวอร์ชัน HAL ที่มีอยู่ (เช่น nfc@1.0 ที่นำมาใช้ใน compatibility_matrix.legacy.xml ) ที่ยังคงมีอยู่ใน compatibility_matrix.3.xml จะถือว่าเป็นเวอร์ชันที่เผยแพร่และ HAL เวอร์ชันปัจจุบันด้วย

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

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

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

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

ตัวอย่าง:

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

สำหรับเฟรมเวิร์ก HAL หากเวอร์ชัน 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