顯示安全碼結構

本頁說明 Display Safety 原始碼的結構。

詳情請參閱各目錄中的 README.md。

複製存放區

如要存取存放區,請與 Google 技術支援客戶經理聯絡。

架構

這個目錄包含核心螢幕安全架構元件。

目錄 目的
api/har-platform-api 平台子系統抽象化集合,可在支援的平台上建構高可用性轉譯器 (HAR) 應用程式。
api/har-types 硬體抽象層類型。
asset-manager 管理執行階段應用程式資產的工具。
audio/har-audio 用於處理 HAR 音訊播放的 Crate
customizations 包含 API、實作項目和衍生巨集,可從以 HAR 為基礎的應用程式產生設計自訂項目。
derive/har-ui-model-derive 程序巨集,用於衍生 HAR UI 模型系統使用的常見特徵
display_list 定義描述要算繪場景的結構和元件,與任何圖形後端分離。
graphics/external-image 用於不明外部圖片表示法的 Crate。
graphics/har-gl-context 定義圖形內容 API,並在支援的平台上納入多種實作方式,適用於顯示和螢幕外算繪。
graphics/impeller Impeller 的安全 Rust API,以產生的 FFI 繫結為基礎建構。
graphics/impeller-renderer 使用 Impeller 做為後端算繪引擎,實作高階算繪器。
har-layout Taffy 的包裝函式,用於計算 HAR 中檢視區塊的版面配置。
har-monitoring 效能監控工具包。
har-utils 常見公用程式。
harry 做為建構 HAR 應用程式基礎的架構
harry-animation Harry 的動畫 API 和實作
squoosh Harry 架構中檢視區塊參數的中間表示法和動畫引擎。
task-scheduler 這項公用程式可安排工作,並在指定延遲時間後,於背景執行緒中執行工作。
test_suites 執行螢幕安全單元測試的測試套件

預先建構

這個目錄包含預先建構的程式庫和資產。

目錄 目的
impeller/ Impeller 圖形引擎的預建程式庫,依作業系統和架構分類。
impeller-rs-bindgen/ Impeller 的 Rust FFI 繫結。
impeller-rs-bindgen-wrapper/ Impeller 繫結的 API 包裝函式。

參考資料

這個目錄包含 HAR 參考實作項目、平台專屬實作項目、工具和測試構件。

目錄 目的
audio/tinyalsa-rs Tinyalsa 音訊程式庫的 Rust FFI 繫結。
audio/tinyalsa-audio 音訊播放和裝置管理程式庫,以 `tinyalsa-rs` Crate 產生的 FFI 繫結為基礎
camera/emulated-camera 使用 `har-platform-api` 的 `Camera` 特徵,實作模擬攝影機。
graphics/gl-helpers 包含 GL 輔助函式的公用程式 Crate
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 伺服器 (以音調為基礎)。只有在使用 Cargo 建構 Linux 版本時,才會用到這個伺服器。
harry-vehicle-data-grpc/ 從車輛資料 proto 檔案產生的車輛資料 gRPC 程式碼。
i18n/harry-app-i18n HAR 的國際化和本地化服務。
i18n/i18n-protos 定義 protobuf 訊息,以及 i18n 資料的 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 建立腳本化車輛資料序列的結構和邏輯

服務

這個目錄包含與螢幕安全相關的 Android 服務。

目錄 目的
ds-cvd-toolkit 多媒體安全防護的指令列工具,可啟動多個 Cuttlefish 裝置。
emulator 模擬器支援執行階段資源覆蓋
har-grpc-services 包含參考實作中使用的 Proto 定義,用於在 HAR 應用程式、DriverUI 和車輛資料服務之間建立通訊管道。
har-sdv-service* 提供 SDV 服務套件,用於透過 proto 檔案產生的程式碼,為 HAR 提供資料服務
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 (序列化設計 Compose Figma 文件) 擷取中繼資料。
figma-utils 提供 `figma_import` 的指令列包裝函式,用於擷取序列化 Figma 文件。
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 文件,並計算節點與設計變數的比率。