การเปลี่ยนแปลงเฟรมเวิร์กความเข้ากันได้ (Android 14)

รูปที่ 1 หน้าจอการเปลี่ยนแปลงความเข้ากันได้ของแอปในตัวเลือกสำหรับนักพัฒนาแอปจะแสดงรายการการเปลี่ยนแปลงที่คุณเปิด/ปิดได้

หน้านี้อธิบายการเปลี่ยนแปลงที่เปิด/ปิดได้ซึ่งเป็นส่วนหนึ่งของเฟรมเวิร์กความเข้ากันได้ใน Android 14 (ระดับ API 34) ใช้รายการนี้ร่วมกับตัวเลือกสำหรับนักพัฒนาแอปและคำสั่ง ADB เพื่อทดสอบและแก้ไขข้อบกพร่องของแอปขณะเตรียมพร้อมที่จะรองรับและกำหนดเป้าหมายเป็น Android 14

ตัวอย่างสิ่งที่คุณทำได้โดยใช้เครื่องมือเฟรมเวิร์กความเข้ากันได้มีดังนี้

  • ทดสอบการเปลี่ยนแปลงที่กำหนดเป้าหมายโดยไม่ต้องเปลี่ยน targetSdkVersion ของแอปจริงๆ คุณสามารถใช้ปุ่มเปิด/ปิดเพื่อบังคับให้เปิดใช้การเปลี่ยนแปลงลักษณะการทำงานที่กำหนดเป้าหมายที่เฉพาะเจาะจงเพื่อประเมินผลกระทบต่อแอปที่มีอยู่ได้
  • มุ่งเน้นการทดสอบเฉพาะการเปลี่ยนแปลงที่เจาะจงเท่านั้น ปุ่มเปิด/ปิดช่วยให้คุณปิดใช้การเปลี่ยนแปลงที่กำหนดเป้าหมายทั้งหมดได้ ยกเว้นการเปลี่ยนแปลงที่ต้องการทดสอบ แทนที่จะต้องจัดการกับการเปลี่ยนแปลงที่กำหนดเป้าหมายทั้งหมดพร้อมกัน
  • จัดการปุ่มเปิด/ปิดผ่าน adb คุณสามารถใช้คำสั่ง adb เพื่อเปิดและปิดใช้การเปลี่ยนแปลงที่สลับได้ในสภาพแวดล้อมการทดสอบอัตโนมัติ
  • แก้ไขข้อบกพร่องได้เร็วขึ้นโดยใช้รหัสการเปลี่ยนแปลงมาตรฐาน การเปลี่ยนแปลงที่เปิด/ปิดได้แต่ละรายการจะมีรหัสที่ไม่ซ้ำกันและชื่อที่คุณสามารถใช้เพื่อแก้ไขข้อบกพร่องของสาเหตุของปัญหาในเอาต์พุตบันทึกได้อย่างรวดเร็ว

ดูรายละเอียดทั้งหมดเกี่ยวกับการใช้เครื่องมือสำหรับกรณีการใช้งานแต่ละกรณีได้ที่เครื่องมือเฟรมเวิร์กความเข้ากันได้

การเปลี่ยนแปลงลักษณะการทำงานที่รวมอยู่ในเฟรมเวิร์กความเข้ากันได้

รายการในส่วนนี้อธิบายการเปลี่ยนแปลงที่เปิด/ปิดได้ซึ่งรวมอยู่ในเฟรมเวิร์กความเข้ากันได้ใน Android 14

คุณกรองรายการการเปลี่ยนแปลงตามสถานะเริ่มต้นได้

การเปลี่ยนแปลงที่เปิด/ปิดได้ในเฟรมเวิร์กความเข้ากันได้ใน Android 14

ACCESS_SHARED_IDENTITY

รหัสการเปลี่ยนแปลง: 259743961
สถานะเริ่มต้น: เปิดใช้สำหรับแอปทั้งหมด

ให้สิทธิ์เข้าถึงข้อมูลประจำตัวของแอปที่เปิดใช้งานหากแอปเลือกที่จะแชร์ข้อมูลประจำตัวโดยการเปิดใช้งานกิจกรรมนี้ด้วยอินสแตนซ์ของ ActivityOptions ซึ่งมีการเรียกใช้ ActivityOptions.setShareIdentityEnabled(boolean) ด้วยค่า true หรือหาก UID ของกิจกรรมที่เปิดใช้งานเหมือนกับ UID ของแอปที่เปิดใช้งาน เมื่อเปิดใช้การเปลี่ยนแปลงนี้และเป็นไปตามข้อกำหนดข้อใดข้อหนึ่ง กิจกรรมจะเข้าถึง UID และชื่อแพ็กเกจของแอปที่เปิดใช้งานได้ด้วย Activity.getLaunchedFromUid() และ Activity.getLaunchedFromPackage() ตามลำดับ

ANR_PRE_UDC_APIS_ON_SLOW_RESPONSES

รหัสการเปลี่ยนแปลง: 258236856
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

เมื่อเปิดใช้ จะทริกเกอร์ข้อความ "แอปพลิเคชันไม่ตอบสนอง" (ANR) เมื่อแอปตอบสนองต่อ API และฟังก์ชันการทำงานจาก Android 13 (ระดับ API 33) หรือต่ำกว่าช้า

AUTHORITY_ACCESS_CHECK_CHANGE_ID

รหัสการเปลี่ยนแปลง: 207133734
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป จะเปิดใช้การตรวจสอบสิทธิ์เข้าถึงสำหรับ UID ที่เรียกใช้ใน API ทั้งหมดที่เกี่ยวข้องกับการซิงค์

CAMERA_MIC_INDICATORS_NOT_PRESENT

รหัสการเปลี่ยนแปลง: 162547999
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

ระบุว่าอุปกรณ์นี้รองรับสัญญาณบอกสถานะกล้องและไมโครโฟน ค่าจะเป็น false หากมี เนื่องจากเมธอด CompatChanges#isChangeEnabled จะแสดงผล true หากไม่มีรหัสการเปลี่ยนแปลง

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_SENDER

รหัสการเปลี่ยนแปลง: 244637991
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

เมื่อแอปส่ง PendingIntent โดยใช้ PendingIntent#send() หรือวิธีการที่คล้ายกัน ตอนนี้แอปต้องเลือกใช้หากต้องการให้สิทธิ์การเปิดกิจกรรมในเบื้องหลังของตนเองเพื่อเริ่ม Intent ที่รอดำเนินการ

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่ส่วนในหน้าการเปลี่ยนแปลงลักษณะการทำงานของ Android 14 เกี่ยวกับ ข้อจำกัดเพิ่มเติมในการเริ่มกิจกรรมจากเบื้องหลัง

DETACH_THROWS_ISE_ONLY

รหัสการเปลี่ยนแปลง: 236825255
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

แจ้งเพื่อควบคุมข้อยกเว้นที่ถูกต้องซึ่งส่งโดย #detachImage

#detachImage มีการบันทึกไว้ว่าแสดงข้อผิดพลาด IllegalStateException ในกรณีที่เกิดข้อผิดพลาด เมธอดตัวช่วยแบบเนทีฟสำหรับเมธอดนี้แสดงข้อผิดพลาด RuntimeException หากมีการละทิ้ง Surface ขณะแยก Image

ลักษณะการทำงานของข้อยกเว้นที่ไม่ได้บันทึกไว้ก่อนหน้านี้จะยังคงมีผลใน Android 13 (ระดับ API 33)

หลังจาก Android 13 (ระดับ API 33) เมธอดตัวช่วยแบบเนทีฟจะแสดงเฉพาะ IllegalStateExceptions ตามเอกสารประกอบ

เมื่อเปิดใช้การเปลี่ยนแปลงนี้ #detachImage จะแสดง IllegalStateException เฉพาะเมื่อพบข้อผิดพลาดขณะแยกรูปภาพเท่านั้น ลักษณะการทำงานจะยังคงเหมือนเดิมสำหรับแอปที่กำหนดเป้าหมายเป็น Android 13 (API ระดับ 33) และต่ำกว่า

DOWNSCALED

รหัสการเปลี่ยนแปลง: 168419799
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

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

เมื่อเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจแอป ระบบจะบังคับปรับขนาดแอปเป็นค่าตัวคูณมาตราส่วนสูงสุดที่เปิดใช้ เช่น ระบบจะใช้ 80% หากเปิดใช้ทั้ง 80% และ 70% (DOWNSCALE_80 และ DOWNSCALE_70) เมื่อเปิดใช้ทั้งการเปลี่ยนแปลงนี้และ DOWNSCALED_INVERSE ระบบจะให้ความสำคัญกับ DOWNSCALED_INVERSE และใช้ค่าตัวคูณมาตราส่วนแบบผกผัน

DOWNSCALED_INVERSE

รหัสการเปลี่ยนแปลง: 273564678
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

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

เมื่อเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจแอป ระบบจะบังคับปรับขนาดแอปเป็นค่าตัวคูณมาตราส่วนต่ำสุดที่เปิดใช้ เช่น ระบบจะใช้ 80% หากเปิดใช้ทั้ง 80% และ 70% (DOWNSCALE_80 และ DOWNSCALE_70) เนื่องจากเมื่อใช้แบบผกผัน ค่าตัวคูณมาตราส่วน 80% จะเท่ากับ 125% ซึ่งน้อยกว่าการปรับขนาด 142.86% ที่ใช้เมื่อใช้ค่าตัวคูณมาตราส่วน 70% แบบผกผัน เมื่อเปิดใช้ทั้งการเปลี่ยนแปลงนี้และ DOWNSCALED ระบบจะให้ความสำคัญกับ DOWNSCALED_INVERSE และใช้ค่าตัวคูณมาตราส่วนแบบผกผัน

DOWNSCALE_30

รหัสการเปลี่ยนแปลง: 189970040
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

หากเปิดใช้ DOWNSCALED ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 30% ของจอแสดงผลจริง หากเปิดใช้ DOWNSCALED_INVERSE ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 333.33% ของจอแสดงผลจริง

DOWNSCALE_35

รหัสการเปลี่ยนแปลง: 189969749
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

หากเปิดใช้ DOWNSCALED ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 35% ของจอแสดงผลจริง หากเปิดใช้ DOWNSCALED_INVERSE ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 285.71% ของจอแสดงผลจริง

DOWNSCALE_40

รหัสการเปลี่ยนแปลง: 189970038
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

หากเปิดใช้ DOWNSCALED ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 40% ของจอแสดงผลจริง หากเปิดใช้ DOWNSCALED_INVERSE ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 250% ของจอแสดงผลจริง

DOWNSCALE_45

รหัสการเปลี่ยนแปลง: 189969782
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

หากเปิดใช้ DOWNSCALED ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 45% ของจอแสดงผลจริง หากเปิดใช้ DOWNSCALED_INVERSE ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 222.22% ของจอแสดงผลจริง

DOWNSCALE_50

รหัสการเปลี่ยนแปลง: 176926741
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

หากเปิดใช้ DOWNSCALED ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 50% ของจอแสดงผลจริง หากเปิดใช้ DOWNSCALED_INVERSE ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 200% ของจอแสดงผลจริง

DOWNSCALE_55

รหัสการเปลี่ยนแปลง: 189970036
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

หากเปิดใช้ DOWNSCALED ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 55% ของจอแสดงผลจริง หากเปิดใช้ DOWNSCALED_INVERSE ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 181.82% ของจอแสดงผลจริง

DOWNSCALE_60

รหัสการเปลี่ยนแปลง: 176926771
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

หากเปิดใช้ DOWNSCALED ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 60% ของจอแสดงผลจริง หากเปิดใช้ DOWNSCALED_INVERSE ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 166.67% ของจอแสดงผลจริง

DOWNSCALE_65

รหัสการเปลี่ยนแปลง: 189969744
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

หากเปิดใช้ DOWNSCALED ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 65% ของจอแสดงผลจริง หากเปิดใช้ DOWNSCALED_INVERSE ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 153.85% ของจอแสดงผลจริง

DOWNSCALE_70

รหัสการเปลี่ยนแปลง: 176926829
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

หากเปิดใช้ DOWNSCALED ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 70% ของจอแสดงผลจริง หากเปิดใช้ DOWNSCALED_INVERSE ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 142.86% ของจอแสดงผลจริง

DOWNSCALE_75

รหัสการเปลี่ยนแปลง: 189969779
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

หากเปิดใช้ DOWNSCALED ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 75% ของจอแสดงผลจริง หากเปิดใช้ DOWNSCALED_INVERSE ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 133.33% ของจอแสดงผลจริง

DOWNSCALE_80

รหัสการเปลี่ยนแปลง: 176926753
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

หากเปิดใช้ DOWNSCALED ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 80% ของจอแสดงผลจริง หากเปิดใช้ DOWNSCALED_INVERSE ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 125% ของจอแสดงผลจริง

DOWNSCALE_85

รหัสการเปลี่ยนแปลง: 189969734
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

หากเปิดใช้ DOWNSCALED ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 85% ของจอแสดงผลจริง หากเปิดใช้ DOWNSCALED_INVERSE ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 117.65% ของจอแสดงผลจริง

DOWNSCALE_90

รหัสการเปลี่ยนแปลง: 182811243
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

หากเปิดใช้ DOWNSCALED ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 90% ของจอแสดงผลจริง หากเปิดใช้ DOWNSCALED_INVERSE ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะบังคับให้แอปถือว่ากำลังทำงานบนจอแสดงผลที่มีความละเอียดแนวตั้งและแนวนอน 111.11% ของจอแสดงผลจริง

ENABLE_PLATFORM_MDNS_BACKEND

รหัสการเปลี่ยนแปลง: 270306772
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

แอปที่กำหนดเป้าหมายเป็น Android 14 ขึ้นไปจะใช้การติดตั้งใช้งาน mDNS ที่ผสานรวมกับแพลตฟอร์มเป็นแบ็กเอนด์ ส่วนแอปที่กำหนดเป้าหมายเป็นเวอร์ชันก่อนหน้าจะยังคงใช้แบ็กเอนด์ Network Service Discovery (NSD) เดิม (โดยมี Daemon แบบเนทีฟเดิมเป็นแบ็กเอนด์ NsdManager)

ENABLE_SELF_CERTIFIED_CAPABILITIES_DECLARATION

รหัสการเปลี่ยนแปลง: 266524688
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

การตรวจสอบความสามารถที่ผ่านการรับรองด้วยตนเองจะเปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 ขึ้นไป ดูรายละเอียดเพิ่มเติมได้ที่ NetworkCapabilities

ENFORCE_PACKAGE_VISIBILITY_FILTERING

รหัสการเปลี่ยนแปลง: 154726397
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป แอปต้องประกาศความต้องการระดับการเข้าถึงแพ็กเกจในไฟล์ Manifest เพื่อเข้าถึง API AccountManager

ENFORCE_READ_ONLY_JAVA_DCL

รหัสการเปลี่ยนแปลง: 218865702
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่ส่วนในหน้าการเปลี่ยนแปลงลักษณะการทำงานของ Android 14 เกี่ยวกับ การโหลดโค้ดแบบไดนามิกที่ปลอดภัยยิ่งขึ้น

ENFORCE_STRICT_QUERY_BUILDER

รหัสการเปลี่ยนแปลง: 143231523
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เมื่อเปิดใช้ SQLiteQueryBuilder จะยืนยันการเลือกการค้นหา CalendarProvider2 ทั้งหมดกับอาร์กิวเมนต์ที่เป็นอันตราย

EXACT_LISTENER_ALARMS_DROPPED_ON_CACHED

รหัสการเปลี่ยนแปลง: 265195908
สถานะเริ่มต้น: เปิดใช้สำหรับแอปทั้งหมด

ระบบจะยกเลิกการตั้งปลุกแบบเจาะจงที่คาดว่าจะมีการเรียกกลับ AlarmManager.OnAlarmListener เมื่อแอปที่เรียกเข้าสู่สถานะแคช

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงสัญญาณเตือนเจาะจงใน Android 14 ได้ที่ ระบบจะปฏิเสธสัญญาณเตือนเจาะจงโดยค่าเริ่มต้น

FGS_TYPE_CHECK_FOR_INSTANT_APPS

รหัสการเปลี่ยนแปลง: 261055255
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

เมื่อเปิดใช้ Instant App ต้องระบุประเภทบริการที่ทำงานอยู่เบื้องหน้าที่เหมาะสมสำหรับบริการที่ประกาศไว้ในไฟล์ Manifest ของแอป

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่หน้าซึ่งอธิบาย การเปลี่ยนแปลงประเภทบริการที่ทำงานอยู่เบื้องหน้า

FGS_TYPE_NONE_DEPRECATION_CHANGE_ID

รหัสการเปลี่ยนแปลง: 255042465
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

เมื่อเปิดใช้ แอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไปซึ่งเริ่มบริการที่ทำงานอยู่เบื้องหน้าโดยใช้ประเภท FOREGROUND_SERVICE_TYPE_NONE ที่เลิกใช้งานแล้วจะส่งผลให้มีคำเตือนในบันทึก

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่หน้าซึ่งอธิบาย การเปลี่ยนแปลงประเภทบริการที่ทำงานอยู่เบื้องหน้า

FGS_TYPE_NONE_DISABLED_CHANGE_ID

รหัสการเปลี่ยนแปลง: 255038118
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

เมื่อเปิดใช้ แอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไปซึ่งเริ่มบริการที่ทำงานอยู่เบื้องหน้าโดยใช้ประเภท FOREGROUND_SERVICE_TYPE_NONE ที่เลิกใช้งานแล้วจะส่งผลให้เกิดข้อยกเว้น

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่หน้าซึ่งอธิบาย การเปลี่ยนแปลงประเภทบริการที่ทำงานอยู่เบื้องหน้า

FGS_TYPE_PERMISSION_CHANGE_ID

รหัสการเปลี่ยนแปลง: 254662522
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

เมื่อเปิดใช้ แอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไปซึ่งเริ่มบริการที่ทำงานอยู่เบื้องหน้าโดยไม่มีสิทธิ์ที่จำเป็นซึ่งเชื่อมโยงกับประเภทบริการที่ทำงานอยู่เบื้องหน้านั้นจะส่งผลให้เกิด SecurityException

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่หน้าซึ่งอธิบาย การเปลี่ยนแปลงประเภทบริการที่ทำงานอยู่เบื้องหน้า

FORCE_DISABLE_HEVC_SUPPORT

รหัสการเปลี่ยนแปลง: 174227820
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

บังคับปิดใช้แอปไม่ให้รองรับความสามารถด้านสื่อ HEVC แอปควรประกาศความสามารถด้านสื่อที่รองรับในไฟล์ Manifest แต่สามารถใช้ Flag นี้เพื่อบังคับให้แอปไม่รองรับ HEVC ได้ ซึ่งจะบังคับให้มีการแปลงขณะเข้าถึงสื่อที่เข้ารหัสใน HEVC การตั้งค่าแฟล็กนี้จะลบล้างค่าเริ่มต้นระดับระบบปฏิบัติการสำหรับแอป ระบบจะปิดใช้โดยค่าเริ่มต้น ซึ่งหมายความว่าค่าเริ่มต้นของระบบปฏิบัติการจะมีความสำคัญเหนือกว่า หากเปิดใช้ทั้งแฟล็กนี้และ FORCE_ENABLE_HEVC_SUPPORT ระบบปฏิบัติการจะไม่สนใจทั้ง 2 แฟล็ก

FORCE_ENABLE_HEVC_SUPPORT

รหัสการเปลี่ยนแปลง: 174228127
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

บังคับให้เปิดใช้แอปเพื่อรองรับความสามารถด้านสื่อ HEVC แอปควรประกาศความสามารถด้านสื่อที่รองรับในไฟล์ Manifest แต่สามารถใช้ Flag นี้เพื่อบังคับให้แอปที่รองรับ HEVC หลีกเลี่ยงการแปลงขณะเข้าถึงสื่อที่เข้ารหัสใน HEVC การตั้งค่าแฟล็กนี้จะลบล้างค่าเริ่มต้นระดับระบบปฏิบัติการสำหรับแอป ระบบจะปิดใช้โดยค่าเริ่มต้น ซึ่งหมายความว่าค่าเริ่มต้นของระบบปฏิบัติการจะมีความสำคัญเหนือกว่า หากเปิดใช้ทั้งแฟล็กนี้และ FORCE_DISABLE_HEVC_SUPPORT ระบบปฏิบัติการจะไม่สนใจแฟล็กทั้ง 2 รายการ

FORCE_NON_RESIZE_APP

รหัสการเปลี่ยนแปลง: 181146395
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

บังคับให้แพ็กเกจที่ใช้เป็นแบบปรับขนาดไม่ได้

FORCE_RESIZE_APP

รหัสการเปลี่ยนแปลง: 174042936
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

บังคับให้แพ็กเกจที่ใช้ปรับขนาดได้ เราอนุญาตให้ปรับขนาดในโหมดหน้าต่างแบบเต็มหน้าจอเท่านั้น แต่จะไม่บังคับให้แอปเข้าสู่โหมดหลายหน้าต่างที่ปรับขนาดได้

GWP_ASAN

รหัสการเปลี่ยนแปลง: 145634846
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เปิดใช้การตรวจหาข้อบกพร่องของหน่วยความจำของระบบที่สุ่มตัวอย่างในแอป

ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ GWP-ASan ได้ที่คู่มือ GWP-ASan

IMPLICIT_INTENTS_ONLY_MATCH_EXPORTED_COMPONENTS

รหัสการเปลี่ยนแปลง: 229362273
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป ต้องส่งออกคอมโพเนนต์เพื่อเรียกใช้ผ่าน Intent โดยนัย หากไม่มีการส่งออกและเรียกใช้คอมโพเนนต์ ระบบจะนำคอมโพเนนต์นั้นออกจากรายการผู้รับ ซึ่งจะมีผลกับกิจกรรมและการออกอากาศโดยเฉพาะ

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่ส่วนในหน้าการเปลี่ยนแปลงลักษณะการทำงานของ Android 14 เกี่ยวกับ ข้อจำกัดของ Intent โดยนัยและ Intent รอดำเนินการ

รหัสการเปลี่ยนแปลง: 266201607
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (API ระดับ 34) ขึ้นไป แอปต้องขอให้ผู้ใช้ให้ความยินยอมก่อนเซสชันการจับภาพ MediaProjection แต่ละครั้ง

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่ส่วนในหน้าการเปลี่ยนแปลงลักษณะการทำงานของ Android 14 เกี่ยวกับวิธีที่ ต้องได้รับความยินยอมจากผู้ใช้สำหรับเซสชันการจับภาพ MediaProjection แต่ละเซสชัน

NATIVE_HEAP_ZERO_INIT

รหัสการเปลี่ยนแปลง: 178038272
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เปิดใช้การเริ่มต้นเป็นศูนย์โดยอัตโนมัติของการจัดสรรหน่วยความจำฮีปแบบเนทีฟ

NATIVE_MEMTAG_ASYNC

รหัสการเปลี่ยนแปลง: 145772972
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เปิดใช้การตรวจสอบแท็กหน่วยความจำแบบอะซิงโครนัส (ASYNC) ในกระบวนการนี้ แฟล็กนี้มีผลกับฮาร์ดแวร์ที่รองรับ Memory Tagging Extension (MTE) ของ ARM เท่านั้น

NATIVE_MEMTAG_SYNC

รหัสการเปลี่ยนแปลง: 177438394
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เปิดใช้การตรวจสอบแท็กหน่วยความจำแบบซิงโครนัส (SYNC) ในกระบวนการนี้ แฟล็กนี้มีผลกับฮาร์ดแวร์ที่รองรับ Memory Tagging Extension (MTE) ของ ARM เท่านั้น หากเปิดใช้ทั้ง NATIVE_MEMTAG_ASYNC และตัวเลือกนี้ ตัวเลือกนี้จะมีผลเหนือกว่าและระบบจะเปิดใช้ MTE ในโหมด SYNC

OVERRIDE_ANY_ORIENTATION

รหัสการเปลี่ยนแปลง: 265464455
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เมื่อเปิดใช้ การเปลี่ยนแปลงนี้จะอนุญาตให้ใช้การลบล้างการวางแนวต่อไปนี้ ไม่ว่ากิจกรรมจะขอการวางแนวใดก็ตาม

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

รหัสการเปลี่ยนแปลง: 191514214
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เมื่อเปิดใช้ การเปลี่ยนแปลงนี้จะบังคับให้แพ็กเกจที่ใช้ละเว้นค่าปัจจุบันของ android:resizeableActivity รวมถึง SDK เป้าหมายที่เท่ากับหรือต่ำกว่า M และพิจารณาว่ากิจกรรมปรับขนาดไม่ได้ ในกรณีนี้ ค่าของการหมุนและการครอบตัดกล้องจะขึ้นอยู่กับการชดเชยที่จำเป็นเท่านั้น โดยพิจารณาจากการหมุนจอแสดงผลปัจจุบัน

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

รหัสการเปลี่ยนแปลง: 189229956
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เมื่อเปิดใช้ การเปลี่ยนแปลงนี้จะบังคับให้แพ็กเกจที่ใช้ลบล้างลักษณะการหมุนและการครอบตัดกล้องเริ่มต้น และแสดงผล CaptureRequest.SCALER_ROTATE_AND_CROP_NONE เสมอ

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

รหัสการเปลี่ยนแปลง: 266124927
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เปิดใช้ SCREEN_ORIENTATION_REVERSE_LANDSCAPE สำหรับแอปที่ใช้ เว้นแต่จะเปิดใช้ OVERRIDE_ANY_ORIENTATION ด้วย ระบบจะใช้ SCREEN_ORIENTATION_REVERSE_LANDSCAPE เฉพาะเมื่อกิจกรรมระบุการวางแนวแนวนอน การเปิดใช้การเปลี่ยนแปลงนี้จะช่วยให้คุณทดสอบลักษณะการทำงานของแอปเพื่อดูความแตกต่างระหว่างอุปกรณ์ที่การวางแนวแนวนอนสอดคล้องกับ Surface.ROTATION_90 และอุปกรณ์ที่สอดคล้องกับ Surface.ROTATION_270

OVERRIDE_MIN_ASPECT_RATIO

รหัสการเปลี่ยนแปลง: 174042980
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

การเปลี่ยนแปลงนี้เป็นตัวควบคุมการเปลี่ยนแปลงทั้งหมดที่บังคับใช้สัดส่วนภาพขั้นต่ำที่กำหนด การเปิดใช้การเปลี่ยนแปลงนี้จะช่วยให้ใช้สัดส่วนภาพขั้นต่ำต่อไปนี้ได้

เมื่อเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจแอป ระบบจะลบล้างสัดส่วนภาพขั้นต่ำที่ระบุไว้ในไฟล์ Manifest ของแอปเป็นสัดส่วนภาพที่เปิดใช้มากที่สุด เว้นแต่ค่าไฟล์ Manifest ของแอปจะสูงกว่า

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

รหัสการเปลี่ยนแปลง: 218959984
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เมื่อเปิดใช้ จะลบล้างข้อจำกัดสัดส่วนภาพขั้นต่ำในโหมดเต็มหน้าจอแนวตั้งเพื่อใช้พื้นที่หน้าจอทั้งหมดที่มีอยู่

OVERRIDE_MIN_ASPECT_RATIO_LARGE

รหัสการเปลี่ยนแปลง: 180326787
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เมื่อเปิดใช้ OVERRIDE_MIN_ASPECT_RATIO ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะตั้งค่าสัดส่วนภาพขั้นต่ำของกิจกรรมเป็นค่าขนาดใหญ่ตามที่ OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE กำหนดไว้

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

รหัสการเปลี่ยนแปลง: 180326845
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เมื่อเปิดใช้ OVERRIDE_MIN_ASPECT_RATIO ด้วย การเปิดใช้การเปลี่ยนแปลงนี้สำหรับแพ็กเกจจะตั้งค่าสัดส่วนภาพขั้นต่ำของกิจกรรมเป็นค่าปานกลางตามที่ OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE กำหนดไว้

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

รหัสการเปลี่ยนแปลง: 203647190
สถานะเริ่มต้น: เปิดใช้สำหรับแอปทั้งหมด

เมื่อเปิดใช้ OVERRIDE_MIN_ASPECT_RATIO ด้วย การเปลี่ยนแปลงนี้จะจำกัดการเปลี่ยนแปลงอื่นๆ ที่บังคับให้อัตราส่วนภาพขั้นต่ำของกิจกรรมเป็นค่าหนึ่งๆ เช่น OVERRIDE_MIN_ASPECT_RATIO_LARGE และ OVERRIDE_MIN_ASPECT_RATIO_MEDIUM สำหรับกิจกรรมที่มีการวางแนวในแนวตั้งด้วย

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

รหัสการเปลี่ยนแปลง: 236283604
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เมื่อเปิดใช้ การเปลี่ยนแปลงนี้จะยกเว้นแพ็กเกจที่ใช้จากข้อจำกัดการละเว้นการวางแนวที่ผู้ผลิตอุปกรณ์ตั้งค่าได้

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

รหัสการเปลี่ยนแปลง: 265451093
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เปิดใช้ SCREEN_ORIENTATION_NOSENSOR สำหรับแอปที่ใช้ ระบบจะใช้ SCREEN_ORIENTATION_NOSENSOR เฉพาะเมื่อกิจกรรมไม่ได้ระบุการวางแนวคงที่อื่นๆ เว้นแต่จะเปิดใช้ OVERRIDE_ANY_ORIENTATION ด้วย

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

รหัสการเปลี่ยนแปลง: 265452344
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เปิดใช้ SCREEN_ORIENTATION_PORTRAIT สำหรับแอปที่ใช้ ระบบจะใช้ SCREEN_ORIENTATION_PORTRAIT เฉพาะเมื่อกิจกรรมไม่ได้ระบุการวางแนวคงที่อื่นๆ เว้นแต่จะเปิดใช้ OVERRIDE_ANY_ORIENTATION ด้วย

RATE_LIMIT_TOASTS

รหัสการเปลี่ยนแปลง: 174840628
สถานะเริ่มต้น: การเปลี่ยนแปลงนี้เปิด/ปิดไม่ได้ ระบบจะบันทึกไว้โดยเฟรมเวิร์กความเข้ากันได้เท่านั้น

เปิดใช้การจำกัดอัตราคำขอสำหรับจำนวนการเรียกใช้ Toast.show() เพื่อป้องกันไม่ให้ผู้ใช้ได้รับข้อความโทสต์มากเกินไปในเวลาที่จำกัด ความพยายามใดๆ ในการแสดงข้อความป๊อปอัปมากกว่าที่อนุญาตในกรอบเวลาหนึ่งๆ จะส่งผลให้ระบบทิ้งข้อความป๊อปอัปนั้น

REJECT_NEGATIVE_NETWORK_ESTIMATES

รหัสการเปลี่ยนแปลง: 253665015
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

เมื่อเปิดใช้ จะกำหนดให้ไบต์เครือข่ายโดยประมาณต้องไม่เป็นค่าลบ

REQUIRE_NETWORK_CONSTRAINT_FOR_NETWORK_JOB_WORK_ITEMS

รหัสการเปลี่ยนแปลง: 241104082
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (API ระดับ 34) ขึ้นไป งานที่โฮสต์จะต้องระบุข้อจำกัดของเครือข่ายหาก JobWorkItem ที่รวมอยู่ระบุการใช้งานเครือข่าย

REQUIRE_NETWORK_PERMISSIONS_FOR_CONNECTIVITY_JOBS

รหัสการเปลี่ยนแปลง: 271850009
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (API ระดับ 34) ขึ้นไป กำหนดให้แอปต้องระบุทั้งสิทธิ์ INTERNET และ ACCESS_NETWORK_STATE เมื่อกำหนดเวลางานที่มีข้อจำกัดด้านการเชื่อมต่อ

THROW_ON_INVALID_DATA_TRANSFER_IMPLEMENTATION

รหัสการเปลี่ยนแปลง: 255371817
สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 14 (ระดับ API 34) ขึ้นไป ระบบจะส่งข้อยกเว้นหากแอปไม่ได้ใช้ API การโอนข้อมูลที่จำเป็นทั้งหมดอย่างถูกต้องเมื่อระบุงานการโอนข้อมูลที่เริ่มต้นโดยผู้ใช้

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่หน้าซึ่งอธิบายวิธี ย้ายข้อมูลบริการที่ทำงานอยู่เบื้องหน้าไปยังงานการโอนข้อมูลที่ผู้ใช้เริ่ม

USE_EXPERIMENTAL_COMPONENT_ALIAS

รหัสการเปลี่ยนแปลง: 196254758
สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เมื่อเปิดใช้ ระบบจะอนุญาตให้แพ็กเกจ "android" ใช้นามแฝงของคอมโพเนนต์ได้