บันทึกประจำรุ่นของ Android 9

หน้านี้สรุปคุณสมบัติหลักๆ ในรุ่น Android 9 และมีลิงก์ไปยังข้อมูลเพิ่มเติม สรุปคุณลักษณะเหล่านี้ได้รับการจัดระเบียบตามตำแหน่งเอกสารประกอบของคุณลักษณะบนไซต์นี้ ดู การอัปเดตไซต์เดือนสิงหาคม 2018 สำหรับคำแนะนำในการย้ายและการเปลี่ยนชื่อส่วน

สร้าง

อิมเมจระบบทั่วไป (GSI)

อิมเมจระบบทั่วไป (GSI) คืออิมเมจระบบที่มีการกำหนดค่าที่ปรับเปลี่ยนสำหรับอุปกรณ์ Android Generic System Image (GSI) มีรายละเอียดเกี่ยวกับความแตกต่างระหว่าง GSI สำหรับอุปกรณ์ที่เปิดตัวด้วย Android 9 และอุปกรณ์ที่อัปเกรดเป็น Android 9

สถาปัตยกรรม

เลเยอร์นามธรรมของฮาร์ดแวร์ (HAL)

กรอบ HIDL เข้ากันได้แบบย้อนหลัง

การตรวจสอบความเข้ากันได้แบบย้อนหลังของเฟรมเวิร์ก HIDL เป็นวิธีการตรวจสอบความเข้ากันได้แบบย้อนหลังของเฟรมเวิร์ก

HAL ที่พร้อมใช้งานแบบไดนามิก

HAL ที่พร้อมใช้งานแบบไดนามิก รองรับการปิดระบบย่อยฮาร์ดแวร์ Android แบบไดนามิกเมื่อไม่ได้ใช้งานหรือไม่จำเป็น

เอชดีแอล

HIDL Memory Block

HIDL MemoryBlock เป็นเลเยอร์นามธรรมที่สร้างขึ้นบน hidl_memory , HIDL @1.0::IAllocator และ HIDL @1.0::IMapper ได้รับการออกแบบมาสำหรับบริการ HIDL ที่มีบล็อกหน่วยความจำหลายบล็อกที่ใช้ฮีปหน่วยความจำเดียวร่วมกัน

การซ้อนทับแผนผังอุปกรณ์

ภาพซ้อนทับที่บีบอัด

Android 9 ขึ้นไปรองรับการ ซ้อนทับแบบบีบอัด ในอิมเมจ Device Tree Blob Overlay (DTBO) เมื่อใช้เวอร์ชัน 1 ของส่วนหัวตารางแผนผังอุปกรณ์

อัพเดตดีทีโอ

Android 9 และสูงกว่าต้องการให้ bootloader ส่ง Blob แผนผังอุปกรณ์แบบรวมไปยังเคอร์เนลก่อนที่จะแก้ไขคุณสมบัติที่กำหนดไว้ใน Device Tree Overlays (DTO)

การกำหนดเวอร์ชันส่วนหัวรูปภาพ DTBO

Android 9 ขึ้นไปจะมี ช่องเวอร์ชัน ในส่วนหัวรูปภาพ DTBO

การตรวจสอบดีทีบีโอ

Android 9 และสูงกว่าต้องใช้พาร์ติชัน DTBO หากต้องการเพิ่มโหนดหรือเปลี่ยนแปลงคุณสมบัติใน SoC DT บูตโหลดเดอร์จะต้องซ้อนทับ DT เฉพาะอุปกรณ์แบบไดนามิกบน SoC DT สำหรับข้อมูลเพิ่มเติม โปรดดูที่ การคอมไพล์และการตรวจสอบ

การปฏิบัติตามเคอร์เนล

Android 9 ขึ้นไปมีข้อกำหนดที่ส่งผลต่อเคอร์เนล อินเทอร์เฟซ และการใช้งาน DTBO สำหรับข้อมูลเพิ่มเติม โปรดดูหน้าเหล่านี้:

ผู้จัดจำหน่าย NDK

การเปลี่ยนแปลงการออกแบบ

สำหรับข้อมูลเกี่ยวกับการเปลี่ยนแปลงการออกแบบ VNDK ใน Android 9 ขึ้นไป โปรดดูหน้าเหล่านี้:

ตัวตรวจสอบ ABI

หน้า เสถียรภาพของ ABI อธิบายถึงตัวตรวจสอบ Application binary Interface (ABI) ซึ่งช่วยให้มั่นใจว่าการเปลี่ยนแปลงที่ทำกับไลบรารี VNDK จะรักษาการปฏิบัติตามข้อกำหนดของ ABI

สแนปช็อต VNDK

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

อ็อบเจ็กต์อินเทอร์เฟซผู้ขาย (อ็อบเจ็กต์ VINTF)

หน้าต่อไปนี้ในส่วน Vendor Interface Object อธิบายการอัปเดตใน Android 9 และสูงกว่า:

กำหนดการเลิกใช้งาน HIDL

หน้าต่อไปนี้จะอธิบายวิธีที่ Android เลิกใช้และลบ HIDL HALs:

บูตโหลดเดอร์

พาร์ติชั่นผลิตภัณฑ์

Android 9 และสูงกว่ารองรับการสร้าง /product โดยใช้ระบบ Android build ก่อนหน้านี้ Android 8.x บังคับให้แยกส่วนประกอบเฉพาะระบบบนชิป (SoC) จากพาร์ติชัน /system ไปยังพาร์ติ /vendor โดยไม่จัดสรรพื้นที่สำหรับส่วนประกอบเฉพาะของ OEM ที่สร้างจากระบบ Android build

การปฏิบัติตามเหตุผลการบูตตาม Canonical

หน้า Canonical Boot Reason อธิบายการเปลี่ยนแปลงข้อกำหนดเหตุผลในการบูต bootloader ใน Android 9 ขึ้นไป

ระบบเป็นรูท

อุปกรณ์ทั้งหมดที่เปิดตัวด้วย Android 9 ขึ้นไปจะต้องใช้ system-as-root ซึ่งจะรวม ramdisk.img เข้ากับ system.img (หรือที่เรียกว่า no-ramdisk) ซึ่งจะติดตั้งเป็น rootfs

การกำหนดเวอร์ชันส่วนหัวของอิมเมจสำหรับบูต

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

DTBO อยู่ในช่วงฟื้นตัว

เพื่อป้องกันความล้มเหลวของ OTA เนื่องจากความไม่ตรงกันระหว่างอิมเมจการกู้คืนและพาร์ติชัน DTBO บนอุปกรณ์ที่ไม่ใช่ A/B อิมเมจการกู้คืนจะต้องมี ข้อมูลจากอิมเมจ DTBO

แสดง

แสดงพิลึก

ช่องตัดของจอแสดงผล ช่วยให้นักพัฒนาแอปสามารถสร้างประสบการณ์ที่ดื่มด่ำแบบไร้ขอบเขต ในขณะที่ยังคงให้พื้นที่สำหรับเซ็นเซอร์สำคัญที่ด้านหน้าของอุปกรณ์

หมุนเวียนข้อเสนอแนะ

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

การเปลี่ยนแอปที่ซิงโครไนซ์

การเปลี่ยนแอปที่ซิงโครไนซ์ ทำให้มีภาพเคลื่อนไหวการเปลี่ยนแอปใหม่

การจัดหมวดหมู่ข้อความ (เดิมเรียกว่า TEXTCLASSIFIER)

Android 9 ขึ้นไปมี บริการ Text Classifier ซึ่งเป็นวิธีที่แนะนำในการใช้การจัดประเภทข้อความและการใช้บริการเริ่มต้น

สีช่วงกว้าง

Android 9 ขึ้นไปรองรับช่วงสีกว้าง ซึ่งรวมถึง:

  • ช่วงไดนามิกสูง (HDR)
  • กำลังประมวลผลเนื้อหาในพื้นที่สี BT2020 แต่ไม่ใช่เป็นพื้นที่ข้อมูลเป้าหมายปลายทาง

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

ความเข้ากันได้

เอกสารคำจำกัดความความเข้ากันได้ของ Android

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

การตั้งค่า

วิดเจ็ตแอปที่ดีกว่า

เฟรมเวิร์กวิดเจ็ตแอป Android ช่วยให้มองเห็นการโต้ตอบของผู้ใช้ได้มากขึ้น โดยเฉพาะเมื่อผู้ใช้ลบหรือเพิ่มวิดเจ็ตด้วยตนเอง ฟังก์ชั่นนี้มาพร้อมกับ Launcher3 เป็นค่าเริ่มต้น

ผู้ผลิตจำเป็นต้องอัปเดตแอป Launcher (ซึ่งมาพร้อมกับอุปกรณ์) เพื่อรองรับฟีเจอร์นี้ หากไม่ได้ขึ้นอยู่กับ Launcher3 OEM จำเป็นต้องสนับสนุน ฟิลด์ widgetFeatures ใหม่ในตัวเรียกใช้งานเริ่มต้น

โปรดทราบว่าฟีเจอร์นี้จะใช้งานได้ตั้งแต่ต้นจนจบเมื่อตัวเรียกใช้งานใช้งานตามที่คาดไว้เท่านั้น AOSP รวมถึงการใช้งานตัวอย่าง ดู AOSP Change-Id Iccd6f965fa3d61992244a365efc242122292c0ca สำหรับโค้ดตัวอย่างที่ให้ไว้

การแจ้งเตือนสถานะอุปกรณ์เปลี่ยนไปยังผู้ติดตั้งแพ็คเกจ

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

ซอร์สโค้ดการแจ้งเตือนการเปลี่ยนสถานะอุปกรณ์อยู่ที่ตำแหน่งต่อไปนี้ภายใต้ platform/frameworks/base :

  • api/system-current.txt
  • core/java/android/content/Intent.java
  • core/res/AndroidManifest.xml
  • services/core/java/com/android/server/am/ActivityManagerService.java

สถาปัตยกรรมสารสนเทศ

การเปลี่ยนแปลง สถาปัตยกรรมข้อมูลสำหรับแอปการตั้งค่า ทำให้มีฟังก์ชันการทำงานมากขึ้นและการใช้งานที่ง่ายขึ้น

การทดสอบ

รับรอง

เครื่องมือบรรทัดคำสั่ง Atest ช่วยให้คุณสร้าง ติดตั้ง และเรียกใช้การทดสอบ Android ในเครื่องได้ ซึ่งจะช่วยเร่งการทดสอบซ้ำได้อย่างมากโดยไม่ต้องมีความรู้เกี่ยวกับตัวเลือกบรรทัดคำสั่งชุดทดสอบของ Trade Federation

ชุดทดสอบความเข้ากันได้

ดาวน์โหลดซีทีเอส

แพ็คเกจชุดทดสอบความเข้ากันได้ (CTS) ที่รองรับ Android 9 มีอยู่ในหน้า ดาวน์โหลด CTS ซอร์สโค้ดสำหรับการทดสอบที่รวมไว้สามารถซิงค์กับแท็ก android-cts-9.0_r1 ในแผนผังโอเพ่นซอร์ส

ตัวเลือกซีทีเอส

สำหรับ Android 9 นั้น CTS v2 ได้รับคำ สั่งและอาร์กิวเมนต์ ต่อไปนี้:

  • run retry ลองทดสอบทั้งหมดที่ล้มเหลวหรือไม่ได้ดำเนินการจากเซสชันก่อนหน้าอีกครั้ง
  • '--shard-count ชิ้นส่วนที่ CTS เรียกใช้ในจำนวนชิ้นส่วนอิสระที่กำหนด เพื่อทำงานบนอุปกรณ์หลายเครื่องพร้อมกัน

นอกจากนี้ คำสั่ง --retry-type ที่ไม่มีเอกสารก่อนหน้านี้ได้ถูกเพิ่มลงในการอ้างอิงคำสั่งคอนโซล CTS v2 เดียวกัน

บริการองค์ประกอบความปลอดภัย (SE)

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

กล่องฟิวชันเซ็นเซอร์

กล่องฟิวชันเซ็นเซอร์ใช้ในการทดสอบฟิวชันเซ็นเซอร์ชุดทดสอบภาพกล้อง (Camera ITS) และการทดสอบการซิงค์กล้องหลายตัว และจัดเตรียมสภาพแวดล้อมการทดสอบที่สอดคล้องกันสำหรับการวัดความแม่นยำในการประทับเวลาของกล้องและเซ็นเซอร์อื่นๆ สำหรับโทรศัพท์ Android ดูหน้าเหล่านี้สำหรับข้อมูลเพิ่มเติม:

มุมมองกว้าง ITS-in-a-box

ช่องมองภาพกว้าง ITS-in-a-box เป็นระบบอัตโนมัติที่ออกแบบมาเพื่อทดสอบทั้งระบบกล้องช่องมองภาพกว้าง (WFoV) และระบบกล้องช่องมองภาพปกติ (RFoV) ใน Camera ITS

ชุดทดสอบผู้ขาย

สถาปัตยกรรมตัวควบคุมโฮสต์

สถาปัตยกรรมตัวควบคุมโฮสต์ Vendor Test Suite (VTS) เป็นสถาปัตยกรรมของเฟรมเวิร์กการทดสอบ VTS ที่ผสานรวมกับบริการทดสอบบนคลาวด์

การทดสอบ HAL ที่ทราบชื่อบริการ

การทดสอบ HAL ที่ทราบชื่อบริการ VTS รองรับการรับชื่อบริการของอินสแตนซ์ HAL ที่ระบุโดยอิงตามอุปกรณ์ที่การทดสอบ VTS กำลังทำงานอยู่

การตรวจสอบความสามารถในการทดสอบของ HAL

การตรวจสอบความสามารถในการทดสอบ VTS HAL มีวิธีการรันไทม์สำหรับการใช้การกำหนดค่าอุปกรณ์เพื่อระบุว่าควรข้ามการทดสอบ VTS ใดสำหรับเป้าหมายอุปกรณ์นั้น

โครงสร้างพื้นฐานการทดสอบอัตโนมัติ

โครงสร้างพื้นฐานการทดสอบอัตโนมัติ คือโครงสร้างพื้นฐาน VTS สำหรับการทดสอบอัตโนมัติของ VTS, CTS หรือการทดสอบอื่นๆ บนอุปกรณ์พันธมิตรที่ใช้งานอิมเมจระบบทั่วไป (GSI) AOSP

การดีบัก

การตรวจวัดระยะไกลขั้นสูง

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

Android 9 มีฟีเจอร์การวัดและส่งข้อมูลทางไกล statsd ซึ่งแก้ไขข้อบกพร่องนี้ด้วยการรวบรวมข้อมูลที่ดีขึ้นเร็วขึ้น statsd รวบรวมการใช้งานแอป สถิติแบตเตอรี่และกระบวนการ และข้อขัดข้อง ข้อมูลได้รับการวิเคราะห์และนำไปใช้เพื่อปรับปรุงผลิตภัณฑ์ ฮาร์ดแวร์ และบริการ

สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ frameworks/base/cmds/statsd/

คุณสมบัติด้านความปลอดภัย

การลงนามแอป

รูปแบบลายเซ็น APK v3 รองรับการหมุนคีย์ APK

การสนับสนุนไบโอเมตริกซ์

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

การวิเคราะห์แบบไดนามิก

Android 9 มีการสนับสนุน เครื่องมือบรรเทาและวิเคราะห์ช่องโหว่ เพิ่มเติม

ควบคุมความสมบูรณ์ของโฟลว์ (CFI)

Control Flow Integrity (CFI) เป็นกลไกรักษาความปลอดภัยที่ห้ามการเปลี่ยนแปลงกราฟการควบคุมโฟลว์ดั้งเดิมของไบนารีที่คอมไพล์แล้ว ทำให้การโจมตีดังกล่าวยากขึ้นอย่างมาก

เคอร์เนล CFI

นอกเหนือจาก CFI ของระบบซึ่งเปิดใช้งานตามค่าเริ่มต้นแล้ว Android 9 ขึ้นไปยังรองรับ Kernel Control Flow Integrity (CFI) อีก ด้วย

การเข้ารหัส

การเข้ารหัสตามไฟล์

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

การเข้ารหัสข้อมูลเมตา

Android 9 ขึ้นไปรองรับ การเข้ารหัสข้อมูลเมตา ที่มีการรองรับฮาร์ดแวร์ ด้วยการเข้ารหัสข้อมูลเมตา คีย์เดียวที่ปรากฏในเวลาบูตจะใช้การเข้ารหัสตามไฟล์เพื่อเข้ารหัสเนื้อหาที่ไม่ได้เข้ารหัส

ที่เก็บคีย์

Android 9 ขึ้นไปมี Keymaster 4 ซึ่งมีคุณสมบัติเหล่านี้

กำปั่น

Android 9 ขึ้นไปมีการรองรับคีย์ Android Keystore ที่จัดเก็บและใช้ใน CPU ที่แยกจากกันทางกายภาพซึ่งสร้างขึ้นโดยมีวัตถุประสงค์เพื่อแอปพลิเคชันที่มีความปลอดภัยสูง เช่น องค์ประกอบความปลอดภัยแบบฝัง (SE) StrongBox Keymaster คือการใช้งาน Keymaster HAL ในฮาร์ดแวร์ที่ปลอดภัยแบบแยกส่วน StrongBox มี:

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

การนำเข้าคีย์ที่ปลอดภัย

หากต้องการนำเข้าคีย์ไปยัง Keymaster 4 อย่างปลอดภัย คีย์ที่สร้างขึ้นนอกอุปกรณ์จะถูกเข้ารหัสด้วยข้อกำหนดเฉพาะของการอนุญาตที่กำหนดวิธีการใช้คีย์

รองรับ 3DES

Keymaster 4 มี 3DES เพื่อความเข้ากันได้กับระบบเดิมที่ใช้ 3DES

การผูกเวอร์ชัน

เพื่อรองรับโครงสร้างโมดูลาร์ของ Treble และแยกการเชื่อมโยง system.img เป็น boot.img Keymaster 4 ได้เปลี่ยนรูปแบบ การเชื่อมโยงเวอร์ชันคีย์ ให้มีระดับแพตช์แยกกันสำหรับแต่ละพาร์ติชัน ซึ่งช่วยให้แต่ละพาร์ติชั่นสามารถอัพเดตแยกกันได้ในขณะที่ยังคงให้การป้องกันการย้อนกลับ

API การยืนยันที่ได้รับการป้องกันของ Android

อุปกรณ์ที่รองรับซึ่งเปิดตัวพร้อมกับติดตั้ง Android 9 ช่วยให้นักพัฒนาสามารถใช้ Android Protected Confirmation API ได้ ด้วย API นี้ แอปสามารถใช้อินสแตนซ์ของ ConfirmationPrompt เพื่อแสดงพร้อมท์ให้กับผู้ใช้ โดยขอให้พวกเขาอนุมัติคำสั่งสั้นๆ ใบแจ้งยอดนี้อนุญาตให้แอปยืนยันอีกครั้งว่าผู้ใช้ต้องการทำธุรกรรมที่ละเอียดอ่อนให้เสร็จสิ้น เช่น การชำระเงิน

ซีลีนุกซ์

แซนด์บ็อกซ์ SELinux ต่อแอป

แซนด์บ็อกซ์ของแอปพลิเคชัน มีการป้องกันและกรณีทดสอบใหม่เพื่อให้แน่ใจว่าแอปที่ไม่ได้รับสิทธิ์ทั้งหมดที่กำหนดเป้าหมายเป็น Android 9 และสูงกว่าจะใช้งานแซนด์บ็อกซ์ SELinux แต่ละตัว

การเปลี่ยนแปลงเสียงแหลม SELinux

การอัปเดต Treble SELinux ใน Android 9 และสูงกว่านั้นได้รับการบันทึกไว้ในหลายหน้าใน ส่วน SELinux

ผู้ขายเริ่มต้น

ผู้ขาย init ปิดช่องโหว่ในระบบ Treble/ผู้ขายแยกโดยใช้โดเมน SELinux แยกต่างหากเพื่อรันคำสั่ง /vendor ด้วยสิทธิ์เฉพาะของผู้ขาย

คุณสมบัติของระบบ

Android 9 จำกัด คุณสมบัติของระบบ ไม่ให้แชร์ระหว่าง system และพาร์ติชัน vendor โดยไม่จำเป็น และจัดเตรียมวิธีการในการรับรองความสอดคล้องระหว่างคุณสมบัติของระบบที่ใช้ร่วมกัน

การทดสอบคุณสมบัติ SELinux

Android 9 มี การทดสอบเวลาบิลด์ ใหม่เพื่อให้แน่ใจว่าไฟล์ทั้งหมดในตำแหน่งเฉพาะมี แอตทริบิวต์ที่เหมาะสม ตัวอย่างเช่น ไฟล์ทั้งหมดใน sysfs มีแอตทริบิวต์ sysfs_type ที่จำเป็น

เสียง

เอฟเฟกต์เสียงความละเอียดสูง

การอัปเดต เอฟเฟ็กต์เสียงความละเอียดสูง ได้แก่ การแปลงการประมวลผลเอฟเฟกต์จาก int16 เป็นรูปแบบโฟลต และเพิ่มแทร็กเอาท์พุตไคลเอนต์พร้อมกัน หน่วยความจำไคลเอนต์/เซิร์ฟเวอร์สูงสุด และแทร็กผสมทั้งหมด

กล้อง

กล้อง USB ภายนอก

Android 9 และสูงกว่ารองรับการใช้ กล้อง USB แบบปลั๊กแอนด์เพลย์ (นั่นคือเว็บแคม) โดยใช้ Android Camera2 API มาตรฐานและอินเทอร์เฟซ HIDL ของกล้อง

การติดตามความเคลื่อนไหว

อุปกรณ์กล้องสามารถ โฆษณาความสามารถในการติดตามการเคลื่อนไหว

รองรับกล้องหลายตัว

การสนับสนุนกล้องหลายตัว รวมถึงการรองรับ API สำหรับอุปกรณ์หลายกล้องผ่านอุปกรณ์กล้องลอจิคัลใหม่ซึ่งประกอบด้วยอุปกรณ์กล้องจริงตั้งแต่สองตัวขึ้นไปที่ชี้ไปในทิศทางเดียวกัน

พารามิเตอร์เซสชัน

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

ผู้ผลิตรายเดียว บัฟเฟอร์ผู้บริโภคหลายราย

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

การเชื่อมต่อ

การโทรและการส่งข้อความ

ดำเนินแผนข้อมูล

Android 9 ขึ้นไปให้การสนับสนุนที่ได้รับการปรับปรุงสำหรับผู้ให้บริการ ที่ใช้แผนข้อมูล โดยใช้ SubscriptionPlan API

แอปการโทรของบุคคลที่สาม

Android 9 ขึ้นไปมี API ที่อนุญาตให้ แอปที่เรียกใช้บุคคลที่สาม (3P) สามารถจัดการการโทรของผู้ให้บริการขาเข้าพร้อมกันและบันทึกการโทรในบันทึกการโทรของระบบ

ผู้ให้บริการ

บัตรประจำตัวผู้ให้บริการ

ใน Android 9 AOSP เพิ่มฐานข้อมูล ID ผู้ให้บริการเพื่อช่วยใน การระบุตัวตนของผู้ให้บริการ ฐานข้อมูลจะลดตรรกะที่ซ้ำกันและประสบการณ์การใช้งานแอพที่กระจัดกระจายโดยให้วิธีการทั่วไปในการระบุผู้ให้บริการ

ซิมอิเล็กทรอนิกส์

SIM แบบฝัง (eSIM หรือ eUICC) เป็นเทคโนโลยีล่าสุดที่ช่วยให้ผู้ใช้อุปกรณ์เคลื่อนที่สามารถดาวน์โหลดโปรไฟล์ผู้ให้บริการและเปิดใช้งานบริการของผู้ให้บริการโดยไม่ต้องใช้ซิมการ์ดจริง ใน Android 9 ขึ้นไป เฟรมเวิร์ก Android มี API มาตรฐานสำหรับการเข้าถึง eSIM และจัดการโปรไฟล์การสมัครรับข้อมูลบน eSIM สำหรับข้อมูลเพิ่มเติม โปรดดูที่:

รองรับหลายซิมสำหรับการตั้งค่า IMS

Android 9 ขึ้นไปมีการปรับปรุงการตั้งค่าผู้ใช้สำหรับ ระบบย่อย IP มัลติมีเดีย (IMS) คุณสามารถตั้งค่าการโทรด้วยเสียงผ่าน LTE (VoLTE) การสนทนาทางวิดีโอ และการโทรผ่าน Wi-Fi ตามการสมัครใช้งาน แทนที่จะแชร์การตั้งค่าเหล่านี้กับการสมัครรับข้อมูลทั้งหมด

การออกอากาศสถานะ SIM

ใน Android 9 ขึ้นไป Intent.ACTION_SIM_STATE_CHANGED เลิกใช้งานแล้ว และมีการเพิ่มการออกอากาศสองรายการแยกกันสำหรับสถานะการ์ดและสถานะแอปพลิเคชันการ์ด ได้แก่ TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED และ TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED

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

การออกอากาศใหม่สองรายการคือ @SystemApis และไม่เหนียวเหนอะหนะ เฉพาะผู้รับที่ได้รับอนุญาต READ_PRIVILEGED_PHONE_STATE เท่านั้นที่สามารถรับการออกอากาศได้

จุดประสงค์จะไม่ออกอากาศซ้ำเมื่อคุณปลดล็อคอุปกรณ์ ผู้รับที่ขึ้นอยู่กับการออกอากาศที่ส่งก่อนที่คุณจะปลดล็อคต้องใช้ directBootAware หรือต้องสอบถามสถานะหลังจากที่ผู้ใช้ปลดล็อค สามารถสอบถามสถานะได้โดยใช้ API ที่เกี่ยวข้องใน TelephonyManager, getSimCardState() และ getSimApplicationState()

อินเตอร์เน็ตไร้สาย

ผู้ให้บริการ Wi-Fi

คุณสมบัติ Wi-Fi ของผู้ให้บริการ ช่วยให้อุปกรณ์เชื่อมต่อกับเครือข่าย Wi-Fi ที่ผู้ให้บริการใช้งานโดยอัตโนมัติ ในพื้นที่ที่มีความแออัดสูงหรือมีสัญญาณโทรศัพท์ครอบคลุมน้อย เช่น สนามกีฬาหรือสถานีรถไฟใต้ดิน ผู้ให้บริการ Wi-Fi จะช่วยปรับปรุงการเชื่อมต่อและลดการจราจร

การสุ่ม MAC

การสุ่ม MAC ช่วยให้อุปกรณ์ใช้ที่อยู่ MAC แบบสุ่มเมื่อตรวจสอบเครือข่ายใหม่ในขณะที่ไม่ได้เชื่อมโยงกับเครือข่ายในปัจจุบัน ใน Android 9 และสูงกว่า คุณสามารถเปิดใช้งานตัวเลือกสำหรับนักพัฒนาเพื่อทำให้อุปกรณ์ใช้ที่อยู่ MAC แบบสุ่มเมื่อเชื่อมต่อกับเครือข่าย Wi-Fi

เปิด Wi-Fi โดยอัตโนมัติ

เมื่อ เปิดใช้งานคุณสมบัติเปิด Wi-Fi โดยอัตโนมัติ Wi-Fi จะถูกเปิดใช้งานอีกครั้งโดยอัตโนมัติทุกครั้งที่อุปกรณ์อยู่ใกล้กับเครือข่าย Wi-Fi ที่บันทึกไว้ซึ่งมีตัวบ่งชี้ความแรงของสัญญาณที่ได้รับ (RSSI) สูงเพียงพอ

ระยะเวลาการเดินทาง Wi-Fi

เวลาไปกลับ Wi-Fi (RTT) ช่วยให้อุปกรณ์วัดระยะทางไปยังอุปกรณ์ที่รองรับอื่นๆ ได้ ไม่ว่าจะเป็นจุดเข้าใช้งาน (AP) หรือเพียร์ Wi-Fi Aware (หากอุปกรณ์รองรับ Wi-Fi Aware) คุณสมบัตินี้สร้างขึ้นบนโปรโตคอล IEEE 802.11mc และช่วยให้แอพสามารถใช้ความแม่นยำและการรับรู้ตำแหน่งที่ได้รับการปรับปรุง

การปรับปรุงคะแนน Wi-Fi

โมเดลการให้คะแนน Wi-Fi ที่ปรับปรุงอย่างรวดเร็วและแม่นยำจะระบุได้ว่าเมื่อใดที่อุปกรณ์ควรออกจากเครือข่าย Wi-Fi ที่เชื่อมต่อหรือเข้าสู่เครือข่าย Wi-Fi ใหม่ โมเดลเหล่านี้มอบประสบการณ์ที่เชื่อถือได้และราบรื่นให้กับผู้ใช้โดยหลีกเลี่ยงช่องว่างในการเชื่อมต่อ

ตรวจสอบและปรับแต่งค่า RSSI ในรีซอร์ส config.xml โดยเฉพาะสิ่งต่อไปนี้:

  • config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz
  • config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
  • config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz
  • config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz

Wi-Fi STA/AP การทำงานพร้อมกัน

การทำงานพร้อมกันของ Wi-Fi STA/AP คือความสามารถของอุปกรณ์ในการทำงานในโหมดสถานี (STA) และจุดเข้าใช้งาน (AP) พร้อมกัน สำหรับอุปกรณ์ที่รองรับ Wi-Fi ดูอัลแบนด์พร้อมกัน (DBS) สิ่งนี้จะเปิดความสามารถต่างๆ เช่น การไม่รบกวน STA Wi-Fi เมื่อผู้ใช้ต้องการเปิดใช้งานฮอตสปอต (SoftAP)

การปรับปรุง WiFiStateMachine

WifiStateMachine เป็นคลาสหลักที่ใช้ในการควบคุมกิจกรรม Wi-Fi ประสานงานอินพุตของผู้ใช้ (โหมดการทำงาน: ฮอตสปอต สแกน เชื่อมต่อ หรือปิด) และควบคุมการทำงานของเครือข่าย Wi-Fi (เช่น การสแกนหรือการเชื่อมต่อ)

ใน Android 9 และสูงกว่า โค้ดเฟรมเวิร์ก Wi-Fi และการใช้งาน WifiStateMachine ได้รับการออกแบบใหม่ ส่งผลให้ขนาดโค้ดลดลง ตรรกะการควบคุม Wi-Fi ง่ายต่อการปฏิบัติตาม รายละเอียดการควบคุมที่ได้รับการปรับปรุง และความครอบคลุมและคุณภาพของการทดสอบหน่วยที่เพิ่มขึ้น .

ในระดับสูง WifiStateMachine อนุญาตให้ Wi-Fi อยู่ในสถานะใดสถานะหนึ่งในสี่สถานะ:

  • โหมดไคลเอนต์ (สามารถเชื่อมต่อและสแกนได้)
  • โหมดสแกนเท่านั้น
  • โหมด SoftAP (ฮอตสปอต Wi-Fi)
  • ปิดการใช้งาน (ปิด Wi-Fi อย่างสมบูรณ์)

โหมด Wi-Fi แต่ละโหมดมีข้อกำหนดที่แตกต่างกันสำหรับการให้บริการ และควรได้รับการตั้งค่าในลักษณะที่สอดคล้องกัน โดยจัดการเฉพาะเหตุการณ์ที่เกี่ยวข้องกับการดำเนินงานเท่านั้น การใช้งานใหม่จะจำกัดโค้ดไว้เฉพาะเหตุการณ์ที่เกี่ยวข้องกับโหมดนั้น ซึ่งช่วยลดเวลาในการแก้ไขข้อบกพร่อง และความเสี่ยงในการเกิดข้อบกพร่องใหม่เนื่องจากความซับซ้อน นอกเหนือจากการจัดการที่ชัดเจนสำหรับการทำงานของโหมดแล้ว การจัดการเธรดได้รับการจัดการในลักษณะที่สอดคล้องกัน และการใช้ช่องทางอะซิงโครนัสจะถูกตัดออกเป็นกลไกในการซิงโครไนซ์

การอัปเดตการอนุญาต Wi-Fi

ใน Android 9 และสูงกว่า การอนุญาตของแอป CHANGE_WIFI_STATE จะถูกเปิดใช้งานตามค่าเริ่มต้น คุณสามารถปิดการอนุญาตสำหรับแอปใดก็ได้ในหน้าการตั้งค่าใน การตั้งค่า > แอปและการแจ้งเตือน > การเข้าถึงแอปพิเศษ > การควบคุม Wi-Fi

แอปจะต้องสามารถจัดการกับกรณีที่ไม่ได้รับอนุญาต CHANGE_WIFI_STATE

หากต้องการตรวจสอบพฤติกรรมนี้ ให้รันการทดสอบ โรโบอิเล็กทริก และการทดสอบด้วยตนเอง

สำหรับการทดสอบด้วยตนเอง:

  1. ไปที่ การตั้งค่า > แอปและการแจ้งเตือน > การเข้าถึงแอปพิเศษ > การควบคุม Wi-Fi
  2. เลือกและปิดการอนุญาตสำหรับแอปของคุณ
  3. ตรวจสอบว่าแอปของคุณสามารถจัดการกับสถานการณ์ที่ไม่ได้รับสิทธิ์ CHANGE_WIFI_STATE

การเลิกใช้งาน WPS

เนื่องจากปัญหาด้านความปลอดภัย การตั้งค่าการป้องกัน Wi-Fi (WPS) ใน WiFiManager จึงเลิกใช้และปิดใช้งานใน Android 9 ขึ้นไป อย่างไรก็ตาม WiFiDirect ยังคงใช้ WPS ในตัวร้องขอ WPA

กราฟิก

การนำไปปฏิบัติ

วัลแคน 1.1 API

Android 9 และสูงกว่ารองรับการใช้ API กราฟิก Vulkan 1.1

เครื่องมือ WinScope สำหรับการติดตามการเปลี่ยนหน้าต่าง

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

ซอร์สโค้ดเครื่องมือ WinScope อยู่ที่ platform/development/tools/winscope

ปฏิสัมพันธ์

เครื่องเสียงรถยนต์

Automotive Audio อธิบายสถาปัตยกรรมเสียงสำหรับการใช้งาน Android ที่เกี่ยวข้องกับยานยนต์

โครงข่ายประสาทเทียม (NN) HAL กำหนดสิ่งที่เป็นนามธรรมของตัวเร่งความเร็วต่างๆ ไดรเวอร์สำหรับคันเร่งเหล่านี้ต้องเป็นไปตาม HAL นี้

ยานพาหนะ HAL

คุณสมบัติของยานพาหนะ อธิบายการเปลี่ยนแปลงอินเทอร์เฟซ HAL ของยานพาหนะ

การเลือกดาวเทียม GNSS

เมื่อทำงานร่วมกับระบบดาวเทียมนำทางทั่วโลก (GNSS) HALs (v1.1+) ใหม่ Android Framework จะตรวจสอบการตั้งค่า Android พันธมิตรสามารถเปลี่ยนการตั้งค่าได้จากบริการ Google Play หรือการอัปเดตระบบอื่นๆ การตั้งค่าเหล่านี้จะบอก GNSS HAL ว่าไม่ควรใช้ดาวเทียม GNSS บางดวงหรือไม่ สิ่งนี้มีประโยชน์ในกรณีที่ดาวเทียม GNSS หรือข้อผิดพลาดของกลุ่มดาวเกิดขึ้นอย่างต่อเนื่อง หรือเพื่อตอบสนองต่อปัญหาการใช้งาน GNSS HAL ที่รวดเร็วยิ่งขึ้นซึ่งอาจเกิดขึ้นเมื่อผสมกลุ่มดาวโดยใช้ระบบเวลาและเหตุการณ์ภายนอกที่แตกต่างกัน เช่น วินาทีกระโดด วัน หรือสัปดาห์ .

โมเดลฮาร์ดแวร์ GNSS

ใน Android 9 GNSS HAL เวอร์ชัน 1.1 ขึ้นไปสามารถส่งข้อมูลเกี่ยวกับฮาร์ดแวร์ API ไปยังแพลตฟอร์มได้ แพลตฟอร์มจำเป็นต้องใช้อินเทอร์เฟ IGnssCallback และส่งผ่านหมายเลขอ้างอิงไปยัง HAL GNSS HAL ส่งข้อมูลโมเดลฮาร์ดแวร์ผ่านเมธอด LocationManager#getGnssHardwareModelName() ผู้ผลิตอุปกรณ์ควรทำงานร่วมกับผู้ให้บริการ GNSS HAL เพื่อให้ข้อมูลนี้หากเป็นไปได้

สิทธิ์

การกำหนดค่าการอัปเดตการควบคุมการเข้าถึงตามดุลยพินิจ

การกำหนดค่าการควบคุมการเข้าถึงตามดุลยพินิจ (DAC) ประกอบด้วยการอัปเดตกลไก Android ID (AID) เพื่อขยายขีดความสามารถของระบบไฟล์

การอนุญาตพิเศษของแอปที่มีสิทธิพิเศษ

ใน Android 9 ขึ้นไป หากมีสิทธิ์ที่ควรถูกปฏิเสธ ให้แก้ไข XML เพื่อใช้แท็ก deny-permission แทนแท็ก permission ที่ใช้ในรุ่นก่อนหน้า

ข้อมูล

การปรับปรุงการประมาณแบนด์วิธ

Android 9 ให้การสนับสนุนที่ได้รับการปรับปรุงสำหรับการประมาณแบนด์วิธ แอป Android สามารถสร้างการตั้งค่าความละเอียดที่เหมาะสมมากขึ้นสำหรับแฮงเอาท์วิดีโอและการสตรีมวิดีโอ หากสามารถเข้าถึงแบนด์วิดท์ข้อมูลที่มีอยู่

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

แต่บนอุปกรณ์ที่ใช้เวอร์ชัน 9 ขึ้นไป การเรียกกลับ onCapabilitiesChanged() จะเริ่มทำงานโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงที่สำคัญในแบนด์วิธโดยประมาณ และการเรียก requestBandwidthUpdate() เป็นแบบ no-op getLinkDownstreamBandwidthKbps() และ getLinkUpstreamBandwidthKbps() ที่เกี่ยวข้องจะถูกเติมด้วยข้อมูลที่อัปเดตจากเลเยอร์ฟิสิคัล

นอกจากนี้ อุปกรณ์สามารถตรวจสอบแบนด์วิธของเซลล์ LTE ผ่านทาง ServiceState.getCellBandwidths() ซึ่งช่วยให้แอปพลิเคชันสามารถกำหนดจำนวนแบนด์วิธ (ความถี่) ที่มีอยู่ในเซลล์ที่ระบุได้ ข้อมูลแบนด์วิธของเซลล์สามารถดูได้จากเมนูที่ซ่อนอยู่เพื่อให้ผู้ทดสอบภาคสนามสามารถตรวจสอบข้อมูลล่าสุดได้

การตรวจสอบการรับส่งข้อมูล eBPF

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

คืนค่าเป็น API ที่ต่ำกว่า

ขณะนี้อุปกรณ์สามารถกู้คืนจากระบบปฏิบัติการเวอร์ชันในอนาคตได้ สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อผู้ใช้อัปเกรดโทรศัพท์แต่ทำหายหรือพัง

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

พิจารณาใช้เครื่องมือตรวจสอบความถูกต้องเพื่อตรวจสอบค่าที่ไม่ถูกต้องของข้อมูลสำรองที่กำหนด และกู้คืนเฉพาะข้อมูลที่ถูกต้องเท่านั้น ดังเช่นใน core/java/android/provider/SettingsValidators.java

คุณลักษณะนี้เปิดอยู่ตามค่าเริ่มต้น คุณสามารถปิดการสนับสนุน SettingsBackupAgent สำหรับการกู้คืนจากเวอร์ชันในอนาคตได้ผ่าน Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION ไม่จำเป็นต้องมีการดำเนินการเพิ่มเติม เว้นแต่ผู้ผลิตอุปกรณ์จะขยายเอเจนต์การสำรองข้อมูลตัวใดตัวหนึ่งที่รวมอยู่ใน ROM (หรือเพิ่มเอเจนต์แบบกำหนดเอง)

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

  • PackageManagerBackupAgent รองรับข้อมูลสำรองเวอร์ชันในอนาคตผ่านการกำหนดเวอร์ชันรูปแบบ ส่วนขยายที่นี่ จะต้อง เข้ากันได้กับรหัสกู้คืนปัจจุบันหรือปฏิบัติตามคำแนะนำในชั้นเรียนซึ่งรวมถึงการกระแทกค่าคงที่ที่เหมาะสม

  • SystemBackupAgent ระบุ restoreAnyVersion = false ใน Android 9 ขึ้นไป ไม่รองรับการคืนค่าจาก API เวอร์ชันที่สูงกว่า

  • SettingsBackupAgent ระบุ restoreAnyVersion = true ใน Android 9 ขึ้นไป มีการสนับสนุนบางส่วนผ่านเครื่องมือตรวจสอบความถูกต้อง การตั้งค่าสามารถกู้คืนได้จาก API เวอร์ชันที่สูงกว่า หากมีเครื่องมือตรวจสอบความถูกต้องในระบบปฏิบัติการเป้าหมาย การเพิ่มการตั้งค่าใดๆ ควรมีเครื่องมือตรวจสอบอยู่ด้วย ตรวจสอบชั้นเรียนเพื่อดูรายละเอียด

  • เอเจนต์การสำรองข้อมูลแบบกำหนดเอง ใดๆ ที่รวมอยู่ใน ROM ควรเพิ่มรหัสเวอร์ชันทุกครั้งที่มีการเปลี่ยนแปลงที่เข้ากันไม่ได้กับรูปแบบข้อมูลสำรอง และตรวจสอบให้แน่ใจว่า restoreAnyVersion = false (ค่าเริ่มต้น) หากเอเจนต์ไม่ได้เตรียมที่จะจัดการกับข้อมูลสำรองจากเวอร์ชันในอนาคตของ รหัสของพวกเขา

องค์กร

การปรับปรุงโปรไฟล์ที่มีการจัดการ

การเปลี่ยนแปลง UX สำหรับ โปรไฟล์ที่มีการจัดการ ทำให้ผู้ใช้สามารถระบุ เข้าถึง และควบคุมโปรไฟล์ที่มีการจัดการได้ง่ายขึ้น

หยุด OTA ชั่วคราว

@SystemApi ใหม่ช่วยให้เจ้าของอุปกรณ์ หยุดการอัปเดต OTA ชั่วคราวได้อย่างไม่มีกำหนด รวมถึงการอัปเดตความปลอดภัย

ผลงาน

สุขภาพ 2.0

Android 9 และสูงกว่าประกอบด้วย android.hardware.health HAL 2.0 ซึ่งเป็นเวอร์ชันหลักที่อัปเกรดจาก health@1.0 HAL สำหรับข้อมูลเพิ่มเติม โปรดดูหน้าเหล่านี้:

โซลูชันแคช APK

Android 9 ขึ้นไปมีโซลูชัน แคช APK สำหรับการติดตั้งแอปที่โหลดไว้ล่วงหน้าอย่างรวดเร็วบนอุปกรณ์ที่รองรับพาร์ติชัน A/B OEM สามารถวางโหลดล่วงหน้าและแอปยอดนิยมในแคช APK ซึ่งส่วนใหญ่จัดเก็บไว้ในพาร์ติชัน B ว่างบนอุปกรณ์ที่แบ่งพาร์ติชัน A/B ใหม่ โดยไม่ส่งผลกระทบต่อพื้นที่ข้อมูลที่ผู้ใช้ต้องเผชิญ

การเพิ่มประสิทธิภาพตามโปรไฟล์

Android 9 และสูงกว่ารองรับการใช้ การเพิ่มประสิทธิภาพตามโปรไฟล์ (PGO) ของ Clang บนโมดูล Android ดั้งเดิมที่มีกฎการสร้างพิมพ์เขียว

การบันทึกแบบเขียนล่วงหน้า

โหมดพิเศษของ SQLiteDatabase ที่เรียก ว่าความเข้ากันได้ write-ahead logging (WAL) ช่วยให้ฐานข้อมูลสามารถใช้ journal_mode=WAL ในขณะที่รักษาการเชื่อมต่อสูงสุดหนึ่งรายการต่อฐานข้อมูล

เวลาบูต

Android 9 เปลี่ยนการเพิ่มประสิทธิภาพเวลาบูตตามที่อธิบายไว้ใน การปรับเวลาบูตให้เหมาะสม

พลัง

ข้อจำกัดเบื้องหลัง

Android 9 ขึ้นไปมี ข้อจำกัดในพื้นหลัง ที่อนุญาตให้ผู้ใช้จำกัดแอปที่อาจใช้พลังงานแบตเตอรี่หมด ระบบอาจแนะนำให้ปิดการใช้งานแอพที่ส่งผลเสียต่อสุขภาพของอุปกรณ์

อุปกรณ์ไร้แบตเตอรี่

Android 9 จัดการ อุปกรณ์ไร้แบตเตอรี่ ได้สวยงามกว่ารุ่นก่อนๆ Android 9 จะลบโค้ดสำหรับอุปกรณ์ที่ไม่ต้องใช้แบตเตอรี่ซึ่งถือว่าโดยค่าเริ่มต้นว่ามีแบตเตอรี่อยู่ ชาร์จได้ที่ 100% และมีสุขภาพที่ดีโดยจะมีการอ่านค่าอุณหภูมิปกติบนเทอร์มิสเตอร์