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