ระดับ API ของผู้ให้บริการ

ระดับ API ของผู้ให้บริการหมายถึงเวอร์ชันของอินเทอร์เฟซที่รองรับโดย พาร์ติชันผู้ให้บริการ อินเทอร์เฟซเป็นแบบ 2 ทิศทาง มีการอธิบาย API ที่พาร์ติชันผู้ให้บริการมอบให้กับพาร์ติชันระบบ (ฮาร์ดแวร์ Abstraction Layer หรืออินเทอร์เฟซ HAL) รวมถึง API ที่พาร์ติชันผู้ให้บริการ ต้องการจากพาร์ติชันระบบ (ชุดเครื่องมือนักพัฒนาซอฟต์แวร์เนทีฟระดับต่ำหรือ อินเทอร์เฟซ LLNDK)

นอกจากนี้ ยังใช้ระดับ API ของผู้ให้บริการเพื่อกำหนดข้อกำหนดของซอฟต์แวร์ของผู้ให้บริการด้วย (VSR) คือชุดของข้อกำหนดเกี่ยวกับฟังก์ชันการทำงานและที่ใช้งานไม่ได้ซึ่ง ซอฟต์แวร์ในพาร์ติชันผู้ให้บริการต้องเป็นไปตามข้อกำหนด

ส่วนที่เหลือของหน้านี้จะอธิบายวิธีที่ระบบ ก็ขึ้นอยู่กับเวอร์ชัน Android ของคุณ เพื่อกำหนดผู้ให้บริการ ระดับ API

การหยุดให้บริการผู้ให้บริการ

Android ช่วยให้ผู้ให้บริการตรึงพาร์ติชันผู้ให้บริการไว้ที่เวอร์ชันที่เจาะจง VSR ชุด ของฟีเจอร์ที่ Android คาดหวังจากพาร์ติชันผู้ให้บริการจะกำหนดโดย ระดับ API ของผู้ให้บริการที่เชื่อมโยงกับพาร์ติชันผู้ให้บริการ ขณะรันไทม์ ลักษณะการทำงาน ของซอฟต์แวร์ที่ทำงานในพาร์ติชันระบบจะปรับเพื่อให้รองรับ ระดับ API ผู้ให้บริการของพาร์ติชันผู้ให้บริการ ตัวอย่างเช่น ซอฟต์แวร์ใน พาร์ติชันระบบอาจใช้ฟีเจอร์ใหม่ไม่ได้หากไม่มีการรองรับ ระดับ API ของพาร์ติชันผู้ให้บริการ

การระงับผู้ให้บริการจะใช้ได้ก็ต่อเมื่อคุณสร้าง อุปกรณ์ที่เข้ากันได้กับ Android

ระบุระดับ API ของผู้ให้บริการ (Android 14-QPR3 ขึ้นไป)

สำหรับ Android 14-QPR3 ขึ้นไป ระดับ API ของผู้ให้บริการคือ เผยแพร่แยกต่างหาก ซึ่งหมายถึงระดับ API ของ SDK และผู้ให้บริการ ระดับ API ไม่ซิงค์

สำหรับ Android มีกำหนดการเผยแพร่ที่แยกกัน ตั้งแต่ 14-QPR3 เป็นต้นไป ระดับ API ของผู้ให้บริการคือ ที่แยกออกจากระดับ SDK API เพื่อให้แน่ใจว่าการแยกส่วนนี้มีความชัดเจน แท็ก รูปแบบของระดับ API ของผู้ให้บริการคือวันที่ในรูปแบบ YYYYMM (ปีและเดือน) ขณะที่ระดับ SDK เป็นจำนวนเต็ม

Android 14-QPR3 ขึ้นไปมีระบบต่อไปนี้ ผลิตภัณฑ์และบริการที่เกี่ยวข้องกับระดับ API ของผู้ให้บริการ (ro.vendor.api_level):

พร็อพเพอร์ตี้ของระบบ รูปแบบ คำอธิบาย การตั้งค่าเริ่มต้น
ro.board.api_level ปปปปดด ระดับ API ของผู้ให้บริการที่ซอฟต์แวร์ของชิปเซ็ตรองรับ พร็อพเพอร์ตี้นี้กำหนดไว้สำหรับชิปเซ็ตทั้งหมด ซึ่งจะตั้งค่าโดยระบบบิลด์โดยอัตโนมัติ
ro.board.first_api_level ปปปปดด ระดับ API ของผู้ให้บริการที่มีการเผยแพร่ซอฟต์แวร์ของชิปเซ็ตเป็นครั้งแรก พร็อพเพอร์ตี้นี้เป็นฟังก์ชันของชิปเซ็ตเท่านั้นและจะกำหนดโดยผู้ให้บริการ SoC หากชิปเซ็ต SoC มีคุณสมบัติสำหรับการหยุดทำงานของผู้ให้บริการ หลังจากการตั้งค่าเริ่มต้น จะต้องไม่มีการแก้ไข ผู้ให้บริการ SoC กำหนดการตั้งค่านี้โดยใช้ BOARD_SHIPPING_API_LEVEL
ro.product.first_api_level จำนวนเต็ม ระดับ API ของ SDK ที่อุปกรณ์เปิดใช้งานครั้งแรก พร็อพเพอร์ตี้นี้กําหนดโดย OEM ซึ่งจะไม่ได้รับการอัปเดต แม้ว่าจะอัปเกรดระบบปฏิบัติการแล้วก็ตาม
ro.vendor.api_level ปปปปดด ระดับ API ของผู้ให้บริการที่อุปกรณ์ทั้งหมดต้องปฏิบัติตาม อธิบายหลังจากตารางนี้
ro.board.api_frozen บูลีน พร็อพเพอร์ตี้นี้มีการตั้งค่าเป็น true หากระดับ API ของผู้ให้บริการที่ ro.board.api_level แสดงนั้นสรุปผลแล้ว หากไม่ได้ตั้งค่าพร็อพเพอร์ตี้นี้ ระบบจะใช้ false เป็นค่าเริ่มต้น
ro.llndk.api_level ปปปปดด ระดับ API ของผู้ให้บริการในรูปแบบ YYYYMM ที่ LLNDK ปัจจุบันในพาร์ติชันระบบมีให้ LLNDK สามารถใช้ร่วมกับอิมเมจระบบย้อนหลังได้ ดังนั้นอิมเมจผู้ให้บริการที่น้อยกว่าหรือเท่ากับระดับ API นี้สามารถแฟลชด้วยอิมเมจของระบบนี้ได้ พร็อพเพอร์ตี้นี้ตั้งค่าโดยพาร์ติชันระบบ

พร็อพเพอร์ตี้ ro.vendor.api_level ได้มาจากวิธีใดวิธีหนึ่งต่อไปนี้

  • หากชิปเซ็ตมีคุณสมบัติสำหรับการหยุดทำงานของผู้ให้บริการ:

    ro.vendor.api_level = min(
      ro.board.api_level,
      AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level))
    
  • หากชิปเซ็ตไม่ได้อยู่ระหว่างการระงับของผู้ให้บริการ ให้ทำดังนี้

    ro.vendor.api_level =
      AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level)
    

เมธอด AVendorSupport_getVendorApiLevelOf() จะกำหนดแอตทริบิวต์ ระดับ API ของผู้ให้บริการจากระดับ SDK API ตัวอย่างเช่น AVendorSupport_getVendorApiLevelOf(35) โดยที่ 35 คือระดับ SDK API ของ รุ่นหลักของ Android ในปี 2024 ส่งคืน 202404 ซึ่งเป็นวันที่คร่าวๆ สำหรับ Android 14-QPR3 เมื่อระดับ API ผู้ให้บริการปัจจุบันคือ ตั้งค่า

ระบุระดับ API ของผู้ให้บริการ (Android 13)

ระดับ API ของผู้ให้บริการจะเป็นไปตามระดับ SDK API สำหรับ App-OS ของอินเทอร์เฟซ และจะอัปเดตปีละครั้งเมื่อแพลตฟอร์ม Android ใหม่เปิดตัว AOSP

Android 13 มีระบบต่อไปนี้ ผลิตภัณฑ์และบริการที่เกี่ยวข้องกับระดับ API ของผู้ให้บริการ (ro.vendor.api_level):

พร็อพเพอร์ตี้ของระบบ รูปแบบ คำอธิบาย การตั้งค่าเริ่มต้น
ro.board.first_api_level จำนวนเต็ม ระดับ API ของผู้ให้บริการที่มีการเผยแพร่ซอฟต์แวร์ของชิปเซ็ตเป็นครั้งแรก ซึ่งเป็นฟังก์ชันของชิปเซ็ตเท่านั้น และแก้ไขโดยผู้ให้บริการ SoC หรือ OEM ไม่ได้ พร็อพเพอร์ตี้นี้จะกำหนดไว้สำหรับชิปเซ็ตที่มีคุณสมบัติในการหยุดทำงานของผู้ให้บริการเท่านั้น ค่านี้สร้างขึ้นโดยการตั้งค่า BOARD_SHIPPING_API_LEVEL ในไฟล์ device.mk
ro.board.api_level จำนวนเต็ม ระดับ API ของผู้ให้บริการที่ซอฟต์แวร์ของชิปเซ็ตรองรับ คุณสมบัตินี้กำหนดไว้สำหรับชิปเซ็ตที่มีคุณสมบัติในการหยุดทำงานของผู้ให้บริการเท่านั้น พร็อพเพอร์ตี้นี้กำหนดไว้สำหรับชิปเซ็ตทั้งหมด ในขั้นต้น ระบบบิลด์จะกำหนดค่าของพร็อพเพอร์ตี้นี้เป็นค่าเดียวกับ ro.board.first_api_level แต่จะอัปเดตได้หากพาร์ติชันผู้ให้บริการได้รับการอัปเกรด
ro.product.first_api_level จำนวนเต็ม ระดับ API ของ SDK ที่อุปกรณ์เปิดใช้งานครั้งแรก พร็อพเพอร์ตี้นี้กําหนดโดย OEM ซึ่งจะไม่ได้รับการอัปเดต แม้ว่าจะอัปเกรดระบบปฏิบัติการแล้วก็ตาม
ro.vendor.api_level จำนวนเต็ม ระดับ API ของผู้ให้บริการที่อุปกรณ์ทั้งหมดต้องปฏิบัติตาม อธิบายหลังจากตารางนี้
ro.vndk.version จำนวนเต็ม เวอร์ชันของ VNDK ที่ใช้สร้างพาร์ติชันผู้ให้บริการ พร็อพเพอร์ตี้นี้ตั้งค่าโดยพาร์ติชันระบบ
ro.vendor.build.version.sdk จำนวนเต็ม ระดับ SDK API ของแผนผังแหล่งที่มาที่สร้างพาร์ติชันผู้ให้บริการ
ro.vendor.build.version.release จำนวนเต็ม เวอร์ชันแพลตฟอร์มของแผนผังต้นทางที่สร้างพาร์ติชันผู้ให้บริการ
ro.vendor.build.version.release_or_codename จำนวนเต็ม ชื่อโค้ดของโครงสร้างซอร์สที่สร้างพาร์ติชันผู้ให้บริการ

ระบบจะตั้งค่าพร็อพเพอร์ตี้ ro.vendor.api_level เป็น ro.board.api_level ต่ำสุดโดยอัตโนมัติ (หรือ ro.board.first_api_level หากไม่ได้กำหนด ro.board.api_level) และ ro.product.first_api_level