เฟรมเวิร์ก Android แต่ละรุ่นจะมีตารางความเข้ากันได้ของเฟรมเวิร์ก (FCM) หลายรายการ โดยแต่ละรายการจะกำหนดสิ่งที่เฟรมเวิร์กอาจใช้และข้อกำหนดของเวอร์ชัน FCM เป้าหมายที่อัปเกรดได้ Android จะเลิกใช้งานและนำ HAL ของ HIDL ออก แล้วแก้ไขไฟล์ FCM ให้แสดงสถานะของเวอร์ชัน HAL ตามวงจรชีวิตของ FCM
หากต้องการเปิดใช้ OTA เฉพาะเฟรมเวิร์กในระบบนิเวศของตนเอง พาร์ทเนอร์ที่ขยายอินเทอร์เฟซของผู้ให้บริการควรเลิกใช้งานและนำ HAL ของ HIDL ออกด้วยวิธีการเดียวกัน
คำศัพท์
- ตารางความเข้ากันได้ของเฟรมเวิร์ก (FCM)
- ไฟล์ XML ที่ระบุข้อกําหนดของเฟรมเวิร์กเกี่ยวกับการใช้งานของผู้ให้บริการที่เป็นไปตามข้อกําหนด ตารางความเข้ากันได้จะมีเวอร์ชัน และเวอร์ชันใหม่จะหยุดไว้สำหรับเฟรมเวิร์กแต่ละรุ่น เฟรมเวิร์กแต่ละรุ่นจะมี FCM หลายรายการ
- เวอร์ชัน FCM ของแพลตฟอร์ม (SF)
- ชุด FCM ทุกเวอร์ชันในรุ่นเฟรมเวิร์ก เฟรมเวิร์กนี้สามารถทํางานร่วมกับการใช้งานของผู้ให้บริการที่เป็นไปตาม FCM รายการใดรายการหนึ่งเหล่านี้
- เวอร์ชัน FCM (F)
- เวอร์ชันที่สูงที่สุดของ FCM ทั้งหมดในรุ่นเฟรมเวิร์ก
- เวอร์ชัน FCM เป้าหมาย (V)
- เวอร์ชัน FCM ที่กําหนดเป้าหมาย (จาก SF) ซึ่งประกาศไว้อย่างชัดเจนในไฟล์ Manifest ของอุปกรณ์ ซึ่งการติดตั้งใช้งานของผู้ให้บริการเป็นไปตามข้อกําหนด การติดตั้งใช้งานของผู้ให้บริการต้องสร้างขึ้นจาก FCM ที่เผยแพร่ แม้ว่าจะประกาศ HAL เวอร์ชันใหม่ในไฟล์ Manifest ของอุปกรณ์
- เวอร์ชัน HAL
- เวอร์ชัน HAL มีรูปแบบเป็น
foo@x.y
โดยที่foo
คือชื่อ HAL และx.y
คือเวอร์ชันที่เฉพาะเจาะจง เช่นnfc@1.0
,keymaster@3.0
(ระบบจะไม่ใส่คำนำหน้ารูท เช่นandroid.hardware
ไว้ในเอกสารนี้) - ไฟล์ Manifest ของอุปกรณ์
- ไฟล์ XML ที่ระบุเวอร์ชัน HAL ที่อินเทอร์เฟซของผู้ให้บริการด้านอุปกรณ์ (รวมถึงรูปภาพผู้ให้บริการและ ODM) มีให้ เนื้อหาของไฟล์ Manifest ของอุปกรณ์ถูกจำกัดโดยเวอร์ชัน FCM เป้าหมายของอุปกรณ์ แต่สามารถแสดงรายการ HAL ที่ใหม่กว่า FC ที่เกี่ยวข้องกับ V อย่างชัดเจน
- HAL ของอุปกรณ์
- HAL ที่แสดง (ระบุ) ในไฟล์ Manifest ของอุปกรณ์และแสดงในตารางความเข้ากันได้ของเฟรมเวิร์ก (FCM)
- ตารางความเข้ากันได้ของอุปกรณ์ (DCM)
- ไฟล์ XML ที่ระบุข้อกำหนดของผู้ให้บริการเกี่ยวกับการใช้งานเฟรมเวิร์กตามข้อกำหนด อุปกรณ์แต่ละเครื่องจะมี DCM 1 รายการ
- ไฟล์ Manifest ของเฟรมเวิร์ก
- ไฟล์ XML ที่ระบุเวอร์ชัน HAL ที่ฝั่งเฟรมเวิร์กของอินเทอร์เฟซของผู้ให้บริการ รวมถึง system, system_ext และรูปภาพผลิตภัณฑ์มีให้ ระบบจะปิดใช้ HAL ในไฟล์ Manifest ของเฟรมเวิร์กแบบไดนามิกตามเวอร์ชัน FCM เป้าหมายของอุปกรณ์
- HAL ของเฟรมเวิร์ก
- HAL ที่แสดงตามที่ระบุไว้ในไฟล์ Manifest ของเฟรมเวิร์กและแสดงในตารางการทำงานร่วมกันของอุปกรณ์ (DCM)
วงจรของ FCM ในโค้ดเบส
เอกสารนี้อธิบายวงจรชีวิตของ FCM โดยสังเขป หากต้องการดูไฟล์ Manifest ที่รองรับ โปรดไปที่ hardware/interfaces/compatibility_matrix.<FCM>.xml
ที่คุณจะพบ FCM ใน system/libvintf/include/vintf/Level.h
อุปกรณ์ที่จัดส่งเวอร์ชัน Android ที่เกี่ยวข้องควรมีค่า FCM มากกว่าหรือเท่ากับระดับที่เทียบเท่า ตัวอย่างเช่น โดยทั่วไปอุปกรณ์ที่มาพร้อมกับ Android 11 จะมี FCM ระดับ 5 แต่ติดตั้งใช้งาน FCM ระดับ 6 ขึ้นไป ซึ่งมาพร้อมกับข้อกําหนดเพิ่มเติมต่างๆ ที่ระบุไว้ในตารางความเข้ากันได้ ระดับที่รองรับมีดังนี้
FCM | รุ่นของ Android |
---|---|
4 | Android 10/Q |
5 | Android 11/R |
6 | Android 12/S |
7 | Android 13/T |
8 | Android 14/U |
202404 | Android 15/V |
ระดับ FCM เท่ากับหรือใหม่กว่าระดับ API ของผู้ให้บริการ
เมื่อ Android เลิกใช้งานระดับ FCM ระดับนั้น อุปกรณ์ที่มีอยู่จะยังคงรองรับระดับดังกล่าว อุปกรณ์ที่กำหนดเป้าหมายเป็น FCM ระดับต่ำกว่าจะได้รับอนุญาตให้ใช้ HAL ที่แสดงอยู่ใน FCM ระดับใหม่โดยปริยาย ตราบใดที่ HAL ดังกล่าวพร้อมใช้งานในสาขา
พัฒนาใน FCM เวอร์ชันใหม่
Android จะเพิ่มเวอร์ชัน FCM สำหรับเฟรมเวิร์กแต่ละรุ่น (เช่น Android 8 และ 8.1) ในระหว่างการพัฒนา ระบบจะสร้าง compatibility_matrix.F.xml
ใหม่และจะไม่เปลี่ยนแปลง compatibility_matrix.f.xml
ที่มีอยู่อีกต่อไป (โดยที่ f
< F
)
วิธีเริ่มพัฒนาใน FCM เวอร์ชัน 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
เช่น Android 8.1 เปิดตัว cas@1.0
อุปกรณ์ที่เปิดตัวด้วย Android 8.1 สามารถใช้ HAL นี้ได้ จึงมีการเพิ่มรายการต่อไปนี้ลงใน compatibility_matrix.F.xml
(เดิมชื่อ compatibility_matrix.current.xml
ชั่วคราวระหว่างการพัฒนารุ่นดังกล่าว)
<hal format="hidl">
<name>android.hardware.cas</name>
<version>1.0</version>
<interface>
<name>IMediaCasService</name>
<instance>default</instance>
</interface>
</hal>
อัปเกรด HAL (เล็กน้อย)
เวอร์ชัน AIDL HAL จะนับเป็นเวอร์ชันย่อยของ HAL เวอร์ชันอินเทอร์เฟซ HIDL จะมีmajor.minor
เวอร์ชัน เช่น 1.2
ในระหว่างการพัฒนา เมื่อ AIDL HAL มีการอัปเกรดเวอร์ชันจาก 2
เป็น 3
เมื่อ FCM เวอร์ชันปัจจุบันเป็น F
ระบบจะเพิ่มเวอร์ชันใหม่ลงในรายการ HAL ใน compatibility_matrix.F.xml
ฟิลด์เวอร์ชันของรายการ HAL จะยอมรับช่วง เช่น 2-3
เช่น Android FCM F
เปิดตัว foo@3
เป็นเวอร์ชันย่อยของการอัปเกรด HAL foo@2
เวอร์ชันเก่าใช้สำหรับอุปกรณ์ที่กำหนดเป้าหมายเป็น FCM เวอร์ชันเก่า ส่วนfoo@3
เวอร์ชันใหม่ใช้สำหรับอุปกรณ์ที่กำหนดเป้าหมายเป็น FCM ของ Android F
รายการใน FCM เวอร์ชันเก่าก่อนเวอร์ชัน 2
จะมีลักษณะดังนี้
<hal format="aidl">
<name>foo</name>
<version>2</version>
<interface>
<name>IFoo</name>
<instance>default</instance>
</interface>
</hal>
คัดลอกรายการนี้ไปยัง compatibility_matrix.F.xml
และแก้ไขให้รองรับเวอร์ชัน 3
ดังนี้
<hal format="aidl">
<name>foo</name>
<version>2-3</version>
<interface>
<name>IFoo</name>
<instance>default</instance>
</interface>
</hal>
อัปเกรด HAL (สำคัญ)
ในระหว่างการพัฒนา เมื่อ HAL มีการอัปเกรดเวอร์ชันหลักใน FCM เวอร์ชันปัจจุบัน F
ระบบจะเพิ่มเวอร์ชันหลักใหม่ x.0
ลงใน compatibility_matrix.F.xml
โดยมีการตั้งค่าต่อไปนี้
- เฉพาะเวอร์ชัน
x.0
หากอุปกรณ์ที่มาพร้อมกับV = F
ต้องเปิดใช้กับx.0
- กับเวอร์ชันหลักเก่ากว่าในแท็ก
<hal>
เดียวกัน หากอุปกรณ์ที่มาพร้อมกับV = F
สามารถเปิดใช้เวอร์ชันหลักเก่ากว่าได้
ตัวอย่างเช่น FCM เวอร์ชัน F
เปิดตัว foo@2.0
เป็นเวอร์ชันอัปเกรดหลักของ HAL 1.0 และเลิกใช้งาน HAL 1.0 foo@1.0
ซึ่งเป็นเวอร์ชันเก่าจะใช้กับอุปกรณ์ที่กำหนดเป้าหมายเป็น FCM เวอร์ชันก่อนหน้า อุปกรณ์ที่กําหนดเป้าหมาย FCM เวอร์ชัน F
ต้องใช้ HAL เวอร์ชัน 2.0 ใหม่หากมี ในตัวอย่างนี้ FCM เวอร์ชันก่อนหน้าจะมีรายการนี้
<hal format="hidl">
<name>foo</name>
<version>1.0</version>;
<interface>
<name>IFoo</name>
<instance>default</instance>
</interface>
</hal>
คัดลอกรายการนี้ไปยัง compatibility_matrix.F.xml
และแก้ไขดังนี้
<hal format="hidl">
<name>foo</name>
<version>2.0</version>
<interface>
<name>IFoo</name>
<instance>default</instance>
</interface>
</hal>
ข้อจำกัด:
- เนื่องจาก HAL เวอร์ชัน 1.0 ไม่ได้อยู่ใน
compatibility_matrix.F.xml
อุปกรณ์ที่กำหนดเป้าหมายเป็น FCM เวอร์ชันF
จึงต้องไม่มี HAL เวอร์ชัน 1.0 (เนื่องจาก HAL นี้ถือว่าเลิกใช้งานแล้ว) - เนื่องจาก HAL เวอร์ชัน 1.0 มีอยู่ใน FCM เวอร์ชันเก่า เฟรมเวิร์กจึงยังคงทำงานร่วมกับ HAL เวอร์ชัน 1.0 ได้ จึงใช้งานร่วมกับอุปกรณ์เก่าที่กำหนดเป้าหมายเป็น FCM เวอร์ชันเก่าได้
FCM เวอร์ชันใหม่
กระบวนการเผยแพร่เวอร์ชัน FCM ในพาร์ติชันระบบจะดำเนินการโดย Google เพียงผู้เดียวโดยเป็นส่วนหนึ่งของรุ่น AOSP และมีขั้นตอนต่อไปนี้
- ตรวจสอบว่า
compatibility_matrix.F.xml
มีแอตทริบิวต์level="F"
- ตรวจสอบว่าอุปกรณ์ทั้งหมดสร้างและบูตได้
- อัปเดตการทดสอบ VTS เพื่อให้อุปกรณ์ที่เปิดตัวด้วยเฟรมเวิร์กล่าสุด (ตามระดับ API การจัดส่ง) มี FCM เวอร์ชันเป้าหมาย
V >= F
- เผยแพร่ไฟล์ไปยัง AOSP
ตัวอย่างเช่น การทดสอบ VTS จะตรวจสอบว่าอุปกรณ์ที่เปิดใช้ Android 9 มีเวอร์ชัน FCM เป้าหมาย >= 3
นอกจากนี้ FCM ของ product และ system_ext ยังอาจแสดงข้อกำหนดสำหรับ FCM แต่ละเวอร์ชันของแพลตฟอร์มด้วย เจ้าของรูปภาพเหล่านี้จะเป็นผู้เผยแพร่เวอร์ชัน FCM ในพาร์ติชัน product และ system_ext ตามลำดับ ตัวเลขเวอร์ชัน FCM ในพาร์ติชัน product และ system_ext ต้องตรงกับในพาร์ติชัน system เช่นเดียวกับเวอร์ชัน FCM ในพาร์ติชันระบบ ตารางความเข้ากันได้ที่ FCM เวอร์ชัน F ในพาร์ติชัน product และ system_ext จะแสดงข้อกำหนดในอุปกรณ์ที่มี FCM เวอร์ชันเป้าหมาย F
การเลิกใช้งานเวอร์ชัน HAL
การเลิกใช้งานเวอร์ชัน HAL ขึ้นอยู่กับการตัดสินใจของนักพัฒนาแอป (เช่น Google จะเป็นผู้ตัดสินใจสำหรับ HAL ของ AOSP) ซึ่งอาจเกิดขึ้นเมื่อมีการเผยแพร่ HAL เวอร์ชันที่ใหม่กว่า (ไม่ว่าจะเป็นเวอร์ชันย่อยหรือเวอร์ชันหลัก)
เลิกใช้งาน HAL ของอุปกรณ์
เมื่อ HAL foo@x.y
ของอุปกรณ์หนึ่งๆ เลิกใช้งานใน FCM เวอร์ชัน F
หมายความว่าอุปกรณ์ที่เปิดตัวด้วย FCM เวอร์ชันเป้าหมาย V = F
ขึ้นไปต้องไม่ใช้ foo
เวอร์ชัน x.y
หรือเวอร์ชันที่เก่ากว่า x.y
เฟรมเวิร์กยังคงรองรับเวอร์ชัน HAL ที่เลิกใช้งานสำหรับการอัปเกรดอุปกรณ์
เมื่อ FCM เวอร์ชัน F
เผยแพร่ ระบบจะถือว่า HAL เวอร์ชัน foo@x.y
เลิกใช้งานหากไม่ได้ระบุเวอร์ชัน 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@x.y
ของเฟรมเวิร์กหนึ่งๆ ใน FCM เวอร์ชัน F
หมายความว่าอุปกรณ์ที่เปิดตัวด้วย FCM เวอร์ชันเป้าหมาย V = F
ขึ้นไปต้องไม่คาดหวังว่าเฟรมเวิร์กจะให้บริการ foo
ในเวอร์ชัน x.y
หรือเวอร์ชันที่เก่ากว่า x.y
เฟรมเวิร์กจะยังคงให้บริการ HAL เวอร์ชันที่เลิกใช้งานสำหรับการอัปเกรดอุปกรณ์
เมื่อ FCM เวอร์ชัน F
เผยแพร่ เราจะถือว่า HAL เวอร์ชัน foo@x.y
เลิกใช้งานแล้วหากไฟล์ Manifest ของเฟรมเวิร์กระบุ max-level="F - 1"
สำหรับ foo@x.y
สำหรับอุปกรณ์ที่เปิดตัวด้วย V = F
เฟรมเวิร์กจะไม่มี HAL foo@x.y
ตารางความเข้ากันได้ของอุปกรณ์ในอุปกรณ์ที่เปิดตัวด้วย V = F
ต้องไม่แสดงรายการเฟรมเวิร์ก HAL ที่มี max-level < V
เช่น ใน Android 12 ระบบจะเลิกใช้งาน schedulerservice@1.0
แอตทริบิวต์ max-level
ของอุปกรณ์ตั้งค่าเป็น 5
ซึ่งเป็นเวอร์ชัน FCM ที่เปิดตัวใน Android 11 ดูไฟล์ Manifest ของเฟรมเวิร์ก Android 12
การหยุดรองรับเวอร์ชัน FCM เป้าหมาย
เมื่ออุปกรณ์ที่ใช้งานอยู่ของ FCM เวอร์ชันเป้าหมาย V
ลดลงต่ำกว่าเกณฑ์ที่กำหนด ระบบจะนำ FCM เวอร์ชันเป้าหมายออกจาก SF ที่กำหนดของเฟรมเวิร์กรุ่นถัดไป ซึ่งทำได้โดยทำตามทั้ง 2 ขั้นตอนต่อไปนี้
นำ
compatibility_matrix.V.xml
ออกจากกฎการสร้าง (เพื่อไม่ให้ติดตั้งในอิมเมจระบบ) และลบโค้ดที่ใช้หรือขึ้นอยู่กับความสามารถที่ถูกนำออกนำ HAL ของเฟรมเวิร์กที่มี
max-level
น้อยกว่าหรือเท่ากับV
ออกจากไฟล์ Manifest ของเฟรมเวิร์ก และลบโค้ดที่ใช้ HAL ของเฟรมเวิร์กที่ถูกนำออก
อุปกรณ์ที่มีเวอร์ชัน FCM เป้าหมายอยู่นอก SF สำหรับเฟรมเวิร์กรุ่นหนึ่งๆ จะอัปเกรดเป็นรุ่นนั้นไม่ได้
สถานะเวอร์ชัน HAL
ส่วนต่อไปนี้จะอธิบาย (ตามลําดับเวลา) สถานะต่างๆ ที่เป็นไปได้ของ HAL เวอร์ชัน
รอเปิดตัว
สำหรับ HAL ของอุปกรณ์ หากเวอร์ชัน HAL ไม่ได้อยู่ในตารางความเข้ากันได้แบบสาธารณะและแบบหยุดทำงาน ระบบจะถือว่าเวอร์ชันดังกล่าวยังไม่เผยแพร่และอาจอยู่ระหว่างการพัฒนา
ซึ่งรวมถึงเวอร์ชัน HAL ที่มีอยู่ใน compatibility_matrix.F.xml
เท่านั้น
ตัวอย่าง
- ในระหว่างการพัฒนา Android 9 นั้น
health@2.0
HAL ถือว่ายังไม่เปิดตัวและอยู่ในcompatibility_matrix.3.xml
เท่านั้น teleportation@1.0
HAL ไม่ได้อยู่ในตารางความเข้ากันได้ที่เผยแพร่ และยังถือว่าเป็น HAL ที่ยังไม่ได้เผยแพร่ด้วย
สำหรับ HAL ของเฟรมเวิร์ก หากเวอร์ชัน HAL อยู่ในไฟล์ Manifest ของเฟรมเวิร์กจากสาขาการพัฒนาที่ไม่เกี่ยวข้องเท่านั้น ระบบจะถือว่า 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 อยู่ในไฟล์ Manifest ของเฟรมเวิร์กจากสาขาที่เผยแพร่ล่าสุดโดยไม่มีแอตทริบิวต์ max-level
หรือ (ผิดปกติ) max-level
เท่ากับหรือสูงกว่าเวอร์ชัน FCM ที่เผยแพร่ในสาขานี้ ระบบจะถือว่า HAL เวอร์ชันดังกล่าวเป็นเวอร์ชันที่เผยแพร่และเวอร์ชันปัจจุบัน ตัวอย่างเช่น displayservice
HAL เปิดตัวแล้วและเป็นเวอร์ชันล่าสุดใน Android 12 ตามที่ระบุไว้ในไฟล์ Manifest ของเฟรมเวิร์ก Android 12
เผยแพร่แล้ว แต่เลิกใช้งานแล้ว
สำหรับ HAL ของอุปกรณ์ ระบบจะเลิกใช้งานเวอร์ชัน HAL เฉพาะในกรณีที่มีคุณสมบัติตรงตามเงื่อนไขต่อไปนี้ทั้งหมดเท่านั้น
- เผยแพร่แล้ว
- ไม่ได้อยู่ในตารางความเข้ากันได้แบบสาธารณะและแบบแช่แข็งซึ่งมี FCM เวอร์ชันสูงสุด
- ฟีเจอร์นี้อยู่ในตารางความเข้ากันได้แบบสาธารณะและแบบคงที่ซึ่งเฟรมเวิร์กยังคงรองรับ
ตัวอย่าง
- HAL ของ
health@1.0
อยู่ใน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 อยู่ในไฟล์ Manifest ของเฟรมเวิร์กในสาขาที่เผยแพร่ล่าสุดซึ่งมีแอตทริบิวต์ max-level
ต่ำกว่าเวอร์ชัน FCM ที่เผยแพร่ในสาขานี้ ระบบจะถือว่า HAL เวอร์ชันดังกล่าวเป็นเวอร์ชันที่เผยแพร่แล้วแต่เลิกใช้งานแล้ว ตัวอย่างเช่น schedulerservice
HAL มีการเผยแพร่แล้ว แต่เลิกใช้งานใน Android 12 ตามที่ระบุไว้ในไฟล์ Manifest ของเฟรมเวิร์ก Android 12
นำออกแล้ว
สําหรับ HAL ของอุปกรณ์ ระบบจะนำเวอร์ชัน HAL ออกก็ต่อเมื่อเงื่อนไขต่อไปนี้เป็นจริงเท่านั้น
- เนื้อหาดังกล่าวเคยเผยแพร่ไปแล้ว
- ไม่ได้อยู่ในตารางความเข้ากันได้แบบสาธารณะและแบบคงที่ซึ่งเฟรมเวิร์กรองรับ
เมทริกซ์ความเข้ากันได้ที่เป็นสาธารณะ หยุดทำงานแล้ว แต่เฟรมเวิร์กไม่รองรับจะเก็บไว้ในโค้ดเบสเพื่อกำหนดชุดเวอร์ชัน HAL ที่นําออกเพื่อให้เขียนการทดสอบ VTS ได้เพื่อให้มั่นใจว่า HAL ที่นําออกจะไม่อยู่ในอุปกรณ์ใหม่
สำหรับ HAL ของเฟรมเวิร์ก ระบบจะนำเวอร์ชัน HAL ออกก็ต่อเมื่อมีคุณสมบัติตรงตามเกณฑ์ต่อไปนี้เท่านั้น
- เนื้อหาดังกล่าวเคยเผยแพร่ไปแล้ว
- ไม่ได้อยู่ในไฟล์ Manifest ของเฟรมเวิร์กใดๆ ของสาขาที่เผยแพร่ล่าสุด
FCM เดิม
เวอร์ชัน FCM เป้าหมายเดิมเป็นค่าพิเศษสำหรับอุปกรณ์ที่ไม่ใช่ Treble ทั้งหมด FCM รุ่นเดิม compatibility_matrix.legacy.xml
จะแสดงข้อกําหนดของเฟรมเวิร์กในอุปกรณ์รุ่นเดิม (เช่น อุปกรณ์ที่เปิดตัวก่อน Android 8.0)
หากมีไฟล์นี้สําหรับ FCM เวอร์ชัน F
อุปกรณ์ที่ไม่ใช่ Treble จะอัปเกรดเป็น F
ได้หากไฟล์ Manifest ของอุปกรณ์นั้นเข้ากันได้กับไฟล์นี้ การนำออกจะเป็นไปตามขั้นตอนเดียวกับ FCM สำหรับ FCM เวอร์ชันเป้าหมายอื่นๆ (นำออกหลังจากที่จำนวนอุปกรณ์เวอร์ชันก่อน 8.0 ที่ใช้งานอยู่ลดลงต่ำกว่าเกณฑ์ที่กำหนด)
เวอร์ชัน FCM ที่เผยแพร่
ดูรายการเวอร์ชัน FCM ที่เผยแพร่แล้วได้ในส่วน
hardware/interfaces/compatibility_matrices
หากต้องการดูเวอร์ชัน FCM ที่เผยแพร่พร้อมกับ Android เวอร์ชันหนึ่งๆ โปรดดู
Level.h