ディスプレイの安全コードの構造

このページでは、Display Safety のソースコードの構成について説明します。

詳細については、各ディレクトリの README.md をご覧ください。

リポジトリのクローンを作成する

リポジトリにアクセスするには、Google テクニカル アカウント マネージャーにお問い合わせください。

フレームワーク

このディレクトリには、Display Safety フレームワークのコア コンポーネントが含まれています。

ディレクトリ 目的
api/har-platform-api サポートされているプラットフォームで高 可用性レンダラ(HAR)アプリを構築するためのプラットフォーム サブシステムの抽象化のコレクション。
api/har-types Hardware Abstraction Layer のタイプ。
asset-manager ランタイム アプリケーション アセットを管理するためのツール。
audio/har-audio HAR 音声再生を処理するためのクレート
customizations HAR ベースのアプリからデザイン のカスタマイズを生成するための API、実装、派生マクロが含まれています。
derive/har-ui-model-derive HAR UI モデル システムで使用される共通の特性を派生させるための手続き型マクロ
display_list グラフィック バックエンドから切り離された、レンダリングするシーンを記述する構造とコンポーネントを定義します。
graphics/external-image 外部画像表現用のクレート。
graphics/har-gl-context グラフィック コンテキスト API を定義し、ディスプレイ レンダリングとオフスクリーン レンダリングの両方で、サポートされているプラットフォーム全体にわたる複数の実装 を含みます。
graphics/impeller 生成された FFI バインディングを基盤とする、Impeller 用の Safe Rust API。
graphics/impeller-renderer Impeller をバックエンド レンダリング エンジンとして使用する高レベル レンダラの実装。
har-layout Taffy のラッパー。HAR のビューのレイアウトを計算します。
har-monitoring パフォーマンス モニタリング ツールキット。
har-utils 一般的なユーティリティ。
harry HAR アプリケーションを構築するための基盤として使用されるフレームワーク
harry-animation Harry 用のアニメーション API と実装
squoosh Harry フレームワークのビュー パラメータの中間表現とアニメーション エンジン。
task-scheduler タスクのスケジュールを設定し、指定した遅延後にバックグラウンド スレッドで実行するためのユーティリティ。
test_suites Display Safety の単体テストを実行するためのテストスイート

事前ビルド

このディレクトリには、事前ビルドされたライブラリとアセットが含まれています。

ディレクトリ 目的
impeller/ OS と アーキテクチャごとに整理された、Impeller グラフィック エンジン用の事前ビルド ライブラリ。
impeller-rs-bindgen/ Impeller 用の Rust FFI バインディング。
impeller-rs-bindgen-wrapper/ Impeller バインディング用の API ラッパー。

リファレンス

このディレクトリには、HAR のリファレンス実装、プラットフォーム固有の実装、ツール、テスト アーティファクトが含まれています。

ディレクトリ 目的
audio/tinyalsa-rs Tinyalsa Audio ライブラリ用の Rust FFI バインディング。
audio/tinyalsa-audio `tinyalsa-rs` クレートによって生成された FFI バインディングを基盤とする、音声再生とデバイス管理用のライブラリ
camera/emulated-camera `har-platform-api` の `Camera` 特性 を使用して、エミュレートされたカメラの実装を提供します。
graphics/gl-helpers GL ヘルパー関数を含むユーティリティ クレート
har-user-input-evdev/ 基本的な evdev ベースの入力処理の実装を実装します。 キーボード、マウス、タッチ(シングルタッチとマルチタッチ)イベントをサポートします。
harry-app/ `harry` フレームワークを使用して構築されたポータブル高可用性レンダラ(HAR) アプリのリファレンス実装。
harry-app-core/ `harry-app` リファレンス アプリのコア アプリケーション ロジック、状態管理、UI モデル定義。
harry-app-utils/ `harry-app` リファレンス アプリのユーティリティ関数とヘルパー モジュール。
harry-control-api/ `harry-app` リファレンス アプリの制御 API。
harry-grpcio-server/ gRPC サーバー(grpcio ベース)。これは、soong で Android バージョンをビルドする場合にのみ使用されます。
harry-tonic-server/ gRPC サーバー(tonic ベース)。これは、Cargo で Linux バージョンをビルドする場合にのみ使用されます。
harry-vehicle-data-grpc/ 車両データ proto ファイルから生成された車両データ gRPC コード。
i18n/harry-app-i18n HAR の国際化とローカライズのサービス。
i18n/i18n-protos i18n データの protobuf メッセージと Rust コード生成を定義します。
libyuv-rs/ libyuv 用の Rust バインディング。
platforms/har-log サポートされているすべてのプラットフォームのログとトレースの実装を定義します。
platforms/har-looper-headless ヘッドレス レンダリング用のプラットフォームに依存しないルーパ実装。
platforms/har-platform-android `har-platform-api` プラットフォームの抽象化の Android 固有の実装を提供します。
platforms/har-platform-linux `har-platform-api` プラットフォームの抽象化の Linux 固有の実装を提供します。
platforms/harry-app-platform-specific harry-app の条件付きコンパイル ブリッジ。選択したプラットフォームに基づいて正しい 実装を選択します。
safety-monitor Android 用のリファレンス セーフティ モニターの実装。
screencap DRM フレームバッファから直接スクリーンショットを抽出するためのスクリーン キャプチャ ユーティリティ
vehicle-data-scripts スクリプト化された車両データ シーケンスを作成するための構造とロジック

サービス

このディレクトリには、Display Safety に関連する Android サービスが含まれています。

ディレクトリ 目的
ds-cvd-toolkit 複数の Cuttlefish デバイスを起動できる Display Safety 用のコマンドライン ツール。
emulator ランタイム リソース オーバーレイのエミュレータ サポート
har-grpc-services リファレンス実装で使用される proto 定義が含まれています。これは、HAR アプリと DriverUI、車両データ サービス間の通信チャネルを確立するために 確立するために使用されます。
har-sdv-service* proto ファイルによって生成されたコードを利用して、HAR にデータサービスを提供する SDV サービス バンドルを提供します。
har-tracing-common HAR のパフォーマンス トレース サービス
harry-prebuilt/ 事前ビルドされた Harry コンポーネント(アセット、構成など)
ivi/ Android IVI(車載インフォテインメント)に関連するコンポーネント
libhar_graphics/ HAR サービス用の C++ グラフィック ライブラリ。
pdk/ PDK リリース メタデータ
product/ プロダクト固有の構成とアセット
SdvCameraPreviewApp SDV 用のカメラ プレビュー アプリ。
vehicledata gRPC を使用して車両データ SDV データトンネル パブリッシャーを実装します。

Utils

このディレクトリには、リファレンス実装とテスト用の一般的なユーティリティが含まれています。

ディレクトリ 目的
asset-manager-cli アセット パッケージを生成するためのコマンドライン インターフェースを提供します。
dcf-info/ DCF(シリアル化された Design Compose Figma ドキュメント)からメタデータを抽出するツール。
figma-utils シリアル化された Figma ドキュメントを取得するための `figma_import` のコマンドライン ラッパーを提供します。
gauge-test ダイヤルとゲージの UI 要素をテストしてデモするために設計されたアプリ。
gui-playground-app 新しい UI 機能とアニメーション機能をテストするためのサンドボックス環境。
har-platform-tests プラットフォーム固有の特性実装の統合テストスイート。
har-rendering-parity HAR、DesignCompose、 Figma 間のレンダリング パリティを検証するためのビジュアル ツール。
harry-rpc-client RPC 経由で Harry にコマンドを送信するためのコマンドライン インターフェースを提供します。
human-readable-report-generator 安全アーティファクトを視覚的に検証するためのユーティリティ。
ktx-utils Khronos KTX 2.0 テクスチャ ファイルをエンコードおよびデコードするためのユーティリティを提供します。
list-test-app HAR でのリスト管理のテスト環境とデモ環境として機能します。
transfer-localizations Android XML ローカライズ ファイルを HAR proto 形式に変換するためのユーティリティ。
variable-density-analyzer Figma ドキュメントを分析し、ノードと デザイン変数の比率を計算します。