显示安全代码结构

本页面介绍了显示安全性的源代码的组织结构。

如需了解详情,请参阅每个目录中的 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 界面模型系统所用常见特征的过程宏
display_list 定义了用于渲染场景的结构和组件,与任何图形后端分离。
graphics/external-image 用于外来图片表示形式的箱子。
graphics/har-gl-context 定义了图形上下文 API,并包含支持的平台上的多种实现,包括显示和离屏渲染。
graphics/impeller Impeller 的安全 Rust API,基于生成的 FFI 绑定构建。
graphics/impeller-renderer 使用 Impeller 作为后端渲染引擎的高级渲染器实现。
har-layout 用于计算 HAR 中视图布局的 Taffy 封装容器。
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 用于音频播放和设备管理的库,基于由 <code>tinyalsa-rs</code> crate 生成的 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` 参考应用的核心应用逻辑、状态管理和界面模型定义。
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 一种与平台无关的 headless 渲染 Looper 实现。
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 包含参考实现中用于在 HAR 应用与 DriverUI 和车辆数据服务之间建立通信渠道的 proto 定义。
har-sdv-service* 提供用于向 HAR 提供数据服务的 SDV 服务软件包,利用由 proto 文件生成的代码
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_import` 的命令行封装容器,用于提取序列化的 Figma 文档。
gauge-test 专为测试和演示拨号盘和仪表界面元素而设计的应用。
gui-playground-app 用于测试新界面和动画功能的沙盒环境。
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 文档并计算节点与设计变量的比率。