Android Automotive 25Q4

このページでは、Android Automotive OS(AAOS)25Q4 リリースの機能と拡張機能について説明します。AAOS 25Q4 は正式なゴールデン リリースです。25Q4 では、8 つの新機能が提供され、180 件の問題が解決されています。

AAOS 25Q4 は API レベル 36 を使用します。

機能

この AAOS リリースでは、ここに記載されている新機能が提供されます。

フレームワーク

Jetpack Compose のロータリー サポート:

  • Android 14 以降: AAOS は、コントローラの回転やナッジなど、Jetpack Compose ユーザー インターフェースの基本的な組み込みロータリー サポートを提供します。

  • Android 12、Android 12L、Android 13: AAOS は、Compose UI のロータリー サポートを限定的に提供します。コントローラの回転は、アプリ側の回避策で動作します。ナッジはサポートされていません。

    詳しくは、RotaryPlayground アプリの View Compose アクティビティのデモをご覧ください。このアプリのソースコードは car-apps-dev ブランチで入手できます。

パフォーマンスとシステムの健全性

  • 以前のユーザーのアプリを停止: ユーザー切り替えのレイテンシとメモリ フットプリントを削減するため、ユーザー切り替えプロセスの早い段階で以前のユーザーのアプリを停止します。

システム エクスペリエンス

スケーラブルな UI

AAOS は、自動車固有のウィンドウ ソリューションを追加し、OEM が安全で準拠した費用対効果の高い方法でスケーラブル UI を使用した高度なウィンドウ エクスペリエンスを開発できるようにします。このフレームワークにより、デベロッパーは XML 構成で宣言型言語を使用してウィンドウ構造を設計できます。

  • スケーラブル UI のタスク フォーカス: マルチウィンドウ環境でどのタスクにフォーカスを当てるかを決定する一連のルールを導入します(パネルの開閉など)。Focus タグの新しい onTransition 属性により、よりきめ細かい制御が可能になります。

  • スケーラブル UI の自動再起動メカニズム: スケーラブル UI パネルで、障害のあるアプリを再起動することで、アプリのクラッシュを適切に処理できるようになりました。UI パネルでの予期しないタスクの終了に対処するため、自動タスク再起動メカニズムを導入します。これは、新しい <Restart> XML タグで構成し、再起動ポリシーと再試行の最大回数を定義します。

  • 装飾パネルのドラッグ時のパフォーマンスの改善とパフォーマンス計測: AAOS は、インタラクティブ パネルのドラッグ アニメーションのパフォーマンスを向上させます。また、スケーラブル UI ライブラリに計測機能を追加し、重要なユーザー ジャーニーにおける不協和音を測定します。

    OEM Perfetto トレースは、ウィンドウ処理とスケーラブル UI ライブラリで発生していることに関する固有の追加メタデータ レポートを提供します。

  • パネル装飾ビューがテーマの変更に適応し、それに対応する: パネルのテーマ設定がテーマの変更に適応します。たとえば、ライトモードとダークモードの切り替えや、SysUI レベルでのテーマ設定の変更などです。

ユーザー デバッグ コマンドとデベロッパー ツール:

  • シェル コマンドは現在のパネルの状態を出力し、adb を介してイベントを送信します。adb コマンドを使用して、パネルを開閉するなど、ビジュアル パネルの状態を変更します。

    シェルコマンドは、システムでイベントをトリガーします。たとえば、アプリ グリッド パネルが開いているときに閉じるには、adb shell cmd statusbar carsysui-dispatch-event close_app_grid を実行します。

  • パネルの状態がアクティビティ dumpsys に含まれる: アクティビティ dumpsys にパネルの状態が含まれます。デバッグ ツール(adb コマンド)を使用して、dumpsys(=adb シェルコマンド)でパネルの状態を取得します。

    コマンドは、視覚的なアクションが発生していないときに現在のパネルの状態を表示します。コマンドは次のとおりです。

    adb shell cmd statusbar carsysui-dump-panelstates
    

OEM のロギングとデータ トラッキング

  • 車両データ サブスクリプション イベントにロギングを追加します。データ トラッキングを改善するため、OEM 向けにユーザー接続ロギングを有効にしています。

コアアプリ

自動車対応モバイルアプリ(CaRMA)の CDD と CTS の準拠を確認するため、自動車環境におけるサードパーティ製アプリの互換性とユーザビリティを強化します。シームレスなナビゲーションのベスト プラクティスを示すため、戻るアフォーダンスの参照サンプルを追加します。

  • アクティビティ ブロッキング アクティビティ(ABA)の機能強化: ライフサイクル管理を改善するため、AAOS は OnStop ABA の動作を改良します。

  • アプリのレンダリング用の安全な長方形。コンテンツの可視性を確認し、オクルージョンを回避するために、AAOS は指定されたアプリの表示領域を定義します。

  • DPI スケーリング: AAOS は、ディスプレイの解像度と視聴距離に基づいて UI 要素を最適化します。

  • アプリごとのオーバーライド: AAOS では、向きやアスペクト比など、アプリの動作を制御できます。

  • 互換性の改善: AAOS には DocumentsUI などの Android のコア機能が含まれており、サードパーティ製アプリとの互換性が向上しています。

  • 代替アプリ コントロール: AAOS では、運転中にメディア センター以外の音声(特にコミュニケーション アプリからの音声)を制御できます。

VHAL プロパティ

  • プロパティ列挙型 @SystemApi タグ: AAOS では、サードパーティ製アプリからアクセス可能として最近指定されたプロパティの列挙型へのサードパーティ アクセスが有効になります。

音声

  • フェードとバランスの API: AAOS は、ユーザーの現在のフェードとバランスの設定を取得するファーストパーティ アプリを改善します。これらの音声レベルは、イグニッション サイクル全体でユーザーごとに維持されます。このアップデートにより、カーオーディオ API の他のユーザー制御のオーディオ設定とのパリティが実現します。

プライバシー

  • Google 利用規約のゲート: ユーザーが Google 利用規約に同意するまで、アプリを無効にできます。無効にしたアプリのアイコンは、非アクティブ状態を示すためにグレーで表示されます。

    無効なアプリをタップすると、Google 利用規約への同意を求めるメッセージがユーザーに表示されます。

    Android 25Q4 では、この機能は、スケーラブル UI を使用して構成されたバックグラウンド パネルに永続的な Google エクスペリエンスを配置する OEM エクスペリエンスと互換性があります。たとえば、ホーム画面のエクスペリエンスとして設定された永続的な Google マップ アクティビティは、ユーザーが Google 利用規約のゲートを承認するまでグレー表示されます。

コンプライアンス

AAOS は、GSI 上のこれらのテストスイート(CTS、CTS-V、ATS、ATS-V、STS、VTS、CTS on GSI)を使用して、Cuttlefish と内部リファレンス ハードウェアで Android コンプライアンスをテストします。

以下の問題を除き、Android 16 コード(android16-release)や Android 16 テストブランチ(android16-m1-tests-dev)で修正を必要とする欠陥は見つかりませんでした。

これらのコンプライアンスの問題は、今後の AOSP リリースで対処する予定です。

  • CtsAppSecurityHostTestCases: RoleSecurityTest#cannotGetSmsRoleHolderForAnotherUser

  • CtsMediaHostTestCases: AudioServiceRebootHostTest#testVolumePersists_AfterReboot

  • CtsPermissionUiTestCases: PermissionTest23#testInteractiveGrant

Android 25Q4 のテスト不合格

このセクションでは、Cuttlefish に固有の Android 25Q4 の失敗したテストケースを列挙します。失敗したテストは、内部参照ハードウェアでは合格します。Cuttlefish と内部参照ハードウェアで一貫性のないテストケースを確認します。

テストの不整合は、テストの失敗が複数回発生した 15 回の連続ビルドの結果を評価することで判断します。

テストケース 発生数
CtsWindowManagerBackgroundActivityTestCases 6
CtsJvmtiAttachingHostTestCases 5
CtsViewTestCases 5
CtsStagedInstallHostTestCases 3
CtsUiRenderingTestCases27 2
CtsWindowManagerDeviceActivity 2
CtsAppOpsTestCases 1
CtsNetTestCasesLegacyApi22 1
CtsStatsdAtomHostTestCases 1
CtsUiRenderingTestCases 1