หน้านี้สรุปฟีเจอร์หลักๆ ในรุ่น Android 9 และมีลิงก์ไปยังข้อมูลเพิ่มเติม สรุปฟีเจอร์เหล่านี้จัดเรียงตามตำแหน่งเอกสารประกอบของฟีเจอร์ในเว็บไซต์นี้ ดูคำแนะนำในการย้ายและเปลี่ยนชื่อส่วนได้ที่การอัปเดตเว็บไซต์ในเดือนสิงหาคม 2018
สร้าง
อิมเมจระบบทั่วไป (GSI)
Generic System Image (GSI) คืออิมเมจระบบที่มีการกำหนดค่าที่ปรับแล้ว สำหรับอุปกรณ์ Android อิมเมจระบบทั่วไป (GSI) มีรายละเอียดเกี่ยวกับ ความแตกต่างระหว่าง GSI สำหรับอุปกรณ์ที่เปิดตัวด้วย Android 9 กับอุปกรณ์ที่อัปเกรดเป็น Android 9
สถาปัตยกรรม
ระดับชั้นการจัดการฮาร์ดแวร์โดยตรง (HAL)
ความเข้ากันได้แบบย้อนหลังของเฟรมเวิร์ก HIDL
การยืนยันความเข้ากันได้แบบย้อนหลังของเฟรมเวิร์ก HIDL เป็นวิธีในการยืนยันความเข้ากันได้แบบย้อนหลังของเฟรมเวิร์ก
HAL ที่พร้อมใช้งานแบบไดนามิก
HAL ที่พร้อมใช้งานแบบไดนามิก รองรับการปิดระบบย่อยของฮาร์ดแวร์ Android แบบไดนามิกเมื่อไม่ได้ใช้งาน หรือไม่มีความจำเป็น
HIDL
HIDL MemoryBlock
HIDL MemoryBlock เป็นเลเยอร์นามธรรม
ที่สร้างขึ้นบน hidl_memory, HIDL @1.0::IAllocator และ HIDL @1.0::IMapper โดย
ออกแบบมาสำหรับบริการ HIDL ที่มีบล็อกหน่วยความจำหลายบล็อกที่ใช้ฮีปหน่วยความจำเดียวร่วมกัน
การวางซ้อนแผนผังอุปกรณ์
การวางซ้อนที่บีบอัด
Android 9 ขึ้นไปรองรับการซ้อนทับที่บีบอัดในรูปภาพการซ้อนทับของ Device Tree Blob (DTBO) เมื่อใช้ส่วนหัวของตารางแผนผังอุปกรณ์เวอร์ชัน 1
การอัปเดต DTO
Android 9 ขึ้นไปกำหนดให้ Bootloader ส่งผ่านบล็อกแบบรวมของแผนผังอุปกรณ์ ไปยังเคอร์เนลก่อนที่จะแก้ไขพร็อพเพอร์ตี้ที่กำหนดไว้ ในการวางซ้อนแผนผังอุปกรณ์ (DTO)
การกำหนดเวอร์ชันส่วนหัวของรูปภาพ DTBO
Android 9 ขึ้นไปมีฟิลด์เวอร์ชันในส่วนหัวของอิมเมจ DTBO
การยืนยัน DTBO
Android 9 ขึ้นไปต้องมีพาร์ติชัน DTBO หากต้องการเพิ่มโหนด หรือทำการเปลี่ยนแปลงคุณสมบัติใน SoC DT บูตโหลดเดอร์ต้องซ้อนทับ DT เฉพาะอุปกรณ์แบบไดนามิก เหนือ SoC DT ดูข้อมูลเพิ่มเติมได้ที่ การคอมไพล์และการยืนยัน
การปฏิบัติตามข้อกำหนดของเคอร์เนล
Android 9 ขึ้นไปมีข้อกำหนดที่ส่งผลต่อเคอร์เนล อินเทอร์เฟซ และการใช้ DTBO ดูข้อมูลเพิ่มเติมได้ที่หน้าต่อไปนี้
- การเปิดตัวและการอัปเดตเคอร์เนลเวอร์ชันเสถียร
- เคอร์เนลทั่วไปของ Android
- ข้อกำหนดของเคอร์เนลแบบโมดูล
- ข้อกำหนดของอินเทอร์เฟซ
- Device Tree Overlays
Vendor NDK
การเปลี่ยนแปลงการออกแบบ
ดูข้อมูลเกี่ยวกับการเปลี่ยนแปลงการออกแบบ VNDK ใน Android 9 ขึ้นไปได้ที่หน้าต่อไปนี้
- ชุดพัฒนาซอฟต์แวร์แบบเนทีฟสำหรับผู้ให้บริการ (VNDK)
- การรองรับระบบบิลด์ VNDK
- เครื่องมือคำจำกัดความ VNDK
- ไดเรกทอรี กฎ และ sepolicy
- ส่วนขยาย VNDK
- เนมสเปซ Linker
เครื่องมือตรวจสอบ ABI
หน้าความเสถียรของ ABI อธิบาย เครื่องมือตรวจสอบอินเทอร์เฟซแบบไบนารีของแอปพลิเคชัน (ABI) ซึ่งช่วยให้มั่นใจได้ว่าการเปลี่ยนแปลงที่ทำกับไลบรารี VNDK จะยังคงเป็นไปตามข้อกำหนด ABI
สแนปชอต VNDK
อิมเมจระบบสามารถใช้สแนปชอต VNDK เพื่อให้ไลบรารี VNDK ที่ถูกต้องแก่อิมเมจของผู้ให้บริการ แม้ว่า อิมเมจระบบและอิมเมจของผู้ให้บริการจะสร้างจาก Android เวอร์ชันต่างๆ ก็ตาม
ออบเจ็กต์อินเทอร์เฟซของผู้ให้บริการ (ออบเจ็กต์ VINTF)
หน้าต่อไปนี้ในส่วนออบเจ็กต์อินเทอร์เฟซของผู้ให้บริการ จะอธิบายการอัปเดตใน Android 9 ขึ้นไป
กำหนดการเลิกใช้งาน HIDL
หน้าต่อไปนี้อธิบายวิธีที่ Android เลิกใช้งานและนำ HIDL HAL ออก
Bootloader
พาร์ติชันผลิตภัณฑ์
Android 9 ขึ้นไปรองรับการสร้างพาร์ติชัน/productโดยใช้
ระบบบิลด์ของ Android ก่อนหน้านี้ Android 8.x บังคับให้แยกคอมโพเนนต์เฉพาะของระบบบนชิป (SoC) ออกจากพาร์ติชัน /system ไปยังพาร์ติชัน /vendor โดยไม่ต้องจัดสรรพื้นที่สำหรับคอมโพเนนต์เฉพาะของ OEM ที่สร้างจากระบบบิลด์ของ Android
การปฏิบัติตามข้อกำหนดของเหตุผลการบูต Canonical
หน้าเหตุผลการบูต Canonical อธิบายการเปลี่ยนแปลงข้อกำหนดเหตุผลการบูตของ Bootloader ใน Android 9 ขึ้นไป
ระบบในฐานะรูท
อุปกรณ์ทั้งหมดที่เปิดตัวด้วย Android 9 ขึ้นไปต้องใช้ system-as-root ซึ่งจะผสาน ramdisk.img
เข้ากับ system.img (หรือที่เรียกว่า no-ramdisk) ซึ่งจะมีการติดตั้ง system.img
เป็น rootfs
การกำหนดเวอร์ชันส่วนหัวของอิมเมจบูต
ใน Android 9 ขึ้นไป ส่วนหัวของอิมเมจบูตจะมีฟิลด์เพื่อระบุเวอร์ชันส่วนหัว Bootloader ต้องตรวจสอบฟิลด์เวอร์ชันนี้และแยกวิเคราะห์ส่วนหัว ตามนั้น
DTBO ในการกู้คืน
เพื่อป้องกันไม่ให้ OTA ล้มเหลวเนื่องจากความไม่ตรงกันระหว่างอิมเมจการกู้คืนกับพาร์ติชัน DTBO ในอุปกรณ์ที่ไม่ใช่ A/B อิมเมจการกู้คืนต้องมีข้อมูลจากอิมเมจ DTBO
Display
คัตเอาท์ดิสเพลย์
รอยบากบนจอแสดงผลช่วยให้นักพัฒนาแอปสร้างประสบการณ์การใช้งานที่สมจริงแบบขอบจรดขอบ พร้อมทั้งยังคงมีพื้นที่สำหรับ เซ็นเซอร์ที่สำคัญที่ด้านหน้าของอุปกรณ์
หมุนคำแนะนำ
การอัปเดตลักษณะการทำงานของการหมุนหน้าจอ Android 9 ขึ้นไปรองรับการควบคุมที่หันหน้าไปทางผู้ใช้เพื่อปักหมุดการหมุนหน้าจอ เป็นแนวนอนหรือแนวตั้งแม้ว่าตำแหน่งของอุปกรณ์จะเปลี่ยนไปก็ตาม
การเปลี่ยนแอปที่ซิงค์
การเปลี่ยนแอปที่ซิงค์ ช่วยให้ใช้ภาพเคลื่อนไหวในการเปลี่ยนแอปแบบใหม่ได้
การจัดประเภทข้อความ (เดิมคือ TEXTCLASSIFIER)
Android 9 ขึ้นไปมีบริการตัวแยกประเภทข้อความ ซึ่งเป็นวิธีที่แนะนําในการใช้การแยกประเภทข้อความ และการใช้งานบริการเริ่มต้น
สีขอบเขตสีกว้าง
Android 9 ขึ้นไปรองรับสีแบบไวด์แกมมา ซึ่งรวมถึง
- High Dynamic Range (HDR)
- การประมวลผลเนื้อหาในพื้นที่สี BT2020 แต่ไม่ใช่เป็นพื้นที่ข้อมูลเป้าหมายสุดท้าย
หากต้องการใช้สีแบบ Wide Gamut สแต็กการแสดงผลทั้งหมดของอุปกรณ์ (เช่น หน้าจอ ฮาร์ดแวร์ คอมโพสเซอร์ GPU) ต้องรองรับสีแบบ Wide Gamut หรือรูปแบบบัฟเฟอร์ อุปกรณ์ไม่จำเป็นต้องอ้างสิทธิ์การรองรับเนื้อหาแบบไวด์แกมมาแม้ว่าฮาร์ดแวร์จะรองรับก็ตาม อย่างไรก็ตาม คุณควรเปิดใช้สีแบบไวด์แกมมาเพื่อใช้ประโยชน์จากฮาร์ดแวร์อย่างเต็มที่ ไม่ควรปิดสีแบบกว้างในระหว่างรันไทม์เพื่อหลีกเลี่ยงประสบการณ์การมองเห็นที่ไม่สอดคล้องกัน
ความเข้ากันได้
เอกสารนิยามความเข้ากันได้กับ Android
เอกสารนิยามความเข้ากันได้ (CDD) ของ Android 9 จะต่อยอดจากเวอร์ชันก่อนหน้าด้วยการอัปเดตฟีเจอร์ใหม่ๆ และการเปลี่ยนแปลงข้อกำหนดสำหรับฟังก์ชันที่เผยแพร่ก่อนหน้านี้
การตั้งค่า
วิดเจ็ตแอปที่ดีขึ้น
เฟรมเวิร์กวิดเจ็ตแอป Android ช่วยเพิ่มระดับการมองเห็นการโต้ตอบของผู้ใช้ โดยเฉพาะเมื่อผู้ใช้ลบหรือเพิ่มวิดเจ็ตด้วยตนเอง ฟังก์ชันนี้มาพร้อมกับ Launcher3 โดยค่าเริ่มต้น
ผู้ผลิตต้องอัปเดตแอป Launcher (ซึ่งมาพร้อมกับอุปกรณ์) เพื่อรองรับฟีเจอร์นี้หากไม่ได้อิงตาม Launcher3 OEM ต้องรองรับฟิลด์ widgetFeatures ใหม่ ในตัวเรียกใช้เริ่มต้น
โปรดทราบว่าฟีเจอร์นี้จะทำงานแบบครบวงจรได้ก็ต่อเมื่อ โปรแกรมเรียกใช้ติดตั้งใช้งานตามที่คาดไว้ AOSP มีการใช้งานตัวอย่าง ดูโค้ดตัวอย่างได้ที่ Change-Id Iccd6f965fa3d61992244a365efc242122292c0ca ใน AOSP
การแจ้งเตือนการเปลี่ยนแปลงสถานะอุปกรณ์ไปยังโปรแกรมติดตั้งแพ็กเกจ
สามารถส่งการออกอากาศของระบบที่ได้รับการปกป้องไปยังแอปที่มี
INSTALL_PACKAGESสิทธิ์เมื่อใดก็ตามที่มีการเปลี่ยนแปลงพร็อพเพอร์ตี้ เช่น
ภาษาหรือความหนาแน่นในการแสดง คุณลงทะเบียนตัวรับได้ในไฟล์ Manifest และกระบวนการจะเริ่มทำงานเพื่อรับการออกอากาศ ซึ่งจะเป็นประโยชน์สำหรับโปรแกรมติดตั้งแพ็กเกจที่ต้องการติดตั้งคอมโพเนนต์เพิ่มเติมของแอปเมื่อมีการเปลี่ยนแปลงดังกล่าว
ซึ่งไม่ค่อยเกิดขึ้น เนื่องจากมีการเปลี่ยนแปลงการกำหนดค่าที่มีสิทธิ์ทริกเกอร์
การออกอากาศนี้ไม่บ่อยนัก
ซอร์สโค้ดการแจ้งเตือนการเปลี่ยนแปลงสถานะอุปกรณ์จะอยู่ที่ตำแหน่งต่อไปนี้ใน platform/frameworks/base
api/system-current.txtcore/java/android/content/Intent.javacore/res/AndroidManifest.xmlservices/core/java/com/android/server/am/ActivityManagerService.java
สถาปัตยกรรมข้อมูล
การเปลี่ยนแปลง สถาปัตยกรรมข้อมูลสำหรับแอปการตั้งค่า ช่วยให้มีฟังก์ชันการทำงานมากขึ้นและใช้งานได้ง่ายขึ้น
การทดสอบ
Atest
เครื่องมือบรรทัดคำสั่ง Atest ช่วยให้คุณสร้าง ติดตั้ง และเรียกใช้การทดสอบ Android ในเครื่อง ซึ่งช่วยเร่งความเร็ว การเรียกใช้การทดสอบซ้ำได้เป็นอย่างมากโดยไม่ต้องมีความรู้เกี่ยวกับตัวเลือกบรรทัดคำสั่งของ Trade Federation test harness
ชุดเครื่องมือทดสอบความเข้ากันได้
การดาวน์โหลด CTS
แพ็กเกจชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) ที่รองรับ Android 9 มีให้บริการในหน้าการดาวน์โหลด CTS คุณสามารถซิงค์ซอร์สโค้ดสำหรับการทดสอบที่รวมไว้กับแท็ก android-cts-9.0_r1 ใน
โครงสร้างแบบโอเพนซอร์ส
ตัวเลือก CTS
สำหรับ Android 9, CTS v2 จะมีคำสั่งและอาร์กิวเมนต์ต่อไปนี้
run retryลองการทดสอบทั้งหมดที่ล้มเหลวหรือไม่ได้ดำเนินการจากเซสชันก่อนหน้าอีกครั้ง‘--shard-countแบ่งการเรียกใช้ CTS ออกเป็นจำนวนก้อนอิสระที่กำหนด เพื่อเรียกใช้ในอุปกรณ์หลายเครื่องแบบขนาน
นอกจากนี้ ยังได้เพิ่มคำสั่ง --retry-type ที่ก่อนหน้านี้ไม่มีในเอกสาร
ลงในเอกสารอ้างอิงคำสั่งคอนโซล CTS v2 เดียวกันด้วย
บริการองค์ประกอบความปลอดภัย (SE)
บริการองค์ประกอบความปลอดภัยจะตรวจสอบองค์ประกอบความปลอดภัยที่แพลตฟอร์มทั่วโลก รองรับโดยการระบุว่าอุปกรณ์มีการติดตั้งใช้งาน SE HAL หรือไม่ และหากมี จะมีจำนวนเท่าใด โดยจะใช้เป็น พื้นฐานในการทดสอบ API และการติดตั้งใช้งานองค์ประกอบความปลอดภัยพื้นฐาน
กล่องฟิวชันเซ็นเซอร์
กล่อง Sensor Fusion ใช้ในชุดทดสอบรูปภาพจากกล้อง (Camera ITS) การทดสอบ Sensor Fusion และการทดสอบการซิงค์กล้องหลายตัว และมีสภาพแวดล้อมการทดสอบที่สอดคล้องกัน สำหรับการวัดความแม่นยำของไทม์สแตมป์ของกล้องและเซ็นเซอร์อื่นๆ สำหรับโทรศัพท์ Android ดูข้อมูลเพิ่มเติมได้ที่หน้าต่อไปนี้
- คู่มือเริ่มใช้งานกล่อง Sensor Fusion ฉบับย่อ จะอธิบายขั้นตอนการตั้งค่าการทดสอบ Sensor Fusion และ กล่อง Sensor Fusion เป็นครั้งแรก
- การประกอบกล่องฟิวชันเซ็นเซอร์ แสดงขั้นตอนการประกอบกล่องฟิวชันเซ็นเซอร์
ITS-in-a-box ที่มีขอบเขตการมองเห็นกว้าง
ITS-in-a-box ที่มีขอบเขตการมองเห็นมุมกว้าง เป็นระบบอัตโนมัติที่ออกแบบมาเพื่อทดสอบทั้งระบบกล้องที่มีขอบเขตการมองเห็นมุมกว้าง (WFoV) และ ขอบเขตการมองเห็นปกติ (RFoV) ใน Camera ITS
ชุดทดสอบสำหรับผู้ให้บริการ
สถาปัตยกรรมของตัวควบคุมโฮสต์
สถาปัตยกรรมของตัวควบคุมโฮสต์ Vendor Test Suite (VTS) คือสถาปัตยกรรมของเฟรมเวิร์กการทดสอบ VTS ที่ผสานรวมกับบริการทดสอบบนระบบคลาวด์
การทดสอบ HAL ที่รับรู้ชื่อบริการ
การทดสอบ HAL ที่รับรู้ชื่อบริการของ VTS รองรับการรับชื่อบริการของอินสแตนซ์ HAL ที่กำหนดตามอุปกรณ์ ที่การทดสอบ VTS ทำงานอยู่
การตรวจสอบความสามารถในการทดสอบ HAL
การตรวจสอบความสามารถในการทดสอบ HAL ของ VTS มี เมธอดรันไทม์สำหรับการใช้การกำหนดค่าอุปกรณ์เพื่อระบุการทดสอบ VTS ที่ ควรข้ามสำหรับเป้าหมายอุปกรณ์นั้น
โครงสร้างพื้นฐานของการทดสอบอัตโนมัติ
โครงสร้างพื้นฐานการทดสอบอัตโนมัติ เป็นโครงสร้างพื้นฐาน VTS สำหรับการทดสอบอัตโนมัติของ VTS, CTS หรือการทดสอบอื่นๆ ใน อุปกรณ์พาร์ทเนอร์ที่ใช้ Generic System Image (GSI) ของ AOSP
การแก้ไขข้อบกพร่อง
การตรวจวัดระยะไกลขั้นสูง
ใน Android การวัดและส่งข้อมูลคือกระบวนการรวบรวมข้อมูลการใช้งาน และการวินิจฉัยเกี่ยวกับอุปกรณ์ ระบบ Android และแอปโดยอัตโนมัติ ใน Android เวอร์ชันก่อนหน้า สแต็กการวัดระยะทางมีข้อจำกัดและไม่ได้ บันทึกข้อมูลที่จำเป็นต่อการระบุและแก้ไขความน่าเชื่อถือของระบบ และปัญหาเกี่ยวกับอุปกรณ์หรือแอป ซึ่งทำให้การระบุสาเหตุหลักของปัญหาเป็นเรื่องยาก หรืออาจเป็นไปไม่ได้เลย
Android 9 มีstatsdฟีเจอร์การวัดและส่งข้อมูลทางไกลซึ่งช่วยแก้ปัญหา
ข้อบกพร่องนี้ด้วยการรวบรวมข้อมูลที่ดีขึ้นได้เร็วขึ้น statsd จะเก็บรวบรวม
การใช้งานแอป สถิติแบตเตอรี่และกระบวนการ รวมถึงข้อขัดข้อง ระบบจะวิเคราะห์ข้อมูลและ
นำไปใช้เพื่อปรับปรุงผลิตภัณฑ์ ฮาร์ดแวร์ และบริการ
โปรดดูรายละเอียดเพิ่มเติมที่ frameworks/base/cmds/statsd/
ฟีเจอร์การรักษาความปลอดภัย
การลงนามแอป
APK Signature Scheme v3 รองรับการหมุนเวียนคีย์ APK
การรองรับข้อมูลไบโอเมตริก
Android 9 มีคลาสสาธารณะ
BiometricPrompt
ซึ่งแอปสามารถใช้เพื่อผสานรวมการรองรับการตรวจสอบสิทธิ์ข้อมูลไบโอเมตริกในลักษณะที่
ไม่ขึ้นอยู่กับอุปกรณ์และรูปแบบ ดูข้อมูลเพิ่มเติมเกี่ยวกับการผสานรวม
ชุดซอฟต์แวร์ไบโอเมตริกเพื่อรวม BiometricPrompt ได้ที่
ไบโอเมตริก
การวิเคราะห์แบบไดนามิก
Android 9 รองรับเครื่องมือลดและวิเคราะห์ช่องโหว่ เพิ่มเติม
การควบคุมโฟลว์ (CFI)
การตรวจสอบความสมบูรณ์ของโฟลว์การควบคุม (CFI) เป็นกลไกการรักษาความปลอดภัย ที่ห้ามการเปลี่ยนแปลงกราฟโฟลว์การควบคุมเดิมของไบนารีที่คอมไพล์แล้ว ซึ่งทำให้การโจมตีดังกล่าวทำได้ยากขึ้นอย่างมาก
CFI ของเคอร์เนล
นอกจาก CFI ของระบบที่เปิดใช้โดยค่าเริ่มต้นแล้ว Android 9 ขึ้นไปยังรองรับControl Flow Integrity (CFI) ของเคอร์เนลด้วย
การเข้ารหัส
การเข้ารหัสตามไฟล์
การเข้ารหัสตามไฟล์ (FBE) ได้รับการอัปเดตให้ทำงานร่วมกับพื้นที่เก็บข้อมูลที่ปรับใช้ได้ อุปกรณ์ใหม่ ควรใช้การเข้ารหัสตามไฟล์แทนการเข้ารหัสดิสก์เต็มรูปแบบ
การเข้ารหัสข้อมูลเมตา
Android 9 ขึ้นไปรองรับการเข้ารหัสข้อมูลเมตาในกรณีที่ฮาร์ดแวร์รองรับ เมื่อใช้การเข้ารหัสข้อมูลเมตา คีย์เดียวที่แสดงในเวลาบูตจะใช้ การเข้ารหัสตามไฟล์เพื่อเข้ารหัสเนื้อหาที่ไม่ได้เข้ารหัส
คีย์สโตร์
Android 9 ขึ้นไปมี Keymaster 4 ซึ่งมีฟีเจอร์ต่อไปนี้
StrongBox
Android 9 ขึ้นไปรองรับคีย์ Android Keystore ที่จัดเก็บและใช้ใน CPU ที่แยกจากกันโดยสิ้นเชิงซึ่งสร้างขึ้นเพื่อแอปพลิเคชันที่มีความปลอดภัยสูง เช่น องค์ประกอบความปลอดภัย (SE) แบบฝัง Keymaster ของ StrongBox คือการใช้งาน HAL ของ Keymaster ในฮาร์ดแวร์ที่ปลอดภัยแบบแยก StrongBox มีคุณสมบัติดังนี้
- CPU แยก
- พื้นที่เก็บข้อมูลที่ปลอดภัยในตัว
- เครื่องมือสร้างตัวเลขสุ่มจริงคุณภาพสูง
- บรรจุภัณฑ์ป้องกันการปลอมแปลง
- การป้องกันการโจมตีแบบ Side-channel
การนำเข้าคีย์ที่ปลอดภัย
หากต้องการนำเข้าคีย์ไปยัง Keymaster 4 อย่างปลอดภัย คีย์ที่สร้างนอกอุปกรณ์จะต้องได้รับการเข้ารหัส ตามข้อกำหนดของการให้สิทธิ์ที่กำหนดวิธีใช้คีย์
การรองรับ 3DES
Keymaster 4 มี 3DES เพื่อให้ใช้งานร่วมกับระบบเดิมที่ใช้ 3DES ได้
การเชื่อมโยงเวอร์ชัน
เพื่อรองรับโครงสร้างแบบโมดูลของ Treble และยกเลิกการเชื่อมโยงของ system.img กับ boot.img Keymaster 4 จึงเปลี่ยนโมเดลการเชื่อมโยงเวอร์ชันคีย์
ให้มีระดับแพตช์แยกกันสำหรับแต่ละพาร์ติชัน ซึ่งจะช่วยให้แต่ละพาร์ติชันอัปเดตได้อย่างอิสระขณะที่ยังคงมีการป้องกันการย้อนกลับ
Android Protected Confirmation API
อุปกรณ์ที่รองรับซึ่งเปิดตัวพร้อมกับ Android 9 ที่ติดตั้งไว้จะช่วยให้นักพัฒนาแอปใช้ Android Protected Confirmation API ได้
API นี้ช่วยให้แอปใช้อินสแตนซ์ของ
ConfirmationPrompt
เพื่อแสดงข้อความแจ้งต่อผู้ใช้ โดยขอให้ผู้ใช้รับรองข้อความสั้นๆ ข้อความนี้ช่วยให้แอปยืนยันอีกครั้งว่าผู้ใช้ต้องการทำธุรกรรมที่มีความละเอียดอ่อนให้เสร็จสมบูรณ์ เช่น การชำระเงิน
SELinux
แซนด์บ็อกซ์ SELinux ต่อแอป
Sandbox ของแอปพลิเคชันมีการป้องกันและกรณีทดสอบใหม่ เพื่อให้มั่นใจว่าแอปทั้งหมดที่ไม่มีสิทธิ์ซึ่งกำหนดเป้าหมายเป็น Android 9 ขึ้นไปจะทำงานใน Sandbox ของ SELinux แต่ละรายการ
การเปลี่ยนแปลง SELinux ของ Treble
การอัปเดต SELinux ของ Treble ใน Android 9 ขึ้นไปมีการบันทึกไว้ในหลายหน้า ในส่วน SELinux
Vendor init
Vendor init ปิดช่องโหว่
ในการแยกส่วนระบบ/ผู้ให้บริการของ Treble โดยใช้
โดเมน SELinux แยกต่างหากเพื่อเรียกใช้คำสั่ง /vendor ที่มีสิทธิ์เฉพาะของผู้ให้บริการ
พร็อพเพอร์ตี้ของระบบ
Android 9 จำกัดไม่ให้มีการแชร์พร็อพเพอร์ตี้ของระบบ
ระหว่างพาร์ติชัน system กับ vendor โดยไม่จำเป็น และ
มีวิธีการตรวจสอบความสอดคล้องกันระหว่างพร็อพเพอร์ตี้ของระบบที่แชร์
การทดสอบแอตทริบิวต์ SELinux
Android 9 มี
การทดสอบขณะสร้าง
ใหม่ที่ช่วยให้มั่นใจว่าไฟล์ทั้งหมดในตำแหน่งที่เฉพาะเจาะจงมี
แอตทริบิวต์ที่เหมาะสม
เช่น ไฟล์ทั้งหมดใน sysfs มีแอตทริบิวต์ sysfs_type ที่จำเป็น
เสียง
เอฟเฟกต์เสียงความละเอียดสูง
การอัปเดตเอฟเฟกต์เสียงความละเอียดสูง รวมถึงการแปลงการประมวลผลเอฟเฟกต์จากรูปแบบ int16 เป็นรูปแบบ float และการเพิ่ม แทร็กเอาต์พุตของไคลเอ็นต์พร้อมกัน หน่วยความจำสูงสุดของไคลเอ็นต์/เซิร์ฟเวอร์ และแทร็กที่มิกซ์ทั้งหมด
กล้อง
กล้อง USB ภายนอก
Android 9 ขึ้นไปรองรับการใช้กล้อง USB แบบเสียบและใช้งานได้ทันที (เช่น เว็บแคม) โดยใช้ Android Camera2 API มาตรฐาน และอินเทอร์เฟซ HIDL ของกล้อง
การติดตามการเคลื่อนไหว
อุปกรณ์กล้องสามารถโฆษณาความสามารถในการติดตามการเคลื่อนไหว
การรองรับกล้องหลายตัว
การรองรับกล้องหลายตัวรวมถึงการรองรับ API สำหรับ อุปกรณ์ที่มีกล้องหลายตัวผ่านอุปกรณ์กล้องตรรกะใหม่ที่ประกอบด้วยอุปกรณ์กล้องจริง 2 ตัวขึ้นไป ซึ่งชี้ไปในทิศทางเดียวกัน
พารามิเตอร์เซสชัน
การใช้พารามิเตอร์เซสชันช่วยลด ความล่าช้าได้โดยการอนุญาตให้ไคลเอ็นต์กล้องกำหนดค่าชุดย่อยของพารามิเตอร์คำขอที่มีค่าใช้จ่ายสูง อย่างแข็งขันเป็นส่วนหนึ่งของระยะการเริ่มต้นเซสชันการจับภาพ
บัฟเฟอร์ผู้ผลิตรายเดียวและผู้บริโภคหลายราย
การส่งบัฟเฟอร์กล้องแบบผู้ผลิตรายเดียวและผู้บริโภคหลายราย คือชุดวิธีการที่ช่วยให้ไคลเอ็นต์กล้องเพิ่มและนำเอาต์พุต Surface ออกแบบไดนามิกได้ในขณะที่เซสชันการจับภาพทำงานอยู่และสตรีมมิงกล้อง กำลังดำเนินอยู่
การเชื่อมต่อ
การโทรและการรับส่งข้อความ
ใช้แพ็กเกจอินเทอร์เน็ต
Android 9 ขึ้นไปรองรับผู้ให้บริการได้ดียิ่งขึ้น ในการใช้แพ็กเกจอินเทอร์เน็ตโดยใช้ SubscriptionPlan API
แอปการโทรของบุคคลที่สาม
Android 9 ขึ้นไปมี API ที่อนุญาตให้แอปการโทรของบุคคลที่สาม (3P) จัดการการโทรของผู้ให้บริการที่เข้ามาพร้อมกันและบันทึกการโทรในบันทึกการโทรของระบบ
ผู้ให้บริการ
การระบุตัวตนของผู้ให้บริการ
ใน Android 9 AOSP ได้เพิ่มฐานข้อมูลรหัสผู้ให้บริการเพื่อช่วยในการระบุผู้ให้บริการ ฐานข้อมูลจะ ลดตรรกะที่ซ้ำกันและประสบการณ์การใช้งานแอปที่กระจัดกระจายด้วยการระบุผู้ให้บริการในลักษณะที่ เหมือนกัน
eSIM
ซิมแบบฝัง (eSIM หรือ eUICC) เป็นเทคโนโลยีล่าสุดที่ช่วยให้ผู้ใช้โทรศัพท์มือถือ ดาวน์โหลดโปรไฟล์ผู้ให้บริการและเปิดใช้งานบริการของผู้ให้บริการได้โดยไม่ต้องมี ซิมการ์ดจริง ใน Android 9 ขึ้นไป เฟรมเวิร์ก Android มี API มาตรฐานสำหรับการเข้าถึง eSIM และการจัดการโปรไฟล์การสมัครใช้บริการใน eSIM ดูข้อมูลเพิ่มเติมได้ที่
รองรับการตั้งค่า IMS สำหรับหลายซิม
Android 9 ขึ้นไปมีการปรับปรุงการตั้งค่าผู้ใช้สำหรับ ระบบย่อยมัลติมีเดีย IP (IMS) คุณสามารถตั้งค่า Voice over LTE (VoLTE), วิดีโอคอล และการโทรผ่าน Wi-Fi ตามการสมัครใช้บริการแต่ละรายการ แทนที่จะแชร์การตั้งค่าเหล่านี้ในการสมัครใช้บริการทั้งหมด
การออกอากาศสถานะซิม
ใน Android 9 ขึ้นไป ระบบได้เลิกใช้งาน Intent.ACTION_SIM_STATE_CHANGED และเพิ่มการออกอากาศ 2 รายการแยกกันสำหรับสถานะบัตรและสถานะแอปพลิเคชันบัตร
TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED และ
TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED
การเปลี่ยนแปลงเหล่านี้ช่วยให้ตัวรับที่ต้องการทราบเพียงว่ามีการ์ดอยู่หรือไม่ ไม่ต้องรับฟังการเปลี่ยนแปลงสถานะของแอปพลิเคชัน และตัวรับที่ ต้องการทราบเพียงว่าแอปพลิเคชันของการ์ดพร้อมหรือไม่ไม่ต้องรับฟัง การเปลี่ยนแปลงสถานะของการ์ด
การออกอากาศใหม่ 2 รายการคือ @SystemApis และไม่ได้ปักหมุดไว้ เฉพาะผู้รับที่มีสิทธิ์ READ_PRIVILEGED_PHONE_STATE เท่านั้นที่จะรับการออกอากาศได้
ระบบจะไม่ส่งต่อ Intent อีกครั้งเมื่อคุณปลดล็อกอุปกรณ์ ตัวรับที่
ขึ้นอยู่กับการออกอากาศที่ส่งก่อนที่คุณจะปลดล็อกจะต้องใช้ directBootAware
หรือต้องค้นหาสถานะหลังจากที่ผู้ใช้ปลดล็อก คุณสามารถค้นหาสถานะได้โดยใช้
API ที่เกี่ยวข้องใน TelephonyManager, getSimCardState()
และgetSimApplicationState()
Wi-Fi
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) ที่สูงเพียงพอ
Round-trip time (RTT) ของ Wi-Fi
เวลาไปกลับ (RTT) ของ Wi-Fi ช่วยให้อุปกรณ์ วัดระยะทางไปยังอุปกรณ์อื่นๆ ที่รองรับ ไม่ว่าจะเป็นจุดเข้าใช้งาน (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_5GHzconfig_wifi_framework_wifi_score_entry_rssi_threshold_5GHzconfig_wifi_framework_wifi_score_bad_rssi_threshold_24GHzconfig_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
การทำงานพร้อมกันของ STA/AP ของ Wi-Fi
การทำงานพร้อมกันของ Wi-Fi STA/AP คือ ความสามารถของอุปกรณ์ในการทำงานในโหมดสถานี (STA) และจุดเข้าใช้งาน (AP) พร้อมกัน สำหรับอุปกรณ์ที่รองรับ Wi-Fi แบบ Dual Band Simultaneous (DBS) การดำเนินการนี้จะ เปิดความสามารถต่างๆ เช่น ไม่รบกวน Wi-Fi ของ STA เมื่อผู้ใช้ต้องการ เปิดใช้ฮอตสปอต (SoftAP)
การปรับปรุง WiFiStateMachine
WifiStateMachine เป็นคลาสหลักที่ใช้ควบคุมกิจกรรม Wi-Fi, ประสานงาน
อินพุตของผู้ใช้ (โหมดการทำงาน: ฮอตสปอต, สแกน, เชื่อมต่อ หรือปิด) และควบคุม Wi-Fi
การดำเนินการในเครือข่าย (เช่น การสแกนหรือการเชื่อมต่อ)
ใน Android 9 ขึ้นไป เราได้ปรับโครงสร้างโค้ดเฟรมเวิร์ก Wi-Fi และการใช้งาน
WifiStateMachineใหม่ ซึ่งส่งผลให้โค้ดมีขนาดเล็กลง
ตรรกะการควบคุม Wi-Fi ทำตามได้ง่ายขึ้น การควบคุมมีความละเอียดมากขึ้น และ
การครอบคลุมและคุณภาพของการทำ Unit Test เพิ่มขึ้น
ในระดับสูงWifiStateMachineจะอนุญาตให้ Wi-Fi อยู่ในสถานะใดสถานะหนึ่งต่อไปนี้
- โหมดไคลเอ็นต์ (เชื่อมต่อและสแกนได้)
- โหมดสแกนเท่านั้น
- โหมด SoftAP (ฮอตสปอต Wi-Fi)
- ปิดใช้ (ปิด Wi-Fi โดยสมบูรณ์)
โหมด Wi-Fi แต่ละโหมดมีข้อกำหนดที่แตกต่างกันสำหรับการเรียกใช้บริการ และควรตั้งค่าในลักษณะที่สอดคล้องกัน โดยจัดการเฉพาะเหตุการณ์ที่เกี่ยวข้องกับการทำงานเท่านั้น การติดตั้งใช้งานใหม่จะจำกัดโค้ดไว้เฉพาะเหตุการณ์ที่เกี่ยวข้องกับโหมดนั้น ซึ่งจะช่วยลดเวลาในการแก้ไขข้อบกพร่องและความเสี่ยงในการทำให้เกิดข้อบกพร่องใหม่เนื่องจากความซับซ้อน นอกเหนือจากการจัดการฟังก์ชันการทำงานของโหมดอย่างชัดเจนแล้ว การจัดการเธรด ยังได้รับการจัดการอย่างสม่ำเสมอ และระบบได้ยกเลิกการใช้ช่องแบบไม่พร้อมกัน เป็นกลไกสำหรับการซิงค์
การอัปเดตสิทธิ์ Wi-Fi
ใน Android 9 ขึ้นไป ระบบจะเปิดใช้สิทธิ์ของแอป CHANGE_WIFI_STATE โดยค่าเริ่มต้น
คุณปิดใช้สิทธิ์สำหรับแอปใดก็ได้ในหน้าการตั้งค่าที่การตั้งค่า > แอปและการแจ้งเตือน >
สิทธิ์เข้าถึงพิเศษของแอป > การควบคุม Wi-Fi
แอปต้องจัดการกรณีที่ไม่ได้ให้CHANGE_WIFI_STATEสิทธิ์
หากต้องการตรวจสอบลักษณะการทำงานนี้ ให้เรียกใช้การทดสอบ roboelectric และการทดสอบด้วยตนเอง
สำหรับการทดสอบด้วยตนเอง ให้ทำดังนี้
- ไปที่การตั้งค่า > แอปและการแจ้งเตือน > สิทธิ์เข้าถึงพิเศษของแอป > การควบคุม Wi-Fi
- เลือกและปิดสิทธิ์สำหรับแอป
- ตรวจสอบว่าแอปสามารถจัดการสถานการณ์ที่
CHANGE_WIFI_STATEไม่ได้รับสิทธิ์ได้
การเลิกใช้งาน WPS
เนื่องจากปัญหาด้านความปลอดภัย ระบบจึงเลิกใช้งานการตั้งค่าการป้องกัน Wi-Fi (WPS) ใน WiFiManager และปิดใช้ใน Android 9 ขึ้นไป อย่างไรก็ตาม WiFiDirect ยังคงใช้
WPS ใน WPA Supplicant
กราฟิก
การใช้งาน
Vulkan 1.1 API
Android 9 ขึ้นไปรองรับการใช้งาน Vulkan 1.1 Graphics API
เครื่องมือ WinScope สำหรับการติดตามการเปลี่ยนภาพหน้าต่าง
Android 9 ขึ้นไปมีเครื่องมือ WinScope สำหรับติดตามการเปลี่ยนหน้าต่าง WinScope มีโครงสร้างพื้นฐานและเครื่องมือในการบันทึกและวิเคราะห์สถานะของ Window Manager ระหว่างและหลังการเปลี่ยนภาพ โดยจะช่วยให้บันทึกและดูการเปลี่ยนหน้าต่างทีละขั้นได้ ขณะเดียวกันก็บันทึกสถานะของ Window Manager ที่เกี่ยวข้องทั้งหมดลงในไฟล์การติดตาม คุณสามารถใช้ข้อมูลนี้เพื่อเล่นซ้ำและดูการเปลี่ยนผ่านทีละขั้นตอนได้
ซอร์สโค้ดของเครื่องมือ WinScope อยู่ที่
platform/development/tools/winscope
การโต้ตอบ
ระบบเสียงสำหรับยานยนต์
เสียงยานยนต์อธิบายสถาปัตยกรรมเสียง สำหรับการติดตั้งใช้งาน Android ที่เกี่ยวข้องกับยานยนต์
HAL ของเครือข่ายประสาท (NN) จะกำหนด การแยกส่วนของตัวเร่งความเร็วต่างๆ ไดรเวอร์สำหรับตัวเร่งความเร็วเหล่านี้ต้อง เป็นไปตาม HAL นี้
HAL ยานพาหนะ
พร็อพเพอร์ตี้ยานพาหนะอธิบายการเปลี่ยนแปลงใน อินเทอร์เฟซ HAL ของยานพาหนะ
การเลือกดาวเทียม GNSS
เมื่อทำงานร่วมกับ HAL ของระบบนำทางด้วยดาวเทียมทั่วโลก (GNSS) ใหม่ (v1.1 ขึ้นไป) เฟรมเวิร์ก Android จะตรวจสอบการตั้งค่า Android พาร์ทเนอร์สามารถเปลี่ยน การตั้งค่าจากบริการ Google Play หรือการอัปเดตระบบอื่นๆ การตั้งค่าเหล่านี้ จะบอก GNSS HAL ว่าไม่ควรใช้ดาวเทียม GNSS บางดวง ซึ่งอาจมีประโยชน์ในกรณีที่เกิดข้อผิดพลาดเกี่ยวกับดาวเทียมหรือกลุ่มดาว GNSS อย่างต่อเนื่อง หรือเพื่อตอบสนองต่อปัญหาการติดตั้งใช้งาน GNSS HAL ได้รวดเร็วขึ้น ซึ่งอาจเกิดขึ้นเมื่อผสมกลุ่มดาวโดยใช้ระบบเวลาและเหตุการณ์ภายนอกที่แตกต่างกัน เช่น การเลื่อนเวลา 1 วินาที การเปลี่ยนวัน หรือการเปลี่ยนหมายเลขสัปดาห์
รุ่นฮาร์ดแวร์ 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()
และเฟรมเวิร์กอาจให้แบนด์วิดท์ดาวน์ลิงก์โดยประมาณ
แต่ในอุปกรณ์ที่ใช้ Android 9 ขึ้นไป ระบบจะเรียกใช้แฮนเดิล
onCapabilitiesChanged()
โดยอัตโนมัติเมื่อแบนด์วิดท์โดยประมาณมีการเปลี่ยนแปลงอย่างมาก และการเรียกใช้ requestBandwidthUpdate() จะไม่มีผลใดๆ ระบบจะป้อนข้อมูลที่อัปเดตซึ่งเลเยอร์ทางกายภาพให้ไว้ลงในแฮนเดิล
getLinkDownstreamBandwidthKbps()
และ
getLinkUpstreamBandwidthKbps()
ที่เชื่อมโยง
นอกจากนี้ อุปกรณ์ยังตรวจสอบแบนด์วิดท์ของเซลล์ LTE ผ่าน
ServiceState.getCellBandwidths() ได้ด้วย
ซึ่งจะช่วยให้แอปพลิเคชันทราบปริมาณแบนด์วิดท์ (ความถี่) ที่มี
ในเซลล์ที่กำหนด ข้อมูลแบนด์วิดท์ของเซลล์จะอยู่ในเมนูที่ซ่อนไว้เพื่อให้ผู้ทดสอบภาคสนามตรวจสอบข้อมูลล่าสุดได้
การตรวจสอบการเข้าชม eBPF
เครื่องมือการจราจรของข้อมูลในเครือข่าย eBPF ใช้การติดตั้งใช้งานร่วมกันของเคอร์เนลและพื้นที่ผู้ใช้เพื่อตรวจสอบการใช้เครือข่าย ในอุปกรณ์นับตั้งแต่การเปิดเครื่องอุปกรณ์ครั้งล่าสุด เครื่องมือนี้มีฟังก์ชันเพิ่มเติม เช่น การติดแท็กซ็อกเก็ต การแยกการรับส่งข้อมูลเบื้องหน้า/เบื้องหลัง และไฟร์วอลล์ต่อ UID เพื่อบล็อกแอปจากการเข้าถึงเครือข่ายโดยขึ้นอยู่กับสถานะของอุปกรณ์
กู้คืนเป็น API ที่ต่ำกว่า
ตอนนี้อุปกรณ์สามารถกู้คืนจากระบบปฏิบัติการเวอร์ชันในอนาคตได้แล้ว ซึ่งจะเป็นประโยชน์อย่างยิ่งในกรณีที่ผู้ใช้อัปเกรดโทรศัพท์แล้วแต่ทำโทรศัพท์หายหรือโทรศัพท์เสีย
หาก OEM แก้ไขตัวแทนการสำรองข้อมูลสำหรับแพ็กเกจระบบใดก็ตาม (android, system, settings) ตัวแทนเหล่านั้นควรจัดการการกู้คืนชุดข้อมูลสำรองที่สร้างในแพลตฟอร์มเวอร์ชันที่สูงกว่าโดยไม่ขัดข้องและกู้คืนข้อมูลอย่างน้อยบางส่วน
ลองใช้โปรแกรมตรวจสอบเพื่อค้นหาค่าที่ไม่ถูกต้องของข้อมูลสำรองที่ระบุ และกู้คืนเฉพาะข้อมูลที่ถูกต้อง ดังที่แสดงใน
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 ที่เรียกว่าการเขียนล่วงหน้าเพื่อความเข้ากันได้
การบันทึก (WAL) ช่วยให้ฐานข้อมูลใช้ journal_mode=WAL ได้ในขณะที่ยังคงการเชื่อมต่อสูงสุด 1 รายการต่อฐานข้อมูล
เวลาในการบูต
Android 9 เปลี่ยนการเพิ่มประสิทธิภาพเวลาเปิดเครื่องตามที่อธิบายไว้ ในการเพิ่มประสิทธิภาพเวลาเปิดเครื่อง
กำลัง
การจำกัดการทำงานในเบื้องหลัง
Android 9 ขึ้นไปมีการจำกัดในเบื้องหลัง ซึ่งช่วยให้ผู้ใช้จำกัดแอปที่อาจทำให้แบตเตอรี่หมดได้ ระบบอาจแนะนำให้ปิดใช้แอปที่ส่งผลเสียต่อ สุขภาพของอุปกรณ์ด้วย
อุปกรณ์ที่ไม่ต้องใช้แบตเตอรี่
Android 9 จัดการอุปกรณ์ที่ไม่มีแบตเตอรี่ได้ดีกว่า ในรุ่นก่อนหน้า Android 9 นำโค้ดสำหรับ อุปกรณ์ที่ไม่มีแบตเตอรี่ซึ่งสมมติโดยค่าเริ่มต้น ว่ามีแบตเตอรี่ ชาร์จจนถึง 100% และมี สถานะดีพร้อมค่าอุณหภูมิปกติในเทอร์มิสเตอร์ออก