การเปิดตัวเฟรมเวิร์ก 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
:
- คัดลอก
compatibility_matrix.<F-1>.xml
ล่าสุดไปยังcompatibility_matrix.F.xml
- อัปเดตแอตทริบิวต์
level
ในไฟล์เป็นF
- เพิ่มกฎการสร้างที่เกี่ยวข้องเพื่อติดตั้งเมทริกซ์ความเข้ากันได้นี้ลงในอุปกรณ์
ขอแนะนำ 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 และรวมถึงขั้นตอนต่อไปนี้:
- ตรวจสอบให้แน่ใจ
compatibility_matrix.F.xml
มีlevel="F"
- ตรวจสอบให้แน่ใจว่าอุปกรณ์ทั้งหมดสร้างและบูต
- อัปเดตการทดสอบ VTS เพื่อให้แน่ใจว่าอุปกรณ์ที่เปิดตัวด้วยเฟรมเวิร์กล่าสุด (ตามระดับ Shipping API) มีเป้าหมาย FCM เวอร์ชัน
V >= F
- เผยแพร่ไฟล์ไปยัง 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 ของเฟรมเวิร์กรุ่นถัดไป ทำได้ทั้งสองขั้นตอนต่อไปนี้:
การลบ
compatibility_matrix.V.xml
ออกจากกฎการบิลด์ (เพื่อไม่ให้ติดตั้งบนอิมเมจระบบ) และการลบโค้ดใดๆ ที่ใช้งานหรือขึ้นอยู่กับฟังก์ชันการทำงานที่ถูกลบออกการลบ 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 สูงสุด
- มันอยู่ในเมทริกซ์ความเข้ากันได้แบบสาธารณะและแบบแช่แข็งซึ่งเฟรมเวิร์กยังคงรองรับ
ตัวอย่าง:
-
health@1.0
HAL อยู่ในcompatibility_matrix.legacy.xml
,compatibility_matrix.1.xml
และcompatibility_matrix.2.xml
แต่ไม่อยู่ในcompatibility_matrix.3.xml
ดังนั้นจึงถือว่าเลิกใช้แล้วใน Android 9 - power HAL มีการอัพเกรดเวอร์ชันรองใน Android 9 แต่
power@1.0
ยังคงอยู่ในcompatibility_matrix.3.xml
-
power@1.0
compatibility_matrix.legacy.xml
,compatibility_matrix.1.xml
และcompatibility_matrix.2.xml
-
compatibility_matrix.3.xml
มีpower@1.0-1
ดังนั้น 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