หน้านี้จะอธิบายฟีเจอร์และการปรับปรุงในรุ่น 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#cannotGetSmsRoleHolderForAnotherUserCtsMediaHostTestCases:AudioServiceRebootHostTest#testVolumePersists_AfterRebootCtsPermissionUiTestCases: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 |