Android Automotive 25Q4

หน้านี้จะอธิบายฟีเจอร์และการปรับปรุงในรุ่น 25Q4 ของ Android Automotive OS (AAOS) AAOS 25Q4 เป็นรุ่นที่เสร็จสมบูรณ์อย่างเป็นทางการ 25Q4 มีฟีเจอร์ใหม่ 8 รายการ และแก้ไขปัญหา 180 รายการ

AAOS 25Q4 ใช้ API ระดับ 36

ฟีเจอร์

การเปิดตัว AAOS รุ่นนี้มีฟีเจอร์ใหม่ตามที่อธิบายไว้ที่นี่

Framework

การรองรับการหมุนสำหรับ Jetpack Compose

  • Android 14 ขึ้นไป: AAOS มีการรองรับการหมุนขั้นพื้นฐานในตัวสำหรับ อินเทอร์เฟซผู้ใช้ Jetpack Compose ซึ่งรวมถึงการหมุนและการขยับตัวควบคุม

  • Android 12, Android 12L และ Android 13: AAOS รองรับการหมุนสำหรับ UI ของ Compose แบบจำกัด การหมุนตัวควบคุมจะใช้ได้กับวิธีแก้ปัญหาฝั่งแอป เราไม่รองรับการสะกิด

    ดูข้อมูลเพิ่มเติมได้ที่การสาธิตกิจกรรมการเขียนในแอป RotaryPlayground รับซอร์สโค้ดของแอปนี้ได้ในสาขา car-apps-dev

ประสิทธิภาพและประสิทธิภาพของระบบ

  • หยุดแอปของผู้ใช้ก่อนหน้า: ระบบจะหยุดแอปของผู้ใช้ก่อนหน้าในกระบวนการเปลี่ยนผู้ใช้ก่อนหน้านี้เพื่อลดเวลาในการเปลี่ยนผู้ใช้และร่องรอยหน่วยความจำ

ประสบการณ์การใช้งานระบบ

UI ที่ปรับขนาดได้

AAOS เพิ่มโซลูชันการแสดงหน้าต่างเฉพาะสำหรับยานยนต์เพื่อสนับสนุน OEM ในการพัฒนาประสบการณ์การแสดงหน้าต่างขั้นสูงด้วย UI ที่ปรับขนาดได้ในลักษณะที่ปลอดภัย เป็นไปตามข้อกำหนด และคุ้มค่า เฟรมเวิร์กนี้ช่วยให้นักพัฒนาแอปออกแบบโครงสร้างการแบ่งหน้าต่าง ด้วยภาษาประกาศในการกำหนดค่า XML

  • การโฟกัสงานใน UI ที่ปรับขนาดได้: นำชุดกฎมาใช้เพื่อกำหนดว่างานใดจะได้รับโฟกัสในสภาพแวดล้อมแบบหลายหน้าต่าง (เช่น การเปิดและปิดแผง) แอตทริบิวต์ onTransition ใหม่ในแท็ก Focus ช่วยให้ควบคุมได้ละเอียดมากขึ้น

  • กลไกการรีสตาร์ทอัตโนมัติใน Scalable UI: ตอนนี้แผง Scalable UI จะจัดการข้อขัดข้องของแอปได้อย่างราบรื่นด้วยการเปิดแอปที่มีข้อบกพร่องอีกครั้ง เราขอแนะนำกลไกการรีสตาร์ทงานอัตโนมัติเพื่อแก้ไขการสิ้นสุดงานที่ไม่คาดคิด ในแผง UI ซึ่งคุณกำหนดค่าด้วยแท็ก XML <Restart> ใหม่เพื่อกำหนด นโยบายการรีสตาร์ทและจำนวนการลองใหม่สูงสุด

  • การปรับปรุงประสิทธิภาพเมื่อลากแผงตกแต่งและเครื่องมือวัดประสิทธิภาพ: AAOS ช่วยเพิ่มประสิทธิภาพให้กับภาพเคลื่อนไหวการลากแผงแบบอินเทอร์แอกทีฟ นอกจากนี้ ยังเพิ่มการวัดผลลงในไลบรารี Scalable UI เพื่อวัดความไม่สอดคล้องกันระหว่างเส้นทางของผู้ใช้ที่สำคัญ

    การติดตาม Perfetto ของ OEM จะให้การรายงานข้อมูลเมตาเพิ่มเติมที่เฉพาะเจาะจงกับสิ่งที่เกิดขึ้นใน Windowing และในไลบรารี UI ที่ปรับขนาดได้

  • มุมมองการตกแต่งแผงจะปรับและตอบสนองต่อการเปลี่ยนแปลงธีม: การกำหนดธีมแผง จะปรับตามการเปลี่ยนแปลงธีม เช่น ระหว่างโหมดสว่างและโหมดมืด หรือการเปลี่ยนแปลงธีมอื่นๆ ที่ระดับ SysUI

คำสั่งการแก้ไขข้อบกพร่องของผู้ใช้และเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์

  • คำสั่ง Shell จะแสดงสถานะปัจจุบันของแผงและส่งเหตุการณ์ผ่าน adb ใช้คำสั่ง adb เพื่อเปลี่ยนสถานะของแผงภาพ เช่น การเปิดหรือปิด แผง

    คำสั่ง Shell จะทริกเกอร์เหตุการณ์ในระบบ เช่น หากต้องการปิดแผงตารางกริดของแอปเมื่อเปิดอยู่ ให้เรียกใช้ adb shell cmd statusbar carsysui-dispatch-event close_app_grid

  • สถานะแผงรวมอยู่ใน dumpsys ของกิจกรรม: dumpsys ของกิจกรรม รวมถึงสถานะแผง ใช้เครื่องมือแก้ไขข้อบกพร่อง (คำสั่ง adb) เพื่อรับสถานะแผง ด้วย dumpsys (คำสั่งเชลล์ =adb)

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

    adb shell cmd statusbar carsysui-dump-panelstates
    

การบันทึกและการติดตามข้อมูลของ OEM

  • เพิ่มการบันทึกเหตุการณ์การสมัครใช้บริการข้อมูลรถยนต์ เราเปิดใช้การบันทึกการเชื่อมต่อของผู้ใช้สำหรับ OEM เพื่อปรับปรุงการติดตามข้อมูล

แอปหลัก

เราจะปรับปรุงความเข้ากันได้และการใช้งานสำหรับแอปของบุคคลที่สามในสภาพแวดล้อมยานยนต์เพื่อช่วยยืนยันการปฏิบัติตามข้อกำหนด CDD และ CTS สำหรับแอปบนอุปกรณ์เคลื่อนที่ที่พร้อมใช้งานกับรถยนต์ (CaRMA) เราได้เพิ่มตัวอย่างอ้างอิงสำหรับความสามารถในการย้อนกลับเพื่อแสดงแนวทางปฏิบัติแนะนำสำหรับการไปยังส่วนต่างๆ ได้อย่างราบรื่น

  • การปรับปรุงกิจกรรมการบล็อกกิจกรรม (ABA): AAOS ปรับแต่งลักษณะการทำงานของ ABA ใน OnStop เพื่อปรับปรุงการจัดการวงจรชีวิต

  • สี่เหลี่ยมผืนผ้าที่ปลอดภัยสำหรับการแสดงผลแอป AAOS กำหนดพื้นที่แสดงแอปที่กำหนดไว้เพื่อช่วยยืนยันระดับการมองเห็นเนื้อหาและหลีกเลี่ยงการบดบัง

  • การปรับขนาด DPI: AAOS จะเพิ่มประสิทธิภาพองค์ประกอบ UI ตามความละเอียดของจอแสดงผลและ ระยะการรับชม

  • การลบล้างต่อแอป: AAOS ช่วยให้คุณควบคุมลักษณะการทำงานของแอปได้ เช่น การวางแนวและสัดส่วนภาพ

  • การปรับปรุงความเข้ากันได้: AAOS มีฟังก์ชันหลักของ Android เช่น DocumentsUI และเพิ่มการปรับปรุงความเข้ากันได้ของแอปจากบุคคลที่สาม

  • การควบคุมแอปทางเลือก: AAOS ช่วยให้ผู้ใช้ควบคุมเสียงที่ไม่ใช่สื่อกลาง ขณะขับรถได้ โดยเฉพาะจากแอปการสื่อสาร

คุณสมบัติ VHAL

  • แท็ก Property enum @SystemApi: AAOS ช่วยให้บุคคลที่สามเข้าถึง Enum ที่พร็อพเพอร์ตี้เพิ่งกำหนดให้แอปของบุคคลที่สามเข้าถึงได้

เสียง

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

ความเป็นส่วนตัว

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

    การแตะแอปที่ปิดใช้จะแจ้งให้ผู้ใช้ยอมรับข้อกำหนดในการให้บริการของ Google

    ใน Android 25Q4 ฟีเจอร์นี้จะใช้งานร่วมกับประสบการณ์ OEM ที่วาง ประสบการณ์ Google แบบถาวรไว้ในแผงพื้นหลังที่กำหนดค่าโดยใช้ UI ที่ปรับขนาดได้ เช่น กิจกรรม Google Maps ที่คงอยู่ซึ่งตั้งค่าเป็นประสบการณ์หน้าจอหน้าแรกจะปรากฏเป็นสีเทาจนกว่าผู้ใช้จะยอมรับการจำกัดตามข้อกำหนดในการให้บริการของ Google

การปฏิบัติตามข้อกำหนด

AAOS ทดสอบการปฏิบัติตามข้อกำหนดของ Android ใน Cuttlefish และฮาร์ดแวร์อ้างอิงภายในด้วยชุดทดสอบต่อไปนี้ใน GSI: CTS, CTS-V, ATS, ATS-V, STS, VTS และ CTS ใน GSI

ไม่จำเป็นต้องแก้ไขข้อผิดพลาดในโค้ด Android 16 (android16-release) หรือ สาขาการทดสอบ Android 16 (android16-m1-tests-dev) ยกเว้นปัญหาที่ระบุไว้ ด้านล่าง

เราวางแผนที่จะแก้ไขปัญหาการปฏิบัติตามข้อกำหนดเหล่านี้ในการเปิดตัว AOSP ที่กำลังจะมาถึง

  • CtsAppSecurityHostTestCases: RoleSecurityTest#cannotGetSmsRoleHolderForAnotherUser

  • CtsMediaHostTestCases: AudioServiceRebootHostTest#testVolumePersists_AfterReboot

  • CtsPermissionUiTestCases: PermissionTest23#testInteractiveGrant

การทดสอบไม่สำเร็จใน Android 25Q4

ส่วนนี้แสดงกรณีทดสอบที่ไม่ผ่านสำหรับ Android 25Q4 ซึ่งเฉพาะเจาะจงสำหรับ Cuttlefish เท่านั้น การทดสอบที่ไม่สำเร็จจะผ่านในฮาร์ดแวร์อ้างอิงภายใน เรา ยืนยันกรณีทดสอบที่ไม่สอดคล้องกันใน Cuttlefish และฮาร์ดแวร์อ้างอิงภายใน

เราพิจารณาความไม่สอดคล้องของการทดสอบโดยการประเมินผลลัพธ์ของการสร้าง 15 รายการติดต่อกัน ซึ่งเกิดข้อผิดพลาดในการทดสอบหลายกลุ่ม

กรณีทดสอบ ครั้ง
CtsWindowManagerBackgroundActivityTestCases 6
CtsJvmtiAttachingHostTestCases 5
CtsViewTestCases 5
CtsStagedInstallHostTestCases 3
CtsUiRenderingTestCases27 2
CtsWindowManagerDeviceActivity 2
CtsAppOpsTestCases 1
CtsNetTestCasesLegacyApi22 1
CtsStatsdAtomHostTestCases 1
CtsUiRenderingTestCases 1