เฟรมเวิร์ก 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 เป้าหมาย (จาก SF) โดยประกาศอย่างชัดเจนในอุปกรณ์ ที่การดำเนินการของผู้ให้บริการพึงพอใจ การใช้งานของผู้ให้บริการจะต้อง ที่สร้างขึ้นกับ 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 ด้านเฟรมเวิร์กของผู้ให้บริการ ของ Google รวมถึง 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/วินาที |
7 | Android 13/T |
8 | Android 14/U |
202404 | Android 15/V |
เมื่อ Android เลิกใช้งานระดับ FCM แล้ว อุปกรณ์ที่มีอยู่จะยังคงรองรับระดับดังกล่าว
พัฒนาใน 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
ด้วย
การตั้งค่า 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 มีการอัปเกรดเวอร์ชันย่อยจาก x.z
เป็น
x.(z+1)
ที่ FCM เวอร์ชัน F
ปัจจุบัน หากเวอร์ชันดังกล่าวคือ
- ต้องใช้ในอุปกรณ์ที่เปิดด้วย
V = F
,compatibility_matrix.F.xml
ต้องระบุx.(z+1)
และoptional="false"
- ไม่จำเป็นสำหรับอุปกรณ์ที่เปิดด้วย
V = F
compatibility_matrix.F.xml
ต้องคัดลอกx.y-z
และตัวเลือกจากcompatibility_matrix.<F-1>.xml
และเปลี่ยนเวอร์ชันเป็นx.w-(z+1)
(ที่w >= y
)
เช่น Android 8.1 เปิดตัว broadcastradio@1.1
เป็นเวอร์ชันย่อย
เป็นการอัปเกรด HAL 1.0 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 ต้อง
ขอทราบเวอร์ชัน 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>
ข้อจำกัด:
- เนื่องจาก HAL 2.0 อยู่ใน
compatibility_matrix.3.xml
โดยมีoptional="false"
, อุปกรณ์ที่เปิดอยู่กับ Android 9 ต้องจัดส่งโดยมี 2.0 HAL" - เนื่องจาก HAL 1.0 ไม่ได้อยู่ใน
compatibility_matrix.3.xml
อุปกรณ์ที่เปิดตัวด้วย Android 9 ต้องไม่มี HAL 1.0 (เนื่องจาก HAL นี้ถือว่าเลิกใช้งานแล้ว) - เนื่องจากมี HAL 1.0 ใน
legacy/1/2.xml
(FCM เวอร์ชันเก่าที่ Android 9 ใช้ได้กับ) เป็น HAL ที่ไม่บังคับ และ เฟรมเวิร์ก Android 9 จะยังใช้งานกับ 1.0 HAL ได้ (ซึ่งไม่ถือว่าเป็นเวอร์ชัน HAL ที่ถูกนำออก)
FCM เวอร์ชันใหม่
กระบวนการเผยแพร่เวอร์ชัน FCM บนพาร์ติชันระบบดำเนินการเพียงอย่างเดียวเท่านั้น Google เป็นส่วนหนึ่งของรุ่น AOSP และมีขั้นตอนดังต่อไปนี้
- ตรวจสอบว่า
compatibility_matrix.F.xml
มีแอตทริบิวต์level="F"
- ตรวจสอบว่าอุปกรณ์ทุกเครื่องสร้างและเปิดเครื่อง
- อัปเดตการทดสอบ VTS
เพื่อให้แน่ใจว่าอุปกรณ์ที่เปิดตัวด้วยเฟรมเวิร์กล่าสุด (อิงตาม
ในระดับ API การจัดส่ง) มี FCM เป้าหมายเวอร์ชัน
V >= F
- เผยแพร่ไฟล์ไปที่ AOSP
เช่น การทดสอบ VTS ตรวจสอบให้แน่ใจว่าอุปกรณ์ที่กำลังเปิดตัวด้วย Android 9 มีเวอร์ชัน FCM เป้าหมาย >= 3
นอกจากนี้ FCM ของผลิตภัณฑ์และ system_ext ยังอาจแสดงข้อกำหนดสำหรับแต่ละรายการด้วย เวอร์ชัน FCM ของแพลตฟอร์ม การเผยแพร่เวอร์ชัน FCM ในผลิตภัณฑ์และ system_ext พาร์ติชันดำเนินการโดยเจ้าของอิมเมจเหล่านี้ตามลำดับ เวอร์ชัน FCM หมายเลขบนพาร์ติชันผลิตภัณฑ์และพาร์ติชัน system_ext ต้องสอดคล้องกับตัวเลขใน พาร์ติชันระบบ เช่นเดียวกับเวอร์ชัน FCM ในพาร์ติชันระบบ พารามิเตอร์ เมทริกซ์ความเข้ากันได้ที่ FCM เวอร์ชัน F ในพาร์ติชันผลิตภัณฑ์และ System_ext แสดงข้อกำหนดในอุปกรณ์ที่มี FCM เวอร์ชันเป้าหมาย F
การเลิกใช้งานเวอร์ชัน HAL
การเลิกใช้งานเวอร์ชัน HAL เป็นการตัดสินใจของนักพัฒนาแอป (เช่น สำหรับ AOSP HAL) เพื่อประกอบการตัดสินใจ) กรณีนี้อาจเกิดขึ้นเมื่อเวอร์ชัน 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 โปรดดู
เฟรมเวิร์ก Android 12
ไฟล์ Manifest
การยกเลิกการรองรับเวอร์ชัน FCM เป้าหมาย
เมื่ออุปกรณ์ที่ใช้งานอยู่ของเวอร์ชัน FCM เป้าหมายบางเวอร์ชัน V
ลดลงต่ำกว่าบางเวอร์ชัน
ระบบจะนำเวอร์ชัน FCM เป้าหมายออกจาก F ที่กำหนด
เฟรมเวิร์กฉบับถัดไป ซึ่งทำได้ด้วยทั้ง 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 ถือเป็น HAL ที่ยังไม่เผยแพร่และมีอยู่ในcompatibility_matrix.3.xml
- HAL ของ
teleportation@1.0
ไม่ได้อยู่ในเมทริกซ์ความเข้ากันได้ที่เผยแพร่แล้ว และ ถือเป็น HAL ที่ยังไม่เผยแพร่
สำหรับ HAL ของเฟรมเวิร์ก หากเวอร์ชัน HAL อยู่ในไฟล์ Manifest ของเฟรมเวิร์กเท่านั้น ของ Branch การพัฒนาที่ไม่เกี่ยวข้อง จะถือว่ายังไม่ได้เผยแพร่
เผยแพร่แล้วและเป็นปัจจุบัน
สำหรับ HAL ของอุปกรณ์ หากเวอร์ชัน HAL อยู่ในความเข้ากันได้แบบสาธารณะและไม่มีการหยุดทำงาน
เปิดตัวเมตริกซ์แล้ว ตัวอย่างเช่น หลังจากที่ FCM เวอร์ชัน 3 ถูกระงับและเผยแพร่แล้ว
สำหรับ AOSP HAL ของ health@2.0
จะถือเป็นเวอร์ชัน HAL ที่เผยแพร่แล้วในปัจจุบัน
หากเวอร์ชัน HAL อยู่ในเมทริกซ์ความเข้ากันได้แบบสาธารณะและตรึงไว้ซึ่งมีค่า
เวอร์ชัน FCM สูงสุด เวอร์ชัน HAL เป็นเวอร์ชันปัจจุบัน (ไม่เลิกใช้งานแล้ว) สำหรับ
ตัวอย่างเช่น เวอร์ชัน HAL ที่มีอยู่ (เช่น nfc@1.0
ที่เปิดตัวใน
compatibility_matrix.legacy.xml
)
ที่ยังคงอยู่ใน compatibility_matrix.3.xml
ยังถือว่าเป็น
ที่เผยแพร่และเวอร์ชัน HAL ปัจจุบัน
สำหรับ HAL ของเฟรมเวิร์ก หากมีเวอร์ชัน HAL ในไฟล์ Manifest ของเฟรมเวิร์ก
ของ Branch ที่นำออกล่าสุดโดยไม่มีแอตทริบิวต์ max-level
หรือ (ผิดปกติ)
max-level
เท่ากับหรือสูงกว่าเวอร์ชัน FCM ที่เปิดตัวใน Branch นี้
ถือเป็นเวอร์ชัน HAL ที่เผยแพร่แล้วในปัจจุบัน ตัวอย่างเช่น พารามิเตอร์
HAL ของ displayservice
เผยแพร่แล้วและเป็นปัจจุบันใน Android
12 ตามที่ระบุโดย
เฟรมเวิร์ก Android 12
Manifest
เผยแพร่แล้วแต่เลิกใช้งานแล้ว
สำหรับ 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
10.
สำหรับ HAL ของเฟรมเวิร์ก หากเวอร์ชัน HAL อยู่ในไฟล์ Manifest ของเฟรมเวิร์กเวอร์ชันล่าสุด
สาขาที่เผยแพร่แล้วที่มีแอตทริบิวต์ max-level
ต่ำกว่ารุ่น FCM
ใน Branch นี้ ถือว่าเป็นเวอร์ชัน HAL ที่เผยแพร่ แต่เลิกใช้งานแล้ว สำหรับ
ตัวอย่างเช่น มีการเผยแพร่ HAL ของ schedulerservice
แต่เลิกใช้งานใน
Android 12 ตามที่ระบุไว้โดย
ไฟล์ Manifest ของเฟรมเวิร์ก Android 12
นำออกแล้ว
สำหรับ HAL ของอุปกรณ์ ระบบจะนำเวอร์ชัน HAL ออกในกรณีต่อไปนี้เท่านั้น เป็นจริง:
- ซึ่งก่อนหน้านี้ได้เปิดตัวแล้ว
- ไม่ได้อยู่ในเมทริกซ์ความเข้ากันได้แบบสาธารณะและแบบตรึงไว้ซึ่งเฟรมเวิร์ก รองรับ
เมทริกซ์ความเข้ากันได้ที่เป็นสาธารณะ ถูกตรึงไว้ แต่ จะถูกเก็บไว้ในฐานของโค้ดเพื่อกำหนดเวอร์ชัน HAL ที่ถูกนำออกชุด ให้เขียนการทดสอบ VTS เพื่อให้แน่ใจว่า HAL ที่ถูกนำออกไปแล้วไม่ได้อยู่ในอุปกรณ์ใหม่
สำหรับ HAL ของเฟรมเวิร์ก ระบบจะนำเวอร์ชัน HAL ออกในกรณีต่อไปนี้เท่านั้น พบ:
- ซึ่งก่อนหน้านี้ได้เปิดตัวแล้ว
- ที่ไม่ได้อยู่ในไฟล์ Manifest ของเฟรมเวิร์กของ Branch ที่เผยแพร่ล่าสุด
FCM เดิม
เวอร์ชัน FCM เป้าหมายเดิมเป็นค่าพิเศษสำหรับอุปกรณ์ที่เปิดเสียงไม่ได้ทั้งหมด
FCM เดิม compatibility_matrix.legacy.xml
แสดงข้อกำหนด
ของเฟรมเวิร์กบนอุปกรณ์รุ่นเก่า (เช่น อุปกรณ์ที่เปิดตัวก่อน Android 8.0)
ถ้ามีไฟล์นี้สำหรับ FCM เวอร์ชัน F
อุปกรณ์ที่ไม่มีเสียงแหลมสามารถ
อัปเกรดเป็น F
หากไฟล์ Manifest ของอุปกรณ์สามารถทำงานร่วมกับไฟล์นี้ได้ คือ
การนำออกนั้นทำตามขั้นตอนเดียวกับ FCM สำหรับ FCM เวอร์ชันเป้าหมายอื่นๆ
(ลบออกหลังจากจำนวนอุปกรณ์ก่อนรุ่น 8.0 ที่มีการใช้งานลดลงต่ำกว่า
)
เวอร์ชัน FCM ที่เผยแพร่
ดูรายการเวอร์ชัน FCM ที่เผยแพร่ได้ใน
hardware/interfaces/compatibility_matrices
หากต้องการดูเวอร์ชัน FCM ที่เผยแพร่พร้อมกับ Android รุ่นที่เจาะจง โปรดดู
Level.h