หน้านี้สรุปฟีเจอร์หลักๆ ในรุ่น Android 9 และมีลิงก์ไปยังข้อมูลเพิ่มเติม สรุปฟีเจอร์เหล่านี้จัดเรียงตามตำแหน่งเอกสารประกอบของฟีเจอร์ในเว็บไซต์นี้ ดูคำแนะนำในการย้ายและเปลี่ยนชื่อส่วนได้ที่การอัปเดตเว็บไซต์ในเดือนสิงหาคม 2018
สร้าง
อิมเมจระบบทั่วไป (GSI)
อิมเมจระบบทั่วไป (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) เมื่อใช้ส่วนหัวของตาราง Device Tree เวอร์ชัน 1
ข้อมูลอัปเดตเกี่ยวกับ DTO
Android 9 ขึ้นไปกำหนดให้ Bootloader ส่งผ่าน Unified Device Tree Blob ไปยังเคอร์เนลก่อนที่จะแก้ไขพร็อพเพอร์ตี้ที่กำหนดไว้ ในการวางซ้อนของ Device Tree (DTO)
การกำหนดเวอร์ชันส่วนหัวของรูปภาพ DTBO
Android 9 ขึ้นไปมีฟิลด์เวอร์ชันในส่วนหัวของอิมเมจ DTBO
การยืนยัน DTBO
Android 9 ขึ้นไปต้องมีพาร์ติชัน DTBO หากต้องการเพิ่มโหนด หรือทำการเปลี่ยนแปลงคุณสมบัติใน SoC DT บูตโหลดเดอร์ต้องซ้อนทับ DT เฉพาะอุปกรณ์แบบไดนามิกบน SoC DT ดูข้อมูลเพิ่มเติมได้ที่ การคอมไพล์และการยืนยัน
การปฏิบัติตามข้อกำหนดของเคอร์เนล
Android 9 ขึ้นไปมีข้อกำหนดที่ส่งผลต่อเคอร์เนล อินเทอร์เฟซ และการใช้ DTBO ดูข้อมูลเพิ่มเติมได้ที่หน้าต่อไปนี้
- การเปิดตัวและการอัปเดตเคอร์เนลเวอร์ชันเสถียร
- เคอร์เนลทั่วไปของ Android
- ข้อกำหนดของเคอร์เนลแบบแยกส่วน
- ข้อกำหนดของอินเทอร์เฟซ
- Device Tree Overlays
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) ซึ่งจะมีการติดตั้ง
เป็น rootfs
การควบคุมเวอร์ชันส่วนหัวของอิมเมจบูต
ใน Android 9 ขึ้นไป ส่วนหัวของรูปภาพการบูตจะมีฟิลด์เพื่อระบุเวอร์ชันส่วนหัว Bootloader ต้องตรวจสอบฟิลด์เวอร์ชันนี้และแยกวิเคราะห์ส่วนหัว ตามนั้น
DTBO ในการกู้คืน
เพื่อป้องกันไม่ให้ OTA ล้มเหลวเนื่องจากความไม่ตรงกันระหว่างอิมเมจการกู้คืนกับพาร์ติชัน DTBO ในอุปกรณ์ที่ไม่ใช่ A/B อิมเมจการกู้คืนต้องมีข้อมูลจากอิมเมจ DTBO
จอแสดงผล
คัตเอาท์ดิสเพลย์
รอยบากบนจอแสดงผลช่วยให้นักพัฒนาแอปสร้างประสบการณ์ที่สมจริงแบบขอบจรดขอบได้ ในขณะเดียวกันก็ยังคงมีพื้นที่สำหรับเซ็นเซอร์ที่สำคัญที่ด้านหน้าของอุปกรณ์
หมุนคำแนะนำ
การอัปเดตลักษณะการทำงานของการหมุนหน้าจอ Android 9 ขึ้นไปรองรับการควบคุมที่ผู้ใช้มองเห็นเพื่อปักหมุดการหมุนหน้าจอ เป็นแนวนอนหรือแนวตั้งแม้ว่าตำแหน่งของอุปกรณ์จะเปลี่ยนไปก็ตาม
การเปลี่ยนแอปที่ซิงค์
การเปลี่ยนแอปที่ซิงค์ ช่วยให้ใช้ภาพเคลื่อนไหวในการเปลี่ยนแอปแบบใหม่ได้
การจัดประเภทข้อความ (เดิมคือ TEXTCLASSIFIER)
Android 9 ขึ้นไปมีบริการตัวแยกประเภทข้อความ ซึ่งเป็นวิธีที่แนะนำในการใช้การแยกประเภทข้อความ และการใช้งานบริการเริ่มต้น
สีขอบเขตสีกว้าง
Android 9 ขึ้นไปรองรับสีแบบ Wide Gamut ซึ่งรวมถึง
- High Dynamic Range (HDR)
- การประมวลผลเนื้อหาในพื้นที่สี BT2020 แต่ไม่ใช่เป็นพื้นที่ข้อมูลเป้าหมายสุดท้าย
หากต้องการใช้สีแบบ Wide Gamut สแต็กการแสดงผลทั้งหมดของอุปกรณ์ (เช่น หน้าจอ ฮาร์ดแวร์ คอมโพสิต GPU) ต้องรองรับสีแบบ Wide Gamut หรือรูปแบบบัฟเฟอร์ อุปกรณ์ไม่จำเป็นต้องอ้างสิทธิ์การรองรับเนื้อหาแบบไวด์แกมมาแม้ว่าฮาร์ดแวร์จะรองรับก็ตาม อย่างไรก็ตาม คุณควรเปิดใช้สีแบบไวด์แกมมาเพื่อใช้ประโยชน์จากฮาร์ดแวร์อย่างเต็มที่ ไม่ควรปิดสีแบบช่วงกว้างในระหว่างรันไทม์เพื่อหลีกเลี่ยงประสบการณ์การมองเห็นที่ไม่สอดคล้องกัน
ความเข้ากันได้
เอกสารนิยามความเข้ากันได้กับ Android
เอกสารคำจำกัดความความเข้ากันได้ (CDD) ของ Android 9 จะต่อยอดจากเวอร์ชันก่อนหน้าด้วยการอัปเดตฟีเจอร์ใหม่ และการเปลี่ยนแปลงข้อกำหนดสำหรับฟังก์ชันที่เผยแพร่ก่อนหน้านี้
การตั้งค่า
วิดเจ็ตแอปที่ดีขึ้น
เฟรมเวิร์กวิดเจ็ตแอป Android ช่วยเพิ่มระดับการมองเห็นการโต้ตอบของผู้ใช้ โดยเฉพาะเมื่อผู้ใช้ลบหรือเพิ่มวิดเจ็ตด้วยตนเอง ฟังก์ชันนี้มาพร้อมกับ Launcher3 โดยค่าเริ่มต้น
ผู้ผลิตต้องอัปเดตแอป Launcher (ซึ่งมาพร้อมกับอุปกรณ์) เพื่อรองรับฟีเจอร์นี้หากไม่ได้อิงตาม Launcher3 OEM ต้องรองรับฟิลด์ widgetFeatures ใหม่ ในตัวเรียกใช้เริ่มต้น
โปรดทราบว่าฟีเจอร์นี้จะทำงานแบบครบวงจรได้ก็ต่อเมื่อ โปรแกรมเรียกใช้ติดตั้งใช้งานตามที่คาดไว้ AOSP มีการใช้งานตัวอย่าง ดูรหัสการเปลี่ยนแปลง AOSP Iccd6f965fa3d61992244a365efc242122292c0ca สำหรับโค้ดตัวอย่าง ที่ระบุ
การแจ้งเตือนการเปลี่ยนแปลงสถานะอุปกรณ์ไปยังโปรแกรมติดตั้งแพ็กเกจ
สามารถส่งการออกอากาศของระบบที่ได้รับการปกป้องไปยังแอปที่มีสิทธิ์
INSTALL_PACKAGES
เมื่อใดก็ตามที่มีการเปลี่ยนแปลงพร็อพเพอร์ตี้ เช่น
ภาษาหรือความหนาแน่นในการแสดงผล คุณลงทะเบียนตัวรับได้ในไฟล์ Manifest และกระบวนการจะเริ่มทำงานเพื่อรับการออกอากาศ ซึ่งจะเป็นประโยชน์สำหรับโปรแกรมติดตั้งแพ็กเกจที่ต้องการติดตั้งคอมโพเนนต์เพิ่มเติมของแอปเมื่อมีการเปลี่ยนแปลงดังกล่าว
ซึ่งไม่ค่อยเกิดขึ้น เนื่องจากมีการเปลี่ยนแปลงการกำหนดค่าที่มีสิทธิ์ทริกเกอร์
การออกอากาศนี้ไม่บ่อยนัก
ซอร์สโค้ดการแจ้งเตือนการเปลี่ยนแปลงสถานะอุปกรณ์อยู่ที่ตำแหน่งต่อไปนี้ภายใต้ 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
เครื่องมือบรรทัดคำสั่ง Atest ช่วยให้คุณสร้าง ติดตั้ง และเรียกใช้การทดสอบ Android ในเครื่อง ซึ่งช่วยเร่งความเร็ว การเรียกใช้การทดสอบซ้ำได้เป็นอย่างมากโดยไม่ต้องมีความรู้เกี่ยวกับ Trade Federation ตัวเลือกบรรทัดคำสั่งของชุดทดสอบ
ชุดเครื่องมือทดสอบความเข้ากันได้
การดาวน์โหลด CTS
แพ็กเกจชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) ที่รองรับ Android 9 มีให้บริการในหน้าการดาวน์โหลด CTS คุณซิงค์ซอร์สโค้ดสำหรับการทดสอบที่รวมไว้กับแท็ก android-cts-9.0_r1
ในโครงสร้างแบบโอเพนซอร์สได้
ตัวเลือก CTS
สำหรับ Android 9, CTS v2 จะมีคำสั่งและอาร์กิวเมนต์ต่อไปนี้
run retry
ลองทดสอบทั้งหมดที่ล้มเหลวหรือไม่ได้ดำเนินการจากเซสชันก่อนหน้าอีกครั้ง‘--shard-count
แบ่งการเรียกใช้ CTS ออกเป็นจำนวนก้อนอิสระที่กำหนด เพื่อเรียกใช้ในอุปกรณ์หลายเครื่องแบบขนาน
นอกจากนี้ เรายังได้เพิ่มคำสั่ง --retry-type
ซึ่งก่อนหน้านี้ไม่มีในเอกสาร
ลงในเอกสารอ้างอิงคำสั่งคอนโซล CTS v2 เดียวกันด้วย
บริการ Secure Element (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 หรือการทดสอบอื่นๆ บน อุปกรณ์พาร์ทเนอร์ที่ใช้รูปภาพระบบทั่วไป (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_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 แบบ 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
ไม่ได้รับสิทธิ์
ได้
หากต้องการตรวจสอบลักษณะการทำงานนี้ ให้เรียกใช้การทดสอบ Robolectric และการทดสอบด้วยตนเอง
สำหรับการทดสอบด้วยตนเอง ให้ทำดังนี้
- ไปที่การตั้งค่า > แอปและการแจ้งเตือน > สิทธิ์เข้าถึงพิเศษของแอป > การควบคุม 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 มีโครงสร้างพื้นฐานและเครื่องมือในการบันทึกและวิเคราะห์สถานะของ WindowManager ระหว่างและหลังการเปลี่ยนภาพ โดยจะช่วยให้บันทึกและดูการเปลี่ยนหน้าต่างทีละขั้นได้ ขณะเดียวกันก็บันทึกสถานะของตัวจัดการหน้าต่างที่เกี่ยวข้องทั้งหมดลงในไฟล์การติดตาม คุณสามารถใช้ข้อมูลนี้เพื่อเล่นซ้ำและดูการเปลี่ยนผ่านทีละขั้นตอนได้
ซอร์สโค้ดของเครื่องมือ WinScope อยู่ที่
platform/development/tools/winscope
การโต้ตอบ
ระบบเสียงสำหรับยานยนต์
Automotive Audio อธิบายสถาปัตยกรรมเสียง สำหรับการติดตั้งใช้งาน Android ที่เกี่ยวข้องกับยานยนต์
HAL ของเครือข่ายประสาท (NN) จะกำหนด การแยกส่วนของตัวเร่งความเร็วต่างๆ ไดรเวอร์สำหรับตัวเร่งความเร็วเหล่านี้ต้อง เป็นไปตาม HAL นี้
HAL ยานพาหนะ
พร็อพเพอร์ตี้ยานพาหนะอธิบายการเปลี่ยนแปลงอินเทอร์เฟซ HAL ของยานพาหนะ
การเลือกดาวเทียม GNSS
เมื่อใช้ HAL ระบบนำทางด้วยดาวเทียมทั่วโลก (GNSS) ใหม่ (v1.1 ขึ้นไป) เฟรมเวิร์ก Android จะตรวจสอบการตั้งค่า 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()
และเฟรมเวิร์กอาจให้แบนด์วิดท์ดาวน์ลิงก์โดยประมาณ
แต่ในอุปกรณ์ที่ใช้ 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% และมี สถานะดีพร้อมค่าอุณหภูมิปกติในเทอร์มิสเตอร์ออก